back to gallery
design language·rain-shell-command

Rain-Shell Command

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
Rain-Shell Command is a nocturnal interface language for private terminal work inside compressed capsule rooms: black manga-panel structure, midnight wet surfaces, amber vending-machine glow, and CRT-soft typed signals. It treats software as shelter rather than spectacle, making every active region feel like a reserved pod with a latch, a number plate, and a quiet machine breathing behind the curtain.
values
Shelter over spectacle: the screen should feel like a small protected berth for concentration, not a public command center.Compression with dignity: dense information is organized as sleeping-pod cells with strong thresholds, not cramped SaaS cards.Manga-negative space: black-and-white panel sequencing, cropped frames, and hard gutters create narrative rhythm without illustration.Late-night hardware tactility: status LEDs, latches, printer strips, and boot prompts give components a physical service-core presence.Soft electronic solitude: amber vending glow and CRT gray bloom supply warmth while the surrounding navy-black field remains restrained.One active pane: hierarchy comes from a single lit compartment surrounded by dormant shells and quiet margins.
anti-values
×No green matrix rain, neon cyberpunk spectrums, generic hacker dashboards, or maximal HUD reticles.×No anime character fan art, cosplay kanji wallpaper, mecha faces, or decorative city-grid clichés.×No equal SaaS card rows, chrome blob effects, novelty hacker fonts, or dense code-wall wallpaper.×No bright triadic accent palettes; cyan appears only as desaturated wet glass reflection noise.
tokens
borders4 items
accent width
2px
character
Ivory partitions at 8-14% opacity for dormant shells; active panes use warmer amber rails and visible latch notches.
default width
1px
style
solid
colors12 items
accent
#C87946
background
#070A10
border
#E9E1D2
error
#B45A52
info
#76909A
muted
#8B9297
primary
#E9E1D2
secondary
#A9794E
success
#9E9A73
surface
#0D1320
text
#F2EBDD
warning
#D39A55
motion3 items
duration
260ms
easing
cubic-bezier(.2,.7,.1,1)
philosophy
Motion is a quiet boot sequence: cursor breath, LED wink, and sliding hatch focus states; no sweeping cyberpunk animation.
radii5 items
full
9999px
lg
24px
md
16px
none
0px
sm
0px
shadows3 items
lg
0 34px 90px rgba(0,0,0,0.62), inset 0 0 60px rgba(233,225,210,0.025)
md
0 18px 44px rgba(0,0,0,0.46), 0 0 26px rgba(200,121,70,0.08)
sm
0 0 0 1px rgba(233,225,210,0.08)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
bg pattern
Layered radial amber vending glow, sparse cyan rain streaks, and fine CRT scanlines over a near-black field.
card style
Capsule berth panels: squared shells with one rounded inner hatch, side latch tabs, pod IDs, and dormant black negative space.
treatment
Wet midnight navy panels with manga-white partitions, amber-lit active interiors, and transparent scanline/rain overlays.
typography8 items
base size
16px
body font
IBM Plex Sans
google fonts url
https://fonts.googleapis.com/css2?family=Archivo+SemiExpanded:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=Share+Tech+Mono&display=swap
heading font
Archivo SemiExpanded
letter spacing
-0.02em
line height
1.55
mono font
Share Tech Mono
scale ratio
1.2
rules
composition
Build screens as stacked berth compartments: one dominant active terminal pane, several narrower dormant capsule shells, black rain gutters between groups, and cropped threshold panels that imply more rooms beyond the viewport. Avoid equal card rows; vary panel height and inset depth so the layout reads like manga sequencing and capsule hotel architecture.
density
Density is compressed but breathable: terminal lines can be tight at 1.35, labels cluster at 4-8px, but major berth groups separate by 64-96px of wet black negative space.
hierarchy
Make the active pane brightest through ivory partitions, amber terminal text, and a larger hatch opening. Secondary content should look asleep: lower contrast, sealed rails, tiny LEDs, and clipped labels. Headings use narrow uppercase caption logic while body copy remains humanist and legible.
signature patterns
Capsule hatch cards use ::before number plates and ::after latch tabs positioned over 1px ivory partition borders.Rain-gutter dividers are vertical or horizontal black strips with a few desaturated cyan streaks masked by linear gradients.Active terminal panes carry scanline overlays plus a low amber inset box-shadow to mimic soft CRT phosphor bloom.Ticket-printer strips appear as narrow ivory bands with perforation dots and timestamps attached to command results.Dormant shells are visibly cropped at container edges using overflow hidden and offset nested berth rectangles.
layout
breakpoints

1440px desktop composition, 900px tablet stack with retained gutters, 560px mobile corridor with simplified latch plates.

density

Compact terminal clusters sit inside larger architectural voids, giving an 8:1 rhythm between 4px micro-label gaps and 96px scene margins.

grid
Desktop uses a 12-column shell with a 360px left pod stack and an 8-column active terminal; tablet collapses to stacked berths; mobile becomes a single vertical corridor of capsule panes.
responsive
At narrow widths, side rails become top number plates, panels crop less aggressively, and command rows wrap into ticket strips instead of shrinking below readable size.
whitespace

Whitespace is wet black negative space: broad margins and rain gutters isolate the active pane while tiny interior gaps keep terminal controls intimate.

