Mixins let you reuse groups of CSS styles easily. A mixin library is a collection of these reusable style blocks to keep your code clean and organized.
Mixin libraries pattern in SASS
Start learning this pattern below
Jump into concepts and practice - no test required
or
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Introduction
Syntax
SASS
@mixin name($parameters) { // CSS styles here } @include name($arguments);
Use @mixin to define reusable style blocks.
Use @include to apply the mixin styles where needed.
Examples
SASS
@mixin center { display: flex; justify-content: center; align-items: center; } .container { @include center; }
SASS
@mixin button($bg-color, $text-color) { background-color: $bg-color; color: $text-color; padding: 1rem 2rem; border-radius: 0.5rem; } .btn-primary { @include button(blue, white); }
Sample Program
This example shows a mixin called card that styles a box with background color, padding, rounded corners, and shadow. The .card class uses this mixin with specific values. The result is a neat card style container.
SASS
@charset "UTF-8"; @mixin card($bg-color, $padding) { background-color: $bg-color; padding: $padding; border-radius: 1rem; box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1); } .card { @include card(#f0f0f0, 2rem); max-width: 20rem; margin: 2rem auto; font-family: Arial, sans-serif; } .card h2 { margin-top: 0; color: #333; } .card p { color: #666; line-height: 1.4; }
Important Notes
Mixins help avoid repeating code and make updates easier.
You can pass values to mixins to customize styles each time.
Keep mixin libraries organized in separate files for easy reuse.
Summary
Mixins are reusable style blocks in Sass.
Mixin libraries group many mixins for consistent styling.
Use @mixin to create and @include to apply them.
Practice
1. What is the main purpose of using mixin libraries in Sass?
easy
Solution
Step 1: Understand mixins in Sass
Mixins are reusable blocks of styles that help avoid repetition.Step 2: Purpose of mixin libraries
Mixin libraries group many mixins to keep styling consistent and reusable across projects.Final Answer:
To group reusable style blocks for consistent styling -> Option DQuick Check:
Mixin libraries = reusable style groups [OK]
Hint: Mixins group styles; libraries group mixins [OK]
Common Mistakes:
- Confusing mixins with plain CSS
- Thinking mixins create HTML
- Believing mixins compile to JavaScript
2. Which of the following is the correct syntax to include a mixin named
button-style in Sass?easy
Solution
Step 1: Recall mixin creation syntax
Mixins are created with@mixin name { ... }.Step 2: Recall mixin usage syntax
To apply a mixin, use@include name;.Final Answer:
@include button-style; -> Option BQuick Check:
Use @include to apply mixins [OK]
Hint: Use @include to apply mixins, not @mixin [OK]
Common Mistakes:
- Using @mixin instead of @include to apply
- Writing include() like a function
- Confusing @use with @include
3. Given the Sass code:
What CSS will be generated for the
@mixin card-style {
border: 1px solid #ccc;
padding: 1rem;
box-shadow: 0 0 5px rgba(0,0,0,0.1);
}
.card {
@include card-style;
background-color: white;
}What CSS will be generated for the
.card class?medium
Solution
Step 1: Understand mixin content
The mixincard-styledefines border, padding, and box-shadow styles.Step 2: Applying mixin in .card
Using@include card-style;inserts those styles inside.card, plus the background color.Final Answer:
.card { border: 1px solid #ccc; padding: 1rem; box-shadow: 0 0 5px rgba(0,0,0,0.1); background-color: white; } -> Option AQuick Check:
Mixin styles + extra styles = full CSS block [OK]
Hint: Mixin styles expand fully inside selector [OK]
Common Mistakes:
- Expecting @include to remain in CSS output
- Ignoring mixin styles when included
- Thinking mixins cause syntax errors
4. Identify the error in this Sass code snippet:
@mixin text-style {
font-size: 1.2rem;
color: #333;
}
.title {
@mixin text-style;
font-weight: bold;
}medium
Solution
Step 1: Check mixin usage syntax
Mixins are created with@mixinbut applied with@include.Step 2: Identify incorrect usage
The code uses@mixin text-style;inside.title, which is wrong syntax.Final Answer:
Using @mixin instead of @include inside .title -> Option CQuick Check:
Apply mixins with @include, not @mixin [OK]
Hint: Use @include to apply mixins, never @mixin [OK]
Common Mistakes:
- Confusing @mixin and @include
- Adding dot before mixin name
- Thinking mixins can't be used in selectors
5. You have a mixin library with multiple mixins for buttons. You want to create a new mixin
primary-button that uses the existing button-base mixin and adds a blue background. Which Sass code correctly achieves this?hard
Solution
Step 1: Define new mixin with @mixin
Use@mixin primary-button { ... }to create the new mixin.Step 2: Include existing mixin inside new one
Inside the new mixin, use@include button-base;to reuse styles.Step 3: Add additional styles
Addbackground-color: blue;after including the base mixin.Final Answer:
@mixin primary-button { @include button-base; background-color: blue; } -> Option AQuick Check:
New mixin includes old mixin + extra styles [OK]
Hint: Nest @include inside @mixin to combine styles [OK]
Common Mistakes:
- Using @mixin instead of @include inside mixin body
- Trying to call mixins like functions
- Using @include outside mixin definition incorrectly
