Bird
Raised Fist0
SASSmarkup~10 mins

Content blocks with @content in SASS - Browser Rendering Trace

Choose your learning style10 modes available
Render Flow - Content blocks with @content
Read SASS file
↓
Parse mixin with @content
↓
Store mixin template
↓
Encounter mixin call with block
↓
Inject @content block into mixin
↓
Compile to CSS
↓
Browser applies CSS styles
The SASS compiler reads the mixin with @content, waits for a block of styles to be passed in, then inserts that block where @content is used, producing final CSS that the browser renders.
Render Steps - 3 Steps
Code Added:Basic card styles without @content block
Before
[__________]
|          |
|          |
|          |
|__________|
→
After
[┌────────┐]
|│        │|
|│        │|
|│        │|
[└────────┘]
The card gets a border, padding, and background color, forming a visible box.
🔧 Browser Action:Creates box model with border, padding, and background paint
Code Sample
A styled card box with border, padding, and a shadow added via @content block inside the mixin.
SASS
<div class="card">
  <h2>Title</h2>
  <p>Some text here.</p>
</div>
SASS
@mixin card-style {
  border: 2px solid #333;
  padding: 1rem;
  border-radius: 0.5rem;
  background: #f9f9f9;
  @content;
}

.card {
  @include card-style {
    box-shadow: 0 0.5rem 1rem rgba(0,0,0,0.1);
  }
}
Render Quiz - 3 Questions
Test your understanding
After applying step 2, what visual change do you see on the card?
AThe card background changes to blue
BThe card border disappears
CA subtle shadow appears around the card
DThe card text becomes bold
Common Confusions - 2 Topics
Why doesn't the box-shadow appear if I forget to use @content block?
Without the @content block inside the mixin, any styles passed in the mixin call block are ignored, so box-shadow won't be added visually.
💡 Always include @content inside mixins to insert passed style blocks.
Can I use @content multiple times inside one mixin?
Yes, @content can be used multiple times per mixin. Each occurrence inserts the content block again at that position.
💡 Use multiple @content to repeat the passed style block where needed.
Property Reference
PropertyValue AppliedVisual EffectCommon Use
border2px solid #333Creates visible box outlineDefines card edges
padding1remAdds space inside borderSeparates content from edges
border-radius0.5remRounds cornersSoftens box shape
background#f9f9f9Light gray background colorCard background
box-shadow0 0.5rem 1rem rgba(0,0,0,0.1)Adds subtle shadowVisual depth and elevation
Concept Snapshot
SASS mixins can include @content to accept style blocks. @include calls pass a block that @content inserts. Allows flexible style extension inside reusable mixins. Without @content, passed blocks are ignored. @content can be used multiple times per mixin to repeat the injected styles.

Practice

(1/5)
1. What is the main purpose of @content in Sass?
easy
A. To pass custom styles into a mixin for flexible reuse
B. To define variables inside a mixin
C. To import external CSS files
D. To create loops in Sass

Solution

  1. Step 1: Understand what @content does

    @content allows you to insert custom CSS blocks inside a mixin, making it flexible.
  2. Step 2: Compare with other options

    Variables, imports, and loops are different Sass features unrelated to @content.
  3. Final Answer:

    To pass custom styles into a mixin for flexible reuse -> Option A
  4. Quick Check:

    @content = custom styles in mixin [OK]
Hint: Remember: @content inserts custom styles inside mixins [OK]
Common Mistakes:
  • Confusing @content with variables or imports
  • Thinking @content creates loops
  • Assuming @content is for defining selectors
2. Which of the following is the correct syntax to use @content inside a mixin?
easy
A. @mixin example { @include content; }
B. @mixin example { content(); }
C. @mixin example { @content; }
D. @mixin example { content; }

Solution

  1. Step 1: Recall the syntax for content blocks

    Inside a mixin, @content; is used to insert the passed block.
  2. Step 2: Check each option

    Only @mixin example { @content; } uses @content; correctly with the semicolon.
  3. Final Answer:

    @mixin example { @content; } -> Option C
  4. Quick Check:

    Correct syntax uses @content; inside mixin [OK]
