Bird
Raised Fist0
Tailwindmarkup~15 mins

Hover variant in Tailwind - Mini Project: Build & Apply

Choose your learning style10 modes available
Create a Button with Hover Color Change Using Tailwind CSS
📖 Scenario: You are building a simple webpage with a button. You want the button to change its background color when someone moves their mouse over it. This makes the button feel interactive and friendly.
🎯 Goal: Create a button that has a blue background normally and changes to green when hovered over using Tailwind CSS hover variant.
📋 What You'll Learn
Use a <button> element with Tailwind CSS classes
Set the button's normal background color to blue using Tailwind
Use the Tailwind hover: variant to change the background color to green on mouse hover
Include accessible text inside the button
Use semantic HTML and ensure the button is keyboard accessible
💡 Why This Matters
🌍 Real World
Buttons that change color on hover are common on websites to show interactivity and improve user experience.
💼 Career
Knowing how to use Tailwind CSS hover variants helps you build modern, accessible, and visually appealing user interfaces quickly.
Progress0 / 4 steps
1
Create the basic HTML button
Write a <button> element with the text Click me inside the <body> of an HTML5 document. Include the basic HTML skeleton with <!DOCTYPE html>, <html lang="en">, <head> with charset and viewport meta tags, and an empty <body> where you place the button.
Tailwind
Hint

Start by writing the full HTML5 page structure and add a button inside the body with the text 'Click me'.

2
Add Tailwind CSS link
Add the Tailwind CSS CDN link inside the <head> section to enable Tailwind styles. Use the official Tailwind CDN link: <script src="https://cdn.tailwindcss.com"></script>.
Tailwind
Hint

Paste the Tailwind CDN script tag inside the head section to load Tailwind styles.

3
Add normal and hover background colors using Tailwind classes
Add Tailwind CSS classes to the <button> to set its normal background color to blue using bg-blue-500 and change the background color to green on hover using hover:bg-green-500. Also add text-white for white text and px-4 py-2 rounded for padding and rounded corners.
Tailwind
Hint

Use the exact Tailwind classes: bg-blue-500 hover:bg-green-500 text-white px-4 py-2 rounded on the button.

4
Add accessible focus outline and center the button
Add the Tailwind class focus:outline-none focus:ring-2 focus:ring-green-400 to the button for a visible focus ring when using keyboard navigation. Also wrap the button in a <main> element with Tailwind classes flex justify-center items-center min-h-screen to center it vertically and horizontally on the page.
Tailwind
Hint

Wrap the button inside a <main> with flex and centering classes. Add focus ring classes to the button for accessibility.

Practice

(1/5)
1. What does the hover: prefix do in Tailwind CSS?
easy
A. Applies styles only when the mouse is over the element
B. Applies styles permanently to the element
C. Removes styles when the mouse is over the element
D. Applies styles only on mobile devices

Solution

  1. Step 1: Understand the hover variant purpose

    The hover: prefix in Tailwind applies styles only when the mouse pointer is over the element.
  2. Step 2: Compare options with this behavior

    Only Applies styles only when the mouse is over the element describes applying styles on mouse hover, others describe permanent or unrelated behavior.
  3. Final Answer:

    Applies styles only when the mouse is over the element -> Option A
  4. Quick Check:

    hover: means on mouse hover [OK]
Hint: Hover prefix means styles activate on mouse hover [OK]
Common Mistakes:
  • Thinking hover applies styles permanently
  • Confusing hover with focus or active states
  • Assuming hover works only on mobile
2. Which of the following is the correct Tailwind syntax to change text color to blue on hover?
easy
A. text-hover-blue-500
B. hover:text-blue-500
C. hover:blue-text-500
D. text-blue-500-hover

Solution

  1. Step 1: Recall Tailwind hover syntax

    The correct syntax uses hover: prefix followed by the utility class, e.g., hover:text-blue-500.
  2. Step 2: Check each option

    Only hover:text-blue-500 matches the correct pattern. Others have incorrect order or invalid class names.
  3. Final Answer:

    hover:text-blue-500 -> Option B
  4. Quick Check:

    hover: + utility class = correct syntax [OK]
Hint: hover: always comes before the utility class [OK]
Common Mistakes:
  • Placing hover after the utility class
  • Mixing words in the class name
  • Using invalid Tailwind color names
3. What will happen when you hover over this button?
<button class="bg-gray-300 hover:bg-green-400 text-black p-2 rounded">Click me</button>
medium
A. Button text color changes to green on hover
B. Button background stays gray on hover
C. Button background changes from gray to green on hover
D. Button disappears on hover

Solution

  1. Step 1: Analyze the classes

    The button has bg-gray-300 for background normally and hover:bg-green-400 for background on hover.
  2. Step 2: Understand hover effect

    When hovered, the background color changes from gray to green. Text color remains black.
  3. Final Answer:

    Button background changes from gray to green on hover -> Option C
  4. Quick Check:

    hover:bg-green-400 changes background on hover [OK]
Hint: hover:bg- changes background color on hover [OK]
Common Mistakes:
  • Thinking text color changes instead of background
  • Assuming no change happens on hover
  • Confusing hover:bg with hover:text
4. Identify the error in this Tailwind class usage:
<div class="hover:bg-red-500 hovertext-white p-4">Alert</div>
medium
A. Extra space inside class attribute
B. Incorrect color name 'red-500'
C. Using hover on a div is invalid
D. Missing colon in second hover class

Solution

  1. Step 1: Check each hover class syntax

    The first class hover:bg-red-500 is correct. The second class hovertext-white is missing a colon after hover.
  2. Step 2: Confirm correct syntax

    The correct class should be hover:text-white with a colon separating hover and the utility.
  3. Final Answer:

    Missing colon in second hover class -> Option D
  4. Quick Check:

    hover: must separate variant and utility [OK]
Hint: hover: must always have a colon before utility [OK]
Common Mistakes:
  • Omitting colon after hover
  • Using invalid color names
  • Thinking hover can't be used on div
5. You want a button that is gray normally, turns blue on hover, and shows white text only on hover. Which class list achieves this?
hard
A. bg-gray-400 hover:bg-blue-600 text-gray-800 hover:text-white p-3 rounded
B. bg-gray-400 bg-hover-blue-600 text-white hover:text-gray-800 p-3 rounded
C. bg-gray-400 hover:bg-blue-600 hover-text-white text-gray-800 p-3 rounded
D. bg-gray-400 hover:bg-blue-600 text-white hover:text-white p-3 rounded

Solution

  1. Step 1: Identify normal and hover background colors

    Normal background should be gray (bg-gray-400), hover background blue (hover:bg-blue-600).
  2. Step 2: Identify text colors

    Normal text is gray (text-gray-800), hover text is white (hover:text-white).
  3. Step 3: Check each option

    bg-gray-400 hover:bg-blue-600 text-gray-800 hover:text-white p-3 rounded matches all requirements with correct syntax. Others have wrong class names or order.
  4. Final Answer:

    bg-gray-400 hover:bg-blue-600 text-gray-800 hover:text-white p-3 rounded -> Option A
  5. Quick Check:

    hover: prefix changes styles on mouse hover [OK]
Hint: Use hover: before both bg and text classes for hover styles [OK]
Common Mistakes:
  • Using incorrect hover syntax like hover-text-white
  • Setting text color to white normally instead of on hover
  • Mixing up hover:bg and bg-hover
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