guidance
do
  • Use one amber-lit active terminal pane per screen and keep surrounding pods visibly quieter.
  • Anchor components with pod IDs, reservation codes, latch tabs, and tiny LEDs rather than decorative icons.
  • Keep cyan desaturated and sparse, used only for rain-on-glass reflections or secondary info.
  • Use ivory partitions as manga panel structure, mostly at low opacity, with stronger lines only on active thresholds.
  • Maintain body text at 15-16px with -0.02em tracking and display headings at -0.04em tracking.
  • Let large wet-black gutters create solitude; do not fill every void with data.
  • Use monospace prompts, timestamps, and room codes to establish terminal authenticity.
avoid
  • Do not use green matrix effects, neon rainbow cyberpunk, city-grid backgrounds, or hacker stock dashboards.
  • Do not place three equal cards in a row or use generic analytics KPI components.
  • Do not use character art, mecha silhouettes, anime faces, or kanji wallpaper as identity shortcuts.
  • Do not use novelty hacker fonts, unreadable code walls, or aggressive HUD reticles.
  • Do not make all panels glow; only the active berth receives warm illumination.
  • Do not use pure saturated cyan, mint, purple, or synthetic triadic accents.
  • Do not round every surface; square manga partitions and restrained hatch radii define the shell.
katagami spec
# Rain-Shell Command

## Philosophy

Rain-Shell Command is a nocturnal interface language for private terminal work inside compressed capsule rooms: black manga-panel structure, midnight wet surfaces, amber vending-machine glow, and CRT-soft typed signals. It treats software as shelter rather than spectacle, making every active region feel like a reserved pod with a latch, a number plate, and a quiet machine breathing behind the curtain.

### Values

- Shelter over spectacle: the screen should feel like a small protected berth for concentration, not a public command center.
- Compression with dignity: dense information is organized as sleeping-pod cells with strong thresholds, not cramped SaaS cards.
- Manga-negative space: black-and-white panel sequencing, cropped frames, and hard gutters create narrative rhythm without illustration.
- Late-night hardware tactility: status LEDs, latches, printer strips, and boot prompts give components a physical service-core presence.
- Soft electronic solitude: amber vending glow and CRT gray bloom supply warmth while the surrounding navy-black field remains restrained.
- One active pane: hierarchy comes from a single lit compartment surrounded by dormant shells and quiet margins.

### Anti-Values

- No green matrix rain, neon cyberpunk spectrums, generic hacker dashboards, or maximal HUD reticles.
- No anime character fan art, cosplay kanji wallpaper, mecha faces, or decorative city-grid clichés.
- No equal SaaS card rows, chrome blob effects, novelty hacker fonts, or dense code-wall wallpaper.
- No bright triadic accent palettes; cyan appears only as desaturated wet glass reflection noise.

### Visual Character

- Use nested berth rectangles with 1px ivory manga partitions, 0 or 16px radii, and sliding-door side rails that make panes read as capsule rooms.
- Reserve one large active terminal pane with amber inner glow while adjacent pods are dark, cropped, and partially sealed by black rain gutters.
- Apply CRT softness through subtle scanline overlays, low-opacity phosphor bloom, and typed cursor pulses rather than bright neon effects.
- Attach small pod number plates, latch tabs, ticket-printer strips, and tiny status LEDs to component edges as physical interface affordances.
- Sequence sections like black-and-white manga panels with asymmetric crops, vertical gutters, and occasional full-height threshold dividers.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: Ivory partitions at 8-14% opacity for dormant shells; active panes use warmer amber rails and visible latch notches.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#C87946` |
| background | `#070A10` |
| border | `#E9E1D2` |
| error | `#B45A52` |
| info | `#76909A` |
| muted | `#8B9297` |
| primary | `#E9E1D2` |
| secondary | `#A9794E` |
| success | `#9E9A73` |
| surface | `#0D1320` |
| text | `#F2EBDD` |
| warning | `#D39A55` |

### Motion

- **Duration**: 260ms
- **Easing**: cubic-bezier(.2,.7,.1,1)
- **Philosophy**: Motion is a quiet boot sequence: cursor breath, LED wink, and sliding hatch focus states; no sweeping cyberpunk animation.

### Radii

- **Full**: 9999px
- **Lg**: 24px
- **Md**: 16px
- **None**: 0px
- **Sm**: 0px

### Shadows

- **Lg**: 0 34px 90px rgba(0,0,0,0.62), inset 0 0 60px rgba(233,225,210,0.025)
- **Md**: 0 18px 44px rgba(0,0,0,0.46), 0 0 26px rgba(200,121,70,0.08)
- **Sm**: 0 0 0 1px rgba(233,225,210,0.08)

### Spacing

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

### Surfaces

- **Bg Pattern**: Layered radial amber vending glow, sparse cyan rain streaks, and fine CRT scanlines over a near-black field.
- **Card Style**: Capsule berth panels: squared shells with one rounded inner hatch, side latch tabs, pod IDs, and dormant black negative space.
- **Treatment**: Wet midnight navy panels with manga-white partitions, amber-lit active interiors, and transparent scanline/rain overlays.

### Typography

- **Base Size**: 16px
- **Body Font**: IBM Plex Sans
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo+SemiExpanded:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=Share+Tech+Mono&display=swap
- **Heading Font**: Archivo SemiExpanded
- **Letter Spacing**: -0.02em
- **Line Height**: 1.55
- **Mono Font**: Share Tech Mono
- **Scale Ratio**: 1.2

