back to gallery
design language·plumb

Plumb

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 Bauhaus-lineage publishing and wayfinding system built on the koinobori as a calibrated measuring instrument. Every carp is a graduated ascent gauge marking how high a child has climbed this year. The ownable idea is the sounding line: a thin 1px ink plumb-line that drops true through the whole page like a flagpole rope, with tick-stops where streamers attach. Confident, grown-up, editorial.
values
The carp is an instrument, not a toy: every streamer reads a milestone scale.One continuous ink line threads the page; components hang off it like streamers off a pole.Accents are highlighters: a tick, a dot, or one knockout button, never a panel flood.Editorial calm: generous silence between dense ledger blocks.
anti-values
×Childish mascots, balloons, primary-colour clutter, or toy aesthetics.×Full-bleed colour floods; muddy or washed-out pastel.×Border boxes and accent-edge cards.×Sparse, decorative pages without a measuring idea.
tokens
colors15 items
bg
#FFFFFF
surface
#F4F7F8
surface_2
#FFFFFF
text
#0E1518
muted
#5A6A70
border
#0E1518
accent
#1FA8FF
accent_deep
#0E7CCB
on_accent
#FFFFFF
signal
#46D17A
on_signal
#08361A
success
#46D17A
warning
#E0962E
error
#FF5A4D
info
#1FA8FF
typography10 items
base size
17px
body font
Fraunces
heading font
Archivo Narrow
mono font
Spline Sans Mono
heading weight
700
heading transform
none
letter spacing
-0.035em
line height
1.55
scale ratio
1.25
google fonts url
https://fonts.googleapis.com/css2?family=Archivo+Narrow:wght@500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Spline+Sans+Mono:wght@400;500&display=swap
radii4 items
none
0
card
16px
lg
24px
pill
9999px
shadows3 items
sm
0 1px 0 rgba(14,21,24,0.08)
md
0 18px 50px rgba(31,168,255,0.10)
lg
0 40px 100px rgba(14,21,24,0.10)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
bg pattern
Pure white ground; the only repeating mark is a faint blueprint tick-grid behind the embodiment at ~3% opacity. Recessed slips take a faint #F4F7F8 paper tint.
card style
Streamer slip: no border box, 16px radius, soft sky-tinted shadow, a caret notch on the leading edge and a graduated ink tick-rail down the leading side.
treatment
White-led and bright; accents never fill a panel.
borders4 items
default width
1px
accent width
1.5px
style
solid
character
The sounding line is a 1px ink rule used vertically as the spine, plus short tick-stops; never a card border box, never an accent edge.
motion3 items
duration
200ms
easing
cubic-bezier(0.2, 0.0, 0.1, 1)
philosophy
The settled page is the default. Sections rise on intersect; the plumb-bob dot drops onto the line on focus. Short fades and small lifts, no spectacle; respects prefers-reduced-motion.
rules
composition
A strict 12-column editorial grid, 1320px cap, with a left measure-column anchored to the vertical sounding line; content hangs to its right in asymmetric two- and three-up streamer rows, with 64-96px of vertical silence between dense ledger blocks.
hierarchy
Mono labels with section indices (01 / PROGRAM); condensed display headlines; serif editorial body; readings and gauge scales in mono. One primary action per view.
density

Dense but calm: rich ledger and program blocks separated by generous silence, never a wall and never sparse.

signature
A 1px ink sounding line with tick-stops threads the page. Cards clip to it via a caret notch and carry a graduated tick-rail; buttons share one pill height (primary solid sky, secondary recessed with a leading tick); baseline-rule inputs drop a sky plumb-bob dot on focus; tables are ascent ledgers with gauge chips; nav is the line with a filled active tick.
layout
grid

12-column editorial grid, 1320px cap; a vertical sounding line anchors a left measure-column; asymmetric two- and three-up streamer rows to its right.

whitespace

Generous 64-96px vertical silence between dense blocks; always pad above titles.

density

Program day-rails and ascent ledgers carry real content; silence frames them.

responsive
Mobile collapses to a single column; the line moves to the far-left margin and cards stack as clipped slips; the full-bleed hero spans 100vw, contained content caps and centres on ultra-wide.
breakpoints

390px mobile, 760px and 980px reflow, 1320px cap, full-bleed hero at 100vw.