Hint: Use @content; with a semicolon inside mixins [OK]
Common Mistakes:
  • Omitting the @ symbol before content
  • Using parentheses like a function call
  • Forgetting the semicolon after @content
3. What will be the output CSS of this Sass code?
@mixin card {
border: 1px solid black;
padding: 1rem;
@content;
}

.box {
@include card {
background-color: yellow;
}
}
medium
A. .box { border: 1px solid black; padding: 1rem; } .box { background-color: yellow; }
B. .box { border: 1px solid black; padding: 1rem; background-color: yellow; }
C. .box { background-color: yellow; }
D. Syntax error, no output

Solution

  1. Step 1: Understand mixin with @content

    The mixin card adds border and padding, then inserts the passed block with @content.
  2. Step 2: Check how .box includes the mixin

    The block inside @include card { ... } adds background-color: yellow; inside the mixin's content.
  3. Final Answer:

    .box { border: 1px solid black; padding: 1rem; background-color: yellow; } -> Option B
  4. Quick Check:

    Mixin + @content block = combined styles [OK]
Hint: Mixin styles + @content block styles combine inside selector [OK]
Common Mistakes:
  • Thinking @content styles appear outside the selector
  • Expecting separate CSS blocks for mixin and content
  • Assuming syntax error due to block usage
4. Identify the error in this Sass code using @content:
@mixin highlight {
background: yellow;
@content
}

.text {
@include highlight {
color: red;
}
}
medium
A. Missing semicolon after @content
B. Mixin name should be @content
C. Cannot use blocks with @include
D. Background property is invalid

Solution

  1. Step 1: Check syntax of @content inside mixin

    @content must end with a semicolon to be valid.
  2. Step 2: Verify other parts

    Mixin name and block usage are correct; background property is valid CSS.
  3. Final Answer:

    Missing semicolon after @content -> Option A
  4. Quick Check:

    @content requires semicolon [OK]
Hint: Always put semicolon after @content inside mixins [OK]
Common Mistakes:
  • Omitting semicolon after @content
  • Confusing mixin and content names
  • Thinking block usage with @include is invalid
5. You want to create a reusable button style mixin that allows custom hover styles using @content. Which Sass code correctly achieves this?
hard
A. @mixin button { padding: 1rem; border: none; @content; &:hover { @content; } }
B. @mixin button { padding: 1rem; border: none; @content; } .btn:hover { @content; }
C. @mixin button { padding: 1rem; border: none; } .btn { @include button; &:hover { @content; } }
D. @mixin button { padding: 1rem; border: none; @content; &:hover { @content; } } .btn { @include button { color: blue; &:hover { color: red; } } }

Solution

  1. Step 1: Understand the goal

    Create a mixin that sets base button styles and allows custom styles including hover via @content.
  2. Step 2: Analyze each option

    @mixin button { padding: 1rem; border: none; @content; &:hover { @content; } } .btn { @include button { color: blue; &:hover { color: red; } } } defines the mixin with @content inside and inside &:hover, then includes it with a block that passes normal and hover styles. This correctly applies custom hover styles.
  3. Step 3: Why others fail

    @mixin button { padding: 1rem; border: none; @content; &:hover { @content; } } tries to use @content twice in the mixin without passing blocks properly. @mixin button { padding: 1rem; border: none; @content; } .btn:hover { @content; } applies hover styles outside the mixin, losing reusability. @mixin button { padding: 1rem; border: none; } .btn { @include button; &:hover { @content; } } misuses @content outside mixin context.
  4. Final Answer:

    @mixin button { padding: 1rem; border: none; @content; &:hover { @content; } } .btn { @include button { color: blue; &:hover { color: red; } } } -> Option D
  5. Quick Check:

    Mixin with @content block for hover = @mixin button { padding: 1rem; border: none; @content; &:hover { @content; } } .btn { @include button { color: blue; &:hover { color: red; } } } [OK]
Hint: Pass hover styles inside @include block with nested &:hover [OK]
Common Mistakes:
  • Using @content outside mixin
  • Trying to call @content multiple times without blocks
  • Defining hover styles outside mixin losing flexibility
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