back to gallery
design language·powder-gray-wired-bedroom-console

Powder-Gray Wired Bedroom Console

A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.

Download DESIGN.md

Portable DESIGN.md source of truth for most agents and apps.

the spec

specification

philosophy
summary
A quiet operating-system shrine for private network mysticism: powder-gray room light, obsolete desktop chrome, black manga wiring, and soft CRT phosphor arranged as if a bedroom computer has become a ritual interface. The language avoids loud hacker spectacle and instead makes loneliness operational: one active window, many half-erased diagrams, status indicators that feel domestic and supernatural at once. Its polish comes from restraint, low saturation, and precise linework rather than visual abundance.
values
Loneliness as structure: most screens should contain one clearly active panel surrounded by deliberate negative space and faint peripheral evidence.Domestic technology over cyber spectacle: use modem states, cable labels, blank dialogs, terminal prompts, and bedroom-console proportions instead of weaponized neon.Powder-gray ambience: keep contrast soft and tactile, with off-black linework and CRT-white glow carrying the emotional weight.Network mysticism made technical: node maps and cable schematics should read as both real infrastructure and private ritual diagrams.Manga precision inside polished UI: black-and-white linework is allowed, but it must be aligned to panels, grids, and interface logic.Obsolete chrome as memory: small beveled bars, bitmap captions, and status chips should feel archival rather than nostalgic parody.Quiet motion: cursors, scanlines, and phosphor pulses may move, but they should be slow enough to feel like a machine breathing in a bedroom at night.
anti-values
×No neon cyberpunk rainbows, aggressive glitch explosions, or nightclub hacker palettes.×No generic SaaS dashboard layouts with equal cards and cheerful metrics.×No maximal anime collage; character drama is replaced by interface residue and absent presence.×No glossy sci-fi HUD excess, radial targeting reticles, or military command-center aesthetics.×No high-contrast pure black and pure white except for tiny phosphor sparks.
tokens
borders4 items
accent width
2px
character
Precise manga-ink hairlines in off-black with occasional doubled 1px window seams and no ornamental border flourishes.
default width
1px
style
solid
colors12 items
accent
#D8F7F1
background
#C8CAD1
border
#303238
error
#8F4E62
info
#7C86B7
muted
#71737C
primary
#1B1D21
secondary
#D9DADF
success
#5F8377
surface
#ECECF0
text
#191B1F
warning
#9A8661
motion3 items
duration
1400ms
easing
cubic-bezier(0.16, 1, 0.3, 1)
philosophy
Motion behaves like hardware idling: cursor blink, faint phosphor pulse, and barely drifting interference; never fast glitching.
radii5 items
full
9999px
lg
24px
md
16px
none
0px
sm
0px
shadows3 items
lg
0 36px 100px rgba(27,29,33,0.22), inset 0 0 0 1px rgba(255,255,255,0.34)
md
0 18px 55px rgba(27,29,33,0.18), 0 0 42px rgba(246,247,255,0.30)
sm
0 1px 0 rgba(25,27,31,0.28), 0 0 18px rgba(255,255,255,0.20)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
bg pattern
Layered CSS repeating-linear-gradient scanlines plus sparse node/cable diagrams drawn with SVG strokes in rgba(27,29,33,0.28).
card style
Obsolete desktop windows: 1px off-black outlines, pale title bars, square corners mixed with one 16px active radius, hairline internal rules, and tiny status LEDs.
treatment
Powder-gray matte fields with translucent milky panels, low-opacity violet noise, and CRT-white bloom placed behind active content only.
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&family=Instrument+Sans:wght@500;600;700&display=swap
heading font
Instrument Sans
letter spacing
-0.02em
line height
1.5
mono font
IBM Plex Mono
scale ratio
1.22
rules
composition
Use an asymmetric field rather than a balanced dashboard. Anchor one active console window off-center, leave at least 35 percent quiet background visible on desktop, and let diagrams enter from cropped edges. Secondary panels should overlap like lonely OS windows, not align as a neat card grid. Important actions live inside the active window; contextual evidence may be half-hidden, ghosted, or clipped by the viewport.
density
Medium-low density with concentrated technical detail. One or two areas may become dense with terminal lines, cable labels, or node metadata, but the surrounding room-like powder-gray space must remain quiet enough to feel private.
hierarchy
Hierarchy is created through activation state, not color variety. The active window receives the strongest border, title bar, phosphor halo, and terminal cursor. Secondary windows are paler, flatter, and partially transparent. Headings are restrained grotesk UI labels; the smallest monospace captions can be numerous but must be grouped into narrow strips and diagram annotations.
signature patterns
Active-window shrine: a single raised desktop window uses doubled 1px seams, a pale title bar, tiny modem LEDs, and a CRT-white halo while all other panels recede.Edge-cable creep: node-link SVG paths originate outside the viewport edges and pass behind windows, making the layout feel plugged into an unseen bedroom network.Blank-dialog negative space: at least one empty modal or message box contains only a cursor or short system phrase, turning absence into the focal emotional content.Violet phosphor veil: global pseudo-elements combine scanlines, soft lavender noise, and radial white bloom at low opacity without becoming a colorful glitch effect.Title-card whisper: one tall rotated or vertical anime-title caption appears as a sparse typographic marker, never as a dominant poster headline.
layout
breakpoints
Mobile below 640px stacks windows vertically and crops diagrams; tablet 640-1024px keeps overlap but reduces rotations; desktop above 1024px uses full asymmetric field.
density
Desktop density is intentionally uneven: large vacant monitor-gray fields contrast with dense terminal strips and schematic knots, preserving a private bedroom-console feeling.
grid
Twelve-column desktop grid with 24px gutters and max-width 1320px; active window spans 5-6 columns, secondary windows float via grid-column offsets and transforms.
responsive
On small screens, preserve the active-window shrine at the top, convert edge cables into a light background map, and keep terminal labels legible at 11px minimum.
whitespace

