Breakpoint variables and maps help you manage screen sizes easily. They let you change styles for different devices without repeating numbers.
Breakpoint variables and maps in SASS
$breakpoints: ( small: 480px, medium: 768px, large: 1024px ); @media (min-width: map-get($breakpoints, medium)) { // styles here }
Use $breakpoints as a map to store screen sizes with names.
Use map-get() to get the value for a specific breakpoint.
$breakpoints: ( mobile: 320px, tablet: 768px, desktop: 1024px );
@media (min-width: map-get($breakpoints, tablet)) { body { background-color: lightblue; } }
$small: 480px; $medium: 768px; $large: 1024px;
This code sets a white background and normal font size by default. When the screen is at least 768px wide (medium breakpoint), the background changes to light gray and font size grows. At 1024px or wider (large breakpoint), the background becomes light green and font size grows more.
@use "sass:map"; $breakpoints: ( small: 480px, medium: 768px, large: 1024px ); body { background-color: white; font-size: 1rem; } @media (min-width: map.get($breakpoints, medium)) { body { background-color: lightgray; font-size: 1.2rem; } } @media (min-width: map.get($breakpoints, large)) { body { background-color: lightgreen; font-size: 1.4rem; } }
Use maps to keep your breakpoints organized and easy to update.
Always use semantic names like small, medium, large instead of numbers everywhere.
Remember to import sass:map module to use map.get() in Dart Sass.
Breakpoint variables and maps help manage responsive screen sizes clearly.
Use maps with map-get() to access breakpoint values.
This makes your CSS easier to maintain and update for different devices.
Practice
Solution
Step 1: Understand the role of breakpoints
Breakpoints define screen sizes where styles change for responsiveness.Step 2: Recognize how variables and maps help
Using variables and maps organizes these breakpoints for easy updates and clarity.Final Answer:
To manage responsive screen sizes clearly and easily -> Option AQuick Check:
Breakpoint variables and maps = Manage screen sizes [OK]
- Thinking breakpoints add colors or animations
- Confusing Sass with JavaScript functionality
- Believing maps are for styling text
Solution
Step 1: Recall Sass map syntax
Sass maps use parentheses with key: value pairs separated by commas.Step 2: Check each option
$breakpoints: (small: 480px, medium: 768px, large: 1024px); uses correct syntax with $variable: (key: value, ...); others use invalid symbols or brackets.Final Answer:
$breakpoints: (small: 480px, medium: 768px, large: 1024px); -> Option BQuick Check:
Sass map syntax = parentheses and colons [OK]
- Using = instead of : for variable assignment
- Using square brackets instead of parentheses
- Using => instead of : inside maps
$breakpoints: (mobile: 480px, tablet: 768px, desktop: 1024px);
.container {
@media (min-width: map-get($breakpoints, tablet)) {
width: 80%;
}
}What will be the minimum screen width for the media query?
Solution
Step 1: Identify the map key used
The media query uses map-get($breakpoints, tablet), so it looks for 'tablet' key.Step 2: Find the value for 'tablet'
In the map, 'tablet' corresponds to 768px.Final Answer:
768px -> Option AQuick Check:
map-get($breakpoints, tablet) = 768px [OK]
- Confusing keys and values in the map
- Assuming default pixel values instead of map values
- Mixing up 'mobile' and 'tablet' keys
$breakpoints: (small: 480px, medium: 768px);
@media (min-width: map-get($breakpoints, large)) {
.box { width: 100%; }
}Solution
Step 1: Check keys in the $breakpoints map
The map only has 'small' and 'medium' keys, no 'large'.Step 2: Understand map-get behavior
Using map-get with a missing key returns null, causing invalid media query.Final Answer:
The key 'large' does not exist in the $breakpoints map -> Option DQuick Check:
Missing map key causes error [OK]
- Assuming map-get works with any key
- Ignoring missing keys causing errors
- Thinking media query syntax is wrong
$breakpoints: (sm: 480px, md: 768px, lg: 1024px);
Which is the correct way to update the map and use it in a media query for 'xl'?
Solution
Step 1: Understand how to add to existing map
Use map-merge to add new key-value pairs without overwriting the whole map.Step 2: Check each option
append() is invalid for maps; reassigning only 'xl' overwrites and loses prior keys; missing comma between 'lg' and 'xl' causes syntax error; map-merge correctly adds 'xl' to the existing map.Final Answer:
$breakpoints: map-merge($breakpoints, (xl: 1280px)); @media (min-width: map-get($breakpoints, xl)) { .content { padding: 2rem; } } -> Option CQuick Check:
Use map-merge to add keys safely [OK]
- Overwriting the whole map instead of merging
- Using append which is invalid for maps
- Missing commas between key-value pairs in maps
Ready to prove it?
Pass the test and this pattern moves unknown
