back to gallery
design language·probe-palette-lane-routing

Probe Palette Lane Routing

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 navigation-heavy palette language for investigative tools where color behaves like routed infrastructure: every hue is a lane, every surface is a switching board, and hierarchy is proven through measured tracks rather than decorative glow.
values
chromatic routing as information architecturedense but legible operational rhythmvisible handoff states between teams and data lanesrestrained industrial tactility
anti-values
×generic white SaaS cards with arbitrary accent colors×rainbow decoration that does not map to state or route×soft glass panels and unfocused gradients
tokens
borders4 items
accent width
4px
character
technical route rails, not decorative outlines; color indicates lane ownership or state
default width
1px
style
solid with occasional double-rule secondary controls
colors12 items
accent
#C084FC
background
#101316
border
#394149
error
#FF5A5F
info
#58A6FF
muted
#8E9AA3
primary
#5CE1E6
secondary
#FFB000
success
#54D990
surface
#1B2024
text
#F4F1E8
warning
#FFC857
motion3 items
duration
160ms
easing
cubic-bezier(0.2, 0.8, 0.2, 1)
philosophy
fast signal acknowledgement: small translate shifts and rail color changes only, never bouncing or ambient animation
radii5 items
full
9999px
lg
10px
md
6px
none
0
sm
3px
shadows3 items
lg
0 30px 80px rgba(0,0,0,0.38)
md
0 18px 40px rgba(0,0,0,0.28)
sm
0 1px 0 rgba(244,241,232,0.08) inset
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
bg pattern
off-black field with faint diagonal calibration stripes and low-contrast grid points
card style
square outer frame, 6px inner radius, clipped top-right notch for priority modules, striped underlay only in headers
treatment
matte graphite panels with warm ivory typography and functional cyan, amber, violet, and blue lane rails
typography8 items
base size
16px
body font
IBM Plex Sans
google fonts url
https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;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.48
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition
Arrange screens as a switchboard: persistent left navigation rail, a dominant routed work surface, and a right column of signal tickets. Avoid equal-card grids by varying span, density, and lane color.
density
Medium-high density with 8px track alignment, short labels, and compact rows; whitespace appears as functional separation between lanes rather than broad editorial margins.
hierarchy
Headings are compact Space Grotesk labels, operational copy is IBM Plex Sans, and IDs or counts use IBM Plex Mono. Priority is conveyed by rail thickness, notch treatment, and active signal fill.
signature patterns
Four-color route rail system: cyan for live probes, amber for pending review, violet for palette decisions, and blue for external intelligence.Clipped top-right priority notch on major panels paired with striped header underlays to make urgent modules identifiable without extra icons.Monospace lane chips and small node dots align on vertical tracks, making status progress readable as an infrastructure map.Secondary controls use double-line technical borders while primary actions use flat filled signal plates with square edges and tiny radius.
layout
breakpoints

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

grid
12-column desktop switchboard with 280px navigation, 1fr route map, and 340px signal stack; tablet collapses to two columns; mobile stacks lane sections with rails preserved.
whitespace

Whitespace is measured in 8px tracks and appears as gutters between route lanes, preserving compact operational scanning.

guidance
do
  • Map every accent color to a lane or state before using it.
  • Keep card silhouettes square with only small inner radii and priority notches.
  • Use realistic probe, palette, and routing labels that imply a working product.
  • Preserve strong contrast on dark surfaces and visible focus outlines.
avoid
  • Do not use colors as confetti or marketing decoration.
  • Do not soften the system with glassmorphism, large shadows, or pill-only SaaS controls.
  • Do not create equal three-card rows without a dominant routed surface.
  • Do not remove the rails, node dots, and monospace lane IDs that carry the identity.
katagami spec
# Probe Palette Lane Routing

## Philosophy

A navigation-heavy palette language for investigative tools where color behaves like routed infrastructure: every hue is a lane, every surface is a switching board, and hierarchy is proven through measured tracks rather than decorative glow.

### Values

- chromatic routing as information architecture
- dense but legible operational rhythm
- visible handoff states between teams and data lanes
- restrained industrial tactility