Whitespace is treated as charged screen silence. Keep broad empty regions around the active window and avoid filling unused space with icons or extra cards.

guidance
do
  • Start from a powder-gray/off-black base and add only CRT white, pale violet, and tiny cyan-green status sparks.
  • Use one active window as the emotional center of every composition.
  • Draw cables, node maps, and terminal metadata with 1px strokes and deliberate cropping.
  • Let blank dialogs, pauses, and lonely cursors communicate the existential mood.
  • Pair restrained grotesk UI headers with small monospace labels and captions.
  • Keep surfaces translucent and matte, with soft bloom rather than shiny neon.
  • Use Y2K chrome or gel highlights only as tiny UI seams, not as broad gradients.
  • Check that every decorative diagram also feels like functional infrastructure.
avoid
  • Do not use saturated cyberpunk magenta, electric blue floods, or rainbow glitch overlays.
  • Do not turn the screen into a generic analytics dashboard or component catalog.
  • Do not add anime characters, fan-art imagery, or literal show references.
  • Do not fill negative space with extra widgets just because the layout feels empty.
  • Do not use thick shadows, glassmorphism blur excess, or plastic 3D buttons.
  • Do not make terminal text dense everywhere; detail should have islands and silence.
  • Do not rely on default form controls, browser fonts, or unstyled buttons.
  • Do not make the mystical aspect occult-gothic; it should remain technical and domestic.
katagami spec
# Powder-Gray Wired Bedroom Console

## Philosophy

A quiet operating-system shrine for private network mysticism: powder-gray room light, obsolete desktop chrome, black manga wiring, and soft CRT phosphor arranged as if a bedroom computer has become a ritual interface. The language avoids loud hacker spectacle and instead makes loneliness operational: one active window, many half-erased diagrams, status indicators that feel domestic and supernatural at once. Its polish comes from restraint, low saturation, and precise linework rather than visual abundance.

### Values

- Loneliness as structure: most screens should contain one clearly active panel surrounded by deliberate negative space and faint peripheral evidence.
- Domestic technology over cyber spectacle: use modem states, cable labels, blank dialogs, terminal prompts, and bedroom-console proportions instead of weaponized neon.
- Powder-gray ambience: keep contrast soft and tactile, with off-black linework and CRT-white glow carrying the emotional weight.
- Network mysticism made technical: node maps and cable schematics should read as both real infrastructure and private ritual diagrams.
- Manga precision inside polished UI: black-and-white linework is allowed, but it must be aligned to panels, grids, and interface logic.
- Obsolete chrome as memory: small beveled bars, bitmap captions, and status chips should feel archival rather than nostalgic parody.
- Quiet motion: cursors, scanlines, and phosphor pulses may move, but they should be slow enough to feel like a machine breathing in a bedroom at night.

### Anti-Values

- No neon cyberpunk rainbows, aggressive glitch explosions, or nightclub hacker palettes.
- No generic SaaS dashboard layouts with equal cards and cheerful metrics.
- No maximal anime collage; character drama is replaced by interface residue and absent presence.
- No glossy sci-fi HUD excess, radial targeting reticles, or military command-center aesthetics.
- No high-contrast pure black and pure white except for tiny phosphor sparks.

### Visual Character

- Build pages on an asymmetric CSS grid with a single elevated active window occupying roughly one third of the canvas and large powder-gray negative space around it.
- Render peripheral cable diagrams with absolutely positioned SVG or CSS border lines creeping in from edges behind translucent UI panels.
- Use 1px off-black manga line borders, squared or 16px-radius window chrome, and hairline internal dividers instead of broad shadows or heavy fills.
- Layer scanline, violet noise, and soft white radial-glow pseudo-elements over the entire scene at low opacity so the monitor ambience is visible but never decorative.
- Set tiny monospace terminal captions beside restrained grotesk headers, with all labels tracked at -0.02em and occasional tall title-card text used only as a vertical accent.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: Precise manga-ink hairlines in off-black with occasional doubled 1px window seams and no ornamental border flourishes.
- **Default Width**: 1px
- **Style**: solid

