Skip to main content

Components

Reusable UI components that embody the Canon aesthetic. Built with Svelte, designed for subtraction.

Button

Primary, secondary, and ghost variants. Follows Canon motion tokens for hover states.

Card

Container component with elevation tokens. Supports subtle, surface, and elevated states.

Navigation

Header navigation, sidebars, breadcrumbs, and tabs. Patterns for wayfinding.

Component Philosophy

Every Canon component follows the Subtractive Triad—evaluated at three levels of abstraction.

DRY (Implementation)

Components unify patterns. No duplicated variants.

Rams (Artifact)

Every prop, every variant must earn its existence.

Heidegger (System)

Components serve the design system. Tools recede into use.

Component Tokens

All components use Canon tokens for consistency. No hardcoded colors, spacing, or motion.

Colors

--color-bg-surface --color-fg-primary --color-border-default

Motion

--duration-micro --ease-standard

Spacing

--space-xs --space-sm --space-md

Borders

--radius-sm --radius-md --radius-lg