back to gallery
design language·cambium

Cambium

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
A cultivated-land interface set after sundown. An independent reconception of the Nature Distilled Organic brief, not a recolour of its refinement: where the brief asked for mineral-deep earth, material honesty and organic flow, Cambium answers with one living idea — the growth ring. Like the cambium layer where a tree lays down each season's ring, every reading (depth, moisture, yield, status) grows outward as concentric contour rings, and you read the whole stand at a glance. The ground is deep steeped earth at dusk, the ink warm bone, the three pigments used like low evening light.
values
organic warmthmaterial honestygeological colour depthunhurried rhythmtactile authenticity
anti-values
×synthetic brightness×cold white minimalism×rigid uniform geometry×borders and accent edges×muddy washes
tokens
colors15 items
bg
#211913
surface
#2C211A
surface_2
#382B21
text
#EFE4D1
muted
#B3A286
faint
#7E715B
border
rgba(239,228,209,0.16)
accent
#E0904C
accent_2
#93AC6C
accent_3
#DCB85B
on_accent
#211913
success
#86A258
warning
#CDA055
error
#CC6044
info
#7299A4
typography8 items
base size
17px
body font
IBM Plex Sans
heading font
Spectral
mono font
JetBrains Mono
heading weight
600
heading transform
none
letter spacing
-0.02em
google fonts url
https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;0,700;1,500&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap
radii4 items
sm
16px
lg
24px
pill
9999px
card
24px
shadows3 items
sm
0 2px 6px -3px rgba(0,0,0,0.5)
md
0 18px 44px -22px rgba(0,0,0,0.7)
lg
0 34px 70px -30px rgba(0,0,0,0.8)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces4 items
ground
#211913
raised
#2C211A
recessed
#382B21
grain
fractalNoise SVG at ~4.5% opacity
borders3 items
style
none
affordance
inset 0 0 0 1.5px rgba(239,228,209,0.16) on inputs only
character
warm seam, never a card outline or accent edge
motion3 items
duration
400ms
easing
cubic-bezier(0.2,0.7,0.2,1)
philosophy
settling into place; settled state default, reveal gated behind a JS class; respects prefers-reduced-motion
rules
composition
Asymmetric: a sticky left core-index rail of ringed markers; content offset right; cards pin at varying offsets, never an even row; nav open across the masthead; only the hero is full-bleed.
hierarchy

One ember primary action per view; secondary actions quiet; Spectral display carries the headline, mono labels carry eyebrows and readings.

density

Airy — generous whitespace, padding above every title.

signature
The growth ring — every metric renders as a nest of concentric contour rings; count and reach carry the value, the outermost ring carries season status. Recurs as the brand seam, the index marker, the dashboard chart, and the legend.
layout
grid

Asymmetric rail + content; container max 1240px; minmax(0,1fr) columns with min-width:0

whitespace

generous; content pins at offsets and breathes; padding above titles

density

airy

responsive
single column on mobile with top nav hidden and the core-index rail folded to a horizontal ring-marker row; contained content capped and centred on ultra-wide; only the hero spans 100vw
breakpoints
sm
640px
md
768px
lg
1024px
xl
1280px
guidance
do
  • Render every metric as a growth ring; let reach and ring-count carry the value
  • Use the three pigments like low evening light; keep semantic colours quiet
  • Pad above every title; let content pin at offsets and breathe
  • Keep the nav open across the masthead
  • Separate with warm shadow and a recessed sediment surface, never borders
avoid
  • Use white surfaces or pure-black text
  • Draw a border, hairline, or single accent edge on a card
  • Mix in arbitrary radii outside {16,24,9999}
  • Stamp the growth ring where no value is read until it becomes wallpaper
  • Put emoji or symbol glyphs in copy or on buttons
imagery
pairs with

loam

summary
Earth-pigment strata washes with a single botanical contour line on handmade-paper grain, composed as aerial topographic survey of cultivated dusk land — concentric contour rings around hilltops, watershed meanders between fields — the growth-ring idea made literal in the terrain.
subjects
aerial topographic contour terraingrowth rings and cross-cut heartwoodwatershed meanders and field edgescultivated plots and coppiceroot systems and soil at dusk
usage
Full-bleed contour-terrain hero, dark with glowing bone/ochre/moss contour lines and a quieter lower-left passage for overlay legibility; feature spots as single centred subjects in mineral washes.
katagami spec
# Cambium

## Philosophy