guidance
do
  • Thread one continuous 1px ink sounding line through the layout with tick-stops where components attach.
  • Clip cards to the line with a caret notch and a graduated tick-rail down the leading edge.
  • Use electric sky for ascent and the active state, fresh leaf only for a milestone reached, hot coral for one hero pop and the error.
  • Keep one primary button per view; share one pill height across the set.
  • Use baseline-rule inputs with mono field-tags on the rule and a sky plumb-bob dot on focus.
avoid
  • Don't flood a panel with an accent colour or give a card an accent edge.
  • Don't make it childish, cluttered, or a toy; no mascots or balloons.
  • Don't box the nav into a pill bar or floating card.
  • Don't crowd the hero image with type or use a lazy full scrim.
imagery
pairs with

sumitsubo

summary
Atmospheric, layered cyanotype-style overprints of a civic riverside Children's Day festival: koinobori streamers rising along a city riverbank in clear early-summer light, a sky-blue ink plate over a warm-grey photographic halftone with registration ghosting and a faint blueprint tick-grid, one thin plumb-line carrying calibration tick-stops dropping through the frame. Never a flat loud silhouette.
subjects
koinobori streamers on bamboo poles along a riverbanka calm city river with a low arched stone bridgea riverside festival site with pole-stationspaper lanterns floating on water after darka graduated plumb-line measuring instrument
usage
Hero is one full-bleed atmospheric riverside scene with the sounding line continuing edge to edge; the milk veil keeps overlay type legible over the lit left zone; below the hero, imagery gives way to contained editorial calm.
katagami spec
# Plumb

## Philosophy

A Bauhaus-lineage publishing and wayfinding system built on the koinobori as a calibrated measuring instrument. Every carp is a graduated ascent gauge marking how high a child has climbed this year. The ownable idea is the sounding line: a thin 1px ink plumb-line that drops true through the whole page like a flagpole rope, with tick-stops where streamers attach. Confident, grown-up, editorial.

### Values

- The carp is an instrument, not a toy: every streamer reads a milestone scale.
- One continuous ink line threads the page; components hang off it like streamers off a pole.
- Accents are highlighters: a tick, a dot, or one knockout button, never a panel flood.
- Editorial calm: generous silence between dense ledger blocks.

### Anti-Values

- Childish mascots, balloons, primary-colour clutter, or toy aesthetics.
- Full-bleed colour floods; muddy or washed-out pastel.
- Border boxes and accent-edge cards.
- Sparse, decorative pages without a measuring idea.

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#FFFFFF` |
| surface | `#F4F7F8` |
| surface_2 | `#FFFFFF` |
| text | `#0E1518` |
| muted | `#5A6A70` |
| border | `#0E1518` |
| accent | `#1FA8FF` |
| accent_deep | `#0E7CCB` |
| on_accent | `#FFFFFF` |
| signal | `#46D17A` |
| on_signal | `#08361A` |
| success | `#46D17A` |
| warning | `#E0962E` |
| error | `#FF5A4D` |
| info | `#1FA8FF` |

### Typography

- **Base Size**: 17px
- **Body Font**: Fraunces
- **Heading Font**: Archivo Narrow
- **Mono Font**: Spline Sans Mono
- **Heading Weight**: 700
- **Heading Transform**: none
- **Letter Spacing**: -0.035em
- **Line Height**: 1.55
- **Scale Ratio**: 1.25
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo+Narrow:wght@500;600;700&family=Fraunces:opsz,wght@9..144,400;9..144,500;9..144,600&family=Spline+Sans+Mono:wght@400;500&display=swap

### Radii

- **None**: 0
- **Card**: 16px
- **Lg**: 24px
- **Pill**: 9999px

### Shadows

- **Sm**: 0 1px 0 rgba(14,21,24,0.08)
- **Md**: 0 18px 50px rgba(31,168,255,0.10)
- **Lg**: 0 40px 100px rgba(14,21,24,0.10)

### Spacing

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

### Surfaces

- **Bg Pattern**: Pure white ground; the only repeating mark is a faint blueprint tick-grid behind the embodiment at ~3% opacity. Recessed slips take a faint #F4F7F8 paper tint.
- **Card Style**: Streamer slip: no border box, 16px radius, soft sky-tinted shadow, a caret notch on the leading edge and a graduated ink tick-rail down the leading side.
- **Treatment**: White-led and bright; accents never fill a panel.

### Borders

