Skip to content
Values

Theprinciplesbehindeverycomponent

Six decisions we make the same way every time, so you never have to guess how a new component will behave.

Own the source

Every component installs as plain TypeScript in your repo. No package to pin, nothing to wait on.

Accessible by default

Keyboard paths, focus rings, and screen reader labels are part of the component, not a follow-up ticket.

Tokens over hex

One set of CSS variables drives light, dark, and any brand you bring. Change the token, change the product.

Compound first

Small composable parts you can rearrange, with a one-prop form for the common case.

RTL without config

Logical properties and mirrored icons mean Arabic and Hebrew layouts work the day you flip the direction.

Plain language

Labels, empty states, and docs read like a person wrote them. Short, specific, no hype.