0
0
SASSmarkup~20 mins

@each loop over maps in SASS - Practice Problems & Coding Challenges

Choose your learning style9 modes available
Challenge - 5 Problems
🎖️
Sass @each Map Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
📝 Syntax
intermediate
2:00remaining
What is the output CSS of this Sass code using @each over a map?
Given the Sass code below, what CSS will it generate?
$colors: (primary: #333, secondary: #666); @each $name, $color in $colors { .#{$name} { color: $color; } }
SASS
$colors: (primary: #333, secondary: #666);
@each $name, $color in $colors {
  .#{$name} {
    color: $color;
  }
}
A
.primary { color: #666; }
.secondary { color: #333; }
B
.primary { color: #333; }
.secondary { color: #666; }
C
.primary { color: #666; }
.secondary { color: #666; }
D
.primary { color: #333; }
.secondary { color: #333; }
Attempts:
2 left
💡 Hint
Remember that @each loops over each key-value pair in the map.
rendering
intermediate
1:30remaining
What color will the .alert-warning class have after this Sass code compiles?
Consider this Sass code:
$alerts: (success: green, warning: yellow, error: red);
@each $type, $color in $alerts {
  .alert-#{$type} {
    background-color: $color;
  }
}

What background color will the .alert-warning class have in the compiled CSS?
SASS
$alerts: (success: green, warning: yellow, error: red);
@each $type, $color in $alerts {
  .alert-#{$type} {
    background-color: $color;
  }
}
Ared
Bblue
Cyellow
Dgreen
Attempts:
2 left
💡 Hint
Look at the key 'warning' in the map and its value.
selector
advanced
2:00remaining
Which option correctly selects keys and values from a Sass map in an @each loop?
You want to loop over a Sass map $themes: (dark: #000, light: #fff); and create classes for each theme. Which @each syntax correctly assigns the key to $theme and the value to $color?
SASS
$themes: (dark: #000, light: #fff);
A@each $theme, $color in $themes { .#{$theme} { background: $color; } }
B@each $theme in $themes { .#{$theme} { background: map-get($themes, $theme); } }
C@each $color, $theme in $themes { .#{$theme} { background: $color; } }
D@each $color in $themes { .#{$color} { background: $color; } }
Attempts:
2 left
💡 Hint
Remember the order is key, then value in @each loops over maps.
layout
advanced
2:30remaining
What is the visual result of this Sass code using @each over a map for button colors?
Given this Sass code:
$btn-colors: (primary: blue, danger: red);
@each $name, $color in $btn-colors {
  .btn-#{$name} {
    background-color: $color;
    color: white;
    padding: 1rem 2rem;
    border-radius: 0.5rem;
  }
}

What will you see in the browser when you use <button class="btn-primary">Primary</button> and <button class="btn-danger">Danger</button>?
SASS
$btn-colors: (primary: blue, danger: red);
@each $name, $color in $btn-colors {
  .btn-#{$name} {
    background-color: $color;
    color: white;
    padding: 1rem 2rem;
    border-radius: 0.5rem;
  }
}
ATwo buttons: one blue background with white text labeled 'Primary', one red background with white text labeled 'Danger', both with rounded corners and padding.
BTwo buttons: both with white background and black text, no padding or rounding.
CTwo buttons: one red background with black text labeled 'Primary', one blue background with black text labeled 'Danger'.
DNo buttons styled; default browser button styles appear.
Attempts:
2 left
💡 Hint
Look at the background-color and color properties inside the loop.
accessibility
expert
3:00remaining
How can you use @each over a map in Sass to generate accessible focus styles for multiple button types?
You have a map of button types and their focus outline colors:
$focus-colors: (primary: #005fcc, danger: #cc0000, success: #008000);

Which Sass code snippet correctly uses @each to generate focus styles with outline and outline-offset for accessibility?
SASS
$focus-colors: (primary: #005fcc, danger: #cc0000, success: #008000);
A
@each $type in $focus-colors {
  .btn-#{$type}:focus {
    outline: 3px solid map-get($focus-colors, $type);
    outline-offset: 2px;
  }
}
B
@each $color in $focus-colors {
  .btn-#{$color}:focus {
    outline: 3px solid $color;
    outline-offset: 2px;
  }
}
C
@each $color, $type in $focus-colors {
  .btn-#{$type}:focus {
    outline: 3px solid $color;
    outline-offset: 2px;
  }
}
D
@each $type, $color in $focus-colors {
  .btn-#{$type}:focus {
    outline: 3px solid $color;
    outline-offset: 2px;
  }
}
Attempts:
2 left
💡 Hint
Remember the order of variables in @each when looping over maps.