Bird
Raised Fist0
Tailwindmarkup~5 mins

@apply for extracting patterns in Tailwind - Cheat Sheet & Quick Revision

Choose your learning style10 modes available
Recall & Review
beginner
What does the @apply directive do in Tailwind CSS?

The @apply directive lets you reuse Tailwind utility classes inside your own CSS rules. It helps you extract repeated patterns into one place.

Click to reveal answer
beginner
How do you use @apply to create a custom button style?
<p>Write a CSS rule with a class name, then inside it use <code>@apply</code> followed by the Tailwind utilities you want to combine. For example:<br><code>.btn { @apply bg-blue-500 text-white py-2 px-4 rounded; }</code></p>
Click to reveal answer
beginner
Why is using @apply helpful for maintaining your CSS?

It keeps your code DRY (Don't Repeat Yourself). Instead of repeating many utility classes in HTML, you write them once in CSS. This makes updates easier and your HTML cleaner.

Click to reveal answer
intermediate
Can @apply be used with responsive or state variants like hover: or md:?

Yes, you can use variants with @apply. For example, @apply hover:bg-blue-700 md:text-lg; applies styles on hover and at medium screen sizes.

Click to reveal answer
intermediate
What happens if you try to <code>@apply</code> a class that includes complex CSS like pseudo-elements or animations?

Tailwind's @apply works best with simple utility classes. Complex classes with pseudo-elements or animations may cause errors or not work as expected.

Click to reveal answer
What is the main purpose of the @apply directive in Tailwind CSS?
ATo add JavaScript functionality
BTo reuse utility classes inside CSS rules
CTo create new HTML elements
DTo import external CSS files
Which of these is a valid use of @apply?
A.card { @apply bg-white p-4 rounded shadow; }
Bbody { @apply text-center; }
Ch1 { @apply font-bold hover:underline; }
DAll of the above
Can you use @apply with responsive prefixes like sm: or lg:?
AOnly with JavaScript enabled
BNo, @apply only works with base classes
CYes, you can use responsive prefixes with @apply
DOnly in inline styles
What is a benefit of using @apply instead of repeating utility classes in HTML?
ACleaner HTML and easier style updates
BFaster JavaScript execution
CBetter SEO ranking
DAutomatic image optimization
What might happen if you try to @apply a Tailwind class with pseudo-elements like before:?
AIt may cause errors or not work properly
BIt will work perfectly every time
CIt will add JavaScript animations
DIt will convert to inline styles
Explain how the @apply directive helps you write cleaner CSS with Tailwind.
Think about how you avoid writing the same styles many times.
You got /4 concepts.
    Describe a situation where using @apply with responsive or hover variants would be useful.
    Consider buttons that change color on hover or text size on mobile.
    You got /4 concepts.

      Practice

      (1/5)
      1. What is the main purpose of using @apply in Tailwind CSS?
      easy
      A. To create animations in Tailwind CSS
      B. To add JavaScript functionality to Tailwind classes
      C. To import external CSS files into Tailwind
      D. To combine multiple utility classes into one reusable custom class

      Solution

      1. Step 1: Understand what @apply does

        @apply lets you write multiple Tailwind utility classes inside a CSS rule to create a single custom class.
      2. Step 2: Identify the main use

        This helps reuse styles and keep code tidy by combining utilities into one class.
      3. Final Answer:

        To combine multiple utility classes into one reusable custom class -> Option D
      4. Quick Check:

        @apply combines utilities = C [OK]
      Hint: Remember: @apply bundles utilities into one class [OK]
      Common Mistakes:
      • Thinking @apply adds JavaScript
      • Confusing @apply with animation creation
      • Assuming @apply imports CSS files
      2. Which of the following is the correct syntax to use @apply inside a CSS file?
      easy
      A. .btn { @apply text-white bg-blue-500 px-4 py-2; }
      B. .btn { apply: text-white bg-blue-500 px-4 py-2; }
      C. .btn { @use text-white bg-blue-500 px-4 py-2; }
      D. .btn { apply(@text-white, @bg-blue-500); }

      Solution

      1. Step 1: Recall the correct @apply syntax

        The correct way is to write @apply followed by utility classes inside a CSS rule block.
      2. Step 2: Check each option

        Only .btn { @apply text-white bg-blue-500 px-4 py-2; } uses @apply correctly with utility classes separated by spaces.
      3. Final Answer:

        .btn { @apply text-white bg-blue-500 px-4 py-2; } -> Option A
      4. Quick Check:

        Correct @apply syntax = A [OK]
      Hint: Look for '@apply' keyword followed by utilities inside braces [OK]
      Common Mistakes:
      • Using 'apply:' instead of '@apply'
      • Using '@use' or other incorrect keywords
      • Trying to call @apply like a function
      3. Given this CSS code using @apply:
      .card {
        @apply p-6 bg-white rounded-lg shadow-md;
      }
      What visual styles will the .card class have?
      medium
      A. No padding, transparent background, rounded corners, and large shadow
      B. Padding of 6px, black background, square corners, and no shadow
      C. Padding of 1.5rem, white background, rounded corners, and medium shadow
      D. Padding of 6rem, gray background, rounded corners, and small shadow

      Solution

      1. Step 1: Understand each utility class

        p-6 means padding 1.5rem, bg-white sets white background, rounded-lg adds large rounded corners, shadow-md adds medium shadow.
      2. Step 2: Match these styles to options

        Padding of 1.5rem, white background, rounded corners, and medium shadow correctly describes these styles. Others have wrong padding sizes or colors.
      3. Final Answer:

        Padding of 1.5rem, white background, rounded corners, and medium shadow -> Option C
      4. Quick Check:

        p-6 + bg-white + rounded-lg + shadow-md = A [OK]
      Hint: Know Tailwind spacing and color names to decode @apply output [OK]
      Common Mistakes:
      • Confusing padding units (px vs rem)
      • Mixing up background colors
      • Misunderstanding shadow sizes
      4. What is wrong with this CSS using @apply?
      .btn {
        @apply text-white bg-blue-500 px-4 py-2;
        @apply rounded-lg;
        color: red;
      }
      medium
      A. The syntax is invalid because @apply must be last
      B. Multiple @apply statements should be combined into one
      C. The color property conflicts with @apply and causes error
      D. You cannot use @apply with padding classes

      Solution

      1. Step 1: Check usage of multiple @apply

        Tailwind allows multiple @apply but best practice is to combine them for clarity and to avoid duplication.
      2. Step 2: Analyze other options

        @apply works with padding, color property is valid CSS and does not cause error, and @apply can be anywhere inside the rule.
      3. Final Answer:

        Multiple @apply statements should be combined into one -> Option B
      4. Quick Check:

        Combine @apply classes for cleaner CSS = D [OK]
      Hint: Combine all utilities in one @apply for neat CSS [OK]
      Common Mistakes:
      • Thinking @apply can't be used multiple times
      • Assuming color property conflicts with @apply
      • Believing @apply must be last in CSS block
      5. You want to create a reusable button style in Tailwind using @apply that has white text, blue background, padding, rounded corners, and a hover effect that darkens the background. Which CSS snippet correctly achieves this?
      hard
      A. .btn { @apply text-white bg-blue-500 px-4 py-2 rounded; &:hover { @apply bg-blue-700; } }
      B. .btn { @apply text-white bg-blue-500 px-4 py-2 rounded hover:bg-blue-700; }
      C. .btn { @apply text-white bg-blue-500 px-4 py-2 rounded; :hover { @apply bg-blue-700; } }
      D. .btn { @apply text-white bg-blue-500 px-4 py-2 rounded; hover: { @apply bg-blue-700; } }

      Solution

      1. Step 1: Understand hover styling with @apply

        To apply hover styles with @apply, you must nest inside a CSS hover selector like &:hover in your CSS.
      2. Step 2: Check each option's hover syntax

        .btn { @apply text-white bg-blue-500 px-4 py-2 rounded; &:hover { @apply bg-blue-700; } } correctly uses &:hover { @apply bg-blue-700; }. .btn { @apply text-white bg-blue-500 px-4 py-2 rounded hover:bg-blue-700; } tries to use hover:bg-blue-700 inside @apply which is invalid. Options C and D have incorrect hover selector syntax.
      3. Final Answer:

        .btn { @apply text-white bg-blue-500 px-4 py-2 rounded; &:hover { @apply bg-blue-700; } } -> Option A
      4. Quick Check:

        Use &:hover with @apply for hover styles = B [OK]
      Hint: Use &:hover { @apply ... } for hover styles in CSS [OK]
      Common Mistakes:
      • Trying to use hover: prefix inside @apply
      • Using :hover without & in nested CSS
      • Incorrect hover selector syntax causing errors
      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