Bird
Raised Fist0
SASSmarkup~5 mins

Vendor prefix mixin patterns in SASS - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What is a vendor prefix in CSS?
A vendor prefix is a special code added before CSS properties to ensure they work in specific browsers. Examples include -webkit- for Chrome and Safari, -moz- for Firefox, and -ms- for Internet Explorer.
Click to reveal answer
beginner
Why use mixins for vendor prefixes in Sass?
Mixins let you write vendor prefixes once and reuse them everywhere. This saves time, avoids mistakes, and keeps your code clean and easy to update.
Click to reveal answer
beginner
Example of a simple vendor prefix mixin for border-radius in Sass?
@mixin border-radius($radius) { -webkit-border-radius: $radius; -moz-border-radius: $radius; border-radius: $radius; }
Click to reveal answer
intermediate
How do vendor prefix mixins improve maintainability?
If browser support changes, you only update the mixin once. All styles using that mixin update automatically, making your project easier to maintain.
Click to reveal answer
intermediate
What is a common pattern to handle multiple vendor prefixes in one mixin?
Use a mixin that sets all needed prefixes plus the standard property. Pass the value as a parameter to keep it flexible and reusable.
Click to reveal answer
What does the -webkit- prefix target?
AChrome and Safari browsers
BFirefox browser
CInternet Explorer
DAll browsers
Why use a mixin for vendor prefixes in Sass?
ATo write prefixes once and reuse them
BTo make CSS slower
CTo avoid using variables
DTo remove prefixes automatically
Which of these is NOT a vendor prefix?
A-moz-
B-html-
C-ms-
D-webkit-
What is the main benefit of updating a vendor prefix mixin?
AIt slows down the browser
BIt deletes old CSS files
CAll styles using it update automatically
DIt changes HTML structure
How do you pass values to a vendor prefix mixin?
ABy adding inline styles
BBy editing the CSS file directly
CUsing JavaScript
DAs parameters to the mixin
Explain what vendor prefix mixins are and why they are useful in Sass.
Think about how writing prefixes once helps many places.
You got /3 concepts.
    Describe how you would write a mixin to handle vendor prefixes for a CSS property.
    Start with @mixin and include all prefixes inside.
    You got /3 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using a vendor prefix mixin in Sass?
      easy
      A. To add browser-specific prefixes automatically for better compatibility
      B. To create animations without writing keyframes
      C. To import external CSS files into Sass
      D. To define variables for colors and fonts

      Solution

      1. Step 1: Understand vendor prefixes

        Vendor prefixes are added to CSS properties to ensure they work in different browsers that may require special syntax.
      2. Step 2: Role of mixins in Sass

        Mixins let you write code once and reuse it, so a vendor prefix mixin adds all needed prefixes automatically wherever used.
      3. Final Answer:

        To add browser-specific prefixes automatically for better compatibility -> Option A
      4. Quick Check:

        Vendor prefix mixin = add prefixes automatically [OK]
      Hint: Think: mixins reuse prefix code for all browsers [OK]
      Common Mistakes:
      • Confusing mixins with variables
      • Thinking mixins import files
      • Believing mixins create animations
      2. Which of the following is the correct syntax to define a vendor prefix mixin for transform in Sass?
      easy
      A. @mixin transform($value) { -webkit-transform: $value; -moz-transform: $value; -ms-transform: $value; }
      B. @mixin transform($value) { transform: $value; -webkit-transform: $value; -moz-transform: $value; }
      C. @mixin transform { -webkit-transform: $value; -moz-transform: $value; transform: $value; }
      D. @mixin transform($value) { -webkit-transform: $value; -moz-transform: $value; transform: $value; }

      Solution

      1. Step 1: Check mixin parameter usage

        The mixin must accept a parameter ($value) to apply the transform value.
      2. Step 2: Verify property order and completeness

        @mixin transform($value) { -webkit-transform: $value; -moz-transform: $value; transform: $value; } correctly includes -webkit-, -moz-, and the standard transform property in proper syntax and order.
      3. Final Answer:

        @mixin transform($value) { -webkit-transform: $value; -moz-transform: $value; transform: $value; } -> Option D
      4. Quick Check:

        Correct mixin syntax with parameter and prefixes = D [OK]
      Hint: Always include parameter and standard property last [OK]
      Common Mistakes:
      • Omitting the parameter in mixin definition
      • Wrong order of properties
      • Missing the standard property without prefix
      3. Given the following Sass code, what CSS will be generated?
      @mixin user-select($value) {
        -webkit-user-select: $value;
        -moz-user-select: $value;
        -ms-user-select: $value;
        user-select: $value;
      }
      
      .button {
        @include user-select(none);
      }
      medium
      A. .button { user-select: none; -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; }
      B. .button { -webkit-user-select: none; user-select: none; }
      C. .button { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; }
      D. .button { -webkit-user-select: none; -moz-user-select: none; user-select: none; }

      Solution

      1. Step 1: Understand mixin expansion

        The mixin includes all vendor prefixes and the standard property with the passed value 'none'.
      2. Step 2: Check output order and completeness

        The generated CSS will list all prefixes and the standard property exactly as in the mixin, inside the .button selector.
      3. Final Answer:

        .button { -webkit-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; } -> Option C
      4. Quick Check:

        Mixin expands all prefixes + standard = B [OK]
      Hint: Mixin outputs all prefixes in order used [OK]
      Common Mistakes:
      • Missing some vendor prefixes
      • Changing property order incorrectly
      • Omitting the standard property
      4. Identify the error in this vendor prefix mixin and choose the fix:
      @mixin box-shadow($shadow) {
        -webkit-box-shadow: $shadow;
        -moz-box-shadow: $shadow
        box-shadow: $shadow;
      }
      medium
      A. Remove the parameter $shadow from mixin
      B. Add a semicolon after '-moz-box-shadow: $shadow;'
      C. Change mixin to a function
      D. Add quotes around $shadow values

      Solution

      1. Step 1: Check syntax line by line

        The line '-moz-box-shadow: $shadow' is missing a semicolon at the end, causing a syntax error.
      2. Step 2: Fix syntax error

        Adding the missing semicolon after '-moz-box-shadow: $shadow;' corrects the mixin syntax.
      3. Final Answer:

        Add a semicolon after '-moz-box-shadow: $shadow;' -> Option B
      4. Quick Check:

        Missing semicolon causes error = fix by adding it [OK]
      Hint: Check each property line ends with semicolon [OK]
      Common Mistakes:
      • Ignoring missing semicolon errors
      • Thinking parameters are wrong
      • Confusing mixins with functions
      5. You want to create a Sass mixin that adds vendor prefixes for display: flex and also sets flex-direction. Which is the best way to write this mixin?
      hard
      A. @mixin flex-container($direction) { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-flex-direction: $direction; -ms-flex-direction: $direction; flex-direction: $direction; }
      B. @mixin flex-container($direction) { display: flex; flex-direction: $direction; }
      C. @mixin flex-container { display: flex; flex-direction: row; }
      D. @mixin flex-container($direction) { display: -webkit-flex; display: flex; flex-direction: $direction; }

      Solution

      1. Step 1: Include all necessary vendor prefixes for display flex

        @mixin flex-container($direction) { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-flex-direction: $direction; -ms-flex-direction: $direction; flex-direction: $direction; } includes -webkit-box and -ms-flexbox for older browsers, plus standard flex.
      2. Step 2: Add vendor prefixes for flex-direction with parameter

        @mixin flex-container($direction) { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-flex-direction: $direction; -ms-flex-direction: $direction; flex-direction: $direction; } also prefixes flex-direction for -webkit- and -ms- with the passed $direction value.
      3. Final Answer:

        @mixin flex-container($direction) { display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-flex-direction: $direction; -ms-flex-direction: $direction; flex-direction: $direction; } -> Option A
      4. Quick Check:

        Complete prefixes for display and flex-direction = A [OK]
      Hint: Prefix both display and flex-direction with parameter [OK]
      Common Mistakes:
      • Omitting older browser prefixes
      • Not using parameter for direction
      • Using incomplete prefix sets
      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