Bird
Raised Fist0
SASSmarkup~5 mins

@each loop over maps in SASS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is the purpose of the @each loop in Sass when used with maps?
The @each loop in Sass lets you go through each key-value pair in a map, so you can use those values to create styles dynamically.
Click to reveal answer
beginner
How do you access the key and value inside an @each loop over a Sass map?
You write @each $key, $value in $map. This sets $key to the map's key and $value to its value for each loop cycle.
Click to reveal answer
intermediate
Example: What does this Sass code do?
@each $color, $hex in $colors {
  .text-#{$color} {
    color: $hex;
  }
}
It creates CSS classes like .text-red or .text-blue with the text color set to the corresponding hex value from the $colors map.
Click to reveal answer
intermediate
Can you use @each to loop over just the keys or just the values of a Sass map?
Yes! You can loop over just keys by using map-keys($map) or just values with map-values($map) inside the @each loop.
Click to reveal answer
beginner
Why is using @each loop over maps helpful in real web design?
It helps keep your styles organized and easy to update. For example, changing a color in one place updates all related styles automatically.
Click to reveal answer
What does @each $key, $value in $map do in Sass?
AConverts the map to a list
BLoops through each key-value pair in the map
CDeletes all keys in the map
DCreates a new map
How do you write a loop to get only the keys from a Sass map?
A@each $key in map-keys($map)
B@each $key in map-values($map)
C@each $value in $map
D@each $key, $value in $map
What will this Sass code generate?
$colors: (red: #f00, blue: #00f);
@each $name, $hex in $colors {
  .bg-#{$name} {
    background-color: $hex;
  }
}
AAn error because maps can't be looped
BCSS classes .red and .blue with text colors
CNothing, it's invalid syntax
DCSS classes .bg-red and .bg-blue with background colors
Which Sass function returns all values from a map?
Amap-values()
Bmap-keys()
Cmap-get()
Dmap-remove()
Why is looping over maps with @each useful?
AIt slows down the CSS rendering
BIt deletes unused styles automatically
CIt helps create repetitive styles easily and keeps code DRY
DIt converts CSS to JavaScript
Explain how to use the @each loop to create CSS classes from a Sass map of colors.
Think about how to turn map keys into class names and values into style values.
You got /4 concepts.
    Describe the difference between looping over a map directly and looping over map-keys or map-values in Sass.
    Consider what you want to access inside the loop.
    You got /4 concepts.

      Practice

      (1/5)
      1. What does the @each loop do when used with a map in Sass?
      easy
      A. It creates a new map from the keys only.
      B. It deletes all map entries after looping.
      C. It repeats styles for each key-value pair in the map.
      D. It converts the map into a list.

      Solution

      1. Step 1: Understand the purpose of @each with maps

        The @each loop iterates over each key-value pair in a map.
      2. Step 2: Identify what happens during iteration

        For each pair, it repeats the block of styles or code inside the loop.
      3. Final Answer:

        It repeats styles for each key-value pair in the map. -> Option C
      4. Quick Check:

        @each loops over map pairs = repeats styles [OK]
      Hint: Remember: @each repeats code for each map pair [OK]
      Common Mistakes:
      • Thinking @each deletes map entries
      • Confusing map keys with list items
      • Assuming it converts maps to lists
      2. Which of the following is the correct syntax to loop over a map $colors with @each in Sass?
      easy
      A. @each $key $value in $colors { ... }
      B. @each $colors in $key, $value { ... }
      C. @each $value, $key in $colors { ... }
      D. @each $key, $value in $colors { ... }

      Solution

      1. Step 1: Recall the correct @each syntax for maps

        The syntax requires two variables separated by a comma, then in, then the map name.
      2. Step 2: Match the syntax to the options

        @each $key, $value in $colors { ... } correctly uses @each $key, $value in $colors. Others have wrong order or missing comma.
      3. Final Answer:

        @each $key, $value in $colors { ... } -> Option D
      4. Quick Check:

        Two variables separated by comma + in + map name [OK]
      Hint: Use comma between key and value, then 'in' before map [OK]
      Common Mistakes:
      • Swapping key and value order
      • Missing comma between variables
      • Using wrong variable order or syntax
      3. Given the Sass map and code:
      $themes: (light: #fff, dark: #000); @each $name, $color in $themes { .#{$name}-theme { background: $color; } }
      What CSS will this generate?
      medium
      A. .light-theme { background: #fff; } .dark-theme { background: #000; }
      B. .light { background: #fff; } .dark { background: #000; }
      C. .theme-light { background: #fff; } .theme-dark { background: #000; }
      D. .light-theme { background: light; } .dark-theme { background: dark; }

      Solution

      1. Step 1: Understand the map and loop variables

        The map has keys light and dark with colors #fff and #000.
      2. Step 2: Analyze the generated CSS selectors and properties

        The selector uses interpolation .#{$name}-theme producing .light-theme and .dark-theme. The background uses the color value.
      3. Final Answer:

        .light-theme { background: #fff; } .dark-theme { background: #000; } -> Option A
      4. Quick Check:

        Interpolation creates .light-theme and .dark-theme with correct colors [OK]
      Hint: Interpolation with #{} creates dynamic class names [OK]
      Common Mistakes:
      • Forgetting interpolation syntax
      • Using keys as colors instead of values
      • Mixing up class name order
      4. Identify the error in this Sass code:
      $sizes: (small: 1rem, medium: 2rem); @each $size in $sizes { .btn-#{$size} { font-size: $size; } }
      medium
      A. Missing comma between key and value in @each loop.
      B. Using only one variable for a map instead of two.
      C. Incorrect interpolation syntax in class name.
      D. Map keys and values are reversed.

      Solution

      1. Step 1: Check the @each loop variables

        The map has key-value pairs, so the loop needs two variables separated by a comma.
      2. Step 2: Identify the problem with one variable

        The code uses only $size instead of $key, $value, so it cannot access both parts of the map.
      3. Final Answer:

        Using only one variable for a map instead of two. -> Option B
      4. Quick Check:

        Maps need two variables in @each loops [OK]
      Hint: Use two variables for maps in @each loops [OK]
      Common Mistakes:
      • Using one variable for map iteration
      • Forgetting comma between variables
      • Misusing interpolation syntax
      5. You have a Sass map:
      $shadows: (none: 0 0 0 transparent, light: 0 1px 3px rgba(0,0,0,0.12), heavy: 0 4px 6px rgba(0,0,0,0.3));

      Write a @each loop that creates classes .shadow-none, .shadow-light, and .shadow-heavy with the correct box-shadow property. Which code snippet is correct?
      hard
      A. @each $name, $shadow in $shadows { .shadow-#{$name} { box-shadow: $shadow; } }
      B. @each $shadow, $name in $shadows { .shadow-#{$name} { box-shadow: $shadow; } }
      C. @each $name in $shadows { .shadow-#{$name} { box-shadow: $name; } }
      D. @each $name, $shadow in $shadows { .shadow-#{$shadow} { box-shadow: $name; } }

      Solution

      1. Step 1: Identify correct variable order for map iteration

        Maps use @each $key, $value in $map, so $name is key and $shadow is value.
      2. Step 2: Check class name and property usage

        The class uses interpolation with the key $name, and the property uses the value $shadow.
      3. Final Answer:

        @each $name, $shadow in $shadows { .shadow-#{$name} { box-shadow: $shadow; } } -> Option A
      4. Quick Check:

        Key first, value second, use interpolation for class [OK]
      Hint: Map loops: key first, value second, interpolate key for class [OK]
      Common Mistakes:
      • Swapping key and value variables
      • Using only one variable for map
      • Interpolating value instead of key in class name
      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