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.
specification
philosophy
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
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
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.
Balanced enterprise density: roomy section gutters, compact controls, and data tables that remain readable at 14-16px without poster-like spacing.
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.
layout
mobile 375px, tablet 768px, desktop 1200px, wide 1440px
12-column desktop grid with 24px gutters; tablet collapses to 6 columns and mobile becomes one column with sticky action rail.
Large neutral margins around editorial accents; saturated elements require at least 16px of quiet space before another accent appears.
guidance
- 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.
- 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"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
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
implementation kit
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
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table: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;
}
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>
);
}
{
"$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"
]
}
}
}
# 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>
)
}
```
{
"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"
}
}