### Anti-Values

- generic white SaaS cards with arbitrary accent colors
- rainbow decoration that does not map to state or route
- soft glass panels and unfocused gradients

### Visual Character

- Use left-edge vertical route rails in four token colors with matching tiny node dots and lane labels applied through CSS border-left and pseudo-elements.
- Build surfaces as matte graphite panels over a warm off-black field with subtle diagonal calibration stripes made from repeating-linear-gradient backgrounds.
- Compose the page on an asymmetric switchboard grid: one wide route map, a narrow signal stack, and compact status tickets snapped to 8px tracks.
- Render component boundaries with square-corner outer frames, small 6px inner radii, and clipped top-right notches using polygon clip-path on priority cards.
- Treat active actions as filled signal plates with high-contrast text while secondary controls remain outlined with double-rule borders and no drop-shadow gloss.

## Tokens

### Borders

- **Accent Width**: 4px
- **Character**: technical route rails, not decorative outlines; color indicates lane ownership or state
- **Default Width**: 1px
- **Style**: solid with occasional double-rule secondary controls

### Colors

| Name | Value |
|------|-------|
| accent | `#C084FC` |
| background | `#101316` |
| border | `#394149` |
| error | `#FF5A5F` |
| info | `#58A6FF` |
| muted | `#8E9AA3` |
| primary | `#5CE1E6` |
| secondary | `#FFB000` |
| success | `#54D990` |
| surface | `#1B2024` |
| text | `#F4F1E8` |
| warning | `#FFC857` |

### Motion

- **Duration**: 160ms
- **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1)
- **Philosophy**: fast signal acknowledgement: small translate shifts and rail color changes only, never bouncing or ambient animation

### Radii

- **Full**: 9999px
- **Lg**: 10px
- **Md**: 6px
- **None**: 0
- **Sm**: 3px

### Shadows

- **Lg**: 0 30px 80px rgba(0,0,0,0.38)
- **Md**: 0 18px 40px rgba(0,0,0,0.28)
- **Sm**: 0 1px 0 rgba(244,241,232,0.08) inset

### Spacing

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

### Surfaces

- **Bg Pattern**: off-black field with faint diagonal calibration stripes and low-contrast grid points
- **Card Style**: square outer frame, 6px inner radius, clipped top-right notch for priority modules, striped underlay only in headers
- **Treatment**: matte graphite panels with warm ivory typography and functional cyan, amber, violet, and blue lane rails

### Typography

- **Base Size**: 16px
- **Body Font**: IBM Plex Sans
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;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.48
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.22

## Rules

### Composition

Arrange screens as a switchboard: persistent left navigation rail, a dominant routed work surface, and a right column of signal tickets. Avoid equal-card grids by varying span, density, and lane color.

### Density

Medium-high density with 8px track alignment, short labels, and compact rows; whitespace appears as functional separation between lanes rather than broad editorial margins.

### Hierarchy

Headings are compact Space Grotesk labels, operational copy is IBM Plex Sans, and IDs or counts use IBM Plex Mono. Priority is conveyed by rail thickness, notch treatment, and active signal fill.

### Signature Patterns

- Four-color route rail system: cyan for live probes, amber for pending review, violet for palette decisions, and blue for external intelligence.
- Clipped top-right priority notch on major panels paired with striped header underlays to make urgent modules identifiable without extra icons.
- Monospace lane chips and small node dots align on vertical tracks, making status progress readable as an infrastructure map.
- Secondary controls use double-line technical borders while primary actions use flat filled signal plates with square edges and tiny radius.

## Layout

### Breakpoints

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

### Grid

12-column desktop switchboard with 280px navigation, 1fr route map, and 340px signal stack; tablet collapses to two columns; mobile stacks lane sections with rails preserved.

### Whitespace

Whitespace is measured in 8px tracks and appears as gutters between route lanes, preserving compact operational scanning.

## Guidance

### Do