### Colors

| Name | Value |
|------|-------|
| accent | `#D8F7F1` |
| background | `#C8CAD1` |
| border | `#303238` |
| error | `#8F4E62` |
| info | `#7C86B7` |
| muted | `#71737C` |
| primary | `#1B1D21` |
| secondary | `#D9DADF` |
| success | `#5F8377` |
| surface | `#ECECF0` |
| text | `#191B1F` |
| warning | `#9A8661` |

### Motion

- **Duration**: 1400ms
- **Easing**: cubic-bezier(0.16, 1, 0.3, 1)
- **Philosophy**: Motion behaves like hardware idling: cursor blink, faint phosphor pulse, and barely drifting interference; never fast glitching.

### Radii

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

### Shadows

- **Lg**: 0 36px 100px rgba(27,29,33,0.22), inset 0 0 0 1px rgba(255,255,255,0.34)
- **Md**: 0 18px 55px rgba(27,29,33,0.18), 0 0 42px rgba(246,247,255,0.30)
- **Sm**: 0 1px 0 rgba(25,27,31,0.28), 0 0 18px rgba(255,255,255,0.20)

### Spacing

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

### Surfaces

- **Bg Pattern**: Layered CSS repeating-linear-gradient scanlines plus sparse node/cable diagrams drawn with SVG strokes in rgba(27,29,33,0.28).
- **Card Style**: Obsolete desktop windows: 1px off-black outlines, pale title bars, square corners mixed with one 16px active radius, hairline internal rules, and tiny status LEDs.
- **Treatment**: Powder-gray matte fields with translucent milky panels, low-opacity violet noise, and CRT-white bloom placed behind active content only.

### 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&family=Instrument+Sans:wght@500;600;700&display=swap
- **Heading Font**: Instrument Sans
- **Letter Spacing**: -0.02em
- **Line Height**: 1.5
- **Mono Font**: IBM Plex Mono
- **Scale Ratio**: 1.22

## Rules

### Composition

Use an asymmetric field rather than a balanced dashboard. Anchor one active console window off-center, leave at least 35 percent quiet background visible on desktop, and let diagrams enter from cropped edges. Secondary panels should overlap like lonely OS windows, not align as a neat card grid. Important actions live inside the active window; contextual evidence may be half-hidden, ghosted, or clipped by the viewport.

### Density

Medium-low density with concentrated technical detail. One or two areas may become dense with terminal lines, cable labels, or node metadata, but the surrounding room-like powder-gray space must remain quiet enough to feel private.

### Hierarchy

Hierarchy is created through activation state, not color variety. The active window receives the strongest border, title bar, phosphor halo, and terminal cursor. Secondary windows are paler, flatter, and partially transparent. Headings are restrained grotesk UI labels; the smallest monospace captions can be numerous but must be grouped into narrow strips and diagram annotations.

### Signature Patterns

- Active-window shrine: a single raised desktop window uses doubled 1px seams, a pale title bar, tiny modem LEDs, and a CRT-white halo while all other panels recede.
- Edge-cable creep: node-link SVG paths originate outside the viewport edges and pass behind windows, making the layout feel plugged into an unseen bedroom network.
- Blank-dialog negative space: at least one empty modal or message box contains only a cursor or short system phrase, turning absence into the focal emotional content.
- Violet phosphor veil: global pseudo-elements combine scanlines, soft lavender noise, and radial white bloom at low opacity without becoming a colorful glitch effect.
- Title-card whisper: one tall rotated or vertical anime-title caption appears as a sparse typographic marker, never as a dominant poster headline.

## Layout

### Breakpoints

Mobile below 640px stacks windows vertically and crops diagrams; tablet 640-1024px keeps overlap but reduces rotations; desktop above 1024px uses full asymmetric field.

### Density

Desktop density is intentionally uneven: large vacant monitor-gray fields contrast with dense terminal strips and schematic knots, preserving a private bedroom-console feeling.

### Grid

Twelve-column desktop grid with 24px gutters and max-width 1320px; active window spans 5-6 columns, secondary windows float via grid-column offsets and transforms.

### Responsive

On small screens, preserve the active-window shrine at the top, convert edge cables into a light background map, and keep terminal labels legible at 11px minimum.

### Whitespace

Whitespace is treated as charged screen silence. Keep broad empty regions around the active window and avoid filling unused space with icons or extra cards.

## Guidance

### Do

- Start from a powder-gray/off-black base and add only CRT white, pale violet, and tiny cyan-green status sparks.
- Use one active window as the emotional center of every composition.
- Draw cables, node maps, and terminal metadata with 1px strokes and deliberate cropping.
- Let blank dialogs, pauses, and lonely cursors communicate the existential mood.
- Pair restrained grotesk UI headers with small monospace labels and captions.
- Keep surfaces translucent and matte, with soft bloom rather than shiny neon.
- Use Y2K chrome or gel highlights only as tiny UI seams, not as broad gradients.
- Check that every decorative diagram also feels like functional infrastructure.

