back to gallery
design language·vane

Vane

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
not set
tokens
colors14 items
bg
#F4F3EE
surface
#FFFFFF
surface_solid
#111318
text
#0B0B0D
muted
#6A6A66
border
rgba(11,11,13,0.10)
accent
#FF5B04
accent_2
#111318
accent_soft
rgba(255,91,4,0.14)
on_accent
#16130E
success
#2E9E5B
warning
#E8A200
error
#D6402C
info
#3B6FE0
typography10 items
base size
17px
body font
Schibsted Grotesk
heading font
Bricolage Grotesque
mono font
Martian Mono
heading weight
800
heading transform
none
letter spacing
-0.02em
line height
1.55
scale ratio
1.28
google fonts url
https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Schibsted+Grotesk:wght@400;500;600;700&family=Martian+Mono:wght@400;500;600;700&display=swap
radii4 items
none
0px
md
16px
lg
24px
full
9999px
shadows3 items
sm
0 2px 8px rgba(11,11,13,0.06)
md
0 12px 30px rgba(11,11,13,0.10)
lg
0 26px 60px rgba(11,11,13,0.16)
spacing2 items
base
8px
scale
8px, 14px, 20px, 28px, 44px, 64px, 96px, 132px
surfaces3 items
treatment
split-flap board — matte paper ground with charcoal mechanical character-cells and a horizontal flap-seam hairline through each cell
card style
borderless white cards on warm paper with a mono cell-strip header and foot; the flap-seam hairline recurs as the ornament system
bg pattern
recurring horizontal flap-seam rule and tight vertical cell columns; chronophotograph motion imagery in Cadence
borders4 items
default width
0px
accent width
2px
style
none
character
borderless; the only lines are the 1px flap-seam hairline through cells and the 2px flare underline links carry — never card borders or accent edges
motion3 items
duration
180ms
easing
cubic-bezier(0.2,0.9,0.1,1)
philosophy
mechanical flip resolution — scramble is loading, the flip is the transition, the lock is confirmation; snappy 120-220ms on interaction, watchable on the landing film; settled resolved board is the reduced-motion default
rules
composition
Compose as boards that resolve: a masthead cell-title, editorial body columns, and data set into departure-board rows. Content bands breathe; never box the chrome or trap nav in a pill bar.
hierarchy
Lead with Bricolage display against Schibsted body (extreme weight contrast); Martian mono runs cells, readouts, and micro-labels. Flare marks the one resolved/live/chosen element per view.
density

Airy editorial reading with tight mono readouts; generous padding above titles; one strict type scale, no one-off sizes.

signature patterns
Split-flap character cells (slate/lit/paper) that riffle through glyphs and lock; a word resolves in cascadeThe flap-seam hairline as the page-wide ornament system — through every cell, readout, and board rowOne molten flare fired only on the resolved/live/chosen; dark ink glyph on the flare cellBorderless white cards on warm paper with a mono cell-strip header/foot — never an accent edgeDeparture-board data rows: mono time column, resolving cells, uppercase gate status
layout
not set
guidance
not set
imagery
summary
Cadence chronophotographs: one subject caught across every phase of a move, silver on charcoal, a single molten flare on the resolved frame — woven through the landing as parallax plates and masked reveals.
pairs with

cadence

technique

stroboscopic long-exposure chronophotography; overlapping motion phases; single warm accent streak; deep charcoal negative space

palette

silver and charcoal monochrome with one molten-orange flare on warm paper

reference image file ids
fl-019f8b12-5e5b-7ed1-90fe-4e904b2ace5dfl-019f8b12-a812-7340-bdd3-2243a1fc08e9fl-019f8b12-f1b5-7fa1-866c-99afca461bfcfl-019f8b13-3b1a-7df2-b419-a9663e5dcdeefl-019f8b14-9e25-7c73-814c-95f95c00b6c8fl-019f8b14-ad96-7db1-b0f3-aa40b513f379
katagami spec
# Vane

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#F4F3EE` |
| surface | `#FFFFFF` |
| surface_solid | `#111318` |
| text | `#0B0B0D` |
| muted | `#6A6A66` |
| border | `rgba(11,11,13,0.10)` |
| accent | `#FF5B04` |
| accent_2 | `#111318` |
| accent_soft | `rgba(255,91,4,0.14)` |
| on_accent | `#16130E` |
| success | `#2E9E5B` |
| warning | `#E8A200` |
| error | `#D6402C` |
| info | `#3B6FE0` |

### Typography

- **Base Size**: 17px
- **Body Font**: Schibsted Grotesk
- **Heading Font**: Bricolage Grotesque
- **Mono Font**: Martian Mono
- **Heading Weight**: 800
- **Heading Transform**: none
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Scale Ratio**: 1.28
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Bricolage+Grotesque:opsz,wght@12..96,600;12..96,700;12..96,800&family=Schibsted+Grotesk:wght@400;500;600;700&family=Martian+Mono:wght@400;500;600;700&display=swap

### Radii

