Bird
Raised Fist0
SASSmarkup~5 mins

Why extending reduces duplication in SASS - Quick Recap

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. This means you write styles once and reuse them, avoiding repetition.

Click to reveal answer
intermediate
How does @extend help reduce CSS file size?

By sharing styles between selectors, @extend combines selectors in the output CSS. This reduces repeated style blocks, making the file smaller and cleaner.

Click to reveal answer
beginner
Why is reducing duplication important in CSS?

Less duplication means easier maintenance, faster loading times, and fewer mistakes. When styles are written once and reused, updates are simpler and consistent.

Click to reveal answer
beginner
What is a real-life example of using @extend?

Imagine you have a button style. Instead of rewriting the same styles for a special button, you @extend the base button style and add only the differences.

Click to reveal answer
advanced
Can @extend cause any issues if used carelessly?

Yes. Extending too many selectors or extending complex selectors can create large combined selectors, which might be hard to debug or cause unexpected style clashes.

Click to reveal answer
What is the main benefit of using @extend in Sass?
AIt converts Sass to JavaScript
BIt creates new CSS properties
CIt deletes unused CSS selectors
DIt reuses styles to reduce duplication
How does @extend affect the generated CSS selectors?
AIt merges selectors that share styles
BIt duplicates selectors with same styles
CIt removes all selectors except one
DIt changes selectors to IDs
Which of these is a risk of overusing @extend?
ACreating very long combined selectors
BIncreasing CSS file size
CBreaking JavaScript code
DDisabling browser caching
Why is reducing duplication in CSS helpful?
AIncreases the number of CSS files
BMakes CSS harder to read
CMakes styles easier to maintain and faster to load
DPrevents using variables
Which Sass feature is best for sharing styles without copying code?
A@import
B@extend
C@function
D@mixin
Explain in your own words how @extend helps reduce duplication in Sass.
Think about writing styles once and using them many times.
You got /4 concepts.
    Describe a simple example where using @extend is better than copying styles.
    Imagine you have a normal button and a special button with mostly same styles.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main benefit of using @extend in Sass?
      easy
      A. It reduces repeated CSS by sharing styles between selectors.
      B. It adds new colors to your stylesheet automatically.
      C. It compiles Sass into JavaScript code.
      D. It creates animations without keyframes.

      Solution

      1. Step 1: Understand the purpose of @extend

        @extend allows one selector to inherit styles from another, avoiding repetition.

      2. Step 2: Identify the benefit

        This sharing reduces duplicated CSS rules, making code cleaner and smaller.

      3. Final Answer:

        It reduces repeated CSS by sharing styles between selectors. -> Option A
      4. Quick Check:

        Extending reduces duplication = B [OK]
      Hint: Remember: @extend shares styles to avoid repeats [OK]
      Common Mistakes:
      • Thinking @extend adds new styles instead of sharing
      • Confusing @extend with mixins
      • Believing @extend compiles to JavaScript
      2. Which of the following is the correct syntax to extend a placeholder selector %button-base in Sass?
      easy
      A. .btn {@extends %button-base;}
      B. .btn {@extend %button-base;}
      C. .btn {extend %button-base;}
      D. .btn {use %button-base;}

      Solution

      1. Step 1: Recall correct @extend syntax

        The correct keyword is @extend with an '@' symbol and a semicolon inside the block.

      2. Step 2: Match syntax with options

        .btn {@extend %button-base;} uses @extend %button-base; correctly inside the selector block.

      3. Final Answer:

        .btn {@extend %button-base;} -> Option B
      4. Quick Check:

        Correct @extend syntax = C [OK]
      Hint: Look for '@extend' with '@' and semicolon inside braces [OK]
      Common Mistakes:
      • Missing '@' symbol before extend
      • Using 'extends' instead of 'extend'
      • Omitting semicolon after extend statement
      3. Given the Sass code:
      %base { color: blue; font-weight: bold; }
      .title {@extend %base; font-size: 2rem;}
      .subtitle {@extend %base; font-size: 1.5rem;}

      What CSS will be generated?
      medium
      A. .title, .subtitle { color: blue; font-weight: bold; } .title { font-size: 2rem; } .subtitle { font-size: 1.5rem; }
      B. .title { color: blue; font-weight: bold; font-size: 2rem; } .subtitle { color: blue; font-weight: bold; font-size: 1.5rem; }
      C. %base { color: blue; font-weight: bold; } .title { font-size: 2rem; } .subtitle { font-size: 1.5rem; }
      D. .title { font-size: 2rem; } .subtitle { font-size: 1.5rem; }

      Solution

      1. Step 1: Understand @extend behavior

        Extending a placeholder merges selectors sharing the same styles into one CSS rule.

      2. Step 2: Analyze generated CSS

        Both .title and .subtitle share color: blue and font-weight: bold in a combined selector. Their font sizes remain separate.

      3. Final Answer:

        .title, .subtitle { color: blue; font-weight: bold; } .title { font-size: 2rem; } .subtitle { font-size: 1.5rem; } -> Option A
      4. Quick Check:

        Shared styles combined, unique styles separate = A [OK]
      Hint: Shared styles combine selectors; unique styles stay separate [OK]
      Common Mistakes:
      • Expecting duplicated shared styles for each selector
      • Thinking placeholder selectors appear in CSS
      • Confusing @extend with mixins copying styles
      4. Identify the error in this Sass code:
      %card { padding: 1rem; border: 1px solid #ccc; }
      .panel { @extend card; background: white; }
      medium
      A. Padding value must be in pixels, not rem.
      B. Cannot extend placeholder selectors.
      C. Background property is invalid inside .panel.
      D. Missing '%' before 'card' in the extend statement.

      Solution

      1. Step 1: Check @extend syntax

        The placeholder selector %card must be referenced with the '%' in the extend statement.

      2. Step 2: Identify the error

        The code uses @extend card; missing the '%', causing a syntax error.

      3. Final Answer:

        Missing '%' before 'card' in the extend statement. -> Option D
      4. Quick Check:

        Extend placeholder needs '%' = D [OK]
      Hint: Always include '%' when extending placeholders [OK]
      Common Mistakes:
      • Forgetting '%' in extend target
      • Thinking placeholders can't be extended
      • Misunderstanding property units
      5. You have multiple button styles sharing common properties. How does using @extend with a placeholder selector help maintain your Sass code better compared to copying styles into each button class?
      hard
      A. It automatically generates JavaScript to handle button clicks.
      B. It duplicates all styles for each button, increasing CSS size but improving clarity.
      C. It creates one combined CSS rule for shared styles, reducing file size and easing updates.
      D. It prevents any styles from being applied until manually enabled.

      Solution

      1. Step 1: Understand style duplication problem

        Copying shared styles into each button class repeats code, making updates tedious and CSS larger.

      2. Step 2: Explain @extend advantage

        Using @extend with a placeholder merges shared styles into one CSS rule, reducing duplication and file size.

      3. Step 3: Benefits for maintenance

        Updating shared styles in one place updates all buttons, making code easier to maintain.

      4. Final Answer:

        It creates one combined CSS rule for shared styles, reducing file size and easing updates. -> Option C
      5. Quick Check:

        Extending merges shared styles = A [OK]
      Hint: Extend placeholders to combine shared styles and simplify updates [OK]
      Common Mistakes:
      • Thinking extend duplicates styles instead of merging
      • Confusing extend with JavaScript generation
      • Believing styles are disabled until enabled
      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