Brand Button
<brand-button> wraps Shoelace's <sl-button> with a brand variant
API. Consumers use Snyder vocabulary (primary, secondary, ghost,
destructive); the component maps those to the correct Shoelace variant internally.
Variants
Soft
Pale tinted background, coloured text — quieter than solid variants.
Outline
Sizes
Pill
Circle
Circular hit-area, ideal for icon-only buttons.
With icons
Button group
States
Form types
Variant mapping
| Brand variant | Shoelace variant |
|---|---|
primary | primary |
secondary | neutral (restyled to --brandOS-primary-750) |
natural | neutral (pure Shoelace neutral gray) |
ghost | text |
link | text (restyled with underline + --brandOS-primary-500) |
destructive | danger |
Usage
import { BrandButton } from '@brandos/ui';
<brand-button variant="primary">Save</brand-button>
<brand-button variant="destructive" disabled>Delete</brand-button>
Behaviour notes
- Unknown
variantvalues fall back toprimary— a typo never renders a broken button. - Styling uses
--brandOS-*tokens only; no hex literals. - Theme switching is driven by
data-themeon the root element.