Bird
Raised Fist0
Bootsrapmarkup~8 mins

Shadow utilities in Bootsrap - Performance & Optimization

Choose your learning style10 modes available
Performance: Shadow utilities
MEDIUM IMPACT
Shadow utilities affect the paint and composite stages of page rendering by adding visual depth with shadows.
Adding shadows to multiple elements for visual depth
Bootsrap
<div class="shadow-sm"></div>
<div class="shadow-sm"></div>
<div class="shadow-sm"></div>
Using smaller shadows reduces paint complexity and GPU load, improving rendering speed.
📈 Performance Gainreduces paint and composite cost per element, improving frame rate
Adding shadows to multiple elements for visual depth
Bootsrap
<div class="shadow-lg"></div>
<div class="shadow-lg"></div>
<div class="shadow-lg"></div>
Applying large shadows to many elements triggers multiple paint and composite operations, increasing rendering cost.
📉 Performance Costtriggers multiple paint and composite layers, increasing GPU workload
Performance Comparison
PatternDOM OperationsReflowsPaint CostVerdict
Large shadows on many elementsLow0High paint and composite cost[X] Bad
Small shadows on few elementsLow0Low paint and composite cost[OK] Good
Rendering Pipeline
Shadow utilities add visual effects that require the browser to calculate styles, paint shadows, and composite layers, impacting rendering performance.
→Style Calculation
→Paint
→Composite
⚠️ BottleneckPaint and Composite stages are most expensive due to shadow rendering.
Core Web Vital Affected
LCP
Shadow utilities affect the paint and composite stages of page rendering by adding visual depth with shadows.
Optimization Tips
1Limit the number of elements with shadows to reduce paint cost.
2Prefer smaller shadows to minimize GPU workload.
3Avoid animating shadows to prevent frame drops.
Performance Quiz - 3 Questions
Test your performance knowledge
Which Core Web Vital is most affected by heavy use of shadow utilities?
ALargest Contentful Paint (LCP)
BInteraction to Next Paint (INP)
CCumulative Layout Shift (CLS)
DFirst Input Delay (FID)
DevTools: Performance
How to check: Record a performance profile while interacting with the page. Look for long paint or composite events related to shadow styles.
What to look for: High paint or composite times indicate expensive shadow rendering affecting frame rate.

Practice

(1/5)
1. What does the Bootstrap class shadow-lg do to an element?
easy
A. Changes the element's background color
B. Removes any shadow from the element
C. Adds a small shadow around the element
D. Adds a large shadow around the element to create depth

Solution

  1. Step 1: Understand shadow utility classes

    Bootstrap provides shadow classes to add shadows of different sizes to elements.
  2. Step 2: Identify the effect of shadow-lg

    The shadow-lg class adds a large shadow, making the element appear raised and deeper.
  3. Final Answer:

    Adds a large shadow around the element to create depth -> Option D
  4. Quick Check:

    shadow-lg means large shadow [OK]
Hint: Remember: lg means large shadow size [OK]
Common Mistakes:
  • Confusing shadow-lg with shadow-none
  • Thinking shadow-lg changes background color
  • Mixing shadow-lg with shadow-sm
2. Which of the following is the correct way to remove a shadow from a Bootstrap element?
easy
A. Add class shadow-remove
B. Add class shadow-none
C. Add class no-shadow
D. Add class shadow-zero

Solution

  1. Step 1: Recall Bootstrap shadow removal class

    Bootstrap uses shadow-none to remove shadows from elements.
  2. Step 2: Check the options for the correct class

    Only shadow-none is a valid Bootstrap class to remove shadows.
  3. Final Answer:

    Add class shadow-none -> Option B
  4. Quick Check:

    shadow-none removes shadows [OK]
Hint: Use shadow-none to remove shadows, not shadow-remove [OK]
Common Mistakes:
  • Using non-existent classes like shadow-remove
  • Confusing shadow-none with shadow-zero
  • Trying to remove shadow by removing other classes
3. What shadow effect will the following HTML produce?
<div class="shadow-sm p-3 mb-5 bg-white rounded">Small Shadow Box</div>
medium
A. A box with a large shadow around it
B. A box with no shadow
C. A box with a small shadow around it
D. A box with a medium shadow around it

Solution

  1. Step 1: Identify the shadow class used

    The class shadow-sm is applied, which means a small shadow.
  2. Step 2: Understand the visual effect

    The box will have a subtle, small shadow giving slight depth.
  3. Final Answer:

    A box with a small shadow around it -> Option C
  4. Quick Check:

    shadow-sm means small shadow [OK]
Hint: shadow-sm means small shadow, shadow-lg means large [OK]
Common Mistakes:
  • Thinking shadow-sm means no shadow
  • Confusing shadow-sm with shadow-lg
  • Ignoring other classes like p-3 or rounded
4. You want to add a medium shadow to a button but accidentally use shadow-none. What will happen?
medium
A. The button will have no shadow
B. The button will have a large shadow
C. The button will have a medium shadow
D. The button will have a small shadow

Solution

  1. Step 1: Understand the effect of shadow-none

    The class shadow-none removes any shadow from the element.
  2. Step 2: Predict the button's shadow

    Even if you wanted a medium shadow, shadow-none overrides and removes it.
  3. Final Answer:

    The button will have no shadow -> Option A
  4. Quick Check:

    shadow-none removes shadows [OK]
Hint: shadow-none always removes shadows, no matter other classes [OK]
Common Mistakes:
  • Assuming shadow-none adds a shadow
  • Mixing shadow-none with shadow classes
  • Not realizing class order matters
5. You want to create a card with a large shadow but no shadow on the header inside it. Which classes should you use?
<div class="?">
  <header class="?">Card Header</header>
  <main>Card content</main>
</div>
hard
A. div: shadow-lg, header: shadow-none
B. div: shadow-none, header: shadow-lg
C. div: shadow-sm, header: shadow-lg
D. div: shadow, header: shadow

Solution

  1. Step 1: Apply large shadow to the card container

    Use shadow-lg on the div to add a large shadow around the card.
  2. Step 2: Remove shadow from the header

    Use shadow-none on the header to ensure it has no shadow inside the card.
  3. Final Answer:

    div: shadow-lg, header: shadow-none -> Option A
  4. Quick Check:

    Large shadow on container, none on header [OK]
Hint: Use shadow-none on child to remove parent's shadow effect [OK]
Common Mistakes:
  • Adding shadow to both div and header causing double shadows
  • Using shadow-none on div removes all shadows
  • Confusing shadow and shadow-lg classes
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