- Map every accent color to a lane or state before using it.
- Keep card silhouettes square with only small inner radii and priority notches.
- Use realistic probe, palette, and routing labels that imply a working product.
- Preserve strong contrast on dark surfaces and visible focus outlines.

### Don't

- Do not use colors as confetti or marketing decoration.
- Do not soften the system with glassmorphism, large shadows, or pill-only SaaS controls.
- Do not create equal three-card rows without a dominant routed surface.
- Do not remove the rails, node dots, and monospace lane IDs that carry the identity.

### Usage Context

Best for palette governance tools, routing consoles, research triage systems, observability products, and design ops dashboards where state transitions are the product.
DESIGN.md
---
version: "alpha"
name: "Probe Palette Lane Routing"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#C084FC"
  background: "#101316"
  border: "#394149"
  error: "#FF5A5F"
  info: "#58A6FF"
  muted: "#8E9AA3"
  primary: "#5CE1E6"
  secondary: "#FFB000"
  success: "#54D990"
  surface: "#1B2024"
  text: "#F4F1E8"
  warning: "#FFC857"
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.48
    letterSpacing: "-0.015em"
  label-md:
    fontFamily: "IBM Plex Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "10px"
  md: "6px"
  none: "0px"
  sm: "3px"
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: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Probe Palette Lane Routing

## Overview

A navigation-heavy palette language for investigative tools where color behaves like routed infrastructure: every hue is a lane, every surface is a switching board, and hierarchy is proven through measured tracks rather than decorative glow.

### Values

- chromatic routing as information architecture
- dense but legible operational rhythm
- visible handoff states between teams and data lanes
- restrained industrial tactility

### Anti-Values

- generic white SaaS cards with arbitrary accent colors
- rainbow decoration that does not map to state or route
- soft glass panels and unfocused gradients

### Visual Character

- Use left-edge vertical route rails in four token colors with matching tiny node dots and lane labels applied through CSS border-left and pseudo-elements.
- Build surfaces as matte graphite panels over a warm off-black field with subtle diagonal calibration stripes made from repeating-linear-gradient backgrounds.
- Compose the page on an asymmetric switchboard grid: one wide route map, a narrow signal stack, and compact status tickets snapped to 8px tracks.
- Render component boundaries with square-corner outer frames, small 6px inner radii, and clipped top-right notches using polygon clip-path on priority cards.
- Treat active actions as filled signal plates with high-contrast text while secondary controls remain outlined with double-rule borders and no drop-shadow gloss.

## 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 | `#C084FC` |
| background | `#101316` |
| border | `#394149` |
| error | `#FF5A5F` |
| info | `#58A6FF` |
| muted | `#8E9AA3` |
| primary | `#5CE1E6` |
| secondary | `#FFB000` |
| success | `#54D990` |
| surface | `#1B2024` |
| text | `#F4F1E8` |
| warning | `#FFC857` |

## 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.48.
- **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 switchboard with 280px navigation, 1fr route map, and 340px signal stack; tablet collapses to two columns; mobile stacks lane sections with rails preserved.

### Whitespace

Whitespace is measured in 8px tracks and appears as gutters between route lanes, preserving compact operational scanning.

## Elevation & Depth

### Shadows

- **Lg**: 0 30px 80px rgba(0,0,0,0.38)
- **Md**: 0 18px 40px rgba(0,0,0,0.28)
- **Sm**: 0 1px 0 rgba(244,241,232,0.08) inset

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `10px`
- **Md**: `6px`
- **None**: `0px`
- **Sm**: `3px`

### Surfaces

- **Bg Pattern**: off-black field with faint diagonal calibration stripes and low-contrast grid points
- **Card Style**: square outer frame, 6px inner radius, clipped top-right notch for priority modules, striped underlay only in headers
- **Treatment**: matte graphite panels with warm ivory typography and functional cyan, amber, violet, and blue lane rails

### Borders

- **Accent Width**: 4px
- **Character**: technical route rails, not decorative outlines; color indicates lane ownership or state
- **Default Width**: 1px
- **Style**: solid with occasional double-rule secondary controls

## Components

### Composition

