Files
cadence-ui/packages/ui/src/components/radio-group.variants.ts
T

31 lines
1.3 KiB
TypeScript

import { cva } from "../lib/cva";
import { getMotionRecipeClassNames } from "../lib/motion";
export const radioGroupVariants = cva(["grid gap-3"], {
variants: {
orientation: {
horizontal: "sm:grid-flow-col sm:auto-cols-fr",
vertical: ""
}
},
defaultVariants: {
orientation: "vertical"
}
});
export const radioGroupItemVariants = cva(
[
"inline-flex size-5 shrink-0 items-center justify-center rounded-full border border-[var(--color-border-strong)] bg-[var(--color-card)] shadow-[var(--shadow-xs)] outline-none",
"text-[var(--color-primary)] transition-[background-color,border-color,box-shadow,transform] duration-[var(--dur-fast)] ease-[var(--ease-standard)]",
"focus-visible:ring-2 focus-visible:ring-[var(--color-ring)] focus-visible:ring-offset-2 focus-visible:ring-offset-[var(--color-background)]",
"data-[disabled]:cursor-not-allowed data-[disabled]:opacity-45",
"data-[state=checked]:border-[var(--color-primary)]",
"aria-[invalid=true]:border-[color-mix(in_oklch,var(--color-destructive)_42%,var(--color-border-strong))]",
getMotionRecipeClassNames("ring")
]
);
export const radioGroupIndicatorVariants = cva([
"flex size-full items-center justify-center after:block after:size-2 after:rounded-full after:bg-current after:content-['']"
]);