Performance: Including mixins with @include
This affects CSS file size and browser rendering speed by controlling how styles are reused and duplicated.
@mixin button-style { padding: 1rem; border-radius: 0.5rem; background-color: blue; color: white; } .button-primary { @include button-style; } .button-secondary { @include button-style; background-color: gray; }
@include button-style; @include button-style; @include button-style;
| Pattern | DOM Operations | Reflows | Paint Cost | Verdict |
|---|---|---|---|---|
| Repeated @include of large mixins | No direct DOM impact | No direct reflows | Higher paint cost due to larger CSS | [X] Bad |
| Single @include with customization | No direct DOM impact | No direct reflows | Lower paint cost with smaller CSS | [OK] Good |
@include directive do in Sass?@include@include directive is used to add the styles from a mixin into a selector.@mixin, importing files uses @import, and variables use $ syntax.@include adds mixin styles [OK]button-style in Sass?@include mixin-name(); with parentheses even if no arguments are passed.@mixin defines a mixin, not includes it. @use is for modules. Omitting parentheses is invalid syntax.@mixin border-radius($radius) {
border-radius: $radius;
}
.box {
@include border-radius(10px);
background: blue;
}border-radius takes a parameter $radius and sets border-radius to that value.@include border-radius(10px); replaces $radius with 10px in the output CSS.@mixin text-style {
font-size: 1.2rem;
color: black;
}
.title {
@include text-style;
font-weight: bold;
}$. @include is valid inside selectors.card that sets a white background, shadow, and border radius. You also want to customize the border radius when including it. Which Sass code correctly defines and uses this mixin?card must accept $radius to customize border radius.@include card(1rem);.$radius without parameter, causing error. @mixin card($radius) {
background: white;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
border-radius: 1rem;
}
.container {
@include card;
} hardcodes radius and omits parentheses in include. @mixin card($radius) {
background: white;
box-shadow: 0 2px 5px rgba(0,0,0,0.1);
border-radius: $radius;
}
.container {
@include card;
} omits argument when including.Pass the test and this pattern moves unknown