Button

5 variants × 3 sizes with full hover, focus, active, and disabled coverage. shadcn/ui-aligned API: variant, size, asChild.

Variants
Sizes
With icon
Disabled

Add to your project

One command adds this component to your project.

1

Run the following command. New project? Run npx shadcn@latest init first to set up Tailwind and path aliases.

npx shadcn@latest add @aicanvas/andromeda-button-system

Props

Every prop this component accepts. Any other prop is forwarded to the underlying element.

PropTypeDefaultDescription
variant'default'|'outline'|'ghost'|'destructive'|'link''default'One of: default, outline, ghost, destructive, link.
size'sm'|'md'|'lg''md'One of: sm, md, lg.
asChildbooleanfalseWhen true, renders the only child element with the button's props/styles.
iconReact.ComponentType<{ size?: number }>-Phosphor / Lucide icon component rendered before children.
childrenReact.ReactNode-Content rendered inside the component.
classNamestring-Additional CSS classes applied to the root element.
styleReact.CSSProperties-Inline styles applied to the root element.
type'button'|'submit'|'reset''button'Native button type; defaults to 'button', so it does not submit an enclosing form unless set to 'submit'.
disabledboolean-When true, disables the control.
onClick(e: React.MouseEvent<HTMLButtonElement>) => void-Handler called when the element is clicked.

More Andromeda components