- **Default Width**: 1px
- **Accent Width**: 1.5px
- **Style**: solid
- **Character**: The sounding line is a 1px ink rule used vertically as the spine, plus short tick-stops; never a card border box, never an accent edge.

### Motion

- **Duration**: 200ms
- **Easing**: cubic-bezier(0.2, 0.0, 0.1, 1)
- **Philosophy**: The settled page is the default. Sections rise on intersect; the plumb-bob dot drops onto the line on focus. Short fades and small lifts, no spectacle; respects prefers-reduced-motion.

## Rules

### Composition

A strict 12-column editorial grid, 1320px cap, with a left measure-column anchored to the vertical sounding line; content hangs to its right in asymmetric two- and three-up streamer rows, with 64-96px of vertical silence between dense ledger blocks.

### Hierarchy

Mono labels with section indices (01 / PROGRAM); condensed display headlines; serif editorial body; readings and gauge scales in mono. One primary action per view.

### Density

Dense but calm: rich ledger and program blocks separated by generous silence, never a wall and never sparse.

### Signature

A 1px ink sounding line with tick-stops threads the page. Cards clip to it via a caret notch and carry a graduated tick-rail; buttons share one pill height (primary solid sky, secondary recessed with a leading tick); baseline-rule inputs drop a sky plumb-bob dot on focus; tables are ascent ledgers with gauge chips; nav is the line with a filled active tick.

## Layout

### Grid

12-column editorial grid, 1320px cap; a vertical sounding line anchors a left measure-column; asymmetric two- and three-up streamer rows to its right.

### Whitespace

Generous 64-96px vertical silence between dense blocks; always pad above titles.

### Density

Program day-rails and ascent ledgers carry real content; silence frames them.

### Responsive

Mobile collapses to a single column; the line moves to the far-left margin and cards stack as clipped slips; the full-bleed hero spans 100vw, contained content caps and centres on ultra-wide.

### Breakpoints

390px mobile, 760px and 980px reflow, 1320px cap, full-bleed hero at 100vw.

## Guidance

### Do

- Thread one continuous 1px ink sounding line through the layout with tick-stops where components attach.
- Clip cards to the line with a caret notch and a graduated tick-rail down the leading edge.
- Use electric sky for ascent and the active state, fresh leaf only for a milestone reached, hot coral for one hero pop and the error.
- Keep one primary button per view; share one pill height across the set.
- Use baseline-rule inputs with mono field-tags on the rule and a sky plumb-bob dot on focus.

### Don't

- Don't flood a panel with an accent colour or give a card an accent edge.
- Don't make it childish, cluttered, or a toy; no mascots or balloons.
- Don't box the nav into a pill bar or floating card.
- Don't crowd the hero image with type or use a lazy full scrim.

### Accessibility

Body 17px+, table rows 14.5px+; high contrast ink on white and white on sky; focus is a visible sky plumb-bob dot; motion respects prefers-reduced-motion; the settled page renders with no JavaScript.

## Imagery Direction

### Pairs With

sumitsubo

### Summary

Atmospheric, layered cyanotype-style overprints of a civic riverside Children's Day festival: koinobori streamers rising along a city riverbank in clear early-summer light, a sky-blue ink plate over a warm-grey photographic halftone with registration ghosting and a faint blueprint tick-grid, one thin plumb-line carrying calibration tick-stops dropping through the frame. Never a flat loud silhouette.

### Subjects

- koinobori streamers on bamboo poles along a riverbank
- a calm city river with a low arched stone bridge
- a riverside festival site with pole-stations
- paper lanterns floating on water after dark
- a graduated plumb-line measuring instrument

### Usage

Hero is one full-bleed atmospheric riverside scene with the sounding line continuing edge to edge; the milk veil keeps overlay type legible over the lit left zone; below the hero, imagery gives way to contained editorial calm.
DESIGN.md
---
version: "alpha"
name: "Plumb"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#FFFFFF"
  surface: "#F4F7F8"
  surface_2: "#FFFFFF"
  text: "#0E1518"
  muted: "#5A6A70"
  border: "#0E1518"
  accent: "#1FA8FF"
  accent_deep: "#0E7CCB"
  on_accent: "#FFFFFF"
  signal: "#46D17A"
  on_signal: "#08361A"
  success: "#46D17A"
  warning: "#E0962E"
  error: "#FF5A4D"
  info: "#1FA8FF"
