Challenge - 5 Problems
Sass Maps Master
Get all challenges correct to earn this badge!
Test your skills under time pressure!
🧠 Conceptual
intermediate2:00remaining
Understanding Sass Maps for Grouped Values
What is the output of the following Sass code when compiled to CSS?
$colors: (primary: #ff0000, secondary: #00ff00, tertiary: #0000ff);
.button {
color: map-get($colors, primary);
}SASS
$colors: (primary: #ff0000, secondary: #00ff00, tertiary: #0000ff); .button { color: map-get($colors, primary); }
Attempts:
2 left
💡 Hint
Remember that map-get retrieves the value for the given key in a Sass map.
✗ Incorrect
The map-get function returns the value associated with the key 'primary' in the $colors map, which is #ff0000. This value is then used as the color property in the compiled CSS.
📝 Syntax
intermediate2:00remaining
Correct Syntax for Nested Sass Maps
Which option correctly defines a nested Sass map for grouped color values?
Attempts:
2 left
💡 Hint
Sass maps use parentheses and colons for key-value pairs, not arrows or square brackets.
✗ Incorrect
Option A correctly uses parentheses and colons to define nested maps. Options A, C, and D use invalid syntax for Sass maps.
❓ rendering
advanced2:30remaining
Rendering CSS from Nested Sass Maps
Given the Sass map below, what is the compiled CSS output?
$themes: (
light: (background: #fff, text: #000),
dark: (background: #000, text: #fff)
);
body.light-theme {
background-color: map-get(map-get($themes, light), background);
color: map-get(map-get($themes, light), text);
}
body.dark-theme {
background-color: map-get(map-get($themes, dark), background);
color: map-get(map-get($themes, dark), text);
}SASS
$themes: ( light: (background: #fff, text: #000), dark: (background: #000, text: #fff) ); body.light-theme { background-color: map-get(map-get($themes, light), background); color: map-get(map-get($themes, light), text); } body.dark-theme { background-color: map-get(map-get($themes, dark), background); color: map-get(map-get($themes, dark), text); }
Attempts:
2 left
💡 Hint
Nested map-get calls retrieve inner map values by keys.
✗ Incorrect
The outer map-get gets the nested map for 'light' or 'dark'. The inner map-get retrieves the 'background' or 'text' color from that nested map. This produces the correct color values in the CSS.
❓ selector
advanced2:30remaining
Using Sass Maps to Generate Multiple CSS Classes
What is the compiled CSS output of this Sass code?
$sizes: (small: 1rem, medium: 2rem, large: 3rem);
@each $name, $size in $sizes {
.font-#{$name} {
font-size: $size;
}
}SASS
$sizes: (small: 1rem, medium: 2rem, large: 3rem); @each $name, $size in $sizes { .font-#{$name} { font-size: $size; } }
Attempts:
2 left
💡 Hint
The @each loop iterates over map keys and values to create classes with interpolated names and sizes.
✗ Incorrect
The @each loop creates three classes: .font-small, .font-medium, and .font-large, each with the corresponding font-size from the map values.
❓ accessibility
expert3:00remaining
Using Sass Maps to Manage Accessible Color Themes
Consider this Sass map for color themes including contrast colors for accessibility:
$themes: (
light: (background: #ffffff, text: #000000, contrast: #ff0000),
dark: (background: #000000, text: #ffffff, contrast: #00ff00)
);
// Which CSS rule ensures the contrast color is used only for focus outlines to improve accessibility?
.focus-outline {
outline-color: map-get(map-get($themes, dark), contrast);
outline-style: solid;
outline-width: 2px;
outline-offset: 2px;
}SASS
$themes: ( light: (background: #ffffff, text: #000000, contrast: #ff0000), dark: (background: #000000, text: #ffffff, contrast: #00ff00) ); .focus-outline { outline-color: map-get(map-get($themes, dark), contrast); outline-style: solid; outline-width: 2px; outline-offset: 2px; }
Attempts:
2 left
💡 Hint
Focus outlines should appear only when an element is focused, not always or on hover.
✗ Incorrect
Using the :focus pseudo-class ensures the outline appears only when the element is focused, improving accessibility by helping keyboard users see focus states without distracting mouse users.