back to gallery
design language·quiet-signal-palette-system

Quiet Signal Palette System

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 production-ready 2026 palette language built on calm neutral foundations, disciplined midtones, and two or three sparingly used signal accents that keep editorial energy without turning every surface into a spectacle.
values
neutral credibility before noveltyaccessibility paired with expressive hue identitysemantic token clarity for brand, interaction, highlight, and editorial uselight and dark parity through OKLCH-style chroma discipline
anti-values
×rainbow interfaces where every component competes for attention×accent colors without on-accent text pairings or usage limits×decorative gradients that compromise legibility×unmapped one-off color decisions outside the token system
tokens
borders4 items
accent width
3px
character
tonal neutral by default; accent borders only for selected, pinned, or editorial callouts
default width
1px
style
solid with occasional stepped corner cuts
colors12 items
accent
#C9FF3D
background
#F6F3EC
border
#D8D0C2
error
#D94B5A
info
#00A9D6
muted
#6E746F
primary
#394154
secondary
#A99B86
success
#2F8C63
surface
#FFFDF7
text
#171A20
warning
#B7791F
dark_colors9 items
background
#101217
border
#343A44
brand accent
#B7EF38
editorial accent
#FF7F91
highlight accent
#A989FF
interactive accent
#24C6EE
muted
#A9ADA7
surface
#171A21
text
#F4F0E8
motion3 items
duration
160ms
easing
cubic-bezier(0.2, 0.8, 0.2, 1)
philosophy
small lift and chroma reveal on intent; no looping color animation or gratuitous gradient drift
radii5 items
full
9999px
lg
22px
md
12px
none
0
sm
6px
semantic_colors4 items
brand
accent #C9FF3D·on accent #172000·usage cap 5% of viewport or one primary CTA cluster
editorial only
accent #FF5F78·on accent #2B0008·usage cap campaign headers or one annotation, never system status
highlight
accent #8D5CFF·on accent #FFFFFF·usage cap inline highlights, chart selection, and two badges per view
interactive
accent #00A9D6·on accent #001E29·usage cap interactive focus, links, and selected controls only
shadows3 items
lg
0 32px 90px rgba(23,26,32,0.18)
md
0 18px 42px rgba(57,65,84,0.12)
sm
0 1px 2px rgba(23,26,32,0.06)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
low-contrast 24px measurement grid with sparse midtone coordinate ticks
card style
matte cards, clipped top-right accent notch, 1px tonal border, subtle paper grain
treatment
warm neutral panels with cool graphite headers and rare acidic or cyan rails
typography8 items
base size
16px
body font
IBM Plex Sans
google fonts url
https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap
heading font
Space Grotesk
letter spacing
-0.015em
line height
1.52
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition

Start with a neutral product workspace: one dominant matte canvas, two midtone information panels, and no more than three signal accents visible above the fold.

density

Balanced enterprise density: roomy section gutters, compact controls, and data tables that remain readable at 14-16px without poster-like spacing.

hierarchy
Use Space Grotesk for compact editorial headings, IBM Plex Sans for clear product copy, and IBM Plex Mono for token labels, measurements, status codes, and chart legends.
signature patterns
Accent budget meter: each view includes small labeled swatches that declare brand, interactive, highlight, and editorial-only accent roles.Clipped signal notch: key cards and panels receive one diagonal top-right notch filled with a capped accent stripe, never full-card saturation.Quiet grid canvas: backgrounds use low-alpha measurement grids and midtone coordinate ticks to support production credibility and data-viz readiness.Paired contrast chips: every saturated badge or button displays a tiny on-accent contrast mark or label to reinforce accessible pairings.
layout
breakpoints

mobile 375px, tablet 768px, desktop 1200px, wide 1440px

grid

12-column desktop grid with 24px gutters; tablet collapses to 6 columns and mobile becomes one column with sticky action rail.

whitespace

Large neutral margins around editorial accents; saturated elements require at least 16px of quiet space before another accent appears.

guidance
do
  • Reserve acidic citrus for brand moments and primary intent only.
  • Pair every accent token with an explicit on-accent token and AA contrast verification.
  • Use cyan for interaction, violet for highlight/selection, and coral only for editorial annotations or campaign modules.
  • Keep data visualization palettes colorblind-safe by combining hue with line style, marker shape, and labels.