## Rules

### Composition

Build screens as stacked berth compartments: one dominant active terminal pane, several narrower dormant capsule shells, black rain gutters between groups, and cropped threshold panels that imply more rooms beyond the viewport. Avoid equal card rows; vary panel height and inset depth so the layout reads like manga sequencing and capsule hotel architecture.

### Density

Density is compressed but breathable: terminal lines can be tight at 1.35, labels cluster at 4-8px, but major berth groups separate by 64-96px of wet black negative space.

### Hierarchy

Make the active pane brightest through ivory partitions, amber terminal text, and a larger hatch opening. Secondary content should look asleep: lower contrast, sealed rails, tiny LEDs, and clipped labels. Headings use narrow uppercase caption logic while body copy remains humanist and legible.

### Signature Patterns

- Capsule hatch cards use ::before number plates and ::after latch tabs positioned over 1px ivory partition borders.
- Rain-gutter dividers are vertical or horizontal black strips with a few desaturated cyan streaks masked by linear gradients.
- Active terminal panes carry scanline overlays plus a low amber inset box-shadow to mimic soft CRT phosphor bloom.
- Ticket-printer strips appear as narrow ivory bands with perforation dots and timestamps attached to command results.
- Dormant shells are visibly cropped at container edges using overflow hidden and offset nested berth rectangles.

## Layout

### Breakpoints

1440px desktop composition, 900px tablet stack with retained gutters, 560px mobile corridor with simplified latch plates.

### Density

Compact terminal clusters sit inside larger architectural voids, giving an 8:1 rhythm between 4px micro-label gaps and 96px scene margins.

### Grid

Desktop uses a 12-column shell with a 360px left pod stack and an 8-column active terminal; tablet collapses to stacked berths; mobile becomes a single vertical corridor of capsule panes.

### Responsive

At narrow widths, side rails become top number plates, panels crop less aggressively, and command rows wrap into ticket strips instead of shrinking below readable size.

### Whitespace

Whitespace is wet black negative space: broad margins and rain gutters isolate the active pane while tiny interior gaps keep terminal controls intimate.

## Guidance

### Do

- Use one amber-lit active terminal pane per screen and keep surrounding pods visibly quieter.
- Anchor components with pod IDs, reservation codes, latch tabs, and tiny LEDs rather than decorative icons.
- Keep cyan desaturated and sparse, used only for rain-on-glass reflections or secondary info.
- Use ivory partitions as manga panel structure, mostly at low opacity, with stronger lines only on active thresholds.
- Maintain body text at 15-16px with -0.02em tracking and display headings at -0.04em tracking.
- Let large wet-black gutters create solitude; do not fill every void with data.
- Use monospace prompts, timestamps, and room codes to establish terminal authenticity.

### Don't

- Do not use green matrix effects, neon rainbow cyberpunk, city-grid backgrounds, or hacker stock dashboards.
- Do not place three equal cards in a row or use generic analytics KPI components.
- Do not use character art, mecha silhouettes, anime faces, or kanji wallpaper as identity shortcuts.
- Do not use novelty hacker fonts, unreadable code walls, or aggressive HUD reticles.
- Do not make all panels glow; only the active berth receives warm illumination.
- Do not use pure saturated cyan, mint, purple, or synthetic triadic accents.
- Do not round every surface; square manga partitions and restrained hatch radii define the shell.

### Accessibility

Keep text contrast AA on dark surfaces, never encode status by LED color alone, provide visible amber or ivory focus outlines, and ensure scanline/rain overlays remain low opacity behind readable text.

### Usage Context

Best for fictional private operating systems, overnight infrastructure tools, terminal-first creative software, and quiet monitoring interfaces where the user inhabits a small protected digital room.
DESIGN.md
---
version: "alpha"
name: "Rain-Shell Command"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#C87946"
  background: "#070A10"
  border: "#E9E1D2"
  error: "#B45A52"
  info: "#76909A"
  muted: "#8B9297"
  primary: "#E9E1D2"
  secondary: "#A9794E"
  success: "#9E9A73"
  surface: "#0D1320"
  text: "#F2EBDD"
  warning: "#D39A55"
typography:
  headline-lg:
    fontFamily: "Archivo SemiExpanded"
    fontSize: "1.728rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Archivo SemiExpanded"
    fontSize: "1.44rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Share Tech Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "24px"
  md: "16px"
  none: "0px"
  sm: "0px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
components:
  color-reference-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"
---

# Rain-Shell Command

## Overview

Rain-Shell Command is a nocturnal interface language for private terminal work inside compressed capsule rooms: black manga-panel structure, midnight wet surfaces, amber vending-machine glow, and CRT-soft typed signals. It treats software as shelter rather than spectacle, making every active region feel like a reserved pod with a latch, a number plate, and a quiet machine breathing behind the curtain.

### Values

- Shelter over spectacle: the screen should feel like a small protected berth for concentration, not a public command center.
- Compression with dignity: dense information is organized as sleeping-pod cells with strong thresholds, not cramped SaaS cards.
- Manga-negative space: black-and-white panel sequencing, cropped frames, and hard gutters create narrative rhythm without illustration.
- Late-night hardware tactility: status LEDs, latches, printer strips, and boot prompts give components a physical service-core presence.
- Soft electronic solitude: amber vending glow and CRT gray bloom supply warmth while the surrounding navy-black field remains restrained.
- One active pane: hierarchy comes from a single lit compartment surrounded by dormant shells and quiet margins.

