Spacing & Layout

Spacing uses an 8px base unit. Layout containers use fluid widths with min() for max-width capping.

Spacing scale

TokenValueMultiple
--space-xs4px0.5x
--space-sm8px1x
--space-md16px2x
--space-lg24px3x
--space-xl32px4x
--space-2xl48px6x
--space-3xl56px7x
--space-4xl72px9x
--space-5xl120px15x

Border radius

TokenValueComputedUsage
--radius-sm0.375rem6pxInline code, small elements
--radius-md0.5rem8pxIcon containers
--radius-lg0.75rem12pxCards, buttons
--radius-xl1.25rem20pxLarge cards, FAQ items
--radius-pill9999pxpillBadges, nav bar

Shadows

TokenValueUsage
--shadow-xs0 1px 2px rgba(15, 23, 42, 0.03)Minimal elevation
--shadow-sm0 1px 2px rgba(15, 23, 42, 0.03), 0 12px 30px rgba(15, 23, 42, 0.05)Card hover, button hover
--shadow-md0 1px 2px rgba(15, 23, 42, 0.03), 0 16px 40px rgba(15, 23, 42, 0.04)Product card hover
--shadow-lg0 1px 2px rgba(15, 23, 42, 0.04), 0 20px 50px rgba(15, 23, 42, 0.05)Elevated elements

Z-index scale

TokenValueUsage
--z-base1Default stacking
--z-card10Cards above base
--z-nav100Navigation bar
--z-overlay200Mobile sidebar overlay
--z-modal300Modals

Layout containers

TokenValueMax width
--shell-widthmin(100% - 3rem, 76rem)1216px
--shell-narrowmin(100% - 3rem, 64rem)1024px

Usage:

.container {
  width: var(--shell-width);
  margin: 0 auto;
}

section {
  padding: 3.5rem var(--space-lg);
  width: var(--shell-width);
  margin: 0 auto;
}

Responsive breakpoint

Single breakpoint at 768px:

@media (max-width: 768px) {
  section {
    padding: var(--space-2xl) var(--space-md);
  }
}
ElementDesktopMobile (<=768px)
Section padding3.5rem 24px48px 16px
Button padding12px 24px10px 18px
Grid columns2-41
Docs sidebar240px fixedFull-width overlay
Docs content margin240px left0