Skip to main content

Side

The design system for Sipe products

Tokens first

Color, spacing, radius and type all resolve through @sipe-team/tokens. Components read the contract rather than literal values, so a token change lands everywhere at once.

Typed and tested

Every package ships ESM and CJS with types, and each component carries Vitest coverage for its variants, accessibility states and controlled behavior.

Composable by default

Components forward refs, extend their native element props and support asChild through Radix Slot — so they fit the markup you already have.