'use client';
import { forwardRef, ButtonHTMLAttributes } from 'react';
export interface ChaosButtonProps extends ButtonHTMLAttributes {
/** Chaos level */
chaos?: 'mild' | 'medium' | 'extreme';
/** Button variant */
variant?: 'solid' | 'outline' | 'broken';
/** Accent color (hex or CSS color) */
accentColor?: string;
}
const chaosClasses = {
mild: 'data-[chaos]:debris-opacity-30 data-[chaos]:ghost-anim-duration-300',
medium: '',
extreme: 'data-[chaos]:debris-lg data-[chaos]:ghost-anim-duration-80 data-[chaos]:shake-on-hover',
};
const variantClasses = {
solid: 'bg-[var(--accent)] text-black',
outline: 'bg-transparent border border-current text-inherit',
broken: 'bg-transparent border border-current text-inherit [clip-path:polygon(0_0,100%_0,100%_30%,95%_30%,95%_70%,100%_70%,100%_100%,0_100%)]',
};
export const ChaosButton = forwardRef(
(
{
children,
chaos = 'medium',
variant = 'solid',
accentColor = '#ff0040',
className,
style,
...props
},
ref
) => {
return (
);
}
);
ChaosButton.displayName = 'ChaosButton';
export default ChaosButton;