Design
Adapted Radix foundations, photographic themes and shared components. Import from components/ui.
Control geometry
Standard 44px; compact 32px, increasing to 44px on touch devices.
Surfaces and hierarchy
Photo details
12px metadata stays secondary to the photograph.
50mm · f/1.4 · ISO 200Selected
Soft accent surface; focus has its own ring.
Icons
Filter states
Selected surfaces stay distinct from keyboard focus and disabled controls.
Drawing tools
The submitted drawing uses white paper in every theme.
Spacing
Adapted Radix scale: 4, 8, 12, 16, 24, 32, 40, 48 and 64px.
Typography
Labels 14px/20px, metadata 12px/16px, body 18px with 1.5 line height.
Motion
Shared durations and easing curves. Reduced-motion preferences are handled globally.
--t-fast--t-base--t-slow--t-theme--ease-out--ease-springColours
Adaptive palette using light-dark() and color-mix(). Pick any theme in the nav bar to preview its colour, scenery, and typography together.
Headings
Three visual levels. The as prop overrides the HTML element independently.
Level 1 — Section heading (24px)
Level 2 — Subsection heading (18px)
Level 3 — Minor heading (14px)
Muted secondary text for metadata and labels.
<Heading level={2}>Title</Heading><Caption>Secondary text</Caption>Card
Bordered surface container. Adapts to light and dark themes via color-mix.
<Card as="article">content</Card>Thumb
Image thumbnail with sharp corners. Default (150px) and small (112px) variants.
<Thumb size="small" src="..." alt="..." />Inputs & Controls
Form elements with consistent border, radius, and focus ring treatment.
<Input placeholder="..." /><Select variant="compact">...</Select><SegmentedToggle options={[...]} value={v} onChange={set} ariaLabel="..." />Pill
Rounded link/button for navigation and actions. Surface (filled) and ghost (transparent) variants.
<Pill href="#" variant="ghost">Link</Pill><PillButton>Action</PillButton>For <Link>: className={`${pillStyles.base} ${pillStyles.surface}`}Chart Tooltip
Accent-tinted tooltip shown on hover over chart bars/cells. Visible here for reference.
<ChartTooltip>Label · 42</ChartTooltip>Status and data rows
LoadingIndicator for model warm-up and pending work; the spinner stops under reduced motion.
<LoadingIndicator label="Loading…" /> · <StatBar label count maxCount />Stack
Utility classes for vertical rhythm. grid + gap at each spacing level.
className={commonStyles.stack}