Tokens, iconography, and components that power the hub, field guide, releases, architecture, and flat docs. Built for AAA contrast on a dark surface, fully responsive, keyboard-first.
Body/secondary text is AAA (≥7:1). Accent tokens are ≥4.5:1 and reserved for large text, icons, borders, and data — never small body copy. Values shown are contrast vs --BB-bg.
Inter for UI, JetBrains Mono for code/mono labels. Display uses clamp() so it never overflows on any viewport.
Body copy sits at --BB-t2 (#D1CEC5), comfortably above the AAA 7:1 threshold at 15.9:1 on the base background.
~/.spruce_grove/scripts/update-code-grove.sh and json.dumps(data, indent=2) wrap cleanly at any width.
Lucide stroke set, weight 2, rounded joins, tinted per context. Shared through assets/icons.js — call BB.icon(name). Decorative glyphs are aria-hidden; only meaningful ones carry labels.
One geometry, four jobs — the grove spruce (stepped canopy, trunk notch, rounded joins, low-opacity fill wash) composed per use. Masters in logos/, site copies in assets/. Full rules live in BRAND.md → The logo pack.
Editable sources in logos/ (SVG first, PNG renders exported); site copies in assets/. Favicon + apple-touch are Disc renders. Below 20px, only the Disc survives. Legacy marks (official, badge_*, noback) are frozen for old embeds only.
Left column on desktop (≥981px), off-canvas drawer on mobile with a hamburger topbar. Collapses on desktop via the header toggle or Esc; traps focus when open on mobile; restores focus on close; persists the desktop collapse state.
Modal dialog with focus trap, Esc/backdrop close, "Open page" (full detail in a new tab), "Copy link", and deep-linkable #detail=<key> state. Trigger with data-pop.
--BB-focus (#E4AA71) at 3px-equivalent high contrast, and all motion respects prefers-reduced-motion.