Design system · v3 spec sheet

The system, all in one place.

v3.0 · Jacaranda Labs Phase 1 · Geist + JetBrains Mono direction

What makes this site not another site.

Seven concrete moves that distinguish the Jacaranda Labs visual language from the cream-and-green Anthropic-template aesthetic. Each is implemented in the live mockup and documented here as a binding rule.

i.

Procedural grain texture, real Canvas 2D.

A noise field rendered on initial page load via Canvas 2D, sitting beneath the cream background at 2.5% opacity in light mode, 4% in dark mode. Mix-blend-mode: multiply (light) / screen (dark). Repaints once per resize. Signals the cream surface is intentional, not a default.

  • Generated in JS — no JPG dependency, no asset weight
  • Clipped to viewport with position: fixed, z-index: 0
  • All page content sits above with z-index: 1
  • ~0.5 KB of data, generated client-side
ii.

Signature numeral treatment throughout.

Every signature numeral on the site renders in JetBrains Mono with tabular figures and tight negative tracking. Numerals carry the engineered, terminal-native feel of the brand — mechanical anchors, not decorative ones. Used on the stats strip, score-line section labels (i. ii. iii.), how-it-works sticky column, footer year, ventures tile labels, and the final-CTA background numeral.

  • font-family: JetBrains Mono, weight 500
  • letter-spacing: -0.04em to -0.05em (precise, not romantic)
  • font-variant-numeric: tabular-nums
  • Accent green when prominent, tertiary grey when muted
iii.

Five departments as a horizontal score line.

Replaces the standard five-up grid. Each department is a row in a single composition, separated by hairline rules. Numeral, name, outcome, icon — each in its own column. Icons stroke-draw in sequence as the user scrolls into view (1.2s with staggered 100ms delays). Refuses the obvious component layout in favour of a more confident composition.

  • Five rows, single composition, not a grid
  • Roman-numeral-styled lowercase labels (i. ii. iii. iv. v.)
  • Department names at h2 scale — they read as a sequence of statements
  • SVG icon stroke-dashoffset animation triggered on intersection
  • Hover slides the entire row into a soft accent background, with a 4px left edge running outside the container
iv.

Mono ticker below the hero.

A horizontally-scrolling strip of mono words — the things we build. workflows · pipelines · agents · dashboards · integrations · systems · automation · handoffs · orchestration · infrastructure. 80-second loop, paused on hover, respects prefers-reduced-motion. Subconscious reminder of the work, technical accent.

  • Pure CSS animation (transform: translateX, linear infinite)
  • Items duplicated for seamless loop
  • Slash separator coloured accent green between items
  • Border-top and border-bottom hairline rules contain it
v.

Editorial asymmetry on case studies.

Three case-study cards laid out as a magazine spread, not a CMS template. First card large, top-left, padded to 48px, with the deepest body copy. Second card offsets right, slightly lower. Third card smaller, left, slightly raised. CSS Grid with explicit column spans and margin offsets — every position is intentional, not chaotic.

  • 12-column grid above 1024px
  • card-1: cols 1–7, no offset, padding 48px
  • card-2: cols 6–12, margin-top 64px, padding 40px
  • card-3: cols 1–5, margin-top -32px, padding 32px
  • On mobile, falls back to single-column stack
vi.

Sticky-scroll moment on how-it-works.

Two-column layout above 1024px. Left column is sticky and contains a single oversized mono numeral (7–12rem, JetBrains Mono). Right column is the three steps stacked. As the user scrolls, the numeral changes (1 → 2 → 3) with a 600ms fade-and-slide transition based on which step is in the viewport's central band. Below 1024px the layout collapses; numerals appear inline with each step.

  • position: sticky on the numeral column with top: 25vh
  • IntersectionObserver tracks step visibility, sets active class
  • Numerals stack absolutely; only .active is visible
  • rootMargin tuned so the change happens at the centre of the viewport
  • Reduced-motion users see all numerals statically inline
vii.

Numerals strip — real numbers, magazine-style.

Three large stat figures sit between the hero and the score line: 4 days · 95% · 8 weeks. JetBrains Mono, weight 500, tabular figures, divided by hairline vertical rules. Reads as substantive proof points before the buyer ever sees a feature claim.

  • Suffix (days, %, weeks) in 50% scale, super-positioned, secondary text colour
  • Vertical hairline divider only between cards (pseudo-element trick)
  • Three-up on desktop, single column on mobile

The palette, both modes.

Current mode (toggle to compare)

--backgroundPage
--surfaceCards
--text-primaryBody
--text-secondaryMuted
--text-tertiarySubtle
--border-subtleHairlines
--accent-primaryCTAs · numerals
--accent-activeHover

Principles

One accent family. No secondary or tertiary accent colours.

Both modes maintain WCAG AA contrast: 4.5:1 for body text, 3:1 for large text.

Forest green carries across both modes — same brand identity, value-shifted for context.

Cream #FAFAF2 and dark green #0D1F0F are the brand's canonical neutrals.

The voice, in three families.

Hero
Geist 500
clamp(2.5rem, 8vw, 5.5rem)
track -0.025em
Accent green for emphasis
A signature headline.
H1
Geist 500
clamp(2rem, 5vw, 3.5rem)
track -0.02em
A page-level heading.
H2
Geist 500
clamp(1.5rem, 3vw, 2.25rem)
track -0.015em
A section heading.
Numeral (signature)
JetBrains Mono 500
tabular-nums
track -0.04em to -0.05em
Engineered, mechanical anchor
5
Body
Inter Tight 400
1rem · line 1.65
Standard body text. The workhorse of the design — used for prose, descriptions, and general copy across every page. Line height of 1.65 for breathable reading.
Eyebrow
JetBrains Mono 500
0.75rem · track 0.08em
uppercase · accent · with hairline rule
Section eyebrow label
Mono
JetBrains Mono 400
0.875rem · track 0.02em
Technical accents, metadata
JL-2026-0142 · code · technical accents

Three easings. That's it.

--ease-out-expo
cubic-bezier(0.16, 1, 0.3, 1)
The workhorse
--ease-out-quart
cubic-bezier(0.25, 1, 0.5, 1)
Subtler reveals
--ease-in-out
cubic-bezier(0.65, 0, 0.35, 1)
Mode transitions

Generic AI-template patterns that never appear.

Per DESIGN_SYSTEM.md § 7.2 — these patterns read as derivative in 2026 and must not appear anywhere on the site.

  • Sparkle / four-pointed star icons
  • Wavy gradient orbs
  • Rotating gear with spark
  • Neural network as cluster of dots
  • Magnifying glass with spark
  • Speech bubble with circuit lines
  • Brain with circuitry
  • Robot face
  • Wand or magic stick
  • Lightning bolt as standalone
  • Crystal ball
  • Any emoji, anywhere
  • Auto-playing background video
  • Floating-blob backgrounds
  • Linear gradient hero text
  • Cursor spotlight effects
  • Particle systems
  • Three-card-feature-grid with stock icons

Hero strikethrough animation.

2.4s total runtime. Plays once per session. Reduced-motion users see the final state instantly.

The work that's holding your business back. Automated. End to end.

Design system · J Labs