Arrange screens as a switchboard: persistent left navigation rail, a dominant routed work surface, and a right column of signal tickets. Avoid equal-card grids by varying span, density, and lane color.

### Density

Medium-high density with 8px track alignment, short labels, and compact rows; whitespace appears as functional separation between lanes rather than broad editorial margins.

### Hierarchy

Headings are compact Space Grotesk labels, operational copy is IBM Plex Sans, and IDs or counts use IBM Plex Mono. Priority is conveyed by rail thickness, notch treatment, and active signal fill.

### Signature Patterns

- Four-color route rail system: cyan for live probes, amber for pending review, violet for palette decisions, and blue for external intelligence.
- Clipped top-right priority notch on major panels paired with striped header underlays to make urgent modules identifiable without extra icons.
- Monospace lane chips and small node dots align on vertical tracks, making status progress readable as an infrastructure map.
- Secondary controls use double-line technical borders while primary actions use flat filled signal plates with square edges and tiny radius.

## 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-019eb32c-6c9d-7262-bd6a-ebdecf884dce/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 Map every accent color to a lane or state before using it.
- Do Keep card silhouettes square with only small inner radii and priority notches.
- Do Use realistic probe, palette, and routing labels that imply a working product.
- Do Preserve strong contrast on dark surfaces and visible focus outlines.
- Don't Do not use colors as confetti or marketing decoration.
- Don't Do not soften the system with glassmorphism, large shadows, or pill-only SaaS controls.
- Don't Do not create equal three-card rows without a dominant routed surface.
- Don't Do not remove the rails, node dots, and monospace lane IDs that carry the identity.

### Usage Context

