```
Chained variants move onto a matching chained attribute:
```html
```
Do not alter Vue dynamic bindings:
```html
```
## React: static variants and conditional modifiers
```tsx
// Before
// After: move safely separable static variants; keep unrelated base expressions.
```
React also supports JSX expressions on modifiers when the class strings are literals:
```tsx
```
Leave expressions without string literals unchanged (e.g. `className:hover={hoverClasses}`), or store already-prefixed class names in the variable. UseClassy modifiers are not a general replacement for `clsx` / `classy` on the base `className`.
## Svelte: preserve native directives
```svelte
```
`class:loading={isLoading}` is native Svelte and must not be converted to a string attribute.
## Blade
```blade
{{-- Before --}}
{{ $label }}
{{-- After --}}
{{ $label }}
```
## Chained modifiers match Tailwind composition
```html
```
```html
```
## Arbitrary variants as modifiers
Use bracket-aware attribute names for arbitrary variants (including `=` inside `[…]`):
```html
*]="rounded" class:data-[state=open]="block" class:hover="bg-zinc-50">
...
```
```tsx
*]="rounded"
className:data-[state=open]="block"
className:hover="bg-zinc-50"
>
...
```