function
cv
Define typed semantic class variants, defaults, and class passthrough.
Example
import { cv, type VariantProps } from '@riducms/ui';
const notice = cv({
base: 'notice',
variants: {
tone: {
neutral: 'notice--neutral',
warning: 'notice--warning'
}
},
defaultVariants: { tone: 'neutral' }
});
type NoticeTone = VariantProps<typeof notice>['tone'];
const className = notice({ tone: 'warning', class: 'app-notice' });Arguments
| Argument | Type | Description |
|---|---|---|
__0 | { base: string; variants: T & | The __0 value. |
Returns
Joins selected classes into one string.
(props?: VariantSelection<T> & { class?: string | undefined; }) => stringHow it works
No utility merging or compound variants. Svelte class arrays compose conditional classes; CSS controls precedence.
Full signature
function cv<const T extends VariantMap>(
{
base, variants, defaultVariants,
}: {
base: string
variants: T & { class?: never; }
defaultVariants?: NoInfer<
VariantSelection<T>
>
},
): (props?: VariantSelection<T> & { class?: string | undefined; }) => string