w-lab-app/src/components/ui/Button/Button.tsx
gofnnp 67f4dfdf3d main
compatibility & palm generations & add zustand & config prettier eslint
2025-06-23 00:46:11 +04:00

32 lines
710 B
TypeScript

import { ButtonHTMLAttributes, ReactNode } from "react";
import clsx from "clsx";
import styles from "./Button.module.scss";
export type ButtonVariant = "primary" | "secondary" | "outline" | "ghost";
export type ButtonSize = "sm" | "md" | "lg";
export interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
children: ReactNode;
variant?: ButtonVariant;
size?: ButtonSize;
className?: string;
}
export default function Button({
children,
variant = "primary",
size = "md",
className,
...rest
}: ButtonProps) {
return (
<button
className={clsx(styles.button, styles[variant], styles[size], className)}
{...rest}
>
{children}
</button>
);
}