Best for palette governance tools, routing consoles, research triage systems, observability products, and design ops dashboards where state transitions are the product.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "probe-palette-lane-routing",
  "type": "registry:theme",
  "title": "Probe Palette Lane Routing shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#101316",
      "foreground": "#F4F1E8",
      "card": "#1B2024",
      "card-foreground": "#F4F1E8",
      "popover": "#1B2024",
      "popover-foreground": "#F4F1E8",
      "primary": "#5CE1E6",
      "primary-foreground": "#111111",
      "secondary": "#FFB000",
      "secondary-foreground": "#ffffff",
      "muted": "#8E9AA3",
      "muted-foreground": "#F4F1E8",
      "accent": "#C084FC",
      "accent-foreground": "#ffffff",
      "destructive": "#FF5A5F",
      "border": "#394149",
      "input": "#394149",
      "ring": "#C084FC",
      "chart-1": "#5CE1E6",
      "chart-2": "#FFB000",
      "chart-3": "#C084FC",
      "chart-4": "#54D990",
      "chart-5": "#FFC857",
      "sidebar": "#1B2024",
      "sidebar-foreground": "#F4F1E8",
      "sidebar-primary": "#5CE1E6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#58A6FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#394149",
      "sidebar-ring": "#C084FC",
      "radius": "6px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#5CE1E6",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C084FC",
      "accent-foreground": "#ffffff",
      "destructive": "#FF5A5F",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C084FC",
      "chart-1": "#5CE1E6",
      "chart-2": "#FFB000",
      "chart-3": "#C084FC",
      "chart-4": "#54D990",
      "chart-5": "#FFC857",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#5CE1E6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#C084FC",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C084FC",
      "radius": "6px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019eb32c-6c9d-7262-bd6a-ebdecf884dce",
    "slug": "probe-palette-lane-routing",
    "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"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · probe-palette-lane-routing
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
lg10px
md6px
none0px
sm3px
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: #101316;
  --foreground: #F4F1E8;
  --card: #1B2024;
  --card-foreground: #F4F1E8;
  --popover: #1B2024;
  --popover-foreground: #F4F1E8;
  --primary: #5CE1E6;
  --primary-foreground: #111111;
  --secondary: #FFB000;
  --secondary-foreground: #ffffff;
  --muted: #8E9AA3;
  --muted-foreground: #F4F1E8;
  --accent: #C084FC;
  --accent-foreground: #ffffff;
  --destructive: #FF5A5F;
  --border: #394149;
  --input: #394149;
  --ring: #C084FC;
  --chart-1: #5CE1E6;
  --chart-2: #FFB000;
  --chart-3: #C084FC;
  --chart-4: #54D990;
  --chart-5: #FFC857;
  --sidebar: #1B2024;
  --sidebar-foreground: #F4F1E8;
  --sidebar-primary: #5CE1E6;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #58A6FF;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #394149;
  --sidebar-ring: #C084FC;
  --radius: 6px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #5CE1E6;
  --primary-foreground: #111111;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #C084FC;
  --accent-foreground: #ffffff;
  --destructive: #FF5A5F;
  --border: #303642;
  --input: #303642;
  --ring: #C084FC;
  --chart-1: #5CE1E6;
  --chart-2: #FFB000;
  --chart-3: #C084FC;
  --chart-4: #54D990;
  --chart-5: #FFC857;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #5CE1E6;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #C084FC;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #C084FC;
  --radius: 6px;
}
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 ProbePaletteLaneRoutingShadcnKit() {
  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">Probe Palette Lane Routing</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": "probe-palette-lane-routing",
  "type": "registry:theme",
  "title": "Probe Palette Lane Routing shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#101316",
      "foreground": "#F4F1E8",
      "card": "#1B2024",
      "card-foreground": "#F4F1E8",
      "popover": "#1B2024",
      "popover-foreground": "#F4F1E8",
      "primary": "#5CE1E6",
      "primary-foreground": "#111111",
      "secondary": "#FFB000",
      "secondary-foreground": "#ffffff",
      "muted": "#8E9AA3",
      "muted-foreground": "#F4F1E8",
      "accent": "#C084FC",
      "accent-foreground": "#ffffff",
      "destructive": "#FF5A5F",
      "border": "#394149",
      "input": "#394149",
      "ring": "#C084FC",
      "chart-1": "#5CE1E6",
      "chart-2": "#FFB000",
      "chart-3": "#C084FC",
      "chart-4": "#54D990",
      "chart-5": "#FFC857",
      "sidebar": "#1B2024",
      "sidebar-foreground": "#F4F1E8",
      "sidebar-primary": "#5CE1E6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#58A6FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#394149",
      "sidebar-ring": "#C084FC",
      "radius": "6px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#5CE1E6",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C084FC",
      "accent-foreground": "#ffffff",
      "destructive": "#FF5A5F",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C084FC",
      "chart-1": "#5CE1E6",
      "chart-2": "#FFB000",
      "chart-3": "#C084FC",
      "chart-4": "#54D990",
      "chart-5": "#FFC857",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#5CE1E6",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#C084FC",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C084FC",
      "radius": "6px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019eb32c-6c9d-7262-bd6a-ebdecf884dce",
    "slug": "probe-palette-lane-routing",
    "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"
      ]
    }
  }
}
component recipesstored
# Probe Palette Lane Routing shadcn/ui Components
Author: `katagami-agent`

## Intent
Translate the routed palette switchboard into shadcn/ui primitives: dark graphite surfaces, visible colored route rails, clipped priority cards, compact monospace lane IDs, and functional accent colors.

## Required primitives
button, card, input, textarea, select, dialog, sheet, tabs, badge, separator, checkbox, switch, slider, tooltip, dropdown-menu, table.

## Token cues
Use background #101316, card #1B2024, foreground #F4F1E8, muted #8E9AA3, border #394149, primary cyan #5CE1E6, amber #FFB000, violet #C084FC, blue #58A6FF, success #54D990, destructive #FF5A5F. Fonts: Space Grotesk headings, IBM Plex Sans body, IBM Plex Mono codes.

## Visual character to preserve
Colored left route rails, small node dots, diagonal calibration stripes, square frames with 6px inner radius, priority notch via clip-path, double-rule secondary controls, flat signal-plate primary actions.

