Spaces:
Sleeping
Sleeping
File size: 721 Bytes
375d687 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | // Button — variants: primary | ghost | danger (default neutral). Sizes: sm | lg.
export default function Button({
variant = "neutral",
size,
block,
loading = false,
children,
className = "",
disabled,
...rest
}) {
const classes = [
"btn",
variant === "primary" && "btn--primary",
variant === "ghost" && "btn--ghost",
variant === "danger" && "btn--danger",
size === "sm" && "btn--sm",
size === "lg" && "btn--lg",
block && "btn--block",
className,
]
.filter(Boolean)
.join(" ");
return (
<button className={classes} disabled={disabled || loading} {...rest}>
{loading && <span className="spin" aria-hidden />}
{children}
</button>
);
}
|