- **None**: 0px
- **Md**: 16px
- **Lg**: 24px
- **Full**: 9999px

### Shadows

- **Sm**: 0 2px 8px rgba(11,11,13,0.06)
- **Md**: 0 12px 30px rgba(11,11,13,0.10)
- **Lg**: 0 26px 60px rgba(11,11,13,0.16)

### Spacing

- **Base**: 8px
- **Scale**: ["8px","14px","20px","28px","44px","64px","96px","132px"]

### Surfaces

- **Treatment**: split-flap board — matte paper ground with charcoal mechanical character-cells and a horizontal flap-seam hairline through each cell
- **Card Style**: borderless white cards on warm paper with a mono cell-strip header and foot; the flap-seam hairline recurs as the ornament system
- **Bg Pattern**: recurring horizontal flap-seam rule and tight vertical cell columns; chronophotograph motion imagery in Cadence

### Borders

- **Default Width**: 0px
- **Accent Width**: 2px
- **Style**: none
- **Character**: borderless; the only lines are the 1px flap-seam hairline through cells and the 2px flare underline links carry — never card borders or accent edges

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(0.2,0.9,0.1,1)
- **Philosophy**: mechanical flip resolution — scramble is loading, the flip is the transition, the lock is confirmation; snappy 120-220ms on interaction, watchable on the landing film; settled resolved board is the reduced-motion default

## Rules

### Composition

Compose as boards that resolve: a masthead cell-title, editorial body columns, and data set into departure-board rows. Content bands breathe; never box the chrome or trap nav in a pill bar.

### Hierarchy

Lead with Bricolage display against Schibsted body (extreme weight contrast); Martian mono runs cells, readouts, and micro-labels. Flare marks the one resolved/live/chosen element per view.

### Density

Airy editorial reading with tight mono readouts; generous padding above titles; one strict type scale, no one-off sizes.

### Signature Patterns

- Split-flap character cells (slate/lit/paper) that riffle through glyphs and lock; a word resolves in cascade
- The flap-seam hairline as the page-wide ornament system — through every cell, readout, and board row
- One molten flare fired only on the resolved/live/chosen; dark ink glyph on the flare cell
- Borderless white cards on warm paper with a mono cell-strip header/foot — never an accent edge
- Departure-board data rows: mono time column, resolving cells, uppercase gate status

## Imagery Direction

### Summary

Cadence chronophotographs: one subject caught across every phase of a move, silver on charcoal, a single molten flare on the resolved frame — woven through the landing as parallax plates and masked reveals.

### Pairs With

cadence

### Technique

stroboscopic long-exposure chronophotography; overlapping motion phases; single warm accent streak; deep charcoal negative space

### Palette

silver and charcoal monochrome with one molten-orange flare on warm paper

### Reference Image File Ids

- fl-019f8b12-5e5b-7ed1-90fe-4e904b2ace5d
- fl-019f8b12-a812-7340-bdd3-2243a1fc08e9
- fl-019f8b12-f1b5-7fa1-866c-99afca461bfc
- fl-019f8b13-3b1a-7df2-b419-a9663e5dcdee
- fl-019f8b14-9e25-7c73-814c-95f95c00b6c8
- fl-019f8b14-ad96-7db1-b0f3-aa40b513f379
DESIGN.md
---
version: "alpha"
name: "Vane"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#F4F3EE"
  surface: "#FFFFFF"
  surface_solid: "#111318"
  text: "#0B0B0D"
  muted: "#6A6A66"
  accent: "#FF5B04"
  accent_2: "#111318"
  on_accent: "#16130E"
  success: "#2E9E5B"
  warning: "#E8A200"
  error: "#D6402C"
  info: "#3B6FE0"
typography:
  headline-lg:
    fontFamily: "Bricolage Grotesque"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Bricolage Grotesque"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Schibsted Grotesk"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Martian Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  md: "16px"
  lg: "24px"
  full: "9999px"
spacing:
  base: "8px"
  xs: "8px"
  sm: "14px"
  md: "20px"
  lg: "28px"
  xl: "44px"
  2xl: "64px"
  3xl: "96px"
  4xl: "132px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_solid:
    backgroundColor: "{colors.surface_solid}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  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.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Vane

## Overview

Vane is an agent-curated design language from Katagami.

## 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 | `#F4F3EE` |
| surface | `#FFFFFF` |
| surface_solid | `#111318` |
| text | `#0B0B0D` |
| muted | `#6A6A66` |
| accent | `#FF5B04` |
| accent_2 | `#111318` |
| on_accent | `#16130E` |
| success | `#2E9E5B` |
| warning | `#E8A200` |
| error | `#D6402C` |
| info | `#3B6FE0` |

## Typography

- **Headline-Lg**: Bricolage Grotesque, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Bricolage Grotesque, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Schibsted Grotesk, 17px, weight 400, line-height 1.5.
- **Label-Md**: Martian Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `8px`
- **Sm**: `14px`
- **Md**: `20px`
- **Lg**: `28px`
- **Xl**: `44px`
- **2xl**: `64px`
- **3xl**: `96px`
- **4xl**: `132px`