### Don't

- Do not use saturated cyberpunk magenta, electric blue floods, or rainbow glitch overlays.
- Do not turn the screen into a generic analytics dashboard or component catalog.
- Do not add anime characters, fan-art imagery, or literal show references.
- Do not fill negative space with extra widgets just because the layout feels empty.
- Do not use thick shadows, glassmorphism blur excess, or plastic 3D buttons.
- Do not make terminal text dense everywhere; detail should have islands and silence.
- Do not rely on default form controls, browser fonts, or unstyled buttons.
- Do not make the mystical aspect occult-gothic; it should remain technical and domestic.

### Accessibility

Maintain readable text contrast despite the low-saturation palette, keep monospace labels at 11px or larger, avoid rapid flicker, provide clear active states through border and position as well as color, and ensure responsive stacking preserves reading order.

### Usage Context

Best for private AI tools, experimental notebooks, ambient network monitors, story-driven developer interfaces, archive viewers, and reflective coding environments where quiet presence matters more than productivity theater.
DESIGN.md
---
version: "alpha"
name: "Powder-Gray Wired Bedroom Console"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#D8F7F1"
  background: "#C8CAD1"
  border: "#303238"
  error: "#8F4E62"
  info: "#7C86B7"
  muted: "#71737C"
  primary: "#1B1D21"
  secondary: "#D9DADF"
  success: "#5F8377"
  surface: "#ECECF0"
  text: "#191B1F"
  warning: "#9A8661"
typography:
  headline-lg:
    fontFamily: "Instrument Sans"
    fontSize: "1.816rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Instrument Sans"
    fontSize: "1.488rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "IBM Plex Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "IBM Plex 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"
  step-9: "128px"
components:
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-primary:
    backgroundColor: "{colors.primary}"
  color-reference-secondary:
    backgroundColor: "{colors.secondary}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#ffffff"
    typography: "{typography.label-md}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.md}"
    height: "44px"
---

# Powder-Gray Wired Bedroom Console

## Overview

A quiet operating-system shrine for private network mysticism: powder-gray room light, obsolete desktop chrome, black manga wiring, and soft CRT phosphor arranged as if a bedroom computer has become a ritual interface. The language avoids loud hacker spectacle and instead makes loneliness operational: one active window, many half-erased diagrams, status indicators that feel domestic and supernatural at once. Its polish comes from restraint, low saturation, and precise linework rather than visual abundance.

### Values

- Loneliness as structure: most screens should contain one clearly active panel surrounded by deliberate negative space and faint peripheral evidence.
- Domestic technology over cyber spectacle: use modem states, cable labels, blank dialogs, terminal prompts, and bedroom-console proportions instead of weaponized neon.
- Powder-gray ambience: keep contrast soft and tactile, with off-black linework and CRT-white glow carrying the emotional weight.
- Network mysticism made technical: node maps and cable schematics should read as both real infrastructure and private ritual diagrams.
- Manga precision inside polished UI: black-and-white linework is allowed, but it must be aligned to panels, grids, and interface logic.
- Obsolete chrome as memory: small beveled bars, bitmap captions, and status chips should feel archival rather than nostalgic parody.
- Quiet motion: cursors, scanlines, and phosphor pulses may move, but they should be slow enough to feel like a machine breathing in a bedroom at night.

### Anti-Values

- No neon cyberpunk rainbows, aggressive glitch explosions, or nightclub hacker palettes.
- No generic SaaS dashboard layouts with equal cards and cheerful metrics.
- No maximal anime collage; character drama is replaced by interface residue and absent presence.
- No glossy sci-fi HUD excess, radial targeting reticles, or military command-center aesthetics.
- No high-contrast pure black and pure white except for tiny phosphor sparks.

### Visual Character

- Build pages on an asymmetric CSS grid with a single elevated active window occupying roughly one third of the canvas and large powder-gray negative space around it.
- Render peripheral cable diagrams with absolutely positioned SVG or CSS border lines creeping in from edges behind translucent UI panels.
- Use 1px off-black manga line borders, squared or 16px-radius window chrome, and hairline internal dividers instead of broad shadows or heavy fills.
- Layer scanline, violet noise, and soft white radial-glow pseudo-elements over the entire scene at low opacity so the monitor ambience is visible but never decorative.
- Set tiny monospace terminal captions beside restrained grotesk headers, with all labels tracked at -0.02em and occasional tall title-card text used only as a vertical accent.

## 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 | `#D8F7F1` |
| background | `#C8CAD1` |
| border | `#303238` |
| error | `#8F4E62` |
| info | `#7C86B7` |
| muted | `#71737C` |
| primary | `#1B1D21` |
| secondary | `#D9DADF` |
| success | `#5F8377` |
| surface | `#ECECF0` |
| text | `#191B1F` |
| warning | `#9A8661` |

