Bird
Raised Fist0
SASSmarkup~5 mins

Responsive grid with breakpoints in SASS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available

Start learning this pattern below

Jump into concepts and practice - no test required

or
Recommended
Test this pattern10 questions across easy, medium, and hard to know if this pattern is strong
Recall & Review
beginner
What is a breakpoint in responsive web design?
A breakpoint is a specific screen width where the layout changes to better fit the device, like switching from a single column on phones to multiple columns on desktops.
Click to reveal answer
beginner
How does a grid system help in responsive design?
A grid system divides the page into columns and rows, making it easier to arrange content that adjusts smoothly across different screen sizes.
Click to reveal answer
intermediate
In Sass, how do you define a breakpoint for screens wider than 768px?
You use a media query like:
@media (min-width: 769px) { /* styles here */ }
This applies styles only when the screen is at least 769 pixels wide.
Click to reveal answer
intermediate
What Sass feature helps you avoid repeating media query code for multiple breakpoints?
Using mixins lets you write reusable media query blocks. For example, you can create a mixin for a breakpoint and include it wherever needed.
Click to reveal answer
beginner
Why use relative units like rem or % in a responsive grid?
Relative units scale better on different devices and respect user settings, making layouts more flexible and accessible.
Click to reveal answer
What does a media query with min-width: 600px do?
AApplies styles only when the screen is at least 600px wide
BApplies styles only when the screen is smaller than 600px
CApplies styles on all screen sizes
DDisables styles on screens wider than 600px
Which Sass feature helps reuse code for different breakpoints?
AVariables
BMixins
CFunctions
DPlaceholders
In a responsive grid, what unit is best for flexible column widths?
APixels (px)
BRem
CPercent (%)
DPoints (pt)
What is the main purpose of breakpoints in a grid layout?
ATo change layout based on screen size
BTo add colors
CTo increase font size only
DTo hide all content
Which CSS property is commonly used to create a grid layout?
Adisplay: flex
Bdisplay: block
Cdisplay: inline
Ddisplay: grid
Explain how you would create a responsive grid using Sass with breakpoints.
Think about how to write media queries in Sass and how to make columns flexible.
You got /4 concepts.
    Describe why breakpoints are important in responsive web design and how they affect grid layouts.
    Consider how websites look on small vs large screens.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using breakpoints in a responsive grid with Sass?
      easy
      A. To add colors to the grid items
      B. To disable the grid on small screens
      C. To increase font size only
      D. To change the number of columns based on screen size

      Solution

      1. Step 1: Understand breakpoints in responsive design

        Breakpoints are screen widths where layout changes to fit device size better.
      2. Step 2: Role of breakpoints in grids

        They adjust the number of columns so content fits nicely on different screens.
      3. Final Answer:

        To change the number of columns based on screen size -> Option D
      4. Quick Check:

        Breakpoints adjust layout = B [OK]
      Hint: Breakpoints change layout, not just colors or fonts [OK]
      Common Mistakes:
      • Thinking breakpoints only change colors
      • Believing breakpoints disable grids
      • Assuming breakpoints only affect fonts
      2. Which Sass syntax correctly defines a media query mixin for a breakpoint at 768px?
      easy
      A. @mixin breakpoint($size) { @media (min-width: $size) { @content; } }
      B. @mixin breakpoint($size) { @media (max-width: $size) { @content; } }
      C. @mixin breakpoint { @media (min-width: 768px) { @content; } }
      D. @mixin breakpoint { @media (max-width: 768px) { @content; } }

      Solution

      1. Step 1: Understand mixin with parameter

        Mixin should accept a size parameter to be reusable for any breakpoint.
      2. Step 2: Correct media query syntax

        Use min-width for breakpoints that apply styles at or above the size.
      3. Final Answer:

        @mixin breakpoint($size) { @media (min-width: $size) { @content; } } -> Option A
      4. Quick Check:

        Mixin with parameter and min-width = A [OK]
      Hint: Use parameters for flexible breakpoints in mixins [OK]
      Common Mistakes:
      • Forgetting to add parameter for size
      • Using max-width instead of min-width incorrectly
      • Not including @content inside media query
      3. Given the Sass code below, what will be the number of columns on a screen 800px wide?
      @mixin breakpoint($size) {
        @media (min-width: $size) {
          @content;
        }
      }
      
      .grid {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        @include breakpoint(600px) {
          grid-template-columns: repeat(2, 1fr);
        }
        @include breakpoint(900px) {
          grid-template-columns: repeat(3, 1fr);
        }
      }
      medium
      A. 2 columns
      B. No columns, grid disabled
      C. 3 columns
      D. 1 column

      Solution

      1. Step 1: Check screen width against breakpoints

        Screen is 800px wide, which is >= 600px but < 900px.
      2. Step 2: Determine applied grid-template-columns

        At 600px breakpoint, columns become 2; 900px breakpoint not reached yet.
      3. Final Answer:

        2 columns -> Option A
      4. Quick Check:

        800px between 600 and 900 = 2 columns [OK]
      Hint: Compare screen width to breakpoints in order [OK]
      Common Mistakes:
      • Choosing 3 columns thinking 800px is above 900px
      • Choosing 1 column ignoring breakpoint overrides
      • Assuming grid disables at certain widths
      4. Identify the error in this Sass code for a responsive grid:
      @mixin breakpoint($size) {
        @media min-width: $size {
          @content;
        }
      }
      
      .grid {
        display: grid;
        grid-template-columns: repeat(1, 1fr);
        @include breakpoint(768px) {
          grid-template-columns: repeat(2, 1fr);
        }
      }
      medium
      A. grid-template-columns syntax is invalid
      B. Missing parentheses around media query condition
      C. Wrong mixin name
      D. No error, code is correct

      Solution

      1. Step 1: Check media query syntax in mixin

        Media queries require parentheses around conditions, e.g., (min-width: 768px).
      2. Step 2: Identify missing parentheses

        Code has @media min-width: $size without parentheses, causing syntax error.
      3. Final Answer:

        Missing parentheses around media query condition -> Option B
      4. Quick Check:

        Media query needs parentheses = C [OK]
      Hint: Always wrap media query conditions in parentheses [OK]
      Common Mistakes:
      • Omitting parentheses in @media
      • Confusing mixin name with media query
      • Thinking grid-template-columns syntax is wrong
      5. You want a grid that shows 1 column on small screens, 2 columns on medium (≥600px), and 4 columns on large (≥1200px). Which Sass code correctly implements this using a breakpoint mixin?
      hard
      A. @mixin breakpoint($size) { @media (min-width: $size) { @content; } } .grid { display: grid; grid-template-columns: repeat(4, 1fr); @include breakpoint(600px) { grid-template-columns: repeat(2, 1fr); } @include breakpoint(1200px) { grid-template-columns: repeat(1, 1fr); } }
      B. @mixin breakpoint($size) { @media (max-width: $size) { @content; } } .grid { display: grid; grid-template-columns: repeat(4, 1fr); @include breakpoint(600px) { grid-template-columns: repeat(2, 1fr); } @include breakpoint(1200px) { grid-template-columns: repeat(1, 1fr); } }
      C. @mixin breakpoint($size) { @media (min-width: $size) { @content; } } .grid { display: grid; grid-template-columns: repeat(1, 1fr); @include breakpoint(600px) { grid-template-columns: repeat(2, 1fr); } @include breakpoint(1200px) { grid-template-columns: repeat(4, 1fr); } }
      D. @mixin breakpoint($size) { @media (max-width: $size) { @content; } } .grid { display: grid; grid-template-columns: repeat(1, 1fr); @include breakpoint(600px) { grid-template-columns: repeat(4, 1fr); } @include breakpoint(1200px) { grid-template-columns: repeat(2, 1fr); } }

      Solution

      1. Step 1: Understand breakpoint directions

        Use min-width to apply styles at or above the breakpoint size.
      2. Step 2: Check column counts for each breakpoint

        Default 1 column, 2 columns at ≥600px, 4 columns at ≥1200px matches @mixin breakpoint($size) { @media (min-width: $size) { @content; } } .grid { display: grid; grid-template-columns: repeat(1, 1fr); @include breakpoint(600px) { grid-template-columns: repeat(2, 1fr); } @include breakpoint(1200px) { grid-template-columns: repeat(4, 1fr); } }.
      3. Final Answer:

        @mixin breakpoint($size) { @media (min-width: $size) { @content; } } .grid { display: grid; grid-template-columns: repeat(1, 1fr); @include breakpoint(600px) { grid-template-columns: repeat(2, 1fr); } @include breakpoint(1200px) { grid-template-columns: repeat(4, 1fr); } } -> Option C
      4. Quick Check:

        min-width with increasing columns = A [OK]
      Hint: Use min-width and increase columns with larger breakpoints [OK]
      Common Mistakes:
      • Using max-width instead of min-width
      • Setting default columns incorrectly
      • Reversing column counts at breakpoints