### Anti-Values

- No green matrix rain, neon cyberpunk spectrums, generic hacker dashboards, or maximal HUD reticles.
- No anime character fan art, cosplay kanji wallpaper, mecha faces, or decorative city-grid clichés.
- No equal SaaS card rows, chrome blob effects, novelty hacker fonts, or dense code-wall wallpaper.
- No bright triadic accent palettes; cyan appears only as desaturated wet glass reflection noise.

### Visual Character

- Use nested berth rectangles with 1px ivory manga partitions, 0 or 16px radii, and sliding-door side rails that make panes read as capsule rooms.
- Reserve one large active terminal pane with amber inner glow while adjacent pods are dark, cropped, and partially sealed by black rain gutters.
- Apply CRT softness through subtle scanline overlays, low-opacity phosphor bloom, and typed cursor pulses rather than bright neon effects.
- Attach small pod number plates, latch tabs, ticket-printer strips, and tiny status LEDs to component edges as physical interface affordances.
- Sequence sections like black-and-white manga panels with asymmetric crops, vertical gutters, and occasional full-height threshold dividers.

## 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 | `#C87946` |
| background | `#070A10` |
| border | `#E9E1D2` |
| error | `#B45A52` |
| info | `#76909A` |
| muted | `#8B9297` |
| primary | `#E9E1D2` |
| secondary | `#A9794E` |
| success | `#9E9A73` |
| surface | `#0D1320` |
| text | `#F2EBDD` |
| warning | `#D39A55` |

## Typography

- **Headline-Lg**: Archivo SemiExpanded, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo SemiExpanded, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.55.
- **Label-Md**: Share Tech Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`

### Breakpoints

1440px desktop composition, 900px tablet stack with retained gutters, 560px mobile corridor with simplified latch plates.

### Density

Compact terminal clusters sit inside larger architectural voids, giving an 8:1 rhythm between 4px micro-label gaps and 96px scene margins.

### Grid

Desktop uses a 12-column shell with a 360px left pod stack and an 8-column active terminal; tablet collapses to stacked berths; mobile becomes a single vertical corridor of capsule panes.

### Responsive

At narrow widths, side rails become top number plates, panels crop less aggressively, and command rows wrap into ticket strips instead of shrinking below readable size.

### Whitespace

Whitespace is wet black negative space: broad margins and rain gutters isolate the active pane while tiny interior gaps keep terminal controls intimate.

## Elevation & Depth

### Shadows

- **Lg**: 0 34px 90px rgba(0,0,0,0.62), inset 0 0 60px rgba(233,225,210,0.025)
- **Md**: 0 18px 44px rgba(0,0,0,0.46), 0 0 26px rgba(200,121,70,0.08)
- **Sm**: 0 0 0 1px rgba(233,225,210,0.08)

## Shapes

### Rounded

- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`

### Surfaces

- **Bg Pattern**: Layered radial amber vending glow, sparse cyan rain streaks, and fine CRT scanlines over a near-black field.
- **Card Style**: Capsule berth panels: squared shells with one rounded inner hatch, side latch tabs, pod IDs, and dormant black negative space.
- **Treatment**: Wet midnight navy panels with manga-white partitions, amber-lit active interiors, and transparent scanline/rain overlays.

### Borders

- **Accent Width**: 2px
- **Character**: Ivory partitions at 8-14% opacity for dormant shells; active panes use warmer amber rails and visible latch notches.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Build screens as stacked berth compartments: one dominant active terminal pane, several narrower dormant capsule shells, black rain gutters between groups, and cropped threshold panels that imply more rooms beyond the viewport. Avoid equal card rows; vary panel height and inset depth so the layout reads like manga sequencing and capsule hotel architecture.

### Density

Density is compressed but breathable: terminal lines can be tight at 1.35, labels cluster at 4-8px, but major berth groups separate by 64-96px of wet black negative space.

### Hierarchy

Make the active pane brightest through ivory partitions, amber terminal text, and a larger hatch opening. Secondary content should look asleep: lower contrast, sealed rails, tiny LEDs, and clipped labels. Headings use narrow uppercase caption logic while body copy remains humanist and legible.

### Signature Patterns

- Capsule hatch cards use ::before number plates and ::after latch tabs positioned over 1px ivory partition borders.
- Rain-gutter dividers are vertical or horizontal black strips with a few desaturated cyan streaks masked by linear gradients.
- Active terminal panes carry scanline overlays plus a low amber inset box-shadow to mimic soft CRT phosphor bloom.
- Ticket-printer strips appear as narrow ivory bands with perforation dots and timestamps attached to command results.
- Dormant shells are visibly cropped at container edges using overflow hidden and offset nested berth rectangles.

