Tip 45/72

Group and In variants

Learn when and how to use the `group` and `in` variants in TailwindCSS.

The group and in variants in TailwindCSS allow you to style elements based on the state of their parent elements. These variants are particularly useful for creating interactive designs.

Group

The group variant allows you to style child elements based on the state of a parent element. This is useful for creating interactive components where the state of a parent element affects its children.

<div class="group">
    <input type="checkbox" name="check" id="c1"/>
    <div class="group-has-checked:bg-blue-500"></div>
</div>

In this example, the div with the class group-checked:bg-blue-500 will have a blue background when the checkbox is checked.

Nested Group

You can also nest groups to create more complex interactions:

<div class="group">
    <input type="checkbox" name="check" id="c1"/>
    <div class="group-has-checked:bg-blue-500 group/sub">
        <div class="group-hover/sub:text-white"></div>
    </div>
</div>

In this example, the nested div with the class group-hover/sub:text-white will have white text when the parent div is hovered over.

In

The in variant, called Implicit Group, allow you to style an element based on the state of any of its parent elements. This is useful when you need to style a child element based on the state of an unknown parent element.

<div>
    <div class="in-hover:bg-blue-500"></div>
</div>

In this example, the div with the class in-hover:bg-blue-500 will have a blue background when all its parent elements are hovered over.

What to Use ?

The group and in variants are useful for creating interactive designs where the state parent elements affects the style of child elements. Here are some guidelines for when to use each variant:

  • Use the group variant when you need to style child elements based on the state of a known parent element.

  • Use the in variant when you need to style child elements based on the state of an unknown parent element.

Conclusion

The group and in variants in TailwindCSS are powerful tools for creating interactive designs. By using these variants, you can create dynamic and engaging user interfaces that respond to user interactions.