Bird
Raised Fist0
Bootsrapmarkup~8 mins

Button sizes in Bootsrap - Performance & Optimization

Choose your learning style10 modes available
Performance: Button sizes
MEDIUM IMPACT
Button sizes affect the layout stability and rendering speed of interactive elements on the page.
Creating buttons with different sizes dynamically
Bootsrap
<button class="btn btn-primary btn-sm">Small</button>
<button class="btn btn-primary btn-lg">Large</button>
Using Bootstrap's predefined size classes ensures consistent sizing and reduces inline style recalculations.
📈 Performance GainSingle reflow on load, stable layout, and reduced CLS.
Creating buttons with different sizes dynamically
Bootsrap
<button class="btn btn-primary" style="padding: 0.25rem 0.5rem; font-size: 0.75rem;">Small</button>
<button class="btn btn-primary" style="padding: 1rem 2rem; font-size: 1.5rem;">Large</button>
Inline styles with varying padding and font sizes cause layout shifts and multiple reflows when buttons load or change size.
📉 Performance CostTriggers multiple reflows and layout shifts, increasing CLS and blocking rendering for tens of milliseconds.
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Inline styles with varying sizesLowMultiple reflows per buttonHigh due to layout shifts[X] Bad
Bootstrap size classes (btn-sm, btn-lg)LowSingle reflow on loadLow paint cost, stable layout[OK] Good
Rendering Pipeline
Button size changes affect the Style Calculation and Layout stages, which can trigger Paint and Composite steps if sizes differ significantly.
→Style Calculation
→Layout
→Paint
→Composite
⚠️ BottleneckLayout is most expensive because changing button size recalculates positions of surrounding elements.
Core Web Vital Affected
CLS
Button sizes affect the layout stability and rendering speed of interactive elements on the page.
Optimization Tips
1Use Bootstrap's predefined button size classes instead of inline styles.
2Avoid changing button sizes dynamically after page load to prevent layout shifts.
3Test button rendering with browser DevTools to catch unexpected reflows.
Performance Quiz - 3 Questions
Test your performance knowledge
Which button sizing approach reduces layout shifts the most?
AApplying inline styles with different padding and font sizes
BUsing Bootstrap predefined size classes like btn-sm and btn-lg
CSetting button sizes with JavaScript after page load
DUsing different font families for each button size
DevTools: Performance
How to check: Record a performance profile while loading the page and interacting with buttons. Look for layout shifts and reflows in the summary.
What to look for: Check for multiple Layout events and large Layout Shift scores indicating unstable button sizing.

Practice

(1/5)
1. Which Bootstrap class makes a button smaller than the default size?
<button class="btn btn-primary ?">Click</button>
easy
A. btn-sm
B. btn-lg
C. btn-default
D. btn-small

Solution

  1. Step 1: Understand Bootstrap button size classes

    Bootstrap uses btn-sm for small buttons and btn-lg for large buttons. The default button has no size class.
  2. Step 2: Identify the class for smaller buttons

    The class btn-sm is the correct one to make a button smaller than default.
  3. Final Answer:

    btn-sm -> Option A
  4. Quick Check:

    Small button class = btn-sm [OK]
Hint: Small buttons use btn-sm class in Bootstrap [OK]
Common Mistakes:
  • Using btn-lg for small buttons
  • Using btn-default which is not a size class
  • Using btn-small which does not exist
2. Which of the following is the correct syntax to create a large Bootstrap button?
<button class="btn btn-primary ?">Submit</button>
easy
A. btn-lg
B. btn-large
C. btn-big
D. btn-xl

Solution

  1. Step 1: Recall Bootstrap large button class

    Bootstrap uses btn-lg to make buttons larger than the default size.
  2. Step 2: Match the correct class syntax

    The correct class is btn-lg. Other options like btn-large, btn-big, or btn-xl are not valid Bootstrap classes.
  3. Final Answer:

    btn-lg -> Option A
  4. Quick Check:

    Large button class = btn-lg [OK]