A cultivated-land interface set after sundown. An independent reconception of the Nature Distilled Organic brief, not a recolour of its refinement: where the brief asked for mineral-deep earth, material honesty and organic flow, Cambium answers with one living idea — the growth ring. Like the cambium layer where a tree lays down each season's ring, every reading (depth, moisture, yield, status) grows outward as concentric contour rings, and you read the whole stand at a glance. The ground is deep steeped earth at dusk, the ink warm bone, the three pigments used like low evening light.

### Values

- organic warmth
- material honesty
- geological colour depth
- unhurried rhythm
- tactile authenticity

### Anti-Values

- synthetic brightness
- cold white minimalism
- rigid uniform geometry
- borders and accent edges
- muddy washes

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#211913` |
| surface | `#2C211A` |
| surface_2 | `#382B21` |
| text | `#EFE4D1` |
| muted | `#B3A286` |
| faint | `#7E715B` |
| border | `rgba(239,228,209,0.16)` |
| accent | `#E0904C` |
| accent_2 | `#93AC6C` |
| accent_3 | `#DCB85B` |
| on_accent | `#211913` |
| success | `#86A258` |
| warning | `#CDA055` |
| error | `#CC6044` |
| info | `#7299A4` |

### Typography

- **Base Size**: 17px
- **Body Font**: IBM Plex Sans
- **Heading Font**: Spectral
- **Mono Font**: JetBrains Mono
- **Heading Weight**: 600
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Spectral:ital,wght@0,400;0,500;0,600;0,700;1,500&family=IBM+Plex+Sans:wght@400;500;600&family=JetBrains+Mono:wght@400;500&display=swap

### Radii

- **Sm**: 16px
- **Lg**: 24px
- **Pill**: 9999px
- **Card**: 24px

### Shadows

- **Sm**: 0 2px 6px -3px rgba(0,0,0,0.5)
- **Md**: 0 18px 44px -22px rgba(0,0,0,0.7)
- **Lg**: 0 34px 70px -30px rgba(0,0,0,0.8)

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64,96]

### Surfaces

- **Ground**: #211913
- **Raised**: #2C211A
- **Recessed**: #382B21
- **Grain**: fractalNoise SVG at ~4.5% opacity

### Borders

- **Style**: none
- **Affordance**: inset 0 0 0 1.5px rgba(239,228,209,0.16) on inputs only
- **Character**: warm seam, never a card outline or accent edge

### Motion

- **Duration**: 400ms
- **Easing**: cubic-bezier(0.2,0.7,0.2,1)
- **Philosophy**: settling into place; settled state default, reveal gated behind a JS class; respects prefers-reduced-motion

## Rules

### Composition

Asymmetric: a sticky left core-index rail of ringed markers; content offset right; cards pin at varying offsets, never an even row; nav open across the masthead; only the hero is full-bleed.

### Hierarchy

One ember primary action per view; secondary actions quiet; Spectral display carries the headline, mono labels carry eyebrows and readings.

### Density

Airy — generous whitespace, padding above every title.

### Signature

The growth ring — every metric renders as a nest of concentric contour rings; count and reach carry the value, the outermost ring carries season status. Recurs as the brand seam, the index marker, the dashboard chart, and the legend.

## Layout

### Grid

Asymmetric rail + content; container max 1240px; minmax(0,1fr) columns with min-width:0

### Whitespace

generous; content pins at offsets and breathes; padding above titles

### Density

airy

### Responsive

single column on mobile with top nav hidden and the core-index rail folded to a horizontal ring-marker row; contained content capped and centred on ultra-wide; only the hero spans 100vw

### Breakpoints

- **Sm**: 640px
- **Md**: 768px
- **Lg**: 1024px
- **Xl**: 1280px

## Guidance

### Do

- Render every metric as a growth ring; let reach and ring-count carry the value
- Use the three pigments like low evening light; keep semantic colours quiet
- Pad above every title; let content pin at offsets and breathe
- Keep the nav open across the masthead
- Separate with warm shadow and a recessed sediment surface, never borders

### Don't

- Use white surfaces or pure-black text
- Draw a border, hairline, or single accent edge on a card
- Mix in arbitrary radii outside {16,24,9999}
- Stamp the growth ring where no value is read until it becomes wallpaper
- Put emoji or symbol glyphs in copy or on buttons

### Accessibility

Body 17px, table rows 14.5px; bone ink on steeped earth clears AA; accent text uses pigment at sufficient weight on dark ground; ARIA roles/states on switches and checkboxes; hero image decorative (aria-hidden); motion respects prefers-reduced-motion; all marks are SVG primitives.

## Imagery Direction

### Pairs With

