refactor: extract button styles

This commit is contained in:
Carlos Valente
2025-06-24 16:56:52 +02:00
committed by Carlos Valente
parent e74b2daee7
commit d1c58712ae
5 changed files with 98 additions and 120 deletions
@@ -5,15 +5,20 @@ import { cx } from '../../utils/styleUtils';
import style from './Button.module.scss';
interface ButtonProps extends ButtonHTMLAttributes<HTMLButtonElement> {
variant?: 'subtle' | 'primary' | 'destructive' | 'subtle-destructive';
variant?: 'primary' | 'subtle' | 'subtle-white' | 'destructive' | 'subtle-destructive';
size?: 'medium' | 'large' | 'xlarge';
fluid?: boolean;
}
export default function Button(props: ButtonProps) {
const { className, children, variant = 'subtle', size = 'medium', ...buttonProps } = props;
const { className, children, variant = 'subtle', size = 'medium', fluid, ...buttonProps } = props;
return (
<button className={cx([style.baseButton, style[variant], style[size], className])} type='button' {...buttonProps}>
<button
className={cx([style.baseButton, style[variant], style[size], fluid && style.fluid, className])}
type='button'
{...buttonProps}
>
{children}
</button>
);