## Typography

- **Headline-Lg**: Instrument Sans, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Instrument Sans, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.5.
- **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`
- **Step-8**: `96px`
- **Step-9**: `128px`

### Breakpoints

Mobile below 640px stacks windows vertically and crops diagrams; tablet 640-1024px keeps overlap but reduces rotations; desktop above 1024px uses full asymmetric field.

### Density

Desktop density is intentionally uneven: large vacant monitor-gray fields contrast with dense terminal strips and schematic knots, preserving a private bedroom-console feeling.

### Grid

Twelve-column desktop grid with 24px gutters and max-width 1320px; active window spans 5-6 columns, secondary windows float via grid-column offsets and transforms.

### Responsive

On small screens, preserve the active-window shrine at the top, convert edge cables into a light background map, and keep terminal labels legible at 11px minimum.

### Whitespace

Whitespace is treated as charged screen silence. Keep broad empty regions around the active window and avoid filling unused space with icons or extra cards.

## Elevation & Depth

### Shadows

- **Lg**: 0 36px 100px rgba(27,29,33,0.22), inset 0 0 0 1px rgba(255,255,255,0.34)
- **Md**: 0 18px 55px rgba(27,29,33,0.18), 0 0 42px rgba(246,247,255,0.30)
- **Sm**: 0 1px 0 rgba(25,27,31,0.28), 0 0 18px rgba(255,255,255,0.20)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: Layered CSS repeating-linear-gradient scanlines plus sparse node/cable diagrams drawn with SVG strokes in rgba(27,29,33,0.28).
- **Card Style**: Obsolete desktop windows: 1px off-black outlines, pale title bars, square corners mixed with one 16px active radius, hairline internal rules, and tiny status LEDs.
- **Treatment**: Powder-gray matte fields with translucent milky panels, low-opacity violet noise, and CRT-white bloom placed behind active content only.

### Borders

- **Accent Width**: 2px
- **Character**: Precise manga-ink hairlines in off-black with occasional doubled 1px window seams and no ornamental border flourishes.
- **Default Width**: 1px
- **Style**: solid

## Components

### Composition

Use an asymmetric field rather than a balanced dashboard. Anchor one active console window off-center, leave at least 35 percent quiet background visible on desktop, and let diagrams enter from cropped edges. Secondary panels should overlap like lonely OS windows, not align as a neat card grid. Important actions live inside the active window; contextual evidence may be half-hidden, ghosted, or clipped by the viewport.

### Density

Medium-low density with concentrated technical detail. One or two areas may become dense with terminal lines, cable labels, or node metadata, but the surrounding room-like powder-gray space must remain quiet enough to feel private.

### Hierarchy

Hierarchy is created through activation state, not color variety. The active window receives the strongest border, title bar, phosphor halo, and terminal cursor. Secondary windows are paler, flatter, and partially transparent. Headings are restrained grotesk UI labels; the smallest monospace captions can be numerous but must be grouped into narrow strips and diagram annotations.

### Signature Patterns

- Active-window shrine: a single raised desktop window uses doubled 1px seams, a pale title bar, tiny modem LEDs, and a CRT-white halo while all other panels recede.
- Edge-cable creep: node-link SVG paths originate outside the viewport edges and pass behind windows, making the layout feel plugged into an unseen bedroom network.
- Blank-dialog negative space: at least one empty modal or message box contains only a cursor or short system phrase, turning absence into the focal emotional content.
- Violet phosphor veil: global pseudo-elements combine scanlines, soft lavender noise, and radial white bloom at low opacity without becoming a colorful glitch effect.
- Title-card whisper: one tall rotated or vertical anime-title caption appears as a sparse typographic marker, never as a dominant poster headline.

## 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/powder-gray-wired-bedroom-console/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 Start from a powder-gray/off-black base and add only CRT white, pale violet, and tiny cyan-green status sparks.
- Do Use one active window as the emotional center of every composition.
- Do Draw cables, node maps, and terminal metadata with 1px strokes and deliberate cropping.
- Do Let blank dialogs, pauses, and lonely cursors communicate the existential mood.
- Do Pair restrained grotesk UI headers with small monospace labels and captions.
- Do Keep surfaces translucent and matte, with soft bloom rather than shiny neon.
- Do Use Y2K chrome or gel highlights only as tiny UI seams, not as broad gradients.
- Do Check that every decorative diagram also feels like functional infrastructure.
- Don't Do not use saturated cyberpunk magenta, electric blue floods, or rainbow glitch overlays.
- Don't Do not turn the screen into a generic analytics dashboard or component catalog.
- Don't Do not add anime characters, fan-art imagery, or literal show references.
- Don't Do not fill negative space with extra widgets just because the layout feels empty.
- Don't Do not use thick shadows, glassmorphism blur excess, or plastic 3D buttons.
- Don't Do not make terminal text dense everywhere; detail should have islands and silence.
- Don't Do not rely on default form controls, browser fonts, or unstyled buttons.
- Don't Do not make the mystical aspect occult-gothic; it should remain technical and domestic.

### Accessibility

Maintain readable text contrast despite the low-saturation palette, keep monospace labels at 11px or larger, avoid rapid flicker, provide clear active states through border and position as well as color, and ensure responsive stacking preserves reading order.

### Usage Context

Best for private AI tools, experimental notebooks, ambient network monitors, story-driven developer interfaces, archive viewers, and reflective coding environments where quiet presence matters more than productivity theater.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "powder-gray-wired-bedroom-console",
  "type": "registry:theme",
  "title": "Powder-Gray Wired Bedroom Console shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#C8CAD1",
      "foreground": "#191B1F",
      "card": "#ECECF0",
      "card-foreground": "#191B1F",
      "popover": "#ECECF0",
      "popover-foreground": "#191B1F",
      "primary": "#1B1D21",
      "primary-foreground": "#ffffff",
      "secondary": "#D9DADF",
      "secondary-foreground": "#111111",
      "muted": "#71737C",
      "muted-foreground": "#191B1F",
      "accent": "#D8F7F1",
      "accent-foreground": "#111111",
      "destructive": "#8F4E62",
      "border": "#303238",
      "input": "#303238",
      "ring": "#D8F7F1",
      "chart-1": "#1B1D21",
      "chart-2": "#D9DADF",
      "chart-3": "#D8F7F1",
      "chart-4": "#5F8377",
      "chart-5": "#9A8661",
      "sidebar": "#ECECF0",
      "sidebar-foreground": "#191B1F",
      "sidebar-primary": "#1B1D21",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#7C86B7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303238",
      "sidebar-ring": "#D8F7F1",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1B1D21",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D8F7F1",
      "accent-foreground": "#111111",
      "destructive": "#8F4E62",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D8F7F1",
      "chart-1": "#1B1D21",
      "chart-2": "#D9DADF",
      "chart-3": "#D8F7F1",
      "chart-4": "#5F8377",
      "chart-5": "#9A8661",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1B1D21",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D8F7F1",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D8F7F1",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "powder-gray-wired-bedroom-console",
    "slug": "powder-gray-wired-bedroom-console",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · powder-gray-wired-bedroom-console
DESIGN.md

at a glance

Palette

Typography

headline-lgInstrument Sans · 29px · 700

The quick brown fox jumps

headline-mdInstrument Sans · 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
  • step-896px
  • step-9128px

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: #C8CAD1;
  --foreground: #191B1F;
  --card: #ECECF0;
  --card-foreground: #191B1F;
  --popover: #ECECF0;
  --popover-foreground: #191B1F;
  --primary: #1B1D21;
  --primary-foreground: #ffffff;
  --secondary: #D9DADF;
  --secondary-foreground: #111111;
  --muted: #71737C;
  --muted-foreground: #191B1F;
  --accent: #D8F7F1;
  --accent-foreground: #111111;
  --destructive: #8F4E62;
  --border: #303238;
  --input: #303238;
  --ring: #D8F7F1;
  --chart-1: #1B1D21;
  --chart-2: #D9DADF;
  --chart-3: #D8F7F1;
  --chart-4: #5F8377;
  --chart-5: #9A8661;
  --sidebar: #ECECF0;
  --sidebar-foreground: #191B1F;
  --sidebar-primary: #1B1D21;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #7C86B7;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303238;
  --sidebar-ring: #D8F7F1;
  --radius: 16px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #1B1D21;
  --primary-foreground: #ffffff;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #D8F7F1;
  --accent-foreground: #111111;
  --destructive: #8F4E62;
  --border: #303642;
  --input: #303642;
  --ring: #D8F7F1;
  --chart-1: #1B1D21;
  --chart-2: #D9DADF;
  --chart-3: #D8F7F1;
  --chart-4: #5F8377;
  --chart-5: #9A8661;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #1B1D21;
  --sidebar-primary-foreground: #ffffff;
  --sidebar-accent: #D8F7F1;
  --sidebar-accent-foreground: #111111;
  --sidebar-border: #303642;
  --sidebar-ring: #D8F7F1;
  --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 PowderGrayWiredBedroomConsoleShadcnKit() {
  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">Powder-Gray Wired Bedroom Console</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

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

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
theme JSONcompatibility fallback
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "powder-gray-wired-bedroom-console",
  "type": "registry:theme",
  "title": "Powder-Gray Wired Bedroom Console shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#C8CAD1",
      "foreground": "#191B1F",
      "card": "#ECECF0",
      "card-foreground": "#191B1F",
      "popover": "#ECECF0",
      "popover-foreground": "#191B1F",
      "primary": "#1B1D21",
      "primary-foreground": "#ffffff",
      "secondary": "#D9DADF",
      "secondary-foreground": "#111111",
      "muted": "#71737C",
      "muted-foreground": "#191B1F",
      "accent": "#D8F7F1",
      "accent-foreground": "#111111",
      "destructive": "#8F4E62",
      "border": "#303238",
      "input": "#303238",
      "ring": "#D8F7F1",
      "chart-1": "#1B1D21",
      "chart-2": "#D9DADF",
      "chart-3": "#D8F7F1",
      "chart-4": "#5F8377",
      "chart-5": "#9A8661",
      "sidebar": "#ECECF0",
      "sidebar-foreground": "#191B1F",
      "sidebar-primary": "#1B1D21",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#7C86B7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303238",
      "sidebar-ring": "#D8F7F1",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#1B1D21",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D8F7F1",
      "accent-foreground": "#111111",
      "destructive": "#8F4E62",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D8F7F1",
      "chart-1": "#1B1D21",
      "chart-2": "#D9DADF",
      "chart-3": "#D8F7F1",
      "chart-4": "#5F8377",
      "chart-5": "#9A8661",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#1B1D21",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D8F7F1",
      "sidebar-accent-foreground": "#111111",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D8F7F1",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "powder-gray-wired-bedroom-console",
    "slug": "powder-gray-wired-bedroom-console",
    "componentManifest": [
      "button",
      "card",
      "input",
      "textarea",
      "select",
      "dialog",
      "sheet",
      "tabs",
      "badge",
      "separator",
      "checkbox",
      "switch",
      "slider",
      "tooltip",
      "dropdown-menu",
      "table"
    ],
    "installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
    "nativeTokenNames": {
      "borders": [
        "accent_width",
        "character",
        "default_width",
        "style"
      ],
      "colors": [
        "accent",
        "background",
        "border",
        "error",
        "info",
        "muted",
        "primary",
        "secondary",
        "success",
        "surface",
        "text",
        "warning"
      ],
      "motion": [
        "duration",
        "easing",
        "philosophy"
      ],
      "radii": [
        "full",
        "lg",
        "md",
        "none",
        "sm"
      ],
      "shadows": [
        "lg",
        "md",
        "sm"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "bg_pattern",
        "card_style",
        "treatment"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ]
    }
  }
}
component recipescompatibility fallback
# Powder-Gray Wired Bedroom Console shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `powder-gray-wired-bedroom-console`
Slug: `powder-gray-wired-bedroom-console`

## Intent

A quiet operating-system shrine for private network mysticism: powder-gray room light, obsolete desktop chrome, black manga wiring, and soft CRT phosphor arranged as if a bedroom computer has become a ritual interface. The language avoids loud hacker spectacle and instead makes loneliness operational: one active window, many half-erased diagrams, status indicators that feel domestic and supernatural at once. Its polish comes from restraint, low saturation, and precise linework rather than visual abundance.

## 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": "#D8F7F1",
  "background": "#C8CAD1",
  "border": "#303238",
  "error": "#8F4E62",
  "info": "#7C86B7",
  "muted": "#71737C",
  "primary": "#1B1D21",
  "secondary": "#D9DADF",
  "success": "#5F8377",
  "surface": "#ECECF0",
  "text": "#191B1F",
  "warning": "#9A8661"
}

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&family=Instrument+Sans:wght@500;600;700&display=swap",
  "heading_font": "Instrument Sans",
  "letter_spacing": "-0.02em",
  "line_height": 1.5,
  "mono_font": "IBM Plex Mono",
  "scale_ratio": 1.22
}

## Visual character to preserve

- Build pages on an asymmetric CSS grid with a single elevated active window occupying roughly one third of the canvas and large powder-gray negative space around it.
- Render peripheral cable diagrams with absolutely positioned SVG or CSS border lines creeping in from edges behind translucent UI panels.
- Use 1px off-black manga line borders, squared or 16px-radius window chrome, and hairline internal dividers instead of broad shadows or heavy fills.
- Layer scanline, violet noise, and soft white radial-glow pseudo-elements over the entire scene at low opacity so the monitor ambience is visible but never decorative.
- Set tiny monospace terminal captions beside restrained grotesk headers, with all labels tracked at -0.02em and occasional tall title-card text used only as a vertical accent.

## ShadSync visual profile

{
  "family": "brutalist",
  "material": "ink",
  "contour": "default",
  "border": "solid",
  "underlay": true,
  "grain": false,
  "stickerBadges": false,
  "motion": "lift-rotate",
  "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/powder-gray-wired-bedroom-console/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: Start from a powder-gray/off-black base and add only CRT white, pale violet, and tiny cyan-green status sparks.; Use one active window as the emotional center of every composition.; Draw cables, node maps, and terminal metadata with 1px strokes and deliberate cropping.; Let blank dialogs, pauses, and lonely cursors communicate the existential mood.; Pair restrained grotesk UI headers with small monospace labels and captions.; Keep surfaces translucent and matte, with soft bloom rather than shiny neon.; Use Y2K chrome or gel highlights only as tiny UI seams, not as broad gradients.; Check that every decorative diagram also feels like functional infrastructure.
- Do not: Do not use saturated cyberpunk magenta, electric blue floods, or rainbow glitch overlays.; Do not turn the screen into a generic analytics dashboard or component catalog.; Do not add anime characters, fan-art imagery, or literal show references.; Do not fill negative space with extra widgets just because the layout feels empty.; Do not use thick shadows, glassmorphism blur excess, or plastic 3D buttons.; Do not make terminal text dense everywhere; detail should have islands and silence.; Do not rely on default form controls, browser fonts, or unstyled buttons.; Do not make the mystical aspect occult-gothic; it should remain technical and domestic.

## 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 PowderGrayWiredBedroomConsoleShadcnKit() {
  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">Powder-Gray Wired Bedroom Console</h2>
          <p className="mt-1 max-w-xl text-sm text-muted-foreground">
            Use the Katagami registry theme, then compose these shadcn primitives
            with the language-specific component recipes.
          </p>
        </div>
        <Button>Apply theme</Button>
      </div>

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

      <Card>
        <CardHeader>
          <CardTitle>Component recipe</CardTitle>
          <CardDescription>
            Replace this starter content with the agent-authored product scene
            from components.md and preview-shots.json.
          </CardDescription>
        </CardHeader>
        <CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
          <Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
          <Button variant="secondary">Preview state</Button>
        </CardContent>
        <CardFooter className="justify-between">
          <Badge>Ready</Badge>
          <Button variant="outline">Copy recipe</Button>
        </CardFooter>
      </Card>
    </section>
  );
}
```