loam

### Summary

Earth-pigment strata washes with a single botanical contour line on handmade-paper grain, composed as aerial topographic survey of cultivated dusk land — concentric contour rings around hilltops, watershed meanders between fields — the growth-ring idea made literal in the terrain.

### Subjects

- aerial topographic contour terrain
- growth rings and cross-cut heartwood
- watershed meanders and field edges
- cultivated plots and coppice
- root systems and soil at dusk

### Usage

Full-bleed contour-terrain hero, dark with glowing bone/ochre/moss contour lines and a quieter lower-left passage for overlay legibility; feature spots as single centred subjects in mineral washes.
DESIGN.md
---
version: "alpha"
name: "Cambium"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#211913"
  surface: "#2C211A"
  surface_2: "#382B21"
  text: "#EFE4D1"
  muted: "#B3A286"
  faint: "#7E715B"
  accent: "#E0904C"
  accent_2: "#93AC6C"
  accent_3: "#DCB85B"
  on_accent: "#211913"
  success: "#86A258"
  warning: "#CDA055"
  error: "#CC6044"
  info: "#7299A4"
typography:
  headline-lg:
    fontFamily: "Spectral"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Spectral"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "JetBrains Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  sm: "16px"
  lg: "24px"
  pill: "9999px"
  card: "24px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_2:
    backgroundColor: "{colors.surface_2}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-faint:
    backgroundColor: "{colors.faint}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_3:
    backgroundColor: "{colors.accent_3}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.lg}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.lg}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.lg}"
    height: "44px"
---

# Cambium

## Overview

A cultivated-land interface set after sundown. An independent reconception of the Nature Distilled Organic brief, not a recolour of its refinement: where the brief asked for mineral-deep earth, material honesty and organic flow, Cambium answers with one living idea — the growth ring. Like the cambium layer where a tree lays down each season's ring, every reading (depth, moisture, yield, status) grows outward as concentric contour rings, and you read the whole stand at a glance. The ground is deep steeped earth at dusk, the ink warm bone, the three pigments used like low evening light.

### Values

- organic warmth
- material honesty
- geological colour depth
- unhurried rhythm
- tactile authenticity

### Anti-Values

- synthetic brightness
- cold white minimalism
- rigid uniform geometry
- borders and accent edges
- muddy washes

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| bg | `#211913` |
| surface | `#2C211A` |
| surface_2 | `#382B21` |
| text | `#EFE4D1` |
| muted | `#B3A286` |
| faint | `#7E715B` |
| accent | `#E0904C` |
| accent_2 | `#93AC6C` |
| accent_3 | `#DCB85B` |
| on_accent | `#211913` |
| success | `#86A258` |
| warning | `#CDA055` |
| error | `#CC6044` |
| info | `#7299A4` |

## Typography

