Harmonic Orbit Palette Console
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
- Cool gray dividers with semantic accent rails; borders carry state before fill color changes.
- default width
- 1px
- style
- solid
colors12 items
motion3 items
- duration
- 160ms
- easing
- cubic-bezier(.2,.8,.2,1)
- philosophy
- Short, functional transitions: chips slide one scale step, focus rings bloom, and mode changes crossfade tokens without spinning decoration.
radii5 items
- full
- 9999px
- lg
- 20px
- md
- 12px
- none
- 0
- sm
- 6px
shadows3 items
- lg
- 0 28px 70px rgba(23,32,51,0.16)
- md
- 0 12px 28px rgba(23,32,51,0.10)
- sm
- 0 1px 0 rgba(23,32,51,0.08)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
- bg pattern
- Subtle radial hue-orbit arcs and a low-opacity OKLCH-like grid behind the main shell.
- card style
- Cards use 1px borders, 12-20px radius, topographic swatch rails, and restrained shadows only for elevated overlays.
- treatment
- Warm neutral canvas with ivory cards, slate-toned dark mode, and optional high-contrast black/white mapping; hue enters as thin tonal rails and chips.
typography8 items
- base size
- 16px
- body font
- Atkinson Hyperlegible
- google fonts url
- https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
- heading font
- Atkinson Hyperlegible
- letter spacing
- -0.01em
- line height
- 1.52
- mono font
- IBM Plex Mono
- scale ratio
- 1.22
rules
Compose screens as a palette laboratory: a wide neutral workbench, a left semantic role rail, center hue-harmony canvases, and a right accessibility audit column.
Moderately dense like a design-systems tool: compact tables and controls, but generous gutters around palette comparisons.
Hierarchy comes from tonal contrast, type weight, and measured accent rails; saturated fills are only for primary actions, active chips, and urgent states.
layout
mobile 375px, tablet 768px, desktop 1200px, wide 1440px
Twelve-column desktop shell with 280px rail, fluid central canvas, and 320px audit panel; tablet collapses into stacked zones.
8px baseline grid with 24px module gutters, 16px control rhythm, and tighter 8px gaps inside token rows.
guidance
- Check WCAG contrast for text, icons, focus rings, and chart labels before promoting any palette.
- Use semantic token names such as primary, warning, success, and surface instead of hue names in component APIs.
- Provide light, dark, and high-contrast mappings with tested on-color foregrounds for every accent.
- Pair hue with icons, labels, rail shape, or pattern so status remains perceivable without color vision assumptions.
- Do not rely on red/green alone for pass/fail status or destructive/positive actions.
- Do not invert light palettes mechanically for dark mode; retune tone and chroma per role.
- Do not exceed the 60-30-10 proportion by filling large surfaces with saturated hues.
- Do not place small text directly on amber, chartreuse, or cyan accents unless contrast has been verified.
katagami spec
# Harmonic Orbit Palette Console ## Philosophy A UI language for teams designing adaptive color systems: complementary, analogous, triadic, and split-complementary hues are held in a calm neutral orbit so semantic roles remain stable across light, dark, and high-contrast modes. ### Values - Hue harmony as product structure, not decoration - Semantic roles that survive raw hue changes - Accessible contrast with tested on-color pairings - 60-30-10 restraint between surfaces, support hues, and accents ### Anti-Values - Rainbow dashboards where hue replaces hierarchy - Red/green-only status signaling - Dark mode made by simple inversion - Untested accent text on saturated backgrounds ### Visual Character - Layer warm slate and ivory neutral panels in a 60 percent surface field with thin cool-gray borders and no generic white-card sprawl. - Use orbital color chips, arcs, and swatch rails as repeated CSS motifs to make hue relationships visible without flooding layouts. - Reserve saturated indigo, cyan, amber, and chartreuse for ten-percent accents, focus rings, status bars, and selected controls with paired on-color foregrounds. - Map light, dark, and high-contrast palettes through explicit CSS custom properties so semantic roles stay independent of raw hue. - Separate dense data zones with crisp one-pixel dividers, tonal bands, and square-to-soft radii rather than heavy shadows. ## Tokens ### Borders - **Accent Width**: 3px - **Character**: Cool gray dividers with semantic accent rails; borders carry state before fill color changes. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#B45309` | | background | `#F7F2E7` | | border | `#C9CED8` | | error | `#B42318` | | info | `#1D4ED8` | | muted | `#667085` | | primary | `#3346A8` | | secondary | `#0D6B7D` | | success | `#0F6B3E` | | surface | `#FFFDF7` | | text | `#172033` | | warning | `#B45309` | ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(.2,.8,.2,1) - **Philosophy**: Short, functional transitions: chips slide one scale step, focus rings bloom, and mode changes crossfade tokens without spinning decoration. ### Radii - **Full**: 9999px - **Lg**: 20px - **Md**: 12px - **None**: 0 - **Sm**: 6px ### Shadows - **Lg**: 0 28px 70px rgba(23,32,51,0.16) - **Md**: 0 12px 28px rgba(23,32,51,0.10) - **Sm**: 0 1px 0 rgba(23,32,51,0.08) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Bg Pattern**: Subtle radial hue-orbit arcs and a low-opacity OKLCH-like grid behind the main shell. - **Card Style**: Cards use 1px borders, 12-20px radius, topographic swatch rails, and restrained shadows only for elevated overlays. - **Treatment**: Warm neutral canvas with ivory cards, slate-toned dark mode, and optional high-contrast black/white mapping; hue enters as thin tonal rails and chips. ### Typography - **Base Size**: 16px - **Body Font**: Atkinson Hyperlegible - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Atkinson+Hyperlegible:wght@400;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap - **Heading Font**: Atkinson Hyperlegible - **Letter Spacing**: -0.01em - **Line Height**: 1.52 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.22 ## Rules ### Composition Compose screens as a palette laboratory: a wide neutral workbench, a left semantic role rail, center hue-harmony canvases, and a right accessibility audit column. ### Density Moderately dense like a design-systems tool: compact tables and controls, but generous gutters around palette comparisons. ### Hierarchy Hierarchy comes from tonal contrast, type weight, and measured accent rails; saturated fills are only for primary actions, active chips, and urgent states. ### Signature Patterns - Orbital swatch rings made from conic gradients mark complementary, triadic, analogous, and split-complementary relationships in every major module. - Semantic token rows pair each color with a dark on-color pill, a light on-color pill, and a non-hue icon or pattern marker for accessibility. - Mode preview cards share identical component geometry while CSS variables swap light, dark, and high-contrast token sets. - Accent rails use three-pixel left or top borders to encode state so color never has to be the only carrier of meaning. ## Layout ### Breakpoints mobile 375px, tablet 768px, desktop 1200px, wide 1440px ### Grid Twelve-column desktop shell with 280px rail, fluid central canvas, and 320px audit panel; tablet collapses into stacked zones. ### Whitespace 8px baseline grid with 24px module gutters, 16px control rhythm, and tighter 8px gaps inside token rows. ## Guidance ### Do - Check WCAG contrast for text, icons, focus rings, and chart labels before promoting any palette. - Use semantic token names such as primary, warning, success, and surface instead of hue names in component APIs. - Provide light, dark, and high-contrast mappings with tested on-color foregrounds for every accent. - Pair hue with icons, labels, rail shape, or pattern so status remains perceivable without color vision assumptions. ### Don't - Do not rely on red/green alone for pass/fail status or destructive/positive actions. - Do not invert light palettes mechanically for dark mode; retune tone and chroma per role. - Do not exceed the 60-30-10 proportion by filling large surfaces with saturated hues. - Do not place small text directly on amber, chartreuse, or cyan accents unless contrast has been verified.
DESIGN.md
---
version: "alpha"
name: "Harmonic Orbit Palette Console"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#B45309"
background: "#F7F2E7"
border: "#C9CED8"
error: "#B42318"
info: "#1D4ED8"
muted: "#667085"
primary: "#3346A8"
secondary: "#0D6B7D"
success: "#0F6B3E"
surface: "#FFFDF7"
text: "#172033"
warning: "#B45309"
typography:
headline-lg:
fontFamily: "Atkinson Hyperlegible"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.01em"
headline-md:
fontFamily: "Atkinson Hyperlegible"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.01em"
body-md:
fontFamily: "Atkinson Hyperlegible"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.52
letterSpacing: "-0.01em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "20px"
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"
---
# Harmonic Orbit Palette Console
## Overview
A UI language for teams designing adaptive color systems: complementary, analogous, triadic, and split-complementary hues are held in a calm neutral orbit so semantic roles remain stable across light, dark, and high-contrast modes.
### Values
- Hue harmony as product structure, not decoration
- Semantic roles that survive raw hue changes
- Accessible contrast with tested on-color pairings
- 60-30-10 restraint between surfaces, support hues, and accents
### Anti-Values
- Rainbow dashboards where hue replaces hierarchy
- Red/green-only status signaling
- Dark mode made by simple inversion
- Untested accent text on saturated backgrounds
### Visual Character
- Layer warm slate and ivory neutral panels in a 60 percent surface field with thin cool-gray borders and no generic white-card sprawl.
- Use orbital color chips, arcs, and swatch rails as repeated CSS motifs to make hue relationships visible without flooding layouts.
- Reserve saturated indigo, cyan, amber, and chartreuse for ten-percent accents, focus rings, status bars, and selected controls with paired on-color foregrounds.
- Map light, dark, and high-contrast palettes through explicit CSS custom properties so semantic roles stay independent of raw hue.
- Separate dense data zones with crisp one-pixel dividers, tonal bands, and square-to-soft radii rather than heavy shadows.
## 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 | `#B45309` |
| background | `#F7F2E7` |
| border | `#C9CED8` |
| error | `#B42318` |
| info | `#1D4ED8` |
| muted | `#667085` |
| primary | `#3346A8` |
| secondary | `#0D6B7D` |
| success | `#0F6B3E` |
| surface | `#FFFDF7` |
| text | `#172033` |
| warning | `#B45309` |
## Typography
- **Headline-Lg**: Atkinson Hyperlegible, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Atkinson Hyperlegible, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Atkinson Hyperlegible, 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
Twelve-column desktop shell with 280px rail, fluid central canvas, and 320px audit panel; tablet collapses into stacked zones.
### Whitespace
8px baseline grid with 24px module gutters, 16px control rhythm, and tighter 8px gaps inside token rows.
## Elevation & Depth
### Shadows
- **Lg**: 0 28px 70px rgba(23,32,51,0.16)
- **Md**: 0 12px 28px rgba(23,32,51,0.10)
- **Sm**: 0 1px 0 rgba(23,32,51,0.08)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `20px`
- **Md**: `12px`
- **None**: `0px`
- **Sm**: `6px`
### Surfaces
- **Bg Pattern**: Subtle radial hue-orbit arcs and a low-opacity OKLCH-like grid behind the main shell.
- **Card Style**: Cards use 1px borders, 12-20px radius, topographic swatch rails, and restrained shadows only for elevated overlays.
- **Treatment**: Warm neutral canvas with ivory cards, slate-toned dark mode, and optional high-contrast black/white mapping; hue enters as thin tonal rails and chips.
### Borders
- **Accent Width**: 3px
- **Character**: Cool gray dividers with semantic accent rails; borders carry state before fill color changes.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Compose screens as a palette laboratory: a wide neutral workbench, a left semantic role rail, center hue-harmony canvases, and a right accessibility audit column.
### Density
Moderately dense like a design-systems tool: compact tables and controls, but generous gutters around palette comparisons.
### Hierarchy
Hierarchy comes from tonal contrast, type weight, and measured accent rails; saturated fills are only for primary actions, active chips, and urgent states.
### Signature Patterns
- Orbital swatch rings made from conic gradients mark complementary, triadic, analogous, and split-complementary relationships in every major module.
- Semantic token rows pair each color with a dark on-color pill, a light on-color pill, and a non-hue icon or pattern marker for accessibility.
- Mode preview cards share identical component geometry while CSS variables swap light, dark, and high-contrast token sets.
- Accent rails use three-pixel left or top borders to encode state so color never has to be the only carrier of meaning.
## 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-019ea9a0-a6dc-7df1-b009-4a82914c1879/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 Check WCAG contrast for text, icons, focus rings, and chart labels before promoting any palette.
- Do Use semantic token names such as primary, warning, success, and surface instead of hue names in component APIs.
- Do Provide light, dark, and high-contrast mappings with tested on-color foregrounds for every accent.
- Do Pair hue with icons, labels, rail shape, or pattern so status remains perceivable without color vision assumptions.
- Don't Do not rely on red/green alone for pass/fail status or destructive/positive actions.
- Don't Do not invert light palettes mechanically for dark mode; retune tone and chroma per role.
- Don't Do not exceed the 60-30-10 proportion by filling large surfaces with saturated hues.
- Don't Do not place small text directly on amber, chartreuse, or cyan accents unless contrast has been verified.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "harmonic-orbit-palette-console",
"type": "registry:theme",
"title": "Harmonic Orbit Palette Console shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F2E7",
"foreground": "#172033",
"card": "#FFFDF7",
"card-foreground": "#172033",
"popover": "#FFFDF7",
"popover-foreground": "#172033",
"primary": "#3346A8",
"primary-foreground": "#ffffff",
"secondary": "#0D6B7D",
"secondary-foreground": "#ffffff",
"muted": "#667085",
"muted-foreground": "#172033",
"accent": "#B45309",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#C9CED8",
"input": "#C9CED8",
"ring": "#B45309",
"chart-1": "#3346A8",
"chart-2": "#0D6B7D",
"chart-3": "#B45309",
"chart-4": "#0F6B3E",
"chart-5": "#B45309",
"sidebar": "#FFFDF7",
"sidebar-foreground": "#172033",
"sidebar-primary": "#3346A8",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1D4ED8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#C9CED8",
"sidebar-ring": "#B45309",
"radius": "12px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#3346A8",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#B45309",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#303642",
"input": "#303642",
"ring": "#B45309",
"chart-1": "#3346A8",
"chart-2": "#0D6B7D",
"chart-3": "#B45309",
"chart-4": "#0F6B3E",
"chart-5": "#B45309",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#3346A8",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#B45309",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#B45309",
"radius": "12px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ea9a0-a6dc-7df1-b009-4a82914c1879",
"slug": "harmonic-orbit-palette-console",
"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"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"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: #F7F2E7;
--foreground: #172033;
--card: #FFFDF7;
--card-foreground: #172033;
--popover: #FFFDF7;
--popover-foreground: #172033;
--primary: #3346A8;
--primary-foreground: #ffffff;
--secondary: #0D6B7D;
--secondary-foreground: #ffffff;
--muted: #667085;
--muted-foreground: #172033;
--accent: #B45309;
--accent-foreground: #ffffff;
--destructive: #B42318;
--border: #C9CED8;
--input: #C9CED8;
--ring: #B45309;
--chart-1: #3346A8;
--chart-2: #0D6B7D;
--chart-3: #B45309;
--chart-4: #0F6B3E;
--chart-5: #B45309;
--sidebar: #FFFDF7;
--sidebar-foreground: #172033;
--sidebar-primary: #3346A8;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #1D4ED8;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #C9CED8;
--sidebar-ring: #B45309;
--radius: 12px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #3346A8;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #B45309;
--accent-foreground: #ffffff;
--destructive: #B42318;
--border: #303642;
--input: #303642;
--ring: #B45309;
--chart-1: #3346A8;
--chart-2: #0D6B7D;
--chart-3: #B45309;
--chart-4: #0F6B3E;
--chart-5: #B45309;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #3346A8;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #B45309;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #B45309;
--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 HarmonicOrbitPaletteConsoleShadcnKit() {
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">Harmonic Orbit Palette Console</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": "harmonic-orbit-palette-console",
"type": "registry:theme",
"title": "Harmonic Orbit Palette Console shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F2E7",
"foreground": "#172033",
"card": "#FFFDF7",
"card-foreground": "#172033",
"popover": "#FFFDF7",
"popover-foreground": "#172033",
"primary": "#3346A8",
"primary-foreground": "#ffffff",
"secondary": "#0D6B7D",
"secondary-foreground": "#ffffff",
"muted": "#667085",
"muted-foreground": "#172033",
"accent": "#B45309",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#C9CED8",
"input": "#C9CED8",
"ring": "#B45309",
"chart-1": "#3346A8",
"chart-2": "#0D6B7D",
"chart-3": "#B45309",
"chart-4": "#0F6B3E",
"chart-5": "#B45309",
"sidebar": "#FFFDF7",
"sidebar-foreground": "#172033",
"sidebar-primary": "#3346A8",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#1D4ED8",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#C9CED8",
"sidebar-ring": "#B45309",
"radius": "12px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#3346A8",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#B45309",
"accent-foreground": "#ffffff",
"destructive": "#B42318",
"border": "#303642",
"input": "#303642",
"ring": "#B45309",
"chart-1": "#3346A8",
"chart-2": "#0D6B7D",
"chart-3": "#B45309",
"chart-4": "#0F6B3E",
"chart-5": "#B45309",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#3346A8",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#B45309",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#B45309",
"radius": "12px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ea9a0-a6dc-7df1-b009-4a82914c1879",
"slug": "harmonic-orbit-palette-console",
"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"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"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"
]
}
}
}
# Harmonic Orbit Palette Console shadcn/ui Components
Author: `katagami-agent`
## Intent
Translate the Harmonic Orbit language into local shadcn/ui primitives for palette-system applications: neutral surface majority, orbital hue accents, semantic role rails, accessible on-color pairings, and clear light/dark/high-contrast mode previews.
## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, and table. Import primitives from `@/components/ui/*` only.
## Token cues
Use `background`, `card`, `foreground`, `muted`, `border`, `primary`, `secondary`, `accent`, `destructive`, and `ring` as semantic roles. Large planes stay warm neutral; primary indigo, cyan, amber, red, and chartreuse appear as rails, chips, focus rings, badges, and selected control fills.
## Visual character to preserve
- Warm neutral workbench with ivory cards, slate text, crisp one-pixel borders, and minimal shadow.
- Orbital swatch rings or conic-gradient chips in major modules.
- Semantic token rows with an accent rail plus text/icon/pattern marker so color is not the only state carrier.
- Mode preview cards that keep geometry stable while token values change.
## ShadSync visual profile
family: `palette-lab`; material: `warm-ivory-slate`; contour: `rounded-technical`; border: `one-pixel-plus-accent-rail`; underlay: true; grain: false; stickerBadges: false; motion: `short-token-crossfade`; density: `moderately-dense`; accents: `indigo cyan amber chartreuse red`.
## Signature component recipes
- button: Use pill radius, bold text, indigo primary fill with ivory foreground. Secondary buttons are ivory with slate border. Add a visible ring offset and never use color alone for danger; include icon/text.
- card: Ivory background, 1px cool slate border, 20px container radius, optional 3px top or left accent rail. Include an orbital chip in headers for palette contexts.
- input: 12px radius, ivory fill, cool border, monospace helper labels for contrast ratios. Focus uses dual ring: ivory gap plus indigo outline.
- textarea: Same field style as input, with left semantic rail when collecting palette notes.
- select: Same as input; trigger includes small swatch dot for selected palette family.
- dialog: Centered ivory panel, 20px radius, audit-summary rail, dim slate overlay; motion is 160ms scale/fade.
- sheet: Right side audit panel with stacked contrast scores and amber review rails.
- tabs: Use segmented neutral tabs; active tab receives slate fill and a small hue dot.
- badge: Pill badges with small square/dot marker and text label; color is never the only meaning.
- separator: 1px cool gray line or 3px accent divider between role groups.
- checkbox: Rounded 6px square, indigo check, label always explicit.
- switch: Neutral track, indigo thumb for enabled, label names the mode (dark/high contrast).
- slider: Palette tone/chroma sliders use slate track, indigo active range, and numeric value label.
- tooltip: Slate surface, ivory text, concise contrast/accessibility explanations.
- dropdown-menu: Ivory surface, 12px radius, subtle shadow, swatch dot in each item.
- table: Compact token tables with monospace headers, accent rail per row, and AA/AAA badges.
## Preview shots
Use `application-shell`, `detail-editor`, and `data-operations`. Each shot should show a real palette workflow rather than a component inventory wall.
## Implementation contract
All components must be assembled from local shadcn/ui primitives and project tokens. Preserve semantic roles independent of raw hue, include tested foreground labels where accent fills appear, and avoid red/green-only status.
## 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 { Separator } from "@/components/ui/separator"
export function PaletteAuditCard() {
return (
<Card className="rounded-[20px] border border-border bg-card shadow-sm overflow-hidden">
<div className="h-1 bg-[linear-gradient(90deg,hsl(var(--primary)),hsl(var(--accent)),#88A817)]" />
<CardHeader className="space-y-2">
<Badge className="w-fit rounded-full gap-2"><span className="h-2 w-2 rounded-[2px] bg-current" /> AA verified</Badge>
<CardTitle>Semantic foreground audit</CardTitle>
</CardHeader>
<CardContent className="space-y-4">
<p className="text-muted-foreground">Each hue role ships with light, dark, and high-contrast on-color mappings.</p>
<Separator />
<Button className="rounded-full font-bold">Promote palette</Button>
</CardContent>
</Card>
)
}
```
{
"artifact": "katagami:shadcn-preview-shots",
"author": "katagami-agent",
"componentRecipes": [
{
"component": "button",
"recipe": "Use local button primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "card",
"recipe": "Use local card primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "input",
"recipe": "Use local input primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "textarea",
"recipe": "Use local textarea primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "select",
"recipe": "Use local select primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "dialog",
"recipe": "Use local dialog primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "sheet",
"recipe": "Use local sheet primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "tabs",
"recipe": "Use local tabs primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "badge",
"recipe": "Use local badge primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "separator",
"recipe": "Use local separator primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "checkbox",
"recipe": "Use local checkbox primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "switch",
"recipe": "Use local switch primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "slider",
"recipe": "Use local slider primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "tooltip",
"recipe": "Use local tooltip primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "dropdown-menu",
"recipe": "Use local dropdown-menu primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
},
{
"component": "table",
"recipe": "Use local table primitive with warm ivory surfaces, cool gray borders, rounded technical contours, indigo focus rings, and semantic hue chips or rails when state is shown."
}
],
"generatedBy": "katagami-agent",
"renderable": true,
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"shots": [
{
"avoidRules": [
"no red/green-only status",
"no saturated full-page background"
],
"composition": "Three-column palette console with left harmony tabs, central orbit cards, and right accessibility audit sheet.",
"id": "application-shell",
"mustShowStates": [
"active indigo tab",
"AA badges with non-hue markers",
"dark-mode switch enabled",
"primary and secondary buttons"
],
"primitives": [
"button",
"card",
"tabs",
"badge",
"separator",
"switch",
"tooltip",
"dropdown-menu",
"table"
],
"scene": {
"actions": [
"Promote palette",
"Run WCAG audit"
],
"description": "Compare complementary, analogous, triadic, and split-complementary families while contrast scores remain visible.",
"eyebrow": "Palette system console",
"headline": "Harmonic palettes with semantic guardrails",
"rows": [
{
"family": "Blue-orange",
"status": "Ready",
"use": "CTA plus review accent"
},
{
"family": "Cyan analogous",
"status": "AA",
"use": "Information panels"
},
{
"family": "Triadic",
"status": "Review",
"use": "Dashboard comparison"
}
],
"stats": [
{
"label": "Text pairs",
"value": "42 AA+"
},
{
"label": "Mode maps",
"value": "3"
},
{
"label": "Hue roles",
"value": "12"
}
]
}
},
{
"avoidRules": [
"do not name component APIs after raw hues",
"do not place small text on untested amber"
],
"composition": "Palette detail editor with tone/chroma controls, token naming fields, and accessible foreground selector.",
"id": "detail-editor",
"mustShowStates": [
"focused input dual ring",
"slider numeric label",
"checked non-hue cue checkbox",
"amber warning badge"
],
"primitives": [
"card",
"input",
"textarea",
"select",
"checkbox",
"slider",
"button",
"badge",
"tooltip"
],
"scene": {
"actions": [
"Save token",
"Preview modes"
],
"description": "Tune tone and chroma, pick on-color foregrounds, and require icon labels for warning usage.",
"eyebrow": "Token detail",
"fields": [
{
"label": "Semantic role",
"value": "warning"
},
{
"label": "Accent hex",
"value": "#B45309"
},
{
"label": "On color",
"value": "#172033"
}
],
"headline": "Edit warning role without losing meaning",
"stats": [
{
"label": "Light contrast",
"value": "7.1"
},
{
"label": "Dark contrast",
"value": "9.2"
}
]
}
},
{
"avoidRules": [
"no generic component inventory",
"no unlabelled color chips"
],
"composition": "Operations table for palette variants with a right audit sheet and publish confirmation dialog.",
"id": "data-operations",
"mustShowStates": [
"selected row accent rail",
"contrast pass badge",
"review sheet open",
"high contrast switch visible"
],
"primitives": [
"table",
"badge",
"separator",
"sheet",
"dialog",
"select",
"button",
"switch"
],
"scene": {
"actions": [
"Open audit sheet",
"Publish selected"
],
"description": "A production workflow for reviewing dark-mode retuning, high-contrast mapping, and semantic export readiness.",
"eyebrow": "Palette operations",
"headline": "Ship variants only after role checks pass",
"rows": [
{
"contrast": "Pass",
"mode": "Light/Dark/HC",
"variant": "Indigo amber split"
},
{
"contrast": "Pass",
"mode": "Light/Dark",
"variant": "Cyan violet analog"
},
{
"contrast": "Needs labels",
"mode": "Draft",
"variant": "Triadic dashboard"
}
]
}
}
],
"version": "preview-shots-v1",
"visualProfile": {
"accents": [
"indigo",
"cyan",
"amber",
"chartreuse",
"red"
],
"border": "one-pixel-plus-accent-rail",
"contour": "rounded-technical",
"density": "moderately-dense",
"family": "palette-lab",
"grain": false,
"material": "warm-ivory-slate",
"motion": "short-token-crossfade",
"stickerBadges": false,
"underlay": true
}
}