## ShadSync visual profile
family: routed-switchboard; material: matte-graphite; contour: square-notch; border: rail-and-double-rule; underlay: calibration-stripes; grain: false; stickerBadges: false; motion: signal-acknowledge; density: compact-operational; accents: cyan live, amber review, violet decision, blue external.

## Signature component recipes
- button: primary is filled cyan signal plate with square 3px radius; secondary is transparent with 3px double border; destructive uses red rail plus flat fill.
- card: graphite background, #394149 border, optional 4px colored left rail; priority cards use clipped top-right notch.
- input, textarea, select: graphite inset fields with violet or cyan focus rail, mono helper labels, no browser default glow.
- dialog and sheet: matte panels with striped header underlay, compact title, route rail on the leading edge.
- tabs: lane tabs use colored top or left rails and mono IDs; active state is filled dark panel with accent underline.
- badge: monospace lane chips with 1px currentColor border, tiny radius or full pill only for status IDs.
- separator: 1px #394149 rule with optional small colored node dot at start.
- checkbox and switch: square checkbox with cyan check; switch track is success green or muted graphite with small dark knob.
- slider: thin graphite track, cyan filled range, round node thumb sized 14px.
- tooltip and dropdown-menu: compact graphite popovers with double-rule border and mono shortcut labels.
- table: dense rows, top borders only, first column lane chip, row hover as subtle rail-color wash.

## Preview shots
application-shell shows the full route console; detail-editor shows palette fork editing with form controls; data-operations shows lane table, dropdown, tooltip, switch and slider states.

## Implementation contract
Import local primitives from `@/components/ui/*`. Do not invent another component system. Preserve token names, route rails, priority notches, compact density, visible focus outlines, and realistic palette routing content.

## 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"

