Group-hover lets a parent element control the hover style of its child elements. This helps create interactive designs where hovering over one part changes others.
You want a button's background to change when hovering over its text.
You want to highlight an icon inside a card when the whole card is hovered.
You want to show hidden text or change color inside a menu item when hovering over the menu item.
You want multiple child elements to change style together when hovering over their container.
This example shows a box with a heading, paragraph, and button. When you hover anywhere on the box, all child elements change color together using group-hover.
Tailwind
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>Group Hover Example</title>
<script src="https://cdn.tailwindcss.com"></script>
</head>
<body class="flex items-center justify-center min-h-screen bg-gray-50">
<div class="group border-2 border-gray-400 rounded-lg p-6 cursor-pointer max-w-xs">
<h2 class="text-lg font-semibold group-hover:text-blue-600">Hover over this box</h2>
<p class="mt-2 text-gray-700 group-hover:text-blue-400">The text color changes when you hover the whole box.</p>
<button class="mt-4 px-4 py-2 bg-gray-300 rounded group-hover:bg-blue-500 group-hover:text-white transition-colors">
Button changes color
</button>
</div>
</body>
</html>
OutputSuccess
Important Notes
Remember to add the group class to the parent container.
Use group-hover: prefix only on child elements you want to change on hover.
Combine with transition classes for smooth color changes.
Summary
Group-hover lets a parent control hover styles of its children.
Add group to parent and group-hover: to child classes.
This helps create interactive, connected hover effects easily.
Practice
(1/5)
1. What does the group-hover utility in Tailwind CSS do?
easy
A. It applies hover styles only to sibling elements.
B. It changes the background color of the hovered element only.
C. It disables hover effects on child elements.
D. It allows a parent element to change the style of its child elements when hovered.
Solution
Step 1: Understand the role of group and group-hover
The group class is added to a parent element to enable hover state tracking.
Step 2: Effect of group-hover on child elements
When the parent with group is hovered, child elements with group-hover: classes change style accordingly.
Final Answer:
It allows a parent element to change the style of its child elements when hovered. -> Option D
A. The child should use 'hover:text-green-600' instead of 'group-hover:text-green-600'.
B. The parent is missing the 'group' class; 'group-hover' on parent is invalid.
C. The parent needs 'hover' class to trigger hover effects.
D. The child element must be a button for group-hover to work.
Solution
Step 1: Check the parent's class
The parent has group-hover class, which is incorrect; it should have group.
Step 2: Understand group-hover usage
group-hover: is a prefix for child classes, not a class for parents. Parent must have group to enable this.
Final Answer:
The parent is missing the 'group' class; 'group-hover' on parent is invalid. -> Option B
Quick Check:
Parent needs 'group', not 'group-hover' class [OK]
Hint: Parent must have 'group', not 'group-hover' class [OK]
Common Mistakes:
Adding 'group-hover' class to parent instead of 'group'
Using 'group-hover:' on parent element
Confusing 'hover:' and 'group-hover:' prefixes
5. You want a card component where hovering the card changes the border color of a nested button and also shows a hidden icon inside the button. Which Tailwind setup correctly uses group-hover to achieve this?