avoid
  • Do not use all accents in one component or repeat loud fills across every card.
  • Do not assign editorial coral to errors, destructive actions, or persistent navigation.
  • Do not place saturated text on saturated backgrounds without the paired on-accent token.
  • Do not rely on gradients for state, hierarchy, or chart meaning.
katagami spec
# Quiet Signal Palette System

## Philosophy

A production-ready 2026 palette language built on calm neutral foundations, disciplined midtones, and two or three sparingly used signal accents that keep editorial energy without turning every surface into a spectacle.

### Values

- neutral credibility before novelty
- accessibility paired with expressive hue identity
- semantic token clarity for brand, interaction, highlight, and editorial use
- light and dark parity through OKLCH-style chroma discipline

### Anti-Values

- rainbow interfaces where every component competes for attention
- accent colors without on-accent text pairings or usage limits
- decorative gradients that compromise legibility
- unmapped one-off color decisions outside the token system

### Visual Character

- Layered off-white and graphite surfaces use one-pixel warm/cool borders, low-alpha grid lines, and broad quiet gutters before any accent appears.
- Signal accents are isolated into narrow rails, corner chips, chart pins, and focused call-to-action states with matching on-accent text colors.
- Cards use clipped editorial notches, small OKLCH-style swatch bands, and restrained midtone fills rather than full-bleed saturated panels.
- Dark mode is expressed through ink, slate, and softened electric accents that preserve hue identity while reducing glare and large-area chroma.

## Tokens

### Borders

- **Accent Width**: 3px
- **Character**: tonal neutral by default; accent borders only for selected, pinned, or editorial callouts
- **Default Width**: 1px
- **Style**: solid with occasional stepped corner cuts

### Colors

| Name | Value |
|------|-------|
| accent | `#C9FF3D` |
| background | `#F6F3EC` |
| border | `#D8D0C2` |
| error | `#D94B5A` |
| info | `#00A9D6` |
| muted | `#6E746F` |
| primary | `#394154` |
| secondary | `#A99B86` |
| success | `#2F8C63` |
| surface | `#FFFDF7` |
| text | `#171A20` |
| warning | `#B7791F` |

### Dark Colors

- **Background**: #101217
- **Border**: #343A44
- **Brand Accent**: #B7EF38
- **Editorial Accent**: #FF7F91
- **Highlight Accent**: #A989FF
- **Interactive Accent**: #24C6EE
- **Muted**: #A9ADA7
- **Surface**: #171A21
- **Text**: #F4F0E8

### Motion

- **Duration**: 160ms
- **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1)
- **Philosophy**: small lift and chroma reveal on intent; no looping color animation or gratuitous gradient drift

### Radii

- **Full**: 9999px
- **Lg**: 22px
- **Md**: 12px
- **None**: 0
- **Sm**: 6px

### Semantic Colors

- **Brand**: {"accent":"#C9FF3D","on_accent":"#172000","usage_cap":"5% of viewport or one primary CTA cluster"}
- **Editorial Only**: {"accent":"#FF5F78","on_accent":"#2B0008","usage_cap":"campaign headers or one annotation, never system status"}
- **Highlight**: {"accent":"#8D5CFF","on_accent":"#FFFFFF","usage_cap":"inline highlights, chart selection, and two badges per view"}
- **Interactive**: {"accent":"#00A9D6","on_accent":"#001E29","usage_cap":"interactive focus, links, and selected controls only"}

### Shadows

- **Lg**: 0 32px 90px rgba(23,26,32,0.18)
- **Md**: 0 18px 42px rgba(57,65,84,0.12)
- **Sm**: 0 1px 2px rgba(23,26,32,0.06)

### Spacing

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

### Surfaces

- **Bg Pattern**: low-contrast 24px measurement grid with sparse midtone coordinate ticks
- **Card Style**: matte cards, clipped top-right accent notch, 1px tonal border, subtle paper grain
- **Treatment**: warm neutral panels with cool graphite headers and rare acidic or cyan rails

### Typography

- **Base Size**: 16px
- **Body Font**: IBM Plex Sans
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@500;600&family=IBM+Plex+Sans:wght@400;500;600;700&family=Space+Grotesk:wght@500;600;700&display=swap
- **Heading Font**: Space Grotesk
- **Letter Spacing**: -0.015em
- **Line Height**: 1.52
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.22

