@heroui/theme
Version:
The default theme for HeroUI components
309 lines (306 loc) • 6.86 kB
JavaScript
import {
tv
} from "./chunk-TX3FPB7D.mjs";
// src/components/spinner.ts
var spinner = tv({
slots: {
base: "relative inline-flex flex-col gap-2 items-center justify-center",
wrapper: "relative flex",
label: "text-foreground dark:text-foreground-dark font-regular",
circle1: "absolute w-full h-full rounded-full",
circle2: "absolute w-full h-full rounded-full",
dots: "relative rounded-full mx-auto",
spinnerBars: [
"absolute",
"animate-fade-out",
"rounded-full",
"w-[25%]",
"h-[8%]",
"left-[calc(37.5%)]",
"top-[calc(46%)]",
"spinner-bar-animation"
]
},
variants: {
size: {
sm: {
wrapper: "w-5 h-5",
circle1: "border-2",
circle2: "border-2",
dots: "size-1",
label: "text-small"
},
md: {
wrapper: "w-8 h-8",
circle1: "border-3",
circle2: "border-3",
dots: "size-1.5",
label: "text-medium"
},
lg: {
wrapper: "w-10 h-10",
circle1: "border-3",
circle2: "border-3",
dots: "size-2",
label: "text-large"
}
},
color: {
current: {
circle1: "border-b-current",
circle2: "border-b-current",
dots: "bg-current",
spinnerBars: "bg-current"
},
white: {
circle1: "border-b-white",
circle2: "border-b-white",
dots: "bg-white",
spinnerBars: "bg-white"
},
default: {
circle1: "border-b-default",
circle2: "border-b-default",
dots: "bg-default",
spinnerBars: "bg-default"
},
primary: {
circle1: "border-b-primary",
circle2: "border-b-primary",
dots: "bg-primary",
spinnerBars: "bg-primary"
},
secondary: {
circle1: "border-b-secondary",
circle2: "border-b-secondary",
dots: "bg-secondary",
spinnerBars: "bg-secondary"
},
success: {
circle1: "border-b-success",
circle2: "border-b-success",
dots: "bg-success",
spinnerBars: "bg-success"
},
warning: {
circle1: "border-b-warning",
circle2: "border-b-warning",
dots: "bg-warning",
spinnerBars: "bg-warning"
},
danger: {
circle1: "border-b-danger",
circle2: "border-b-danger",
dots: "bg-danger",
spinnerBars: "bg-danger"
}
},
labelColor: {
foreground: {
label: "text-foreground"
},
primary: {
label: "text-primary"
},
secondary: {
label: "text-secondary"
},
success: {
label: "text-success"
},
warning: {
label: "text-warning"
},
danger: {
label: "text-danger"
}
},
variant: {
default: {
circle1: [
"animate-spinner-ease-spin",
"border-solid",
"border-t-transparent",
"border-l-transparent",
"border-r-transparent"
],
circle2: [
"opacity-75",
"animate-spinner-linear-spin",
"border-dotted",
"border-t-transparent",
"border-l-transparent",
"border-r-transparent"
]
},
gradient: {
circle1: [
"border-0",
"bg-gradient-to-b",
"from-transparent",
"via-transparent",
"to-primary",
"animate-spinner-linear-spin",
"[animation-duration:1s]",
"[-webkit-mask:radial-gradient(closest-side,rgba(0,0,0,0.0)calc(100%-3px),rgba(0,0,0,1)calc(100%-3px))]"
],
circle2: ["hidden"]
},
wave: {
wrapper: "translate-y-3/4",
dots: ["animate-sway", "spinner-dot-animation"]
},
dots: {
wrapper: "translate-y-2/4",
dots: ["animate-blink", "spinner-dot-blink-animation"]
},
spinner: {},
simple: {
wrapper: "text-foreground h-5 w-5 animate-spin",
circle1: "opacity-25",
circle2: "opacity-75"
}
}
},
defaultVariants: {
size: "md",
color: "primary",
labelColor: "foreground",
variant: "default"
},
compoundVariants: [
{ variant: "gradient", color: "current", class: { circle1: "to-current" } },
{ variant: "gradient", color: "white", class: { circle1: "to-white" } },
{ variant: "gradient", color: "default", class: { circle1: "to-default" } },
{ variant: "gradient", color: "primary", class: { circle1: "to-primary" } },
{ variant: "gradient", color: "secondary", class: { circle1: "to-secondary" } },
{ variant: "gradient", color: "success", class: { circle1: "to-success" } },
{ variant: "gradient", color: "warning", class: { circle1: "to-warning" } },
{ variant: "gradient", color: "danger", class: { circle1: "to-danger" } },
{
variant: "wave",
size: "sm",
class: {
wrapper: "w-5 h-5"
}
},
{
variant: "wave",
size: "md",
class: {
wrapper: "w-8 h-8"
}
},
{
variant: "wave",
size: "lg",
class: {
wrapper: "w-12 h-12"
}
},
{
variant: "dots",
size: "sm",
class: {
wrapper: "w-5 h-5"
}
},
{
variant: "dots",
size: "md",
class: {
wrapper: "w-8 h-8"
}
},
{
variant: "dots",
size: "lg",
class: {
wrapper: "w-12 h-12"
}
},
// Simple variants
// Size
{
variant: "simple",
size: "sm",
class: {
wrapper: "w-5 h-5"
}
},
{
variant: "simple",
size: "md",
class: {
wrapper: "w-8 h-8"
}
},
{
variant: "simple",
size: "lg",
class: {
wrapper: "w-12 h-12"
}
},
// Color
{
variant: "simple",
color: "current",
class: {
wrapper: "text-current"
}
},
{
variant: "simple",
color: "white",
class: {
wrapper: "text-white"
}
},
{
variant: "simple",
color: "default",
class: {
wrapper: "text-default"
}
},
{
variant: "simple",
color: "primary",
class: {
wrapper: "text-primary"
}
},
{
variant: "simple",
color: "secondary",
class: {
wrapper: "text-secondary"
}
},
{
variant: "simple",
color: "success",
class: {
wrapper: "text-success"
}
},
{
variant: "simple",
color: "warning",
class: {
wrapper: "text-warning"
}
},
{
variant: "simple",
color: "danger",
class: {
wrapper: "text-danger"
}
}
]
});
export {
spinner
};