export function ProbeLaneCard() {
  return (
    <Card className="relative overflow-hidden rounded-[6px] border border-[#394149] bg-[#1B2024] text-[#F4F1E8] [clip-path:polygon(0_0,calc(100%_-_18px)_0,100%_18px,100%_100%,0_100%)] before:absolute before:left-0 before:top-0 before:h-full before:w-1 before:bg-[#C084FC]">
      <CardHeader className="bg-[repeating-linear-gradient(90deg,rgba(92,225,230,.16)_0_6px,transparent_6px_14px)] pl-6">
        <Badge className="w-fit border-[#C084FC] bg-transparent font-mono text-[#C084FC]">PAL-04</Badge>
        <CardTitle className="font-['Space_Grotesk'] tracking-[-0.04em]">Palette fork decision</CardTitle>
      </CardHeader>
      <CardContent className="space-y-3 pl-6">
        <Input className="rounded-[6px] border-[#394149] border-l-[#C084FC] bg-[#101316] text-[#F4F1E8]" defaultValue="violet accent lane" />
        <Button className="rounded-[3px] bg-[#5CE1E6] font-bold text-[#101316] hover:bg-[#5CE1E6]/90">Promote lane</Button>
      </CardContent>
    </Card>
  )
}
```
preview shotsstored
{
  "artifact": "katagami:shadcn-preview-shots",
  "author": "katagami-agent",
  "componentRecipes": [
    {
      "component": "button",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "card",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "input",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "textarea",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "select",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "dialog",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "sheet",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "tabs",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "badge",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "separator",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "checkbox",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "switch",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "slider",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "tooltip",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "dropdown-menu",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    },
    {
      "component": "table",
      "recipe": "Use matte graphite shadcn primitive styling with compact spacing, visible focus ring, and lane rail or mono status treatment when context-bearing."
    }
  ],
  "generatedBy": "katagami-agent",
  "renderable": true,
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "shots": [
    {
      "avoid": [
        "generic equal cards",
        "decorative rainbow accents"
      ],
      "composition": "Three-column route console with left lane navigation, dominant probe map, and signal tickets.",
      "id": "application-shell",
      "mustShowStates": [
        "active cyan route",
        "amber pending review",
        "violet palette decision",
        "priority notch card"
      ],
      "primitives": [
        "button",
        "card",
        "tabs",
        "badge",
        "separator",
        "tooltip",
        "dropdown-menu",
        "table"
      ],
      "scene": {
        "actions": [
          "Promote violet lane",
          "Inspect route diff"
        ],
        "description": "A palette governance shell for live probes and curator handoffs.",
        "eyebrow": "query probe-latest-8c518b",
        "headline": "Route every palette choice through visible operational lanes",
        "rows": [
          {
            "id": "CY-18",
            "name": "Probe intake",
            "state": "live"
          },
          {
            "id": "AM-07",
            "name": "Review hold",
            "state": "pending"
          },
          {
            "id": "VI-04",
            "name": "Palette fork",
            "state": "decision"
          }
        ],
        "stats": [
          {
            "label": "contrast pass",
            "value": "94%"
          },
          {
            "label": "route conflicts",
            "value": "03"
          },
          {
            "label": "lanes synced",
            "value": "4/4"
          }
        ]
      }
    },
    {
      "avoid": [
        "soft glass forms",
        "oversized rounded fields"
      ],
      "composition": "Clipped violet editor card beside a sheet of lane metadata and compact controls.",
      "id": "detail-editor",
      "mustShowStates": [
        "focused violet input rail",
        "enabled approval switch",
        "slider threshold",
        "checked contrast box"
      ],
      "primitives": [
        "card",
        "input",
        "textarea",
        "select",
        "dialog",
        "sheet",
        "checkbox",
        "switch",
        "slider",
        "button",
        "badge"
      ],
      "scene": {
        "actions": [
          "Save lane patch",
          "Open audit sheet"
        ],
        "description": "Edit semantic roles, contrast thresholds, and routing notes before promotion.",
        "eyebrow": "palette fork editor",
        "fields": [
          {
            "label": "Lane name",
            "value": "violet accent lane"
          },
          {
            "label": "Contrast threshold",
            "value": "AA 4.8"
          },
          {
            "label": "Curator note",
            "value": "Keep violet for decisions only"
          }
        ],
        "headline": "Tune violet accent lane against graphite surfaces",
        "stats": [
          {
            "label": "approval",
            "value": "enabled"
          },
          {
            "label": "threshold",
            "value": "72"
          }
        ]
      }
    },
    {
      "avoid": [
        "inventory wall of components",
        "unmapped accent colors"
      ],
      "composition": "Dense operations table with mono lane chips, dropdown actions, and blue external-signal rail.",
      "id": "data-operations",
      "mustShowStates": [
        "hoverable table rows",
        "dropdown open affordance",
        "tooltip on conflict count",
        "blue external rail"
      ],
      "primitives": [
        "table",
        "dropdown-menu",
        "tooltip",
        "badge",
        "separator",
        "button",
        "card",
        "select",
        "switch"
      ],
      "scene": {
        "actions": [
          "Export route log",
          "Resolve conflicts"
        ],
        "description": "Operators inspect which palette signals moved between probe, review, and decision lanes.",
        "eyebrow": "data operations",
        "headline": "Audit lane transfers and external references",
        "rows": [
          {
            "id": "EXT-21",
            "lane": "blue",
            "name": "Market reference",
            "status": "linked"
          },
          {
            "id": "REV-07",
            "lane": "amber",
            "name": "Curator hold",
            "status": "waiting"
          },
          {
            "id": "PAL-04",
            "lane": "violet",
            "name": "Accent fork",
            "status": "ready"
          }
        ],
        "stats": [
          {
            "label": "external refs",
            "value": "32"
          },
          {
            "label": "waiting",
            "value": "7"
          }
        ]
      }
    }
  ],
  "version": "preview-shots-v1",
  "visualProfile": {
    "accents": [
      "cyan live probes",
      "amber review holds",
      "violet palette decisions",
      "blue external signals"
    ],
    "border": "rail-and-double-rule",
    "contour": "square-notch",
    "density": "compact-operational",
    "family": "routed-switchboard",
    "grain": false,
    "material": "matte-graphite",
    "motion": "signal-acknowledge",
    "stickerBadges": false,
    "underlay": "calibration-stripes"
  }
}
related

More like this