Hint: Large buttons use btn-lg class in Bootstrap [OK]
Common Mistakes:
  • Using btn-large instead of btn-lg
  • Using btn-big which is not a Bootstrap class
  • Using btn-xl which does not exist in Bootstrap
3. What will be the visual difference between these two buttons?
<button class="btn btn-primary">Default</button>
<button class="btn btn-primary btn-sm">Small</button>
medium
A. Both buttons will be the same size
B. The first button is smaller, the second is default size
C. The first button is larger, the second is default size
D. The first button is default size, the second is smaller

Solution

  1. Step 1: Identify button classes and their sizes

    The first button has only btn btn-primary, so it is default size. The second button adds btn-sm, making it smaller.
  2. Step 2: Understand visual difference

    The second button will appear smaller than the first because of the btn-sm class.
  3. Final Answer:

    The first button is default size, the second is smaller -> Option D
  4. Quick Check:

    btn-sm makes button smaller [OK]
Hint: btn-sm makes button smaller than default [OK]
Common Mistakes:
  • Thinking btn-sm makes button larger
  • Assuming both buttons look the same
  • Confusing btn-sm with btn-lg
4. Identify the error in this Bootstrap button code:
<button class="btn btn-primary btn-small">Click Me</button>
medium
A. Missing closing tag for button
B. btn-primary cannot be combined with size classes
C. btn-small is not a valid Bootstrap size class
D. btn class is missing

Solution

  1. Step 1: Check Bootstrap size classes

    Bootstrap uses btn-sm and btn-lg for sizes. btn-small is not valid.
  2. Step 2: Verify other classes and syntax

    The btn-primary and btn classes are correct and present. The button tag is properly closed.
  3. Final Answer:

    btn-small is not a valid Bootstrap size class -> Option C
  4. Quick Check:

    Use btn-sm or btn-lg for sizes [OK]
Hint: Use btn-sm or btn-lg, not btn-small [OK]
Common Mistakes:
  • Using btn-small instead of btn-sm
  • Thinking btn-primary can't combine with size classes
  • Missing btn class in button
5. You want a form with two buttons: a large green 'Save' button and a small red 'Cancel' button. Which code snippet correctly applies Bootstrap button sizes and colors?
hard
A. <button class="btn btn-success btn-sm">Save</button> <button class="btn btn-danger btn-lg">Cancel</button>
B. <button class="btn btn-success btn-lg">Save</button> <button class="btn btn-danger btn-sm">Cancel</button>
C. <button class="btn btn-primary btn-lg">Save</button> <button class="btn btn-warning btn-sm">Cancel</button>
D. <button class="btn btn-danger btn-lg">Save</button> <button class="btn btn-success btn-sm">Cancel</button>

Solution

  1. Step 1: Match button colors to meanings

    Bootstrap uses btn-success for green and btn-danger for red buttons.
  2. Step 2: Apply correct sizes to buttons

    The 'Save' button should be large, so use btn-lg. The 'Cancel' button should be small, so use btn-sm.
  3. Step 3: Verify the correct combination

    <button class="btn btn-success btn-lg">Save</button> <button class="btn btn-danger btn-sm">Cancel</button> correctly uses btn-success btn-lg for 'Save' and btn-danger btn-sm for 'Cancel'. Other options swap colors or sizes incorrectly.
  4. Final Answer:

    <button class="btn btn-success btn-lg">Save</button> <button class="btn btn-danger btn-sm">Cancel</button> -> Option B
  5. Quick Check:

    Green = btn-success, Large = btn-lg, Red = btn-danger, Small = btn-sm [OK]
Hint: Green = btn-success, Red = btn-danger, sizes btn-lg/sm [OK]
Common Mistakes:
  • Swapping btn-success and btn-danger classes
  • Using wrong size classes for buttons
  • Mixing colors and sizes incorrectly
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