Performance: Breakpoint variables and maps
MEDIUM IMPACT
This affects CSS file size and browser rendering speed by organizing media queries efficiently.
$breakpoints: ( small: 480px, medium: 768px, large: 1024px ); .element { @each $name, $size in $breakpoints { @media (min-width: $size) { font-size: if($name == small, 1rem, if($name == medium, 1.2rem, 1.5rem)); } } }
$small: 480px; $medium: 768px; $large: 1024px; .element { @media (min-width: $small) { font-size: 1rem; } @media (min-width: $medium) { font-size: 1.2rem; } @media (min-width: $large) { font-size: 1.5rem; } }
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Separate variables with repeated media queries | No extra DOM nodes | Multiple reflows if CSS is large | Higher paint cost due to style recalculation | [X] Bad |
| Breakpoint map with looped media queries | No extra DOM nodes | Single reflow with minimal CSS | Lower paint cost due to concise styles | [OK] Good |