## Rules

### Composition

Start with a neutral product workspace: one dominant matte canvas, two midtone information panels, and no more than three signal accents visible above the fold.

### Density

Balanced enterprise density: roomy section gutters, compact controls, and data tables that remain readable at 14-16px without poster-like spacing.

### Hierarchy

Use Space Grotesk for compact editorial headings, IBM Plex Sans for clear product copy, and IBM Plex Mono for token labels, measurements, status codes, and chart legends.

### Signature Patterns

- Accent budget meter: each view includes small labeled swatches that declare brand, interactive, highlight, and editorial-only accent roles.
- Clipped signal notch: key cards and panels receive one diagonal top-right notch filled with a capped accent stripe, never full-card saturation.
- Quiet grid canvas: backgrounds use low-alpha measurement grids and midtone coordinate ticks to support production credibility and data-viz readiness.
- Paired contrast chips: every saturated badge or button displays a tiny on-accent contrast mark or label to reinforce accessible pairings.

## Layout

### Breakpoints

mobile 375px, tablet 768px, desktop 1200px, wide 1440px

### Grid

12-column desktop grid with 24px gutters; tablet collapses to 6 columns and mobile becomes one column with sticky action rail.

### Whitespace

Large neutral margins around editorial accents; saturated elements require at least 16px of quiet space before another accent appears.

## Guidance

### Do

- Reserve acidic citrus for brand moments and primary intent only.
- Pair every accent token with an explicit on-accent token and AA contrast verification.
- Use cyan for interaction, violet for highlight/selection, and coral only for editorial annotations or campaign modules.
- Keep data visualization palettes colorblind-safe by combining hue with line style, marker shape, and labels.

### Don't

- Do not use all accents in one component or repeat loud fills across every card.
- Do not assign editorial coral to errors, destructive actions, or persistent navigation.
- Do not place saturated text on saturated backgrounds without the paired on-accent token.
- Do not rely on gradients for state, hierarchy, or chart meaning.
DESIGN.md
---
version: "alpha"
name: "Quiet Signal Palette System"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#C9FF3D"
  background: "#F6F3EC"
  border: "#D8D0C2"
  error: "#D94B5A"
  info: "#00A9D6"
  muted: "#6E746F"
  primary: "#394154"
  secondary: "#A99B86"
  success: "#2F8C63"
  surface: "#FFFDF7"
  text: "#171A20"
  warning: "#B7791F"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.015em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.015em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.52
    letterSpacing: "-0.015em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "22px"
  md: "12px"
  none: "0px"
  sm: "6px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#ffffff"
    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"
---

# Quiet Signal Palette System

## Overview

A production-ready 2026 palette language built on calm neutral foundations, disciplined midtones, and two or three sparingly used signal accents that keep editorial energy without turning every surface into a spectacle.

### Values

- neutral credibility before novelty
- accessibility paired with expressive hue identity
- semantic token clarity for brand, interaction, highlight, and editorial use
- light and dark parity through OKLCH-style chroma discipline

### Anti-Values

- rainbow interfaces where every component competes for attention
- accent colors without on-accent text pairings or usage limits
- decorative gradients that compromise legibility
- unmapped one-off color decisions outside the token system

### Visual Character

- Layered off-white and graphite surfaces use one-pixel warm/cool borders, low-alpha grid lines, and broad quiet gutters before any accent appears.
- Signal accents are isolated into narrow rails, corner chips, chart pins, and focused call-to-action states with matching on-accent text colors.
- Cards use clipped editorial notches, small OKLCH-style swatch bands, and restrained midtone fills rather than full-bleed saturated panels.
- Dark mode is expressed through ink, slate, and softened electric accents that preserve hue identity while reducing glare and large-area chroma.

## Colors

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

| Token | Value |
|-------|-------|
| accent | `#C9FF3D` |
| background | `#F6F3EC` |
| border | `#D8D0C2` |
| error | `#D94B5A` |
| info | `#00A9D6` |
| muted | `#6E746F` |
| primary | `#394154` |
| secondary | `#A99B86` |
| success | `#2F8C63` |
| surface | `#FFFDF7` |
| text | `#171A20` |
| warning | `#B7791F` |

## Typography

