// Button system (spec "Buttons", ADR 0001). Styles live in src/styles/buttons.css. // Each component renders a native ); } /* 2. Circle expand ----------------------------------------------------- */ export interface GrowButtonProps extends NativeButton { label: string; icon?: ReactNode; } export function GrowButton({ label, icon, className, type = "button", ...rest }: GrowButtonProps) { return ( ); } /* 3. Outline fill sweep ------------------------------------------------ */ export interface SweepButtonProps extends NativeButton { label: string; /** Selected chip: stays filled. Sets aria-pressed when given. */ selected?: boolean; } export function SweepButton({ label, selected, className, type = "button", ...rest }: SweepButtonProps) { return ( ); } /* 4. Soft depth, rising liquid ----------------------------------------- */ export interface DepthButtonProps extends NativeButton { label: string; sublabel?: string; icon?: ReactNode; /** Trailing content, for example a chevron or the current theme name. */ trailing?: ReactNode; } export function DepthButton({ label, sublabel, icon, trailing, className, type = "button", ...rest }: DepthButtonProps) { return ( ); } /* 5. Sparkle glow ------------------------------------------------------ */ const SPARKS = Array.from({ length: 10 }, (_, i) => i); function Sparks() { return ( ); } export interface SparkleButtonProps extends NativeButton { /** "signin": folded corner and hexagon icon. "fab": mobile new-post, plus icon only. */ variant?: "signin" | "fab"; /** Visible text for "signin"; accessible name for "fab". */ label: string; } export function SparkleButton({ variant = "signin", label, className, type = "button", ...rest }: SparkleButtonProps) { if (variant === "fab") { return ( ); } return ( ); } /* Glossy crimson icon button ------------------------------------------- */ export interface IconButtonProps extends NativeButton { /** Accessible name; the button shows only the icon. */ label: string; icon: ReactNode; shape?: "square" | "round"; size?: "md" | "sm"; } export function IconButton({ label, icon, shape = "square", size = "md", className, type = "button", ...rest }: IconButtonProps) { return ( ); }