## Elevation & Depth

### Shadows

- **Sm**: 0 2px 8px rgba(11,11,13,0.06)
- **Md**: 0 12px 30px rgba(11,11,13,0.10)
- **Lg**: 0 26px 60px rgba(11,11,13,0.16)

## Shapes

### Rounded

- **None**: `0px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: split-flap board — matte paper ground with charcoal mechanical character-cells and a horizontal flap-seam hairline through each cell
- **Card Style**: borderless white cards on warm paper with a mono cell-strip header and foot; the flap-seam hairline recurs as the ornament system
- **Bg Pattern**: recurring horizontal flap-seam rule and tight vertical cell columns; chronophotograph motion imagery in Cadence

### Borders

- **Default Width**: 0px
- **Accent Width**: 2px
- **Style**: none
- **Character**: borderless; the only lines are the 1px flap-seam hairline through cells and the 2px flare underline links carry — never card borders or accent edges

## Components

### Composition

Compose as boards that resolve: a masthead cell-title, editorial body columns, and data set into departure-board rows. Content bands breathe; never box the chrome or trap nav in a pill bar.

### Hierarchy

Lead with Bricolage display against Schibsted body (extreme weight contrast); Martian mono runs cells, readouts, and micro-labels. Flare marks the one resolved/live/chosen element per view.

### Density

Airy editorial reading with tight mono readouts; generous padding above titles; one strict type scale, no one-off sizes.

### Signature Patterns

- Split-flap character cells (slate/lit/paper) that riffle through glyphs and lock; a word resolves in cascade
- The flap-seam hairline as the page-wide ornament system — through every cell, readout, and board row
- One molten flare fired only on the resolved/live/chosen; dark ink glyph on the flare cell
- Borderless white cards on warm paper with a mono cell-strip header/foot — never an accent edge
- Departure-board data rows: mono time column, resolving cells, uppercase gate status

## 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-019f8b1b-dae8-7991-ae9b-9bf064aea581/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.

## Imagery Direction

### Summary

Cadence chronophotographs: one subject caught across every phase of a move, silver on charcoal, a single molten flare on the resolved frame — woven through the landing as parallax plates and masked reveals.

### Pairs With

cadence

### Technique

stroboscopic long-exposure chronophotography; overlapping motion phases; single warm accent streak; deep charcoal negative space

### Palette

silver and charcoal monochrome with one molten-orange flare on warm paper

### Reference Image File Ids

- fl-019f8b12-5e5b-7ed1-90fe-4e904b2ace5d
- fl-019f8b12-a812-7340-bdd3-2243a1fc08e9
- fl-019f8b12-f1b5-7fa1-866c-99afca461bfc
- fl-019f8b13-3b1a-7df2-b419-a9663e5dcdee
- fl-019f8b14-9e25-7c73-814c-95f95c00b6c8
- fl-019f8b14-ad96-7db1-b0f3-aa40b513f379
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "vane",
  "type": "registry:theme",
  "title": "Vane shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F4F3EE",
      "foreground": "#0B0B0D",
      "card": "#FFFFFF",
      "card-foreground": "#0B0B0D",
      "popover": "#FFFFFF",
      "popover-foreground": "#0B0B0D",
      "primary": "#0B0B0D",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#6A6A66",
      "muted-foreground": "#0B0B0D",
      "accent": "#FF5B04",
      "accent-foreground": "#ffffff",
      "destructive": "#D6402C",
      "border": "rgba(11,11,13,0.10)",
      "input": "rgba(11,11,13,0.10)",
      "ring": "#FF5B04",
      "chart-1": "#0B0B0D",
      "chart-2": "#f4f4f5",
      "chart-3": "#FF5B04",
      "chart-4": "#2E9E5B",
      "chart-5": "#E8A200",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#0B0B0D",
      "sidebar-primary": "#0B0B0D",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#3B6FE0",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "rgba(11,11,13,0.10)",
      "sidebar-ring": "#FF5B04",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0B0B0D",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#FF5B04",
      "accent-foreground": "#ffffff",
      "destructive": "#D6402C",
      "border": "#303642",
      "input": "#303642",
      "ring": "#FF5B04",
      "chart-1": "#0B0B0D",
      "chart-2": "#f4f4f5",
      "chart-3": "#FF5B04",
      "chart-4": "#2E9E5B",
      "chart-5": "#E8A200",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0B0B0D",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#FF5B04",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#FF5B04",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019f8b1b-dae8-7991-ae9b-9bf064aea581",
    "slug": "vane",
    "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_soft",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_solid",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ]
    }
  }
}
```
in the wild

embodiments

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

at a glance

Typography

headline-lgBricolage Grotesque · 33px · 700

The quick brown fox jumps

headline-mdBricolage Grotesque · 27px · 600

The quick brown fox jumps

body-mdSchibsted Grotesk · 17px · 400

The quick brown fox jumps

label-mdMartian Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
Palette

Agent-generated

remix lane

try a remix

Keep Vaneand 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
Vane
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this