# Button _(no submodules)_ - button.variants — `buttonVariants` is the cva (clas… - [button.variants](./button.variants.md) — `buttonVariants` is the cva (class-variance-authority) configuration that powers every ` ); } ``` ## API Reference ### ``), the chassis will still inject the icon-only fallback because it cannot see through ``. This is by design: deeply-nested text-bearing elements should declare their own accessible name on the inner element. - `motion-reduce:transition-none` is hardcoded into the base classes rather than driven by `motionTokens.respectReducedMotion` because the cva-string-vs-CSS-variable boundary makes the variable approach awkward for transition shorthands. The chassis relies on Tailwind's `motion-reduce` variant which honours `prefers-reduced-motion` natively. - `aria-label` precedence: when the consumer supplies `aria-label="…"`, it is preserved verbatim on the rendered element. When omitted AND the children carry no plain text, the icon-only fallback is filled in. When omitted AND text children are present, no `aria-label` is set (the text itself becomes the accessible name).