typography:
  headline-lg:
    fontFamily: "Archivo Narrow"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.035em"
  headline-md:
    fontFamily: "Archivo Narrow"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.035em"
  body-md:
    fontFamily: "Fraunces"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.035em"
  label-md:
    fontFamily: "Spline Sans Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  card: "16px"
  lg: "24px"
  pill: "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-accent_deep:
    backgroundColor: "{colors.accent_deep}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-signal:
    backgroundColor: "{colors.signal}"
  color-reference-on_signal:
    backgroundColor: "{colors.on_signal}"
  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"
---

# Plumb

## Overview

A Bauhaus-lineage publishing and wayfinding system built on the koinobori as a calibrated measuring instrument. Every carp is a graduated ascent gauge marking how high a child has climbed this year. The ownable idea is the sounding line: a thin 1px ink plumb-line that drops true through the whole page like a flagpole rope, with tick-stops where streamers attach. Confident, grown-up, editorial.

### Values

- The carp is an instrument, not a toy: every streamer reads a milestone scale.
- One continuous ink line threads the page; components hang off it like streamers off a pole.
- Accents are highlighters: a tick, a dot, or one knockout button, never a panel flood.
- Editorial calm: generous silence between dense ledger blocks.

### Anti-Values

- Childish mascots, balloons, primary-colour clutter, or toy aesthetics.
- Full-bleed colour floods; muddy or washed-out pastel.
- Border boxes and accent-edge cards.
- Sparse, decorative pages without a measuring idea.

## 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 | `#FFFFFF` |
| surface | `#F4F7F8` |
| surface_2 | `#FFFFFF` |
| text | `#0E1518` |
| muted | `#5A6A70` |
| border | `#0E1518` |
| accent | `#1FA8FF` |
| accent_deep | `#0E7CCB` |
| on_accent | `#FFFFFF` |
| signal | `#46D17A` |
| on_signal | `#08361A` |
| success | `#46D17A` |
| warning | `#E0962E` |
| error | `#FF5A4D` |
| info | `#1FA8FF` |

## Typography

- **Headline-Lg**: Archivo Narrow, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo Narrow, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Fraunces, 17px, weight 400, line-height 1.55.
- **Label-Md**: Spline Sans 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

12-column editorial grid, 1320px cap; a vertical sounding line anchors a left measure-column; asymmetric two- and three-up streamer rows to its right.

### Whitespace

Generous 64-96px vertical silence between dense blocks; always pad above titles.

### Density

Program day-rails and ascent ledgers carry real content; silence frames them.

### Responsive

Mobile collapses to a single column; the line moves to the far-left margin and cards stack as clipped slips; the full-bleed hero spans 100vw, contained content caps and centres on ultra-wide.

### Breakpoints

390px mobile, 760px and 980px reflow, 1320px cap, full-bleed hero at 100vw.

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(14,21,24,0.08)
- **Md**: 0 18px 50px rgba(31,168,255,0.10)
- **Lg**: 0 40px 100px rgba(14,21,24,0.10)

## Shapes

### Rounded

- **None**: `0px`
- **Card**: `16px`
- **Lg**: `24px`
- **Pill**: `9999px`

### Surfaces

- **Bg Pattern**: Pure white ground; the only repeating mark is a faint blueprint tick-grid behind the embodiment at ~3% opacity. Recessed slips take a faint #F4F7F8 paper tint.
- **Card Style**: Streamer slip: no border box, 16px radius, soft sky-tinted shadow, a caret notch on the leading edge and a graduated ink tick-rail down the leading side.
- **Treatment**: White-led and bright; accents never fill a panel.

### Borders

- **Default Width**: 1px
- **Accent Width**: 1.5px
- **Style**: solid
- **Character**: The sounding line is a 1px ink rule used vertically as the spine, plus short tick-stops; never a card border box, never an accent edge.

## Components

### Composition

A strict 12-column editorial grid, 1320px cap, with a left measure-column anchored to the vertical sounding line; content hangs to its right in asymmetric two- and three-up streamer rows, with 64-96px of vertical silence between dense ledger blocks.

### Hierarchy

Mono labels with section indices (01 / PROGRAM); condensed display headlines; serif editorial body; readings and gauge scales in mono. One primary action per view.

### Density

Dense but calm: rich ledger and program blocks separated by generous silence, never a wall and never sparse.

### Signature