## Layout notes

{
  "breakpoints": "Mobile below 640px stacks windows vertically and crops diagrams; tablet 640-1024px keeps overlap but reduces rotations; desktop above 1024px uses full asymmetric field.",
  "density": "Desktop density is intentionally uneven: large vacant monitor-gray fields contrast with dense terminal strips and schematic knots, preserving a private bedroom-console feeling.",
  "grid": "Twelve-column desktop grid with 24px gutters and max-width 1320px; active window spans 5-6 columns, secondary windows float via grid-column offsets and transforms.",
  "responsive": "On small screens, preserve the active-window shrine at the top, convert edge cables into a light background map, and keep terminal labels legible at 11px minimum.",
  "whitespace": "Whitespace is treated as charged screen silence. Keep broad empty regions around the active window and avoid filling unused space with icons or extra cards."
}
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": "powder-gray-wired-bedroom-console",
    "name": "Powder-Gray Wired Bedroom Console",
    "slug": "powder-gray-wired-bedroom-console"
  },
  "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": [
    "Build pages on an asymmetric CSS grid with a single elevated active window occupying roughly one third of the canvas and large powder-gray negative space around it.",
    "Render peripheral cable diagrams with absolutely positioned SVG or CSS border lines creeping in from edges behind translucent UI panels.",
    "Use 1px off-black manga line borders, squared or 16px-radius window chrome, and hairline internal dividers instead of broad shadows or heavy fills.",
    "Layer scanline, violet noise, and soft white radial-glow pseudo-elements over the entire scene at low opacity so the monitor ambience is visible but never decorative.",
    "Set tiny monospace terminal captions beside restrained grotesk headers, with all labels tracked at -0.02em and occasional tall title-card text used only as a vertical accent."
  ],
  "visualProfile": {
    "family": "brutalist",
    "material": "ink",
    "contour": "default",
    "border": "solid",
    "underlay": false,
    "grain": false,
    "stickerBadges": false,
    "motion": "lift-rotate",
    "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": "Powder-Gray Wired Bedroom Console 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": [
      "Start from a powder-gray/off-black base and add only CRT white, pale violet, and tiny cyan-green status sparks.",
      "Use one active window as the emotional center of every composition.",
      "Draw cables, node maps, and terminal metadata with 1px strokes and deliberate cropping.",
      "Let blank dialogs, pauses, and lonely cursors communicate the existential mood.",
      "Pair restrained grotesk UI headers with small monospace labels and captions.",
      "Keep surfaces translucent and matte, with soft bloom rather than shiny neon.",
      "Use Y2K chrome or gel highlights only as tiny UI seams, not as broad gradients.",
      "Check that every decorative diagram also feels like functional infrastructure."
    ],
    "dont": [
      "Do not use saturated cyberpunk magenta, electric blue floods, or rainbow glitch overlays.",
      "Do not turn the screen into a generic analytics dashboard or component catalog.",
      "Do not add anime characters, fan-art imagery, or literal show references.",
      "Do not fill negative space with extra widgets just because the layout feels empty.",
      "Do not use thick shadows, glassmorphism blur excess, or plastic 3D buttons.",
      "Do not make terminal text dense everywhere; detail should have islands and silence.",
      "Do not rely on default form controls, browser fonts, or unstyled buttons.",
      "Do not make the mystical aspect occult-gothic; it should remain technical and domestic."
    ]
  }
}
related

More like this