back to gallery

Indigo

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 — tokens plus the paired art style. Agents must generate real images.

the spec

specification

philosophy
summary
Indigo is a wet-pigment material system: colour is treated as a material in motion on saturated dark paper. Every interface state is a bleed front advancing from an edge, and every value is grain settling into a well. Where most watercolor systems lay calm washes over bright white, Indigo takes the opposite moment — the instant a charged brush meets damp paper and the pigment travels — so colour glows out of a deep wet-paper ground rather than sitting on top of white. It is built for colour-batch and pigment-QA tools, dye-floor consoles, and creative-workflow products that need to catch a problem while the dye is still moving.
values
Pigment in motionSaturated groundGrain as dataOne charge per surfaceReserved ink
anti-values
×No white-paper watercolor or pastel washes; Indigo's ground is saturated dark and the pigment is the highlight.×No accent edge-stripes on cards and no nested cards; structure is built with space, surface, and the bleed-front.×No scattered splatter; more than one charge per surface reads as messy.×No serif display, no default browser controls, no symbol glyphs in copy.
visual character
Deep wet-paper indigo ground (#0C1020) with a faint fibre grain across every surface, pigment glowing out of the dark.Masked, feathered bleed-fronts rise from one edge of cards, nav items, alerts, and selected table rows to signal state.Granulation wells encode values as pigment-grain density settling toward a base under a mono number.A single madder charged-drop marks the primary action; one restrained gold splatter cluster marks a charge confirmation.Wide Archivo Expanded uppercase mastheads over Archivo body and JetBrains Mono numerics — no serif, no italic.
tokens
colors21 items
bg
#0C1020
surface
#141A30
surface_2
#1B2240
text
#EAF0FF
muted
#93A0C4
border
#293252
accent
#36D6C6
on_accent
#06151A
accent_2
#E0533F
accent_3
#E8B23C
primary
#36D6C6
secondary
#1B2240
success
#52C28A
warning
#E8B23C
error
#E0533F
info
#36D6C6
pigment_teal
#36D6C6
pigment_madder
#E0533F
pigment_gold
#E8B23C
pigment_indigo
#5A6FB0
fiber
#293252
typography10 items
base size
17px
body font
Archivo
heading font
Archivo Expanded
mono font
JetBrains Mono
heading weight
800
heading transform
uppercase
letter spacing
-0.01em
scale ratio
1.25
line height
1.6
google fonts url
https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Archivo+Expanded:wght@600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap
radii5 items
none
0px
sm
16px
md
16px
lg
24px
full
9999px
shadows3 items
sm
0 1px 0 rgba(255,255,255,0.04) inset, 0 12px 30px rgba(4,8,20,0.45)
md
0 1px 0 rgba(255,255,255,0.05) inset, 0 24px 60px rgba(4,8,20,0.55)
lg
0 2px 0 rgba(255,255,255,0.06) inset, 0 36px 90px rgba(4,8,20,0.65)
spacing2 items
base
8px
scale
4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px
surfaces3 items
treatment
wet-paper
card style
Dark damp surfaces carrying a masked feathered bleed-front rising from one edge; faint fibre grain across the whole panel; one charged madder drop for emphasis.
bg pattern
fiber-grain
borders4 items
default width
1px
accent width
2px
style
solid
character
Hairline fibre rules and inset rings on dark; no accent edge-stripes — selection is carried by the bleed-front, not a border.
motion3 items
duration
520ms
easing
cubic-bezier(0.2,0.85,0.25,1)
philosophy
Snappy but absorbent: fronts advance, then settle. The fully rendered settled state is the default with no JavaScript; reveal motion layers on top and respects prefers-reduced-motion.
rules
composition
An asymmetric, channel-driven layout on a deep wet-paper indigo ground: a vertical pigment-channel rail beside offset content on the landing; an open masthead sidebar plus a single canvas on the dashboard — not a three-column workspace. Cards carry a bleed-front from one edge; ink linework and mono metadata stay reserved and crisp.
hierarchy
Archivo Expanded uppercase carries display; Archivo carries body; JetBrains Mono carries every numeric reading and label. Priority is signalled by where the bleed-front advances and how dense the granulation is, not by many colours.
density
Medium editorial density with generous breathing room; the pigment fronts need space, so avoid edge-to-edge packed cards. Every group keeps at least 24px internal padding.
signature
Every state is a bleed front — a masked feathered pigment frontier rising from an edge at 0.08–0.22 opacity. Values are granulation wells (grain density settling to a base); emphasis is one madder charged-drop; selection is the wet front advancing across a control, never a dashed stroke or an edge-stripe.
layout
grid
Desktop caps contained content at ~1280px with 32px gutters. The landing runs a 96px vertical pigment-channel rail beside offset content; the dashboard is a 248px open masthead sidebar plus a single fluid canvas. Tablet collapses the rail to a horizontal bar and stacks panels.
whitespace
Whitespace is the dry, unpigmented ground: content is framed by open dark margins while bleed-fronts sit behind content as masked zones rather than filled blocks.
density

Medium editorial density: spacious presentation areas with compact, legible mono operational data.

responsive
Every artifact renders well from ~390px mobile to 2560px+ ultra-wide; minmax(0,1fr) columns and min-width:0 children keep grids from blowing out. Only the full-bleed hero spans 100vw; contained content caps and centres.
breakpoints
mobile
390px
phone
560px
tablet
760px
tablet lg
1024px
desktop
1280px
ultrawide
2560px
guidance
do
  • Build colour from masked, feathered bleed-fronts at 0.08–0.22 opacity rising from one edge of a surface.
  • Encode values as granulation density in a well and let the eye weigh them under a JetBrains Mono number.
  • Reserve exactly one charged madder drop per surface for emphasis.
  • Keep ink linework and mono metadata crisp; mask pigment away from text for AA contrast on the dark ground.
  • Style every form control explicitly; keep radii on the 16/24/9999 scale and the masthead open.
  • Render the settled state with no JavaScript; layer reveal motion on top behind a class the script removes.
avoid
  • Do not lay the system on white paper or use pastel washes; the ground is saturated dark.
  • Do not give a card an accent or highlight edge-stripe, and do not nest cards.
  • Do not scatter splatter; more than one charge per surface reads as messy.
  • Do not box the nav in a floating pill bar; let the masthead sit open across the header.
  • Do not use serif display, default select/checkbox/radio/button styling, or symbol glyphs in copy.
imagery
pairs with

lavis

summary
Subjects rendered in layered transparent watercolor glazing on a deep wet ground: translucent granulated mineral-pigment washes bleeding and blooming upward as a feathered capillary front, crisp dry-brush edges and fine black ink contour lines, with one restrained gold splatter cluster. Indigo, prussian-blue and teal carry the field; a single madder streak marks emphasis.
subjects
koi and carp in dark waterink-and-wash river currentscharged pigment drops hitting wet papernight estuaries and tidal bloomsbrand pigment plates
usage
Full-bleed luminous hero with the colour bleeding up from a deeper lower edge so low-anchored copy stays legible; feature and avatar shots are single centred subjects filling the frame. No text, letters, or logos in the image.
element count

26

composition count

2

katagami spec
# Indigo

## Philosophy

Indigo is a wet-pigment material system: colour is treated as a material in motion on saturated dark paper. Every interface state is a bleed front advancing from an edge, and every value is grain settling into a well. Where most watercolor systems lay calm washes over bright white, Indigo takes the opposite moment — the instant a charged brush meets damp paper and the pigment travels — so colour glows out of a deep wet-paper ground rather than sitting on top of white. It is built for colour-batch and pigment-QA tools, dye-floor consoles, and creative-workflow products that need to catch a problem while the dye is still moving.

### Values

- {"name":"Pigment in motion","explanation":"State is a bleed front advancing across a surface, not a box that recolours — colour reads as wet pigment travelling, the way it does on damp paper."}
- {"name":"Saturated ground","explanation":"The page is deep wet-paper indigo, not white; pigment is luminous against the dark, which is the language's primary identity lever."}
- {"name":"Grain as data","explanation":"Values are encoded as the density of granulated pigment settled toward a base, so a glance weighs a batch before any number is read."}
- {"name":"One charge per surface","explanation":"Emphasis is a single deliberate madder drop — a charged event, never scattered splatter across a panel."}
- {"name":"Reserved ink","explanation":"Fine linework and mono metadata stay crisp; pigment is masked away from text it must not obscure, so the dark ground never costs legibility."}

### Anti-Values

- No white-paper watercolor or pastel washes; Indigo's ground is saturated dark and the pigment is the highlight.
- No accent edge-stripes on cards and no nested cards; structure is built with space, surface, and the bleed-front.
- No scattered splatter; more than one charge per surface reads as messy.
- No serif display, no default browser controls, no symbol glyphs in copy.

### Visual Character

- Deep wet-paper indigo ground (#0C1020) with a faint fibre grain across every surface, pigment glowing out of the dark.
- Masked, feathered bleed-fronts rise from one edge of cards, nav items, alerts, and selected table rows to signal state.
- Granulation wells encode values as pigment-grain density settling toward a base under a mono number.
- A single madder charged-drop marks the primary action; one restrained gold splatter cluster marks a charge confirmation.
- Wide Archivo Expanded uppercase mastheads over Archivo body and JetBrains Mono numerics — no serif, no italic.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#0C1020` |
| surface | `#141A30` |
| surface_2 | `#1B2240` |
| text | `#EAF0FF` |
| muted | `#93A0C4` |
| border | `#293252` |
| accent | `#36D6C6` |
| on_accent | `#06151A` |
| accent_2 | `#E0533F` |
| accent_3 | `#E8B23C` |
| primary | `#36D6C6` |
| secondary | `#1B2240` |
| success | `#52C28A` |
| warning | `#E8B23C` |
| error | `#E0533F` |
| info | `#36D6C6` |
| pigment_teal | `#36D6C6` |
| pigment_madder | `#E0533F` |
| pigment_gold | `#E8B23C` |
| pigment_indigo | `#5A6FB0` |
| fiber | `#293252` |

### Typography

- **Base Size**: 17px
- **Body Font**: Archivo
- **Heading Font**: Archivo Expanded
- **Mono Font**: JetBrains Mono
- **Heading Weight**: 800
- **Heading Transform**: uppercase
- **Letter Spacing**: -0.01em
- **Scale Ratio**: 1.25
- **Line Height**: 1.6
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;700;800;900&family=Archivo+Expanded:wght@600;700;800&family=JetBrains+Mono:wght@400;500;600&display=swap

### Radii

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

### Shadows

- **Sm**: 0 1px 0 rgba(255,255,255,0.04) inset, 0 12px 30px rgba(4,8,20,0.45)
- **Md**: 0 1px 0 rgba(255,255,255,0.05) inset, 0 24px 60px rgba(4,8,20,0.55)
- **Lg**: 0 2px 0 rgba(255,255,255,0.06) inset, 0 36px 90px rgba(4,8,20,0.65)

### Spacing

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

### Surfaces

- **Treatment**: wet-paper
- **Card Style**: Dark damp surfaces carrying a masked feathered bleed-front rising from one edge; faint fibre grain across the whole panel; one charged madder drop for emphasis.
- **Bg Pattern**: fiber-grain

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Hairline fibre rules and inset rings on dark; no accent edge-stripes — selection is carried by the bleed-front, not a border.

### Motion

- **Duration**: 520ms
- **Easing**: cubic-bezier(0.2,0.85,0.25,1)
- **Philosophy**: Snappy but absorbent: fronts advance, then settle. The fully rendered settled state is the default with no JavaScript; reveal motion layers on top and respects prefers-reduced-motion.

## Rules

### Composition

An asymmetric, channel-driven layout on a deep wet-paper indigo ground: a vertical pigment-channel rail beside offset content on the landing; an open masthead sidebar plus a single canvas on the dashboard — not a three-column workspace. Cards carry a bleed-front from one edge; ink linework and mono metadata stay reserved and crisp.

### Hierarchy

Archivo Expanded uppercase carries display; Archivo carries body; JetBrains Mono carries every numeric reading and label. Priority is signalled by where the bleed-front advances and how dense the granulation is, not by many colours.

### Density

Medium editorial density with generous breathing room; the pigment fronts need space, so avoid edge-to-edge packed cards. Every group keeps at least 24px internal padding.

### Signature

Every state is a bleed front — a masked feathered pigment frontier rising from an edge at 0.08–0.22 opacity. Values are granulation wells (grain density settling to a base); emphasis is one madder charged-drop; selection is the wet front advancing across a control, never a dashed stroke or an edge-stripe.

## Layout

### Grid

Desktop caps contained content at ~1280px with 32px gutters. The landing runs a 96px vertical pigment-channel rail beside offset content; the dashboard is a 248px open masthead sidebar plus a single fluid canvas. Tablet collapses the rail to a horizontal bar and stacks panels.

### Whitespace

Whitespace is the dry, unpigmented ground: content is framed by open dark margins while bleed-fronts sit behind content as masked zones rather than filled blocks.

### Density

Medium editorial density: spacious presentation areas with compact, legible mono operational data.

### Responsive

Every artifact renders well from ~390px mobile to 2560px+ ultra-wide; minmax(0,1fr) columns and min-width:0 children keep grids from blowing out. Only the full-bleed hero spans 100vw; contained content caps and centres.

### Breakpoints

- **Mobile**: 390px
- **Phone**: 560px
- **Tablet**: 760px
- **Tablet Lg**: 1024px
- **Desktop**: 1280px
- **Ultrawide**: 2560px

## Guidance

### Do

- Build colour from masked, feathered bleed-fronts at 0.08–0.22 opacity rising from one edge of a surface.
- Encode values as granulation density in a well and let the eye weigh them under a JetBrains Mono number.
- Reserve exactly one charged madder drop per surface for emphasis.
- Keep ink linework and mono metadata crisp; mask pigment away from text for AA contrast on the dark ground.
- Style every form control explicitly; keep radii on the 16/24/9999 scale and the masthead open.
- Render the settled state with no JavaScript; layer reveal motion on top behind a class the script removes.

### Don't

- Do not lay the system on white paper or use pastel washes; the ground is saturated dark.
- Do not give a card an accent or highlight edge-stripe, and do not nest cards.
- Do not scatter splatter; more than one charge per surface reads as messy.
- Do not box the nav in a floating pill bar; let the masthead sit open across the header.
- Do not use serif display, default select/checkbox/radio/button styling, or symbol glyphs in copy.

### Accessibility

Maintain WCAG AA by keeping text on the dark ground or near-white ink, never on dense pigment. Focus states use a teal ring plus a soft teal wash halo. Touch targets are at least 44px; disabled states reduce opacity while preserving labels; motion is short with no parallax or flashing and respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

lavis

### Summary

Subjects rendered in layered transparent watercolor glazing on a deep wet ground: translucent granulated mineral-pigment washes bleeding and blooming upward as a feathered capillary front, crisp dry-brush edges and fine black ink contour lines, with one restrained gold splatter cluster. Indigo, prussian-blue and teal carry the field; a single madder streak marks emphasis.

### Subjects

- koi and carp in dark water
- ink-and-wash river currents
- charged pigment drops hitting wet paper
- night estuaries and tidal blooms
- brand pigment plates

### Usage

Full-bleed luminous hero with the colour bleeding up from a deeper lower edge so low-anchored copy stays legible; feature and avatar shots are single centred subjects filling the frame. No text, letters, or logos in the image.

### Element Count

26

### Composition Count

2
DESIGN.md
---
version: "alpha"
name: "Indigo"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#0C1020"
  surface: "#141A30"
  surface_2: "#1B2240"
  text: "#EAF0FF"
  muted: "#93A0C4"
  border: "#293252"
  accent: "#36D6C6"
  on_accent: "#06151A"
  accent_2: "#E0533F"
  accent_3: "#E8B23C"
  primary: "#36D6C6"
  secondary: "#1B2240"
  success: "#52C28A"
  warning: "#E8B23C"
  error: "#E0533F"
  info: "#36D6C6"
  pigment_teal: "#36D6C6"
  pigment_madder: "#E0533F"
  pigment_gold: "#E8B23C"
  pigment_indigo: "#5A6FB0"
  fiber: "#293252"
typography:
  headline-lg:
    fontFamily: "Archivo Expanded"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Archivo Expanded"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Archivo"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.6
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "JetBrains Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "16px"
  md: "16px"
  lg: "24px"
  full: "9999px"
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-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-accent_2:
    backgroundColor: "{colors.accent_2}"
  color-reference-accent_3:
    backgroundColor: "{colors.accent_3}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-pigment_teal:
    backgroundColor: "{colors.pigment_teal}"
  color-reference-pigment_madder:
    backgroundColor: "{colors.pigment_madder}"
  color-reference-pigment_gold:
    backgroundColor: "{colors.pigment_gold}"
  color-reference-pigment_indigo:
    backgroundColor: "{colors.pigment_indigo}"
  color-reference-fiber:
    backgroundColor: "{colors.fiber}"
  button-primary:
    backgroundColor: "{colors.primary}"
    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"
---

# Indigo

## Overview

Indigo is a wet-pigment material system: colour is treated as a material in motion on saturated dark paper. Every interface state is a bleed front advancing from an edge, and every value is grain settling into a well. Where most watercolor systems lay calm washes over bright white, Indigo takes the opposite moment — the instant a charged brush meets damp paper and the pigment travels — so colour glows out of a deep wet-paper ground rather than sitting on top of white. It is built for colour-batch and pigment-QA tools, dye-floor consoles, and creative-workflow products that need to catch a problem while the dye is still moving.

### Values

- {"name":"Pigment in motion","explanation":"State is a bleed front advancing across a surface, not a box that recolours — colour reads as wet pigment travelling, the way it does on damp paper."}
- {"name":"Saturated ground","explanation":"The page is deep wet-paper indigo, not white; pigment is luminous against the dark, which is the language's primary identity lever."}
- {"name":"Grain as data","explanation":"Values are encoded as the density of granulated pigment settled toward a base, so a glance weighs a batch before any number is read."}
- {"name":"One charge per surface","explanation":"Emphasis is a single deliberate madder drop — a charged event, never scattered splatter across a panel."}
- {"name":"Reserved ink","explanation":"Fine linework and mono metadata stay crisp; pigment is masked away from text it must not obscure, so the dark ground never costs legibility."}

### Anti-Values

- No white-paper watercolor or pastel washes; Indigo's ground is saturated dark and the pigment is the highlight.
- No accent edge-stripes on cards and no nested cards; structure is built with space, surface, and the bleed-front.
- No scattered splatter; more than one charge per surface reads as messy.
- No serif display, no default browser controls, no symbol glyphs in copy.

### Visual Character

- Deep wet-paper indigo ground (#0C1020) with a faint fibre grain across every surface, pigment glowing out of the dark.
- Masked, feathered bleed-fronts rise from one edge of cards, nav items, alerts, and selected table rows to signal state.
- Granulation wells encode values as pigment-grain density settling toward a base under a mono number.
- A single madder charged-drop marks the primary action; one restrained gold splatter cluster marks a charge confirmation.
- Wide Archivo Expanded uppercase mastheads over Archivo body and JetBrains Mono numerics — no serif, no italic.

## 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 | `#0C1020` |
| surface | `#141A30` |
| surface_2 | `#1B2240` |
| text | `#EAF0FF` |
| muted | `#93A0C4` |
| border | `#293252` |
| accent | `#36D6C6` |
| on_accent | `#06151A` |
| accent_2 | `#E0533F` |
| accent_3 | `#E8B23C` |
| primary | `#36D6C6` |
| secondary | `#1B2240` |
| success | `#52C28A` |
| warning | `#E8B23C` |
| error | `#E0533F` |
| info | `#36D6C6` |
| pigment_teal | `#36D6C6` |
| pigment_madder | `#E0533F` |
| pigment_gold | `#E8B23C` |
| pigment_indigo | `#5A6FB0` |
| fiber | `#293252` |

## Typography

- **Headline-Lg**: Archivo Expanded, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo Expanded, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Archivo, 17px, weight 400, line-height 1.6.
- **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

Desktop caps contained content at ~1280px with 32px gutters. The landing runs a 96px vertical pigment-channel rail beside offset content; the dashboard is a 248px open masthead sidebar plus a single fluid canvas. Tablet collapses the rail to a horizontal bar and stacks panels.

### Whitespace

Whitespace is the dry, unpigmented ground: content is framed by open dark margins while bleed-fronts sit behind content as masked zones rather than filled blocks.

### Density

Medium editorial density: spacious presentation areas with compact, legible mono operational data.

### Responsive

Every artifact renders well from ~390px mobile to 2560px+ ultra-wide; minmax(0,1fr) columns and min-width:0 children keep grids from blowing out. Only the full-bleed hero spans 100vw; contained content caps and centres.

### Breakpoints

- **Mobile**: 390px
- **Phone**: 560px
- **Tablet**: 760px
- **Tablet Lg**: 1024px
- **Desktop**: 1280px
- **Ultrawide**: 2560px

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(255,255,255,0.04) inset, 0 12px 30px rgba(4,8,20,0.45)
- **Md**: 0 1px 0 rgba(255,255,255,0.05) inset, 0 24px 60px rgba(4,8,20,0.55)
- **Lg**: 0 2px 0 rgba(255,255,255,0.06) inset, 0 36px 90px rgba(4,8,20,0.65)

## Shapes

### Rounded

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

### Surfaces

- **Treatment**: wet-paper
- **Card Style**: Dark damp surfaces carrying a masked feathered bleed-front rising from one edge; faint fibre grain across the whole panel; one charged madder drop for emphasis.
- **Bg Pattern**: fiber-grain

### Borders

- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Hairline fibre rules and inset rings on dark; no accent edge-stripes — selection is carried by the bleed-front, not a border.

## Components

### Composition

An asymmetric, channel-driven layout on a deep wet-paper indigo ground: a vertical pigment-channel rail beside offset content on the landing; an open masthead sidebar plus a single canvas on the dashboard — not a three-column workspace. Cards carry a bleed-front from one edge; ink linework and mono metadata stay reserved and crisp.

### Hierarchy

Archivo Expanded uppercase carries display; Archivo carries body; JetBrains Mono carries every numeric reading and label. Priority is signalled by where the bleed-front advances and how dense the granulation is, not by many colours.

### Density

Medium editorial density with generous breathing room; the pigment fronts need space, so avoid edge-to-edge packed cards. Every group keeps at least 24px internal padding.

### Signature

Every state is a bleed front — a masked feathered pigment frontier rising from an edge at 0.08–0.22 opacity. Values are granulation wells (grain density settling to a base); emphasis is one madder charged-drop; selection is the wet front advancing across a control, never a dashed stroke or an edge-stripe.

## 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-019ef897-271a-7750-a228-ff027784b0dd/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 Build colour from masked, feathered bleed-fronts at 0.08–0.22 opacity rising from one edge of a surface.
- Do Encode values as granulation density in a well and let the eye weigh them under a JetBrains Mono number.
- Do Reserve exactly one charged madder drop per surface for emphasis.
- Do Keep ink linework and mono metadata crisp; mask pigment away from text for AA contrast on the dark ground.
- Do Style every form control explicitly; keep radii on the 16/24/9999 scale and the masthead open.
- Do Render the settled state with no JavaScript; layer reveal motion on top behind a class the script removes.
- Don't Do not lay the system on white paper or use pastel washes; the ground is saturated dark.
- Don't Do not give a card an accent or highlight edge-stripe, and do not nest cards.
- Don't Do not scatter splatter; more than one charge per surface reads as messy.
- Don't Do not box the nav in a floating pill bar; let the masthead sit open across the header.
- Don't Do not use serif display, default select/checkbox/radio/button styling, or symbol glyphs in copy.

### Accessibility

Maintain WCAG AA by keeping text on the dark ground or near-white ink, never on dense pigment. Focus states use a teal ring plus a soft teal wash halo. Touch targets are at least 44px; disabled states reduce opacity while preserving labels; motion is short with no parallax or flashing and respects prefers-reduced-motion.

## Imagery Direction

### Pairs With

lavis

### Summary

Subjects rendered in layered transparent watercolor glazing on a deep wet ground: translucent granulated mineral-pigment washes bleeding and blooming upward as a feathered capillary front, crisp dry-brush edges and fine black ink contour lines, with one restrained gold splatter cluster. Indigo, prussian-blue and teal carry the field; a single madder streak marks emphasis.

### Subjects

- koi and carp in dark water
- ink-and-wash river currents
- charged pigment drops hitting wet paper
- night estuaries and tidal blooms
- brand pigment plates

### Usage

Full-bleed luminous hero with the colour bleeding up from a deeper lower edge so low-anchored copy stays legible; feature and avatar shots are single centred subjects filling the frame. No text, letters, or logos in the image.

### Element Count

26

### Composition Count

2
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "indigo",
  "type": "registry:theme",
  "title": "Indigo shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0C1020",
      "foreground": "#EAF0FF",
      "card": "#141A30",
      "card-foreground": "#EAF0FF",
      "popover": "#141A30",
      "popover-foreground": "#EAF0FF",
      "primary": "#36D6C6",
      "primary-foreground": "#ffffff",
      "secondary": "#1B2240",
      "secondary-foreground": "#ffffff",
      "muted": "#93A0C4",
      "muted-foreground": "#EAF0FF",
      "accent": "#36D6C6",
      "accent-foreground": "#ffffff",
      "destructive": "#E0533F",
      "border": "#293252",
      "input": "#293252",
      "ring": "#36D6C6",
      "chart-1": "#36D6C6",
      "chart-2": "#1B2240",
      "chart-3": "#36D6C6",
      "chart-4": "#52C28A",
      "chart-5": "#E8B23C",
      "sidebar": "#141A30",
      "sidebar-foreground": "#EAF0FF",
      "sidebar-primary": "#36D6C6",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#36D6C6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#293252",
      "sidebar-ring": "#36D6C6",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#36D6C6",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#36D6C6",
      "accent-foreground": "#ffffff",
      "destructive": "#E0533F",
      "border": "#303642",
      "input": "#303642",
      "ring": "#36D6C6",
      "chart-1": "#36D6C6",
      "chart-2": "#1B2240",
      "chart-3": "#36D6C6",
      "chart-4": "#52C28A",
      "chart-5": "#E8B23C",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#36D6C6",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#36D6C6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#36D6C6",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ef897-271a-7750-a228-ff027784b0dd",
    "slug": "indigo",
    "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",
        "fiber",
        "info",
        "muted",
        "on_accent",
        "pigment_gold",
        "pigment_indigo",
        "pigment_madder",
        "pigment_teal",
        "primary",
        "secondary",
        "success",
        "surface",
        "surface_2",
        "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",
        "sm"
      ],
      "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

DESIGN.md

at a glance

Typography

headline-lgArchivo Expanded · 33px · 700

The quick brown fox jumps

headline-mdArchivo Expanded · 27px · 600

The quick brown fox jumps

body-mdArchivo · 17px · 400

The quick brown fox jumps

label-mdJetBrains Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
remix lane

try a remix

Keep Indigo and swap a palette and an art style onto it. The landing & dashboard recolor live.

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

Family

Evolved from
related

More like this