📖 Scenario: You are creating a simple card component for a website. The card has a block called card, and inside it, there is an element called title. You want to style the card and its title using Sass with BEM naming conventions.
🎯 Goal: Build Sass styles using the & symbol combined with BEM naming to style the card block and its title element.
📋 What You'll Learn
Create a Sass block selector named .card
Create a Sass variable called $title-color with the value #2a9d8f
Use the & symbol combined with BEM naming to style the .card__title element inside the .card block
Set the color of .card__title to the Sass variable $title-color
💡 Why This Matters
🌍 Real World
Using BEM naming with Sass nesting helps keep CSS organized and easy to maintain in real web projects.
💼 Career
Front-end developers often use Sass and BEM to write scalable and clean CSS for websites and apps.
Progress0 / 4 steps
1
Create the .card block selector
Create a Sass block selector called .card.
SASS
Hint
Use .card { } to start the block selector.
2
Add a Sass variable $title-color
Add a Sass variable called $title-color and set it to #2a9d8f.
SASS
Hint
Use $title-color: #2a9d8f; to create the variable.
3
Use & with BEM to style .card__title
Inside the .card block, use the & symbol combined with BEM naming to create the selector .card__title. Set its color property to the Sass variable $title-color.
SASS
Hint
Use &__title { color: $title-color; } inside .card.
4
Complete the Sass with proper structure
Make sure the Sass code has the .card block, the $title-color variable, and the nested &__title selector with the color set. The code should be valid Sass and ready to compile.
SASS
Hint
Place the variable at the top and the block with nested element below.
Practice
(1/5)
1. What does the & symbol represent when used in Sass with BEM naming?
easy
A. It resets all styles inside the block.
B. It creates a new CSS class unrelated to the parent.
C. It imports external CSS files.
D. It refers to the current parent selector in the nested block.
Solution
Step 1: Understand the role of & in Sass
The & symbol in Sass means "use the current parent selector" inside nested rules.
Step 2: Connect with BEM naming
When combined with BEM, &__element or &--modifier appends to the parent block's class name.
Final Answer:
It refers to the current parent selector in the nested block. -> Option D
Quick Check:
& = current parent selector [OK]
Hint: Remember & means "this block" in nested Sass [OK]
Common Mistakes:
Thinking & creates a new unrelated class
Confusing & with a CSS variable
Using & to import files
2. Which of the following Sass snippets correctly uses & to create a BEM modifier for a block named .card?
easy
A. &__active { background: green; }
B. .card--active { background: green; }
C. &--active { background: green; }
D. &-active { background: green; }
Solution
Step 1: Identify BEM modifier syntax
Modifiers use double dashes: --modifier, so &--active appends --active to the parent block.
Step 2: Check other options
.card--active { background: green; } repeats the full class, not using &. &__active { background: green; } uses __ which is for elements, not modifiers. &-active { background: green; } uses a single dash, which is incorrect for BEM modifiers.
Final Answer:
&--active { background: green; } -> Option C
Quick Check:
Modifier = &--modifier [OK]
Hint: Use &--modifier for modifiers inside blocks [OK]
Common Mistakes:
Using single dash instead of double dash for modifiers
Confusing elements (__element) with modifiers (--modifier)
Writing full class name instead of using &
3. Given the Sass code below, what CSS will it generate?
A. The modifier should use double dashes: &--active instead of &-active.
B. The element selector &__item is invalid and should be &-item.
C. The parent selector .menu is missing a dot.
D. The color property cannot be inside &__item.
Solution
Step 1: Check BEM modifier syntax
Modifiers in BEM use double dashes --, so &-active is incorrect; it should be &--active.
Step 2: Verify element syntax
&__item is correct for elements, so no error there.
Final Answer:
The modifier should use double dashes: &--active instead of &-active. -> Option A
Quick Check:
Modifier syntax = &--modifier [OK]
Hint: Modifiers always use double dashes -- not single [OK]
Common Mistakes:
Using single dash for modifiers
Confusing element and modifier syntax
Thinking &__item is invalid
5. You want to style a BEM block .profile with an element avatar and a modifier highlighted. Which Sass code correctly combines & with BEM naming to style both the element and modifier inside .profile?