Bird
Raised Fist0
Bootsrapmarkup~8 mins

Badge component in Bootsrap - Performance & Optimization

Choose your learning style10 modes available
Performance: Badge component
LOW IMPACT
Badge components affect page load speed and rendering performance by adding extra DOM elements and CSS styles that can trigger layout and paint operations.
Displaying notification counts with badges
Bootsrap
<span class="badge bg-primary">99+ New</span>
Combining text into a single badge reduces DOM nodes and paint areas.
📈 Performance Gainsingle paint operation and smaller DOM
Displaying notification counts with badges
Bootsrap
<span class="badge bg-primary">99+</span><span class="badge bg-danger">New</span>
Using multiple badge elements increases DOM nodes and CSS paint areas unnecessarily.
📉 Performance Costtriggers 2 paint operations and increases DOM size
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Multiple badges for related infoMore nodesMultiple reflows if updated separatelyMultiple paints[X] Bad
Single combined badgeFewer nodesSingle reflowSingle paint[OK] Good
Frequent badge text updates without batchingSame nodesMany reflowsMany paints[X] Bad
Batched badge updates with debounceSame nodesFew reflowsFew paints[OK] Good
Rendering Pipeline
Badge components add styled inline elements that require style calculation, layout, and paint stages in the browser rendering pipeline.
→Style Calculation
→Layout
→Paint
⚠️ BottleneckPaint stage due to background color and border-radius styles
Core Web Vital Affected
LCP
Badge components affect page load speed and rendering performance by adding extra DOM elements and CSS styles that can trigger layout and paint operations.
Optimization Tips
1Use as few badge elements as possible by combining related info.
2Avoid frequent badge text updates; batch them to reduce reflows and paints.
3Keep badge styles simple to minimize paint cost.
Performance Quiz - 3 Questions
Test your performance knowledge
What is a performance downside of using many separate badge elements for related info?
AIncreases DOM size and triggers multiple paint operations
BReduces CSS complexity
CImproves page load speed
DDecreases reflows
DevTools: Performance
How to check: Open DevTools > Performance tab > Record while interacting with badges or updating them > Look for layout and paint events
What to look for: High frequency of Layout and Paint events indicates inefficient badge updates

Practice

(1/5)
1. What is the main purpose of a Bootstrap badge component?
easy
A. To style form input fields
B. To create large banners for page headers
C. To add navigation menus
D. To highlight small pieces of information like counts or labels

Solution

  1. Step 1: Understand the badge role

    Badges are used to show small bits of info such as counts or labels next to text or buttons.
  2. Step 2: Compare options

    Options A, B, and C describe other Bootstrap components or uses, not badges.
  3. Final Answer:

    To highlight small pieces of information like counts or labels -> Option D
  4. Quick Check:

    Badge = small info highlight [OK]
Hint: Badges show small info like numbers or labels [OK]
Common Mistakes:
  • Confusing badges with navigation or headers
  • Thinking badges style large elements
  • Using badges for form inputs
2. Which of the following is the correct syntax to create a Bootstrap badge with a primary color?
easy
A. New
B.
New
C. New
D. New

Solution

  1. Step 1: Check Bootstrap badge syntax

    Bootstrap badges use a span with class badge plus a background color class like bg-primary.
  2. Step 2: Validate each option

    New uses correct tags and classes. Options A, B, and D use incorrect tags or class names.
  3. Final Answer:

    <span class="badge bg-primary">New</span> -> Option C
  4. Quick Check:

    Use span.badge.bg-primary [OK]
Hint: Use <span> with classes badge and bg-color [OK]
Common Mistakes:
  • Using <div> instead of <span>
  • Missing the 'badge' class
  • Using wrong class names like badge-primary
3. What will be the visual result of this code?
<button type="button" class="btn btn-secondary">Messages <span class="badge bg-danger">5</span></button>
medium
A. A secondary button labeled 'Messages' with a red badge showing number 5
B. A red button labeled 'Messages' with a secondary badge showing number 5
C. A button labeled 'Messages' with no badge visible
D. A secondary button labeled 'Messages' with a blue badge showing number 5

Solution

  1. Step 1: Analyze button and badge classes

    The button uses btn btn-secondary which styles it gray. The badge uses badge bg-danger which styles it red.
  2. Step 2: Understand visual output

    The button text is 'Messages' and the badge with number 5 appears in red next to it.
  3. Final Answer:

    A secondary button labeled 'Messages' with a red badge showing number 5 -> Option A
  4. Quick Check:

    btn-secondary + badge bg-danger = gray button + red badge [OK]
Hint: bg-danger means red badge color [OK]
Common Mistakes:
  • Confusing button and badge colors
  • Expecting badge to be blue or missing
  • Ignoring badge inside button
4. Identify the error in this badge code:
<span class="badge badge-primary">99</span>
medium
A. The span tag cannot be used for badges
B. The class 'badge-primary' is outdated; should use 'bg-primary' instead
C. The number 99 is too large for a badge
D. Missing closing tag for span

Solution

  1. Step 1: Check Bootstrap badge color class

    In Bootstrap 5+, color classes for badges use bg-primary, not badge-primary.
  2. Step 2: Validate other parts

    The span tag is correct, number size is fine, and the closing tag is present.
  3. Final Answer:

    The class 'badge-primary' is outdated; should use 'bg-primary' instead -> Option B
  4. Quick Check:

    Use bg-primary, not badge-primary [OK]
Hint: Use bg-primary for badge color, not badge-primary [OK]
Common Mistakes:
  • Using old Bootstrap 4 class names
  • Thinking span is invalid tag
  • Assuming number size matters
5. You want to add a badge inside a navigation link that shows the number of unread notifications. Which is the best way to do this for accessibility and styling?
<a href="#" class="nav-link">Notifications <?></a>
What should replace <?>?
hard
A. <span class="badge bg-info" aria-label="unread notifications">3</span>
B. <div class="badge bg-info">3</div>
C. <span class="badge bg-info"><strong>3</strong></span>
D. <span class="badge bg-info" role="button">3</span>

Solution

  1. Step 1: Choose correct tag and classes

    Badges should use span with badge and color class like bg-info.
  2. Step 2: Add accessibility attribute

    Adding aria-label describes the badge meaning for screen readers, improving accessibility.
  3. Final Answer:

    <span class="badge bg-info" aria-label="unread notifications">3</span> -> Option A
  4. Quick Check:

    Use span.badge with aria-label for accessibility [OK]
Hint: Use aria-label on badge span for screen readers [OK]
Common Mistakes:
  • Using div inside links (invalid HTML)
  • Adding role=button unnecessarily
  • Not adding aria-label for accessibility
Recommended

Ready to prove it?

Pass the test and this pattern moves unknown strong while earning +1 Grip toward your certificate.

10 questions~5 mineasy hard