Bird
Raised Fist0
SASSmarkup~5 mins

@else and @else if branches in SASS

Choose your learning style10 modes available
Introduction

Use @else and @else if to make decisions in your styles. They help you choose different styles based on conditions.

When you want to apply different colors based on a theme variable.
When you need to change layout styles depending on screen size or device type.
When you want to style buttons differently based on their state (like primary, secondary).
When you want to avoid repeating code by grouping related style choices.
When you want to make your styles easier to read and maintain by handling multiple conditions.
Syntax
SASS
@if condition {
  // styles here
} @else if another-condition {
  // other styles here
} @else {
  // fallback styles here
}

The @if block checks the first condition.

The @else if block checks another condition if the first is false.

The @else block runs if all previous conditions are false.

Examples
Sets background white if theme is light, otherwise black.
SASS
@if $theme == light {
  background: white;
} @else {
  background: black;
}
Chooses font size based on size variable with a fallback.
SASS
@if $size == small {
  font-size: 1rem;
} @else if $size == medium {
  font-size: 1.5rem;
} @else {
  font-size: 2rem;
}
Sample Program

This code styles a button differently based on the $theme variable. It uses @if, @else if, and @else to pick the right colors.

SASS
@use 'sass:color';

$theme: dark;

.button {
  @if $theme == light {
    background-color: white;
    color: black;
  } @else if $theme == dark {
    background-color: black;
    color: white;
  } @else {
    background-color: gray;
    color: black;
  }
  padding: 1rem 2rem;
  border-radius: 0.5rem;
  font-weight: bold;
}
OutputSuccess
Important Notes

Only one block runs: the first true condition's block.

You can have many @else if branches to check multiple conditions.

Always include an @else for a safe fallback style.

Summary

@else if lets you check more conditions after the first @if.

@else runs if no other conditions are true.

Use these to write clear, organized style rules that change based on variables.

Practice

(1/5)
1. What does the @else if branch do in Sass?
easy
A. Runs only if all previous conditions were true
B. Repeats the first @if condition
C. Ends the conditional statement immediately
D. Checks another condition if the previous @if was false

Solution

  1. Step 1: Understand @if and @else if roles

    The @if checks the first condition. If false, @else if checks another condition.
  2. Step 2: Identify @else if behavior

    @else if only runs if the previous @if or @else if was false, allowing multiple checks.
  3. Final Answer:

    Checks another condition if the previous @if was false -> Option D
  4. Quick Check:

    @else if = checks next condition [OK]
Hint: Remember: @else if checks next condition only if previous fails [OK]
Common Mistakes:
  • Thinking @else if runs when previous is true
  • Confusing @else if with @else
  • Believing @else if ends the condition chain
2. Which of the following is the correct syntax for using @else if in Sass?
easy
A. @elseif $color == red { color: red; }
B. @else if $color == red { color: red; }
C. @else if ($color == red) { color: red; }
D. @else if $color = red { color: red; }

Solution

  1. Step 1: Recall correct @else if syntax

    In Sass, @else if is written as two words without parentheses around the condition.
  2. Step 2: Check each option

    @else if $color == red { color: red; } uses correct syntax: @else if $color == red { ... }. @elseif $color == red { color: red; } misses space. @else if ($color == red) { color: red; } uses parentheses which Sass does not require. @else if $color = red { color: red; } uses single equals which is assignment, not comparison.
  3. Final Answer:

    @else if $color == red { color: red; } -> Option B
  4. Quick Check:

    Correct @else if syntax = @else if $color == red { color: red; } [OK]
Hint: Use space and double equals, no parentheses for @else if [OK]
Common Mistakes:
  • Writing @elseif as one word
  • Using parentheses around condition
  • Using single equals instead of double equals
3. What color will be applied by this Sass code?
$color: blue;

@if $color == red {
  background: red;
} @else if $color == green {
  background: green;
} @else {
  background: black;
}
medium
A. black
B. green
C. blue
D. red

Solution

  1. Step 1: Check the value of $color

    The variable $color is set to blue.
  2. Step 2: Evaluate conditions in order

    First @if checks if $color == red (false). Then @else if checks if $color == green (false). Since both are false, @else runs, setting background to black.
  3. Final Answer:

    black -> Option A
  4. Quick Check:

    None matched, so @else runs = black [OK]
Hint: If no @if or @else if matches, @else runs [OK]
Common Mistakes:
  • Assuming @else if runs when condition is false
  • Thinking @else is optional and skipped
  • Confusing variable value with condition
4. Identify the error in this Sass code snippet:
@if $size == large {
  font-size: 2rem;
} @else if $size = medium {
  font-size: 1.5rem;
} @else {
  font-size: 1rem;
}
medium
A. Incorrect use of curly braces in @else
B. Missing semicolon after @if condition
C. Using single equals (=) instead of double equals (==) in @else if
D. Variable $size is not declared

Solution

  1. Step 1: Check condition operators

    In Sass, conditions use double equals == to compare values, not single equals = which assigns values.
  2. Step 2: Locate the error

    The @else if line uses $size = medium which is assignment, causing a syntax error.
  3. Final Answer:

    Using single equals (=) instead of double equals (==) in @else if -> Option C
  4. Quick Check:

    Comparison needs ==, not = [OK]
Hint: Use == for comparisons, = is for assignments [OK]
Common Mistakes:
  • Using = instead of ==
  • Forgetting to declare variables
  • Misplacing curly braces
5. Given this Sass code, what will be the background color if $theme is set to null?
$theme: null;

@if $theme == light {
  background: white;
} @else if $theme == dark {
  background: black;
} @else {
  background: gray;
}
hard
A. gray
B. black
C. white
D. null

Solution

  1. Step 1: Understand null in Sass conditions

    null is a special value that does not equal strings like light or dark.
  2. Step 2: Evaluate conditions with $theme = null

    Both @if $theme == light and @else if $theme == dark are false. So, @else runs, setting background to gray.
  3. Final Answer:

    gray -> Option A
  4. Quick Check:

    null matches no condition, so @else runs [OK]
Hint: null never equals strings; @else handles it [OK]
Common Mistakes:
  • Assuming null equals a string
  • Forgetting @else runs when no conditions match
  • Expecting null to output literally
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