Attribute selectors
ARIA states
Use the aria-*
variants to apply styles based on ARIA attributes:
html
<button aria-expanded="false" class="aria-expanded:bg-blue-500 aria-expanded:text-white">
Toggle
</button>
Data attributes
Use arbitrary attribute selectors to target custom data attributes:
html
<div data-state="active" class="[&[data-state=active]]:bg-blue-500 [&[data-state=active]]:text-white">
This div changes style based on its data-state attribute.
</div>
RTL support
Use the rtl
and ltr
variants to apply styles based on text direction:
html
<div class="text-left ltr:text-left rtl:text-right">
This text aligns differently based on direction.
</div>
Open/closed state
Use the open
variant to style elements when they are open:
html
<details class="border border-gray-200 rounded-lg open:border-blue-300 open:bg-blue-50">
<summary class="p-4 cursor-pointer">Click to expand</summary>
<div class="p-4 border-t border-gray-200">
This content is shown when the details element is open.
</div>
</details>
Styling inert elements
Use the inert
variant to style elements when they are inert:
html
<div class="inert:opacity-50 inert:pointer-events-none">
This div becomes semi-transparent and non-interactive when inert.
</div>
Attribute selector reference
Variant | CSS Selector | Description |
---|---|---|
rtl | [dir="rtl"] | Right-to-left text direction |
ltr | [dir="ltr"] | Left-to-right text direction |
open | [open] | Open state (details, dialog, etc.) |