- **Headline-Lg**: Space Grotesk, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Space Grotesk, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.52.
- **Label-Md**: IBM Plex 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`

### Breakpoints

mobile 375px, tablet 768px, desktop 1200px, wide 1440px

### Grid

12-column desktop grid with 24px gutters; tablet collapses to 6 columns and mobile becomes one column with sticky action rail.

### Whitespace

Large neutral margins around editorial accents; saturated elements require at least 16px of quiet space before another accent appears.

## Elevation & Depth

### Shadows

- **Lg**: 0 32px 90px rgba(23,26,32,0.18)
- **Md**: 0 18px 42px rgba(57,65,84,0.12)
- **Sm**: 0 1px 2px rgba(23,26,32,0.06)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `22px`
- **Md**: `12px`
- **None**: `0px`
- **Sm**: `6px`

### Surfaces

- **Bg Pattern**: low-contrast 24px measurement grid with sparse midtone coordinate ticks
- **Card Style**: matte cards, clipped top-right accent notch, 1px tonal border, subtle paper grain
- **Treatment**: warm neutral panels with cool graphite headers and rare acidic or cyan rails

### Borders

- **Accent Width**: 3px
- **Character**: tonal neutral by default; accent borders only for selected, pinned, or editorial callouts
- **Default Width**: 1px
- **Style**: solid with occasional stepped corner cuts

## Components

### Composition

Start with a neutral product workspace: one dominant matte canvas, two midtone information panels, and no more than three signal accents visible above the fold.

### Density

Balanced enterprise density: roomy section gutters, compact controls, and data tables that remain readable at 14-16px without poster-like spacing.

### Hierarchy

Use Space Grotesk for compact editorial headings, IBM Plex Sans for clear product copy, and IBM Plex Mono for token labels, measurements, status codes, and chart legends.

### Signature Patterns

- Accent budget meter: each view includes small labeled swatches that declare brand, interactive, highlight, and editorial-only accent roles.
- Clipped signal notch: key cards and panels receive one diagonal top-right notch filled with a capped accent stripe, never full-card saturation.
- Quiet grid canvas: backgrounds use low-alpha measurement grids and midtone coordinate ticks to support production credibility and data-viz readiness.
- Paired contrast chips: every saturated badge or button displays a tiny on-accent contrast mark or label to reinforce accessible pairings.

## 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-019ea9b4-5faa-72a3-b0dc-7c1caa7d943d/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 Reserve acidic citrus for brand moments and primary intent only.
- Do Pair every accent token with an explicit on-accent token and AA contrast verification.
- Do Use cyan for interaction, violet for highlight/selection, and coral only for editorial annotations or campaign modules.
- Do Keep data visualization palettes colorblind-safe by combining hue with line style, marker shape, and labels.
- Don't Do not use all accents in one component or repeat loud fills across every card.
- Don't Do not assign editorial coral to errors, destructive actions, or persistent navigation.
- Don't Do not place saturated text on saturated backgrounds without the paired on-accent token.
- Don't Do not rely on gradients for state, hierarchy, or chart meaning.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "quiet-signal-palette-system",
  "type": "registry:theme",
  "title": "Quiet Signal Palette System shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F3EC",
      "foreground": "#171A20",
      "card": "#FFFDF7",
      "card-foreground": "#171A20",
      "popover": "#FFFDF7",
      "popover-foreground": "#171A20",
      "primary": "#394154",
      "primary-foreground": "#ffffff",
      "secondary": "#A99B86",
      "secondary-foreground": "#ffffff",
      "muted": "#6E746F",
      "muted-foreground": "#171A20",
      "accent": "#C9FF3D",
      "accent-foreground": "#111111",
      "destructive": "#D94B5A",
      "border": "#D8D0C2",
      "input": "#D8D0C2",
      "ring": "#C9FF3D",
      "chart-1": "#394154",
      "chart-2": "#A99B86",
      "chart-3": "#C9FF3D",
      "chart-4": "#2F8C63",
      "chart-5": "#B7791F",
      "sidebar": "#FFFDF7",
      "sidebar-foreground": "#171A20",
      "sidebar-primary": "#394154",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#00A9D6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8D0C2",
      "sidebar-ring": "#C9FF3D",
      "radius": "12px"
    },
    "dark": {
      "background": "#101217",
      "foreground": "#F4F0E8",
      "card": "#171A21",
      "card-foreground": "#F4F0E8",
      "popover": "#171A21",
      "popover-foreground": "#F4F0E8",
      "primary": "#394154",
      "primary-foreground": "#ffffff",
      "secondary": "#A99B86",
      "secondary-foreground": "#ffffff",
      "muted": "#A9ADA7",
      "muted-foreground": "#F4F0E8",
      "accent": "#C9FF3D",
      "accent-foreground": "#111111",
      "destructive": "#D94B5A",
      "border": "#343A44",
      "input": "#343A44",
      "ring": "#C9FF3D",
      "chart-1": "#394154",
      "chart-2": "#A99B86",
      "chart-3": "#C9FF3D",
      "chart-4": "#2F8C63",
      "chart-5": "#B7791F",
      "sidebar": "#171A21",
      "sidebar-foreground": "#F4F0E8",
      "sidebar-primary": "#394154",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#00A9D6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#343A44",
      "sidebar-ring": "#C9FF3D",
      "radius": "12px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b4-5faa-72a3-b0dc-7c1caa7d943d",
    "slug": "quiet-signal-palette-system",
    "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": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "dark_colors": [
        "background",
        "border",
        "brand_accent",
        "editorial_accent",
        "highlight_accent",
        "interactive_accent",
        "muted",
        "surface",
        "text"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "semantic_colors": [
        "brand",
        "editorial_only",
        "highlight",
        "interactive"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · quiet-signal-palette-system
DESIGN.md

at a glance

Palette

Typography

headline-lgSpace Grotesk · 29px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 24px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 16px · 400

The quick brown fox jumps

label-mdIBM Plex Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px

Shape

full9999px
lg22px
md12px
none0px
sm6px
shadcn/ui

implementation kit

needs agent-authored kitstored
shadcn compatibility only
The generated theme variables are available, but the polished shadcn component recipes and shots have not been authored by the Katagami agent yet.
fallbackprimitives render
Compatibility proof
Local shadcn-style primitives accept the generated theme variables.
primaryaccentsurfacemutedwarningerror
table rhythm
buttonok
cardok
inputok
recommendedcompatibility fallback

DESIGN.md with shadcn

Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.

advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table
theme css
:root {
  --background: #F6F3EC;
  --foreground: #171A20;
  --card: #FFFDF7;
  --card-foreground: #171A20;
  --popover: #FFFDF7;
  --popover-foreground: #171A20;
  --primary: #394154;
  --primary-foreground: #ffffff;
  --secondary: #A99B86;
  --secondary-foreground: #ffffff;
  --muted: #6E746F;
  --muted-foreground: #171A20;
  --accent: #C9FF3D;
  --accent-foreground: #111111;
  --destructive: #D94B5A;
  --border: #D8D0C2;
  --input: #D8D0C2;
  --ring: #C9FF3D;
  --chart-1: #394154;
  --chart-2: #A99B86;
  --chart-3: #C9FF3D;
  --chart-4: #2F8C63;
  --chart-5: #B7791F;
  --sidebar: #FFFDF7;
  --sidebar-foreground: #171A20;
  --sidebar-primary: #394154;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #00A9D6;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #D8D0C2;
  --sidebar-ring: #C9FF3D;
  --radius: 12px;
}

.dark {
  --background: #101217;
  --foreground: #F4F0E8;
  --card: #171A21;
  --card-foreground: #F4F0E8;
  --popover: #171A21;
  --popover-foreground: #F4F0E8;
  --primary: #394154;
  --primary-foreground: #ffffff;
  --secondary: #A99B86;
  --secondary-foreground: #ffffff;
  --muted: #A9ADA7;
  --muted-foreground: #F4F0E8;
  --accent: #C9FF3D;
  --accent-foreground: #111111;
  --destructive: #D94B5A;
  --border: #343A44;
  --input: #343A44;
  --ring: #C9FF3D;
  --chart-1: #394154;
  --chart-2: #A99B86;
  --chart-3: #C9FF3D;
  --chart-4: #2F8C63;
  --chart-5: #B7791F;
  --sidebar: #171A21;
  --sidebar-foreground: #F4F0E8;
  --sidebar-primary: #394154;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #00A9D6;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #343A44;
  --sidebar-ring: #C9FF3D;
  --radius: 12px;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
  Card,
  CardContent,
  CardDescription,
  CardFooter,
  CardHeader,
  CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";

export function QuietSignalPaletteSystemShadcnKit() {
  return (
    <section className="grid gap-4 rounded-[var(--radius)] border bg-background p-4 text-foreground">
      <div className="flex items-start justify-between gap-4">
        <div>
          <Badge variant="outline">shadcn/ui</Badge>
          <h2 className="mt-3 text-2xl font-semibold tracking-tight">Quiet Signal Palette System</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

      <Tabs defaultValue="components">
        <TabsList>
          <TabsTrigger value="components">Components</TabsTrigger>
          <TabsTrigger value="states">States</TabsTrigger>
          <TabsTrigger value="export">Export</TabsTrigger>
        </TabsList>
      </Tabs>

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
theme JSONcompatibility fallback
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "quiet-signal-palette-system",
  "type": "registry:theme",
  "title": "Quiet Signal Palette System shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#F6F3EC",
      "foreground": "#171A20",
      "card": "#FFFDF7",
      "card-foreground": "#171A20",
      "popover": "#FFFDF7",
      "popover-foreground": "#171A20",
      "primary": "#394154",
      "primary-foreground": "#ffffff",
      "secondary": "#A99B86",
      "secondary-foreground": "#ffffff",
      "muted": "#6E746F",
      "muted-foreground": "#171A20",
      "accent": "#C9FF3D",
      "accent-foreground": "#111111",
      "destructive": "#D94B5A",
      "border": "#D8D0C2",
      "input": "#D8D0C2",
      "ring": "#C9FF3D",
      "chart-1": "#394154",
      "chart-2": "#A99B86",
      "chart-3": "#C9FF3D",
      "chart-4": "#2F8C63",
      "chart-5": "#B7791F",
      "sidebar": "#FFFDF7",
      "sidebar-foreground": "#171A20",
      "sidebar-primary": "#394154",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#00A9D6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#D8D0C2",
      "sidebar-ring": "#C9FF3D",
      "radius": "12px"
    },
    "dark": {
      "background": "#101217",
      "foreground": "#F4F0E8",
      "card": "#171A21",
      "card-foreground": "#F4F0E8",
      "popover": "#171A21",
      "popover-foreground": "#F4F0E8",
      "primary": "#394154",
      "primary-foreground": "#ffffff",
      "secondary": "#A99B86",
      "secondary-foreground": "#ffffff",
      "muted": "#A9ADA7",
      "muted-foreground": "#F4F0E8",
      "accent": "#C9FF3D",
      "accent-foreground": "#111111",
      "destructive": "#D94B5A",
      "border": "#343A44",
      "input": "#343A44",
      "ring": "#C9FF3D",
      "chart-1": "#394154",
      "chart-2": "#A99B86",
      "chart-3": "#C9FF3D",
      "chart-4": "#2F8C63",
      "chart-5": "#B7791F",
      "sidebar": "#171A21",
      "sidebar-foreground": "#F4F0E8",
      "sidebar-primary": "#394154",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#00A9D6",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#343A44",
      "sidebar-ring": "#C9FF3D",
      "radius": "12px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019ea9b4-5faa-72a3-b0dc-7c1caa7d943d",
    "slug": "quiet-signal-palette-system",
    "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": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "dark_colors": [
        "background",
        "border",
        "brand_accent",
        "editorial_accent",
        "highlight_accent",
        "interactive_accent",
        "muted",
        "surface",
        "text"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "semantic_colors": [
        "brand",
        "editorial_only",
        "highlight",
        "interactive"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
component recipesstored
# Quiet Signal Palette System shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate the palette system into restrained product screens: neutral matte surfaces first, then tightly budgeted acidic citrus, signal cyan, electric violet, and hot coral accents with paired on-accent text.

## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, and table from `@/components/ui/*`.

## Token cues
Use background/surface/text/border for 90% of the UI. Use citrus for one primary CTA cluster, cyan for focus and selected controls, violet for highlight badges and selected chart rows, and coral for editorial annotations only.

## Visual character to preserve
Matte warm-neutral cards, graphite navigation, one-pixel tonal borders, clipped top-right accent notches, low-alpha measurement grids, compact mono labels, and explicit on-accent contrast chips.

## ShadSync visual profile
family: production-palette; material: matte-neutral; contour: clipped-notch; border: tonal-1px-with-accent-rail; underlay: quiet-grid; grain: subtle; stickerBadges: role-chips-only; motion: short-lift-chroma-reveal; density: balanced-enterprise; accents: capped citrus/cyan/violet/coral.

## Signature component recipes
- button: Primary uses citrus fill with on-citrus text; secondary uses cyan-tinted surface; destructive never uses coral unless editorial copy is absent.
- card: Warm surface, 1px tonal border, optional top-right clipped notch on only one card per region.
- input: Neutral field, cyan focus ring, mono helper text for token names.
- textarea: Same field behavior with a small contrast label in the corner.
- select: Neutral trigger, cyan selected state, no multicolor menu items.
- dialog: Graphite header strip, matte body, one accent rail matching the dialog purpose.
- sheet: Right-side production inspector with token swatches and quiet grid underlay.
- tabs: Underline or rail selected state in cyan; inactive tabs remain neutral.
- badge: Role badges only; violet highlight, citrus brand, coral editorial-only, with paired text.
- separator: 1px tonal rule; accent separator only inside role meters.
- checkbox: Cyan checked state with visible check mark and neutral label.
- switch: Cyan thumb/track for enabled, neutral off state, no gradient track.
- slider: Cyan track with neutral rail and mono numeric output.
- tooltip: Graphite surface, warm text, tiny accent dot indicating the referenced token.
- dropdown-menu: Matte neutral menu, cyan focus item, mono keyboard hints.
- table: Dense but readable rows, neutral zebra-free surfaces, violet selected row badge, chart-safe labels.

## Preview shots
application-shell, detail-editor, and data-operations should show realistic palette governance workflows rather than component inventories.

## Implementation contract
Import local primitives from `@/components/ui/*`; do not invent a parallel component system. Preserve one coherent shape scale: cards 22px, controls 12px, pills 9999px. Keep accent use below the stated caps and always pair filled accents with on-accent text.

## Copy-paste component example
```tsx
import { Button } from "@/components/ui/button"
import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card"
import { Badge } from "@/components/ui/badge"
import { Input } from "@/components/ui/input"
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs"

export function QuietSignalPanel() {
  return (
    <Card className="relative overflow-hidden rounded-[22px] border border-border bg-card shadow-sm before:absolute before:right-0 before:top-0 before:border-l-[34px] before:border-t-[34px] before:border-l-transparent before:border-t-[color:var(--accent)]">
      <CardHeader>
        <Badge className="w-fit rounded-full bg-[#C9FF3D] text-[#172000]">brand cap 5%</Badge>
        <CardTitle className="font-semibold tracking-tight">Palette approval</CardTitle>
      </CardHeader>
      <CardContent className="space-y-4">
        <Input className="rounded-[12px] focus-visible:ring-[#00A9D6]" defaultValue="interactive.cyan" />
        <Tabs defaultValue="light"><TabsList><TabsTrigger value="light">Light</TabsTrigger><TabsTrigger value="dark">Dark</TabsTrigger></TabsList></Tabs>
        <Button className="rounded-full bg-[#C9FF3D] text-[#172000] hover:bg-[#B7EF38]">Export semantic tokens</Button>
      </CardContent>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "card",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "input",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "textarea",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "select",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "dialog",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "sheet",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "tabs",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "badge",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "separator",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "checkbox",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "switch",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "slider",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "tooltip",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    },
    {
      "component": "table",
      "recipe": "Use Quiet Signal neutral surfaces, tonal borders, coherent radius scale, cyan focus states, and capped role accents appropriate to the primitive."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoid": [
        "rainbow nav",
        "full-bleed saturated cards",
        "unpaired accent text"
      ],
      "composition": "Graphite side navigation, warm neutral hero card, accent budget meter, and governance table.",
      "id": "application-shell",
      "mustShowStates": [
        "citrus primary button",
        "cyan focused tab",
        "violet selected badge",
        "coral editorial annotation"
      ],
      "name": "Palette governance shell",
      "primitives": [
        "button",
        "card",
        "tabs",
        "badge",
        "separator",
        "tooltip",
        "dropdown-menu",
        "table"
      ],
      "scene": {
        "actions": [
          "Approve palette",
          "Inspect contrast",
          "Export tokens"
        ],
        "description": "A product team reviews semantic color roles, usage caps, and contrast pairings before export.",
        "eyebrow": "2026 palette governance",
        "headline": "Approve a balanced-bold accent system",
        "rows": [
          {
            "accent": "#C9FF3D",
            "cap": "5%",
            "on": "#172000",
            "role": "brand"
          },
          {
            "accent": "#00A9D6",
            "cap": "states only",
            "on": "#001E29",
            "role": "interactive"
          },
          {
            "accent": "#8D5CFF",
            "cap": "2 badges",
            "on": "#FFFFFF",
            "role": "highlight"
          }
        ],
        "stats": [
          {
            "label": "Accent area",
            "value": "4.6%"
          },
          {
            "label": "AA pairs",
            "value": "12/12"
          },
          {
            "label": "Dark parity",
            "value": "ready"
          }
        ]
      }
    },
    {
      "avoid": [
        "coral as error",
        "gradient state indicators",
        "unlabeled swatches"
      ],
      "composition": "A right-side inspector sheet edits OKLCH-style light/dark shifts while the main dialog previews contrast chips.",
      "id": "detail-editor",
      "mustShowStates": [
        "cyan focus ring",
        "enabled switch",
        "slider value",
        "contrast pass badge"
      ],
      "name": "Semantic token detail editor",
      "primitives": [
        "input",
        "textarea",
        "select",
        "dialog",
        "sheet",
        "checkbox",
        "switch",
        "slider",
        "button",
        "badge"
      ],
      "scene": {
        "actions": [
          "Save variant",
          "Open dark preview"
        ],
        "description": "Editors adjust light and dark accent variants while preserving paired on-accent text tokens.",
        "eyebrow": "Token detail",
        "fields": [
          {
            "label": "accent.brand",
            "value": "#C9FF3D"
          },
          {
            "label": "on-accent.brand",
            "value": "#172000"
          },
          {
            "label": "dark brand shift",
            "value": "#B7EF38"
          }
        ],
        "headline": "Tune hue identity without raising chroma everywhere",
        "stats": [
          {
            "label": "Chroma cap",
            "value": "large areas off"
          },
          {
            "label": "Focus width",
            "value": "3px"
          }
        ]
      }
    },
    {
      "avoid": [
        "hue-only chart meaning",
        "dense accent zebra rows",
        "status colors conflicting with accent roles"
      ],
      "composition": "Neutral operations table beside a chart card with line style, marker shape, and hue working together.",
      "id": "data-operations",
      "mustShowStates": [
        "selected row violet badge",
        "cyan link/action",
        "citrus pinned marker",
        "neutral table density"
      ],
      "name": "Chart-safe operations table",
      "primitives": [
        "table",
        "card",
        "badge",
        "separator",
        "button",
        "tooltip",
        "checkbox",
        "dropdown-menu"
      ],
      "scene": {
        "actions": [
          "Download chart tokens",
          "Review row states"
        ],
        "description": "Rows and chart markers use labels, shapes, and limited hue so colorblind users are not forced to decode hue alone.",
        "eyebrow": "Data-viz safety",
        "headline": "Accents support meaning, labels carry the proof",
        "rows": [
          {
            "marker": "circle + cyan line",
            "metric": "Activation",
            "status": "interactive"
          },
          {
            "marker": "diamond + violet line",
            "metric": "Retention",
            "status": "selected"
          },
          {
            "marker": "square + coral note",
            "metric": "Editorial lift",
            "status": "annotation"
          }
        ],
        "stats": [
          {
            "label": "Colorblind checks",
            "value": "passed"
          },
          {
            "label": "Chart accents",
            "value": "3 max"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "acidic-citrus-brand",
      "signal-cyan-interactive",
      "electric-violet-highlight",
      "hot-coral-editorial-only"
    ],
    "border": "tonal-1px-with-accent-rail",
    "contour": "clipped-notch",
    "density": "balanced-enterprise",
    "family": "production-palette",
    "grain": true,
    "material": "matte-neutral",
    "motion": "short-lift-chroma-reveal",
    "stickerBadges": "role-chips-only",
    "underlay": "quiet-grid"
  }
}
related

More like this