## 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/rain-shell-command/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 Use one amber-lit active terminal pane per screen and keep surrounding pods visibly quieter.
- Do Anchor components with pod IDs, reservation codes, latch tabs, and tiny LEDs rather than decorative icons.
- Do Keep cyan desaturated and sparse, used only for rain-on-glass reflections or secondary info.
- Do Use ivory partitions as manga panel structure, mostly at low opacity, with stronger lines only on active thresholds.
- Do Maintain body text at 15-16px with -0.02em tracking and display headings at -0.04em tracking.
- Do Let large wet-black gutters create solitude; do not fill every void with data.
- Do Use monospace prompts, timestamps, and room codes to establish terminal authenticity.
- Don't Do not use green matrix effects, neon rainbow cyberpunk, city-grid backgrounds, or hacker stock dashboards.
- Don't Do not place three equal cards in a row or use generic analytics KPI components.
- Don't Do not use character art, mecha silhouettes, anime faces, or kanji wallpaper as identity shortcuts.
- Don't Do not use novelty hacker fonts, unreadable code walls, or aggressive HUD reticles.
- Don't Do not make all panels glow; only the active berth receives warm illumination.
- Don't Do not use pure saturated cyan, mint, purple, or synthetic triadic accents.
- Don't Do not round every surface; square manga partitions and restrained hatch radii define the shell.

### Accessibility

Keep text contrast AA on dark surfaces, never encode status by LED color alone, provide visible amber or ivory focus outlines, and ensure scanline/rain overlays remain low opacity behind readable text.

### Usage Context

Best for fictional private operating systems, overnight infrastructure tools, terminal-first creative software, and quiet monitoring interfaces where the user inhabits a small protected digital room.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "rain-shell-command",
  "type": "registry:theme",
  "title": "Rain-Shell Command shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#070A10",
      "foreground": "#F2EBDD",
      "card": "#0D1320",
      "card-foreground": "#F2EBDD",
      "popover": "#0D1320",
      "popover-foreground": "#F2EBDD",
      "primary": "#E9E1D2",
      "primary-foreground": "#111111",
      "secondary": "#A9794E",
      "secondary-foreground": "#ffffff",
      "muted": "#8B9297",
      "muted-foreground": "#F2EBDD",
      "accent": "#C87946",
      "accent-foreground": "#ffffff",
      "destructive": "#B45A52",
      "border": "#E9E1D2",
      "input": "#E9E1D2",
      "ring": "#C87946",
      "chart-1": "#E9E1D2",
      "chart-2": "#A9794E",
      "chart-3": "#C87946",
      "chart-4": "#9E9A73",
      "chart-5": "#D39A55",
      "sidebar": "#0D1320",
      "sidebar-foreground": "#F2EBDD",
      "sidebar-primary": "#E9E1D2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#76909A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#E9E1D2",
      "sidebar-ring": "#C87946",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E9E1D2",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C87946",
      "accent-foreground": "#ffffff",
      "destructive": "#B45A52",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C87946",
      "chart-1": "#E9E1D2",
      "chart-2": "#A9794E",
      "chart-3": "#C87946",
      "chart-4": "#9E9A73",
      "chart-5": "#D39A55",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E9E1D2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#C87946",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C87946",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "rain-shell-command",
    "slug": "rain-shell-command",
    "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

Design Language Preview

Rain-Shell Command

Color Palette

primary
secondary
accent
background
surface
text
muted
border
error
success
warning
info

Typography

h1

Heading One

h2

Heading Two

h3

Heading Three

h4

Heading Four

body

Body text demonstrates the reading experience. Good typography is invisible — it lets the content speak without drawing attention to the letterforms themselves.

caption

Caption text for supplementary information and metadata.

code
const theme = applyTokens(designLanguage);
render(<App theme={theme} />);

Buttons

Form Controls

Navigation

tabs
Overview content area with contextual information about the design language.
segmented control
dropdown menu

Feedback & Status

badges
NewDefaultActivePendingErrorOutline
alerts
Info: A new version is available.
Success: Changes saved successfully.
Warning: Storage is almost full.
Error: Failed to process request.
progress
66% complete
tooltip
avatar
AKJDML

Containers & Overlays

card

Card Title

Cards group related content and actions. This example shows a basic content card with a title and description.

accordion

Design tokens are the atomic values of a design system — colors, spacing, typography, and other values stored as key-value pairs.

dialog
separator

Data Display

table
NameStatusCategoryScore
Neo BrutalismPublishedMaximalist94
Aero GlassDraftSpatial87
Signal UIReviewEnterprise91
stat cards
Languages
42
+12%
Elements
3,150
+8%
Usage
18.4k
+23%
DESIGN.md

at a glance

Palette

Typography

headline-lgArchivo SemiExpanded · 28px · 700

The quick brown fox jumps

headline-mdArchivo SemiExpanded · 23px · 600

The quick brown fox jumps

body-mdIBM Plex Sans · 16px · 400

The quick brown fox jumps

label-mdShare Tech 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
  • step-896px

Shape

full9999px
lg24px
md16px
none0px
sm0px
shadcn/ui

implementation kit