A 1px ink sounding line with tick-stops threads the page. Cards clip to it via a caret notch and carry a graduated tick-rail; buttons share one pill height (primary solid sky, secondary recessed with a leading tick); baseline-rule inputs drop a sky plumb-bob dot on focus; tables are ascent ledgers with gauge chips; nav is the line with a filled active tick.

## 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-019efaca-de91-73d2-8ad0-752e52ea8991/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 Thread one continuous 1px ink sounding line through the layout with tick-stops where components attach.
- Do Clip cards to the line with a caret notch and a graduated tick-rail down the leading edge.
- Do Use electric sky for ascent and the active state, fresh leaf only for a milestone reached, hot coral for one hero pop and the error.
- Do Keep one primary button per view; share one pill height across the set.
- Do Use baseline-rule inputs with mono field-tags on the rule and a sky plumb-bob dot on focus.
- Don't Don't flood a panel with an accent colour or give a card an accent edge.
- Don't Don't make it childish, cluttered, or a toy; no mascots or balloons.
- Don't Don't box the nav into a pill bar or floating card.
- Don't Don't crowd the hero image with type or use a lazy full scrim.

### Accessibility

Body 17px+, table rows 14.5px+; high contrast ink on white and white on sky; focus is a visible sky plumb-bob dot; motion respects prefers-reduced-motion; the settled page renders with no JavaScript.

## Imagery Direction

### Pairs With

sumitsubo

### Summary

Atmospheric, layered cyanotype-style overprints of a civic riverside Children's Day festival: koinobori streamers rising along a city riverbank in clear early-summer light, a sky-blue ink plate over a warm-grey photographic halftone with registration ghosting and a faint blueprint tick-grid, one thin plumb-line carrying calibration tick-stops dropping through the frame. Never a flat loud silhouette.

### Subjects

- koinobori streamers on bamboo poles along a riverbank
- a calm city river with a low arched stone bridge
- a riverside festival site with pole-stations
- paper lanterns floating on water after dark
- a graduated plumb-line measuring instrument

### Usage

Hero is one full-bleed atmospheric riverside scene with the sounding line continuing edge to edge; the milk veil keeps overlay type legible over the lit left zone; below the hero, imagery gives way to contained editorial calm.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "plumb",
  "type": "registry:theme",
  "title": "Plumb shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#0E1518",
      "card": "#F4F7F8",
      "card-foreground": "#0E1518",
      "popover": "#F4F7F8",
      "popover-foreground": "#0E1518",
      "primary": "#0E1518",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#5A6A70",
      "muted-foreground": "#0E1518",
      "accent": "#1FA8FF",
      "accent-foreground": "#ffffff",
      "destructive": "#FF5A4D",
      "border": "#0E1518",
      "input": "#0E1518",
      "ring": "#1FA8FF",
      "chart-1": "#0E1518",
      "chart-2": "#f4f4f5",
      "chart-3": "#1FA8FF",
      "chart-4": "#46D17A",
      "chart-5": "#E0962E",
      "sidebar": "#F4F7F8",
      "sidebar-foreground": "#0E1518",
      "sidebar-primary": "#0E1518",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#1FA8FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#0E1518",
      "sidebar-ring": "#1FA8FF",
      "radius": "24px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0E1518",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#1FA8FF",
      "accent-foreground": "#ffffff",
      "destructive": "#FF5A4D",
      "border": "#303642",
      "input": "#303642",
      "ring": "#1FA8FF",
      "chart-1": "#0E1518",
      "chart-2": "#f4f4f5",
      "chart-3": "#1FA8FF",
      "chart-4": "#46D17A",
      "chart-5": "#E0962E",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0E1518",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#1FA8FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#1FA8FF",
      "radius": "24px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efaca-de91-73d2-8ad0-752e52ea8991",
    "slug": "plumb",
    "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_deep",
        "bg",
        "border",
        "error",
        "info",
        "muted",
        "on_accent",
        "on_signal",
        "signal",
        "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": [
        "card",
        "lg",
        "none",
        "pill"
      ],
      "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 · plumb
DESIGN.md

at a glance

Typography

headline-lgArchivo Narrow · 33px · 700

The quick brown fox jumps

headline-mdArchivo Narrow · 27px · 600

The quick brown fox jumps

body-mdFraunces · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

produced by claude-opus-4-8 · sourced by claude-opus-4-8 · images by gpt-image-2

remix lane

try a remix

Keep Plumband 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
Plumb
Palette
Art style
Landing Page
live preview · recolored + filled
related

More like this