- **Headline-Lg**: Spectral, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Spectral, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 17px, weight 400, line-height 1.5.
- **Label-Md**: JetBrains Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`

### Grid

Asymmetric rail + content; container max 1240px; minmax(0,1fr) columns with min-width:0

### Whitespace

generous; content pins at offsets and breathes; padding above titles

### Density

airy

### Responsive

single column on mobile with top nav hidden and the core-index rail folded to a horizontal ring-marker row; contained content capped and centred on ultra-wide; only the hero spans 100vw

### Breakpoints

- **Sm**: 640px
- **Md**: 768px
- **Lg**: 1024px
- **Xl**: 1280px

## Elevation & Depth

### Shadows

- **Sm**: 0 2px 6px -3px rgba(0,0,0,0.5)
- **Md**: 0 18px 44px -22px rgba(0,0,0,0.7)
- **Lg**: 0 34px 70px -30px rgba(0,0,0,0.8)

## Shapes

### Rounded

- **Sm**: `16px`
- **Lg**: `24px`
- **Pill**: `9999px`
- **Card**: `24px`

### Surfaces

- **Ground**: #211913
- **Raised**: #2C211A
- **Recessed**: #382B21
- **Grain**: fractalNoise SVG at ~4.5% opacity

### Borders

- **Style**: none
- **Affordance**: inset 0 0 0 1.5px rgba(239,228,209,0.16) on inputs only
- **Character**: warm seam, never a card outline or accent edge

## Components

### Composition

Asymmetric: a sticky left core-index rail of ringed markers; content offset right; cards pin at varying offsets, never an even row; nav open across the masthead; only the hero is full-bleed.

### Hierarchy

One ember primary action per view; secondary actions quiet; Spectral display carries the headline, mono labels carry eyebrows and readings.

### Density

Airy — generous whitespace, padding above every title.

### Signature

The growth ring — every metric renders as a nest of concentric contour rings; count and reach carry the value, the outermost ring carries season status. Recurs as the brand seam, the index marker, the dashboard chart, and the legend.

## shadcn/ui Usage

When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.

DESIGN.md with shadcn: `/language/en-019ef920-4320-7fd1-9828-eaa02c73ab2e/DESIGN.with-shadcn.md`.

The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.

Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.

## Do's and Don'ts

- Do Render every metric as a growth ring; let reach and ring-count carry the value
- Do Use the three pigments like low evening light; keep semantic colours quiet
- Do Pad above every title; let content pin at offsets and breathe
- Do Keep the nav open across the masthead
- Do Separate with warm shadow and a recessed sediment surface, never borders
- Don't Use white surfaces or pure-black text
- Don't Draw a border, hairline, or single accent edge on a card
- Don't Mix in arbitrary radii outside {16,24,9999}
- Don't Stamp the growth ring where no value is read until it becomes wallpaper
- Don't Put emoji or symbol glyphs in copy or on buttons

### Accessibility

Body 17px, table rows 14.5px; bone ink on steeped earth clears AA; accent text uses pigment at sufficient weight on dark ground; ARIA roles/states on switches and checkboxes; hero image decorative (aria-hidden); motion respects prefers-reduced-motion; all marks are SVG primitives.

## Imagery Direction

### Pairs With

loam

### Summary

Earth-pigment strata washes with a single botanical contour line on handmade-paper grain, composed as aerial topographic survey of cultivated dusk land — concentric contour rings around hilltops, watershed meanders between fields — the growth-ring idea made literal in the terrain.

### Subjects

- aerial topographic contour terrain
- growth rings and cross-cut heartwood
- watershed meanders and field edges
- cultivated plots and coppice
- root systems and soil at dusk

### Usage

Full-bleed contour-terrain hero, dark with glowing bone/ochre/moss contour lines and a quieter lower-left passage for overlay legibility; feature spots as single centred subjects in mineral washes.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "cambium",
  "type": "registry:theme",
  "title": "Cambium shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#211913",
      "foreground": "#EFE4D1",
      "card": "#2C211A",
      "card-foreground": "#EFE4D1",
      "popover": "#2C211A",
      "popover-foreground": "#EFE4D1",
      "primary": "#EFE4D1",
      "primary-foreground": "#111111",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#B3A286",
      "muted-foreground": "#EFE4D1",
      "accent": "#E0904C",
      "accent-foreground": "#ffffff",
      "destructive": "#CC6044",
      "border": "rgba(239,228,209,0.16)",
      "input": "rgba(239,228,209,0.16)",
      "ring": "#E0904C",
      "chart-1": "#EFE4D1",
      "chart-2": "#f4f4f5",
      "chart-3": "#E0904C",
      "chart-4": "#86A258",
      "chart-5": "#CDA055",
      "sidebar": "#2C211A",
      "sidebar-foreground": "#EFE4D1",
      "sidebar-primary": "#EFE4D1",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#7299A4",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "rgba(239,228,209,0.16)",
      "sidebar-ring": "#E0904C",
      "radius": "24px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#EFE4D1",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#E0904C",
      "accent-foreground": "#ffffff",
      "destructive": "#CC6044",
      "border": "#303642",
      "input": "#303642",
      "ring": "#E0904C",
      "chart-1": "#EFE4D1",
      "chart-2": "#f4f4f5",
      "chart-3": "#E0904C",
      "chart-4": "#86A258",
      "chart-5": "#CDA055",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#EFE4D1",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#E0904C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#E0904C",
      "radius": "24px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef920-4320-7fd1-9828-eaa02c73ab2e",
    "slug": "cambium",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "colors": [
        "accent",
        "accent_2",
        "accent_3",
        "bg",
        "border",
        "error",
        "faint",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "mono_font"
      ],
      "radii": [
        "card",
        "lg",
        "pill",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "grain",
        "ground",
        "raised",
        "recessed"
      ],
      "borders": [
        "affordance",
        "character",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

bespoke marketing landingopen full page ↗
landing · cambium
DESIGN.md

at a glance

Typography

headline-lgSpectral · 33px · 700

The quick brown fox jumps

headline-mdSpectral · 27px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 17px · 400

The quick brown fox jumps

label-mdJetBrains Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

remix lane

try a remix

Keep Cambiumand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.

UI language · fixed
Cambium
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

Evolved from
related

More like this