Bird
Raised Fist0
SASSmarkup~5 mins

@extend directive in SASS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the @extend directive do in Sass?

The @extend directive lets one CSS selector inherit the styles of another selector. It helps avoid repeating the same styles.

Click to reveal answer
beginner
How does @extend affect the compiled CSS output?

It combines selectors that share styles into one rule, reducing duplication and making CSS smaller and easier to maintain.

Click to reveal answer
intermediate
Can @extend be used with placeholder selectors? What are placeholders?

Yes. Placeholders start with % and are not output alone in CSS. They are meant to be extended by other selectors.

Click to reveal answer
intermediate
What happens if you @extend a selector inside a nested rule?

The extended styles are merged respecting the nesting, so the output CSS keeps the correct hierarchy and specificity.

Click to reveal answer
advanced
Why should you be careful when using @extend with very generic selectors?

Because it can cause unexpected style merging and large combined selectors, making CSS harder to debug and maintain.

Click to reveal answer
What symbol is used to define a placeholder selector in Sass?
A%
B@
C#
D$
What is the main benefit of using @extend in Sass?
ATo repeat styles multiple times
BTo create animations
CTo add JavaScript functionality
DTo combine selectors and avoid style duplication
If you @extend a selector inside a nested rule, what happens?
AIt causes a syntax error
BThe styles are ignored
CThe styles are merged respecting nesting
DIt duplicates the styles
Which of these is a risk when overusing @extend with generic selectors?
AUnexpected style merging and complex selectors
BCSS file size increases
CJavaScript errors
DHTML validation errors
Can @extend be used to inherit styles from multiple selectors at once?
AOnly with placeholders
BYes, by listing selectors separated by commas
CNo, only one selector at a time
DOnly inside media queries
Explain how the @extend directive works in Sass and why it is useful.
Think about how sharing styles can save writing the same CSS again.
You got /4 concepts.
    Describe potential problems when using @extend with very generic selectors and how to avoid them.
    Consider what happens if many selectors get combined unexpectedly.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the @extend directive do in Sass?
      easy
      A. It defines a variable.
      B. It creates a new CSS property.
      C. It imports external CSS files.
      D. It allows one selector to reuse styles from another selector.

      Solution

      1. Step 1: Understand the purpose of @extend

        The @extend directive is used to share styles between selectors in Sass.
      2. Step 2: Identify what @extend does

        It copies the styles of one selector into another, reducing repetition.
      3. Final Answer:

        It allows one selector to reuse styles from another selector. -> Option D
      4. Quick Check:

        @extend = reuse styles [OK]
      Hint: Remember: @extend shares styles between selectors [OK]
      Common Mistakes:
      • Thinking @extend creates new properties
      • Confusing @extend with imports
      • Using @extend to define variables
      2. Which of the following is the correct syntax to extend styles from .button to .submit in Sass?
      easy
      A. .submit { @extend .button; }
      B. .submit { extend(@button); }
      C. .submit { @extend .button(); }
      D. .submit { @extend '#button'; }

      Solution

      1. Step 1: Recall correct @extend syntax

        The correct syntax is @extend followed by the selector name without quotes or parentheses.
      2. Step 2: Check each option

        .submit { @extend .button; } uses @extend .button; which is correct. Others use wrong syntax like parentheses or quotes.
      3. Final Answer:

        .submit { @extend .button; } -> Option A
      4. Quick Check:

        Correct syntax = @extend .selector; [OK]
      Hint: Use @extend followed by selector without quotes or parentheses [OK]
      Common Mistakes:
      • Adding parentheses after selector
      • Using quotes around selector
      • Using wrong function-like syntax
      3. Given this Sass code:
      .alert { color: red; font-weight: bold; }
      .error { @extend .alert; }

      What CSS will be generated?
      medium
      A. .alert { color: red; font-weight: bold; } .error { color: red; font-weight: bold; }
      B. .alert, .error { color: red; font-weight: bold; }
      C. .error { color: red; font-weight: bold; }
      D. .alert { color: red; } .error { font-weight: bold; }

      Solution

      1. Step 1: Understand @extend output

        @extend merges selectors so they share the same style block.
      2. Step 2: Apply to given code

        Both .alert and .error share the same styles in one combined selector.
      3. Final Answer:

        .alert, .error { color: red; font-weight: bold; } -> Option B
      4. Quick Check:

        Selectors combined with @extend [OK]
      Hint: Remember: @extend combines selectors sharing styles [OK]
      Common Mistakes:
      • Expecting duplicated style blocks
      • Thinking styles copy separately
      • Splitting properties between selectors
      4. What is wrong with this Sass code?
      .card { border: 1px solid black; }
      .panel { @extend card; }
      medium
      A. Missing dot before card in @extend selector.
      B. Cannot use @extend inside .panel.
      C. Border property is invalid.
      D. No styles defined in .panel.

      Solution

      1. Step 1: Check @extend selector syntax

        The selector to extend must include the dot for class selectors.
      2. Step 2: Identify error in code

        @extend card; misses the dot, should be @extend .card;.
      3. Final Answer:

        Missing dot before card in @extend selector. -> Option A
      4. Quick Check:

        Class selectors need dot in @extend [OK]
      Hint: Always include dot for class names in @extend [OK]
      Common Mistakes:
      • Omitting dot before class name
      • Thinking @extend can't be used inside rules
      • Confusing property errors with selector errors
      5. You want to create a .warning style that shares all styles from .alert but also adds background-color: yellow;. Which Sass code correctly does this?
      hard
      A. .warning { @extend alert; background-color: yellow; }
      B. .warning { background-color: yellow; @extend .alert(); }
      C. .warning { @extend .alert; background-color: yellow; }
      D. .warning { @extend .alert background-color: yellow; }

      Solution

      1. Step 1: Understand @extend usage with additional styles

        You can use @extend inside a selector and add other properties after it.
      2. Step 2: Check each option

        .warning { @extend .alert; background-color: yellow; } correctly uses @extend .alert; then adds background-color in the same block. Others have syntax errors: parentheses after selector, missing dot before alert, or missing semicolon.
      3. Final Answer:

        .warning { @extend .alert; background-color: yellow; } -> Option C
      4. Quick Check:

        @extend plus extra styles in same block [OK]
      Hint: Put @extend first, then add extra styles in same block [OK]
      Common Mistakes:
      • Adding parentheses after selector
      • Omitting dot before class name in @extend
      • Missing semicolon after @extend
      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