needs agent-authored kitcompatibility fallback
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: #070A10;
  --foreground: #F2EBDD;
  --card: #0D1320;
  --card-foreground: #F2EBDD;
  --popover: #0D1320;
  --popover-foreground: #F2EBDD;
  --primary: #E9E1D2;
  --primary-foreground: #111111;
  --secondary: #A9794E;
  --secondary-foreground: #ffffff;
  --muted: #8B9297;
  --muted-foreground: #F2EBDD;
  --accent: #C87946;
  --accent-foreground: #ffffff;
  --destructive: #B45A52;
  --border: #E9E1D2;
  --input: #E9E1D2;
  --ring: #C87946;
  --chart-1: #E9E1D2;
  --chart-2: #A9794E;
  --chart-3: #C87946;
  --chart-4: #9E9A73;
  --chart-5: #D39A55;
  --sidebar: #0D1320;
  --sidebar-foreground: #F2EBDD;
  --sidebar-primary: #E9E1D2;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #76909A;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #E9E1D2;
  --sidebar-ring: #C87946;
  --radius: 16px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #E9E1D2;
  --primary-foreground: #111111;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #C87946;
  --accent-foreground: #ffffff;
  --destructive: #B45A52;
  --border: #303642;
  --input: #303642;
  --ring: #C87946;
  --chart-1: #E9E1D2;
  --chart-2: #A9794E;
  --chart-3: #C87946;
  --chart-4: #9E9A73;
  --chart-5: #D39A55;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #E9E1D2;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #C87946;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #C87946;
  --radius: 16px;
}
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 RainShellCommandShadcnKit() {
  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">Rain-Shell Command</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": "rain-shell-command",
  "type": "registry:theme",
  "title": "Rain-Shell Command shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#070A10",
      "foreground": "#F2EBDD",
      "card": "#0D1320",
      "card-foreground": "#F2EBDD",
      "popover": "#0D1320",
      "popover-foreground": "#F2EBDD",
      "primary": "#E9E1D2",
      "primary-foreground": "#111111",
      "secondary": "#A9794E",
      "secondary-foreground": "#ffffff",
      "muted": "#8B9297",
      "muted-foreground": "#F2EBDD",
      "accent": "#C87946",
      "accent-foreground": "#ffffff",
      "destructive": "#B45A52",
      "border": "#E9E1D2",
      "input": "#E9E1D2",
      "ring": "#C87946",
      "chart-1": "#E9E1D2",
      "chart-2": "#A9794E",
      "chart-3": "#C87946",
      "chart-4": "#9E9A73",
      "chart-5": "#D39A55",
      "sidebar": "#0D1320",
      "sidebar-foreground": "#F2EBDD",
      "sidebar-primary": "#E9E1D2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#76909A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#E9E1D2",
      "sidebar-ring": "#C87946",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#E9E1D2",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#C87946",
      "accent-foreground": "#ffffff",
      "destructive": "#B45A52",
      "border": "#303642",
      "input": "#303642",
      "ring": "#C87946",
      "chart-1": "#E9E1D2",
      "chart-2": "#A9794E",
      "chart-3": "#C87946",
      "chart-4": "#9E9A73",
      "chart-5": "#D39A55",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#E9E1D2",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#C87946",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#C87946",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "rain-shell-command",
    "slug": "rain-shell-command",
    "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 recipescompatibility fallback
# Rain-Shell Command shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `rain-shell-command`
Slug: `rain-shell-command`

## Intent

Rain-Shell Command is a nocturnal interface language for private terminal work inside compressed capsule rooms: black manga-panel structure, midnight wet surfaces, amber vending-machine glow, and CRT-soft typed signals. It treats software as shelter rather than spectacle, making every active region feel like a reserved pod with a latch, a number plate, and a quiet machine breathing behind the curtain.

## Required primitives

- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table

Install with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.

## Token cues

Colors:

{
  "accent": "#C87946",
  "background": "#070A10",
  "border": "#E9E1D2",
  "error": "#B45A52",
  "info": "#76909A",
  "muted": "#8B9297",
  "primary": "#E9E1D2",
  "secondary": "#A9794E",
  "success": "#9E9A73",
  "surface": "#0D1320",
  "text": "#F2EBDD",
  "warning": "#D39A55"
}

Typography:

{
  "base_size": "16px",
  "body_font": "IBM Plex Sans",
  "google_fonts_url": "https://fonts.googleapis.com/css2?family=Archivo+SemiExpanded:wght@500;600;700&family=IBM+Plex+Sans:wght@400;500;600&family=Share+Tech+Mono&display=swap",
  "heading_font": "Archivo SemiExpanded",
  "letter_spacing": "-0.02em",
  "line_height": 1.55,
  "mono_font": "Share Tech Mono",
  "scale_ratio": 1.2
}

## Visual character to preserve

- Use nested berth rectangles with 1px ivory manga partitions, 0 or 16px radii, and sliding-door side rails that make panes read as capsule rooms.
- Reserve one large active terminal pane with amber inner glow while adjacent pods are dark, cropped, and partially sealed by black rain gutters.
- Apply CRT softness through subtle scanline overlays, low-opacity phosphor bloom, and typed cursor pulses rather than bright neon effects.
- Attach small pod number plates, latch tabs, ticket-printer strips, and tiny status LEDs to component edges as physical interface affordances.
- Sequence sections like black-and-white manga panels with asymmetric crops, vertical gutters, and occasional full-height threshold dividers.

## ShadSync visual profile

{
  "family": "brutalist",
  "material": "ink",
  "contour": "default",
  "border": "solid",
  "underlay": true,
  "grain": false,
  "stickerBadges": true,
  "motion": "still",
  "density": "balanced",
  "accents": [
    "primary",
    "accent",
    "secondary",
    "muted"
  ]
}

## Signature component recipes

### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.

### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.

### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.

### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.

### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.

## Preview shots

- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.

## Implementation contract

- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/rain-shell-command/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use one amber-lit active terminal pane per screen and keep surrounding pods visibly quieter.; Anchor components with pod IDs, reservation codes, latch tabs, and tiny LEDs rather than decorative icons.; Keep cyan desaturated and sparse, used only for rain-on-glass reflections or secondary info.; Use ivory partitions as manga panel structure, mostly at low opacity, with stronger lines only on active thresholds.; Maintain body text at 15-16px with -0.02em tracking and display headings at -0.04em tracking.; Let large wet-black gutters create solitude; do not fill every void with data.; Use monospace prompts, timestamps, and room codes to establish terminal authenticity.
- Do not: Do not use green matrix effects, neon rainbow cyberpunk, city-grid backgrounds, or hacker stock dashboards.; Do not place three equal cards in a row or use generic analytics KPI components.; Do not use character art, mecha silhouettes, anime faces, or kanji wallpaper as identity shortcuts.; Do not use novelty hacker fonts, unreadable code walls, or aggressive HUD reticles.; Do not make all panels glow; only the active berth receives warm illumination.; Do not use pure saturated cyan, mint, purple, or synthetic triadic accents.; Do not round every surface; square manga partitions and restrained hatch radii define the shell.

## Copy-paste component example

This generated starter proves the import shape. Production Katagami agents should replace it with a language-specific product composition.

```tsx
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 RainShellCommandShadcnKit() {
  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">Rain-Shell Command</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>
  );
}
```

## Layout notes

{
  "breakpoints": "1440px desktop composition, 900px tablet stack with retained gutters, 560px mobile corridor with simplified latch plates.",
  "density": "Compact terminal clusters sit inside larger architectural voids, giving an 8:1 rhythm between 4px micro-label gaps and 96px scene margins.",
  "grid": "Desktop uses a 12-column shell with a 360px left pod stack and an 8-column active terminal; tablet collapses to stacked berths; mobile becomes a single vertical corridor of capsule panes.",
  "responsive": "At narrow widths, side rails become top number plates, panels crop less aggressively, and command rows wrap into ticket strips instead of shrinking below readable size.",
  "whitespace": "Whitespace is wet black negative space: broad margins and rain gutters isolate the active pane while tiny interior gaps keep terminal controls intimate."
}
preview shotscompatibility fallback
{
  "artifact": "katagami:shadcn-preview-shots",
  "version": "preview-shots-v1",
  "generator": "katagami-ui-compatibility-projection",
  "generatedBy": "katagami-ui-projection",
  "requiresVisualProfile": true,
  "schema": "katagami:shadcn-preview-shots/renderable-v1",
  "renderable": true,
  "language": {
    "id": "rain-shell-command",
    "name": "Rain-Shell Command",
    "slug": "rain-shell-command"
  },
  "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
  "primitives": [
    "button",
    "card",
    "input",
    "textarea",
    "select",
    "dialog",
    "sheet",
    "tabs",
    "badge",
    "separator",
    "checkbox",
    "switch",
    "slider",
    "tooltip",
    "dropdown-menu",
    "table"
  ],
  "identityNotes": [
    "Use nested berth rectangles with 1px ivory manga partitions, 0 or 16px radii, and sliding-door side rails that make panes read as capsule rooms.",
    "Reserve one large active terminal pane with amber inner glow while adjacent pods are dark, cropped, and partially sealed by black rain gutters.",
    "Apply CRT softness through subtle scanline overlays, low-opacity phosphor bloom, and typed cursor pulses rather than bright neon effects.",
    "Attach small pod number plates, latch tabs, ticket-printer strips, and tiny status LEDs to component edges as physical interface affordances.",
    "Sequence sections like black-and-white manga panels with asymmetric crops, vertical gutters, and occasional full-height threshold dividers."
  ],
  "visualProfile": {
    "family": "brutalist",
    "material": "ink",
    "contour": "default",
    "border": "solid",
    "underlay": true,
    "grain": false,
    "stickerBadges": true,
    "motion": "still",
    "density": "balanced",
    "accents": [
      "primary",
      "accent",
      "secondary",
      "muted"
    ]
  },
  "shots": [
    {
      "id": "application-shell",
      "title": "Application shell",
      "viewport": "desktop",
      "primitives": [
        "button",
        "card",
        "input",
        "select",
        "tabs",
        "badge",
        "separator",
        "table"
      ],
      "composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
      "mustShow": [
        "primary and secondary actions",
        "card hierarchy",
        "filterable state",
        "table or list density"
      ],
      "avoid": [
        "component inventory walls",
        "placeholder-only content",
        "generic rounded SaaS chrome"
      ],
      "scene": {
        "eyebrow": "workspace spread",
        "headline": "Rain-Shell Command launch room",
        "description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
        "primaryAction": "Apply theme",
        "secondaryAction": "Review states",
        "stats": [
          {
            "label": "components",
            "value": "16",
            "tone": "accent"
          },
          {
            "label": "states",
            "value": "ready"
          },
          {
            "label": "density",
            "value": "balanced",
            "tone": "warning"
          }
        ],
        "rows": [
          {
            "label": "Primary flow",
            "value": "mapped",
            "status": "active"
          },
          {
            "label": "Token coverage",
            "value": "semantic",
            "status": "synced"
          },
          {
            "label": "Responsive proof",
            "value": "queued",
            "status": "review"
          }
        ],
        "statuses": [
          "Active",
          "Synced",
          "Draft"
        ]
      }
    },
    {
      "id": "detail-editor",
      "title": "Detail editor",
      "viewport": "tablet",
      "primitives": [
        "button",
        "card",
        "input",
        "textarea",
        "select",
        "checkbox",
        "switch",
        "slider",
        "dialog",
        "sheet"
      ],
      "composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
      "mustShow": [
        "focus ring",
        "error or destructive state",
        "dialog or sheet treatment",
        "written guidance content"
      ],
      "avoid": [
        "unstyled browser controls",
        "floating cards inside cards",
        "missing labels"
      ],
      "scene": {
        "eyebrow": "editing flow",
        "headline": "Language recipe editor",
        "description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
        "primaryAction": "Save recipe",
        "secondaryAction": "Open sheet",
        "fields": [
          {
            "label": "Component family",
            "value": "Narrative cards"
          },
          {
            "label": "State treatment",
            "value": "Visible focus + validation"
          },
          {
            "label": "Motion",
            "value": "Small lift, no opacity-only fade"
          }
        ],
        "statuses": [
          "Focus",
          "Invalid",
          "Confirmed"
        ]
      }
    },
    {
      "id": "data-operations",
      "title": "Data operations",
      "viewport": "mobile",
      "primitives": [
        "button",
        "tabs",
        "badge",
        "dropdown-menu",
        "table",
        "tooltip",
        "separator"
      ],
      "composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
      "mustShow": [
        "responsive reflow",
        "dense row styling",
        "menu affordance",
        "status badge system"
      ],
      "avoid": [
        "desktop-only tables",
        "text overflow",
        "default shadcn spacing without Katagami character"
      ],
      "scene": {
        "eyebrow": "operations",
        "headline": "Compact review queue",
        "description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
        "primaryAction": "Resolve",
        "secondaryAction": "Filter",
        "rows": [
          {
            "label": "Button hierarchy",
            "value": "approved",
            "status": "ok"
          },
          {
            "label": "Table rhythm",
            "value": "needs pass",
            "status": "watch"
          },
          {
            "label": "Empty state",
            "value": "designed",
            "status": "done"
          }
        ],
        "statuses": [
          "Queued",
          "Blocked",
          "Done"
        ]
      }
    }
  ],
  "componentRecipes": [
    {
      "primitive": "button",
      "intent": "Prove action hierarchy, focus, disabled, and destructive states."
    },
    {
      "primitive": "card",
      "intent": "Carry the language surface, border, elevation, and density rules."
    },
    {
      "primitive": "input",
      "intent": "Show labels, focus rings, validation, and spacing rhythm."
    },
    {
      "primitive": "textarea",
      "intent": "Show longer guidance, validation copy, and writing density."
    },
    {
      "primitive": "select",
      "intent": "Show filtering, selection contrast, and menu trigger styling."
    },
    {
      "primitive": "dialog",
      "intent": "Show centered decision states and overlay treatment."
    },
    {
      "primitive": "sheet",
      "intent": "Show contextual side panels and responsive editing."
    },
    {
      "primitive": "tabs",
      "intent": "Show navigational structure and active/inactive contrast."
    },
    {
      "primitive": "badge",
      "intent": "Show compact status vocabulary and semantic colors."
    },
    {
      "primitive": "separator",
      "intent": "Show section rhythm without generic gray dividers."
    },
    {
      "primitive": "checkbox",
      "intent": "Show binary selection with visible focus and checked states."
    },
    {
      "primitive": "switch",
      "intent": "Show settings toggles and on/off contrast."
    },
    {
      "primitive": "slider",
      "intent": "Show numeric adjustment with track/thumb styling."
    },
    {
      "primitive": "tooltip",
      "intent": "Show concise explanation styling above compact controls."
    },
    {
      "primitive": "dropdown-menu",
      "intent": "Show action menus, destructive items, and grouped choices."
    },
    {
      "primitive": "table",
      "intent": "Show dense operational data, separators, row states, and responsive behavior."
    }
  ],
  "qualityRules": {
    "do": [
      "Use one amber-lit active terminal pane per screen and keep surrounding pods visibly quieter.",
      "Anchor components with pod IDs, reservation codes, latch tabs, and tiny LEDs rather than decorative icons.",
      "Keep cyan desaturated and sparse, used only for rain-on-glass reflections or secondary info.",
      "Use ivory partitions as manga panel structure, mostly at low opacity, with stronger lines only on active thresholds.",
      "Maintain body text at 15-16px with -0.02em tracking and display headings at -0.04em tracking.",
      "Let large wet-black gutters create solitude; do not fill every void with data.",
      "Use monospace prompts, timestamps, and room codes to establish terminal authenticity."
    ],
    "dont": [
      "Do not use green matrix effects, neon rainbow cyberpunk, city-grid backgrounds, or hacker stock dashboards.",
      "Do not place three equal cards in a row or use generic analytics KPI components.",
      "Do not use character art, mecha silhouettes, anime faces, or kanji wallpaper as identity shortcuts.",
      "Do not use novelty hacker fonts, unreadable code walls, or aggressive HUD reticles.",
      "Do not make all panels glow; only the active berth receives warm illumination.",
      "Do not use pure saturated cyan, mint, purple, or synthetic triadic accents.",
      "Do not round every surface; square manga partitions and restrained hatch radii define the shell."
    ]
  }
}
related

More like this