Bebop Noir Terminal Lounge
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
specification
philosophy
tokens
borders4 items
- accent width
- 4px
- character
- Hairline console dividers in smoky brown-black with occasional left-edge ember slugs.
- default width
- 1px
- style
- solid
colors12 items
motion3 items
- duration
- 180ms
- easing
- cubic-bezier(0.2, 0.8, 0.2, 1)
- philosophy
- Cut like an anime title sequence: quick opacity snaps and short lateral shifts, no bouncy easing or continuous decoration.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 16px
- none
- 0
- sm
- 0
shadows3 items
- lg
- 0 40px 120px rgba(0,0,0,0.48)
- md
- 0 24px 60px rgba(0,0,0,0.34)
- sm
- 0 1px 0 rgba(241,228,200,0.08)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
- bg pattern
- Black field with horizontal scanline repeating-linear-gradient and sparse amber coordinate ticks.
- card style
- Square or single-radius cream cards inside black gutters; cards use hairline borders, clipped corners, and small terminal labels.
- treatment
- Mostly flat ink and cream fields with 0.03 opacity scanlines, light paper noise, and no glossy gradients.
typography8 items
- base size
- 16px
- body font
- Afacad Flux
- google fonts url
- https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@400;500;600;700&family=Antonio:wght@500;600;700&family=Martian+Mono:wght@400;500;600;700&display=swap
- heading font
- Antonio
- letter spacing
- -0.02em
- line height
- 1.48
- mono font
- Martian Mono
- scale ratio
- 1.25
rules
Compose screens as cinematic cuts: one dominant black stage, two or three asymmetrical cream panels, and a narrow diagnostic rail. Preserve heavy black gutters between panels. Align content to a cockpit-console grid, then deliberately crop one oversized silhouette or title numeral through the grid. Use red/orange only as edit marks, bounty priority slugs, or active route indicators. Every module needs a terminal label, timestamp, or tab strip to feel diegetic.
Medium-high information density inside readout panels, offset by large black pauses and cream negative-space cards. Mobile collapses into stacked title cards with diagnostic strips preserved above each section.
Headlines use tall condensed Antonio in uppercase with tight tracking and jazz-poster numerals. Operational copy uses Afacad Flux for readable lounge-menu clarity. Metadata, prompts, and HUD labels use Martian Mono at small sizes with generous letter spacing. The highest-priority object is indicated by scale and placement first, then a single ember bar; never rely on color alone.
layout
- desktop
- 1024px+ asymmetrical 12-column cockpit board
- mobile
- 375px-767px stacked title cards
- tablet
- 768px-1023px two-column console
Information is dense only inside diagnostics; the surrounding frame stays open and smoky so the interface breathes like a late-night lounge.
Desktop uses a 12-column max 1360px cockpit grid with 24px gutters, a 64px left rail, and panels that span irregular 3/5/7 column cuts. Tablet uses 8 columns; mobile becomes one column with retained black gutters.
At narrow widths hide the decorative silhouette crop, preserve terminal labels, stack bounty cards, and convert the top nav into horizontal lounge tabs.
Use black gutters as active negative space: at least 24px between panels on desktop, 16px on mobile, with cream cards allowed to hold large blank fields.
guidance
- Lead with smoky near-black and warm cream, then add one muted red/orange accent as a functional edit mark.
- Use terminal prompts, timestamps, and diagnostic readouts to make each section feel operated rather than displayed.
- Keep corners mostly square; reserve 16px or 24px radius for lounge menu containers only when softness is necessary.
- Crop titles, numerals, and silhouettes at panel boundaries to create cinematic anime pacing.
- Let monochrome manga linework stay secondary, low opacity, and structurally masked behind UI panels.
- Use Martian Mono for small labels and prompts; keep microcopy concise and technical.
- Maintain strong contrast for text on both black and cream surfaces, especially small terminal labels.
- Build pages as scenes such as bounty boards, cockpit diagnostics, session lounges, route scans, or late-night operator menus.
- Do not add rainbow neon, blue-purple cyberpunk gradients, or glowing hologram panels.
- Do not use cute anime type, stickers, mascots, rounded chat bubbles, or playful pastel accents.
- Do not fill every gap; black negative space is part of the rhythm and should remain visible.
- Do not use more than one warm accent family beyond semantic status colors.
- Do not rely on generic dashboard card grids with equal columns and identical cards.
- Do not overuse scanlines or noise to the point that text becomes difficult to read.
- Do not introduce default browser controls, unstyled form elements, or mismatched rounded radii.
katagami spec
# Bebop Noir Terminal Lounge ## Philosophy A polished analog-futurist design language for systems that feel like they are being operated at 02:17 from the quiet side of a spaceship lounge: smoky near-black gutters, cream paper data cards, restrained ember bars, and terminal readouts paced like jazz cuts. It blends 90s anime title-card discipline with noir restraint: nothing cute, nothing neon for its own sake, only clipped information panels, cropped manga silhouettes, and small phosphor status notes arriving like syncopated brass hits. ### Values - Restraint before decoration: black, cream, and one ember accent carry the identity while interface details stay small and functional. - Cinematic pacing: layouts should feel edited, with hard cuts between wide negative space, dense diagnostic panels, and cropped figure silhouettes. - Diegetic utility: every line, timestamp, tab, and prompt must imply an operating console or bounty-board workflow, not ornamental sci-fi wallpaper. - Analog imperfection under polish: scanlines, paper grain, and slight misregistration may appear, but only at low opacity and with strict alignment. - Existential calm: the system should hold quiet tension, leaving room for smoky pauses between bursts of red/orange action. - Typographic authority: condensed title numerals and precise monospace labels define hierarchy more than icons or illustration. ### Anti-Values - Cute anime lettering, bubbly shapes, mascot energy, or kawaii color choices that break the noir lounge tone. - Generic cyberpunk neon rain, blue-purple gradients, hologram clutter, or excessive glow effects. - Component-catalog sameness with evenly spaced cards and no cinematic crop, gutter, or asymmetrical cut. - Over-textured vintage pastiche; the system must stay clean, premium, and usable. ### Visual Character - Use a near-black page shell with thick black gutters and warm cream content cards clipped into asymmetric title-sequence panels. - Place skinny ember red or burnt-orange bars on panel edges and timeline dividers, never as broad fills or multi-color decoration. - Overlay terminal prompts, timestamps, scanline dividers, and diagnostic micro-labels in a true monospace with dim amber or green phosphor accents. - Crop large monochrome manga-line silhouettes behind foreground panels with mix-blend-mode or low-opacity masks so the UI feels cinematic rather than illustrative. - Build cockpit-console grids from hairline borders, square corners, tab strips, and segmented readouts with almost no shadow and disciplined negative space. ## Tokens ### Borders - **Accent Width**: 4px - **Character**: Hairline console dividers in smoky brown-black with occasional left-edge ember slugs. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#B7472A` | | background | `#050505` | | border | `#2A2520` | | error | `#C84730` | | info | `#B78B45` | | muted | `#9B8E78` | | primary | `#0A0908` | | secondary | `#F1E4C8` | | success | `#8A9A5B` | | surface | `#E8D9BA` | | text | `#F5EBD4` | | warning | `#C17A2B` | ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1) - **Philosophy**: Cut like an anime title sequence: quick opacity snaps and short lateral shifts, no bouncy easing or continuous decoration. ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 16px - **None**: 0 - **Sm**: 0 ### Shadows - **Lg**: 0 40px 120px rgba(0,0,0,0.48) - **Md**: 0 24px 60px rgba(0,0,0,0.34) - **Sm**: 0 1px 0 rgba(241,228,200,0.08) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96,128] ### Surfaces - **Bg Pattern**: Black field with horizontal scanline repeating-linear-gradient and sparse amber coordinate ticks. - **Card Style**: Square or single-radius cream cards inside black gutters; cards use hairline borders, clipped corners, and small terminal labels. - **Treatment**: Mostly flat ink and cream fields with 0.03 opacity scanlines, light paper noise, and no glossy gradients. ### Typography - **Base Size**: 16px - **Body Font**: Afacad Flux - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@400;500;600;700&family=Antonio:wght@500;600;700&family=Martian+Mono:wght@400;500;600;700&display=swap - **Heading Font**: Antonio - **Letter Spacing**: -0.02em - **Line Height**: 1.48 - **Mono Font**: Martian Mono - **Scale Ratio**: 1.25 ## Rules ### Composition Compose screens as cinematic cuts: one dominant black stage, two or three asymmetrical cream panels, and a narrow diagnostic rail. Preserve heavy black gutters between panels. Align content to a cockpit-console grid, then deliberately crop one oversized silhouette or title numeral through the grid. Use red/orange only as edit marks, bounty priority slugs, or active route indicators. Every module needs a terminal label, timestamp, or tab strip to feel diegetic. ### Density Medium-high information density inside readout panels, offset by large black pauses and cream negative-space cards. Mobile collapses into stacked title cards with diagnostic strips preserved above each section. ### Hierarchy Headlines use tall condensed Antonio in uppercase with tight tracking and jazz-poster numerals. Operational copy uses Afacad Flux for readable lounge-menu clarity. Metadata, prompts, and HUD labels use Martian Mono at small sizes with generous letter spacing. The highest-priority object is indicated by scale and placement first, then a single ember bar; never rely on color alone. ### Signature Patterns - Bounty-board cream cards sit in black gutters with a 4px ember left rail, clipped title numerals, and monospace timestamp slugs. - Scanline dividers are built with repeating-linear-gradient hairlines masked to panel interiors, giving CRT texture without full-screen noise. - Cropped monochrome manga silhouettes occupy the negative space behind panels using low-opacity SVG linework and hard rectangular masks. - Cockpit console grids combine square tabs, amber prompt cursors, segmented status cells, and one asymmetrical oversized panel per viewport. ## Layout ### Breakpoints - **Desktop**: 1024px+ asymmetrical 12-column cockpit board - **Mobile**: 375px-767px stacked title cards - **Tablet**: 768px-1023px two-column console ### Density Information is dense only inside diagnostics; the surrounding frame stays open and smoky so the interface breathes like a late-night lounge. ### Grid Desktop uses a 12-column max 1360px cockpit grid with 24px gutters, a 64px left rail, and panels that span irregular 3/5/7 column cuts. Tablet uses 8 columns; mobile becomes one column with retained black gutters. ### Responsive At narrow widths hide the decorative silhouette crop, preserve terminal labels, stack bounty cards, and convert the top nav into horizontal lounge tabs. ### Whitespace Use black gutters as active negative space: at least 24px between panels on desktop, 16px on mobile, with cream cards allowed to hold large blank fields. ## Guidance ### Do - Lead with smoky near-black and warm cream, then add one muted red/orange accent as a functional edit mark. - Use terminal prompts, timestamps, and diagnostic readouts to make each section feel operated rather than displayed. - Keep corners mostly square; reserve 16px or 24px radius for lounge menu containers only when softness is necessary. - Crop titles, numerals, and silhouettes at panel boundaries to create cinematic anime pacing. - Let monochrome manga linework stay secondary, low opacity, and structurally masked behind UI panels. - Use Martian Mono for small labels and prompts; keep microcopy concise and technical. - Maintain strong contrast for text on both black and cream surfaces, especially small terminal labels. - Build pages as scenes such as bounty boards, cockpit diagnostics, session lounges, route scans, or late-night operator menus. ### Don't - Do not add rainbow neon, blue-purple cyberpunk gradients, or glowing hologram panels. - Do not use cute anime type, stickers, mascots, rounded chat bubbles, or playful pastel accents. - Do not fill every gap; black negative space is part of the rhythm and should remain visible. - Do not use more than one warm accent family beyond semantic status colors. - Do not rely on generic dashboard card grids with equal columns and identical cards. - Do not overuse scanlines or noise to the point that text becomes difficult to read. - Do not introduce default browser controls, unstyled form elements, or mismatched rounded radii. ### Accessibility Cream-on-black and ink-on-cream pairings exceed practical contrast targets; red accents must be supported by labels, position, or iconography. Scanline texture remains below 0.08 opacity and never overlays small body copy heavily. ### Usage Context Best for creative operations tools, music/session dashboards, bounty or task boards, cinematic portfolios, diagnostics, and editorial apps needing noir terminal atmosphere.
DESIGN.md
---
version: "alpha"
name: "Bebop Noir Terminal Lounge"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#B7472A"
background: "#050505"
border: "#2A2520"
error: "#C84730"
info: "#B78B45"
muted: "#9B8E78"
primary: "#0A0908"
secondary: "#F1E4C8"
success: "#8A9A5B"
surface: "#E8D9BA"
text: "#F5EBD4"
warning: "#C17A2B"
typography:
headline-lg:
fontFamily: "Antonio"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Antonio"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Afacad Flux"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.48
letterSpacing: "-0.02em"
label-md:
fontFamily: "Martian 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"
---
# Bebop Noir Terminal Lounge
## Overview
A polished analog-futurist design language for systems that feel like they are being operated at 02:17 from the quiet side of a spaceship lounge: smoky near-black gutters, cream paper data cards, restrained ember bars, and terminal readouts paced like jazz cuts. It blends 90s anime title-card discipline with noir restraint: nothing cute, nothing neon for its own sake, only clipped information panels, cropped manga silhouettes, and small phosphor status notes arriving like syncopated brass hits.
### Values
- Restraint before decoration: black, cream, and one ember accent carry the identity while interface details stay small and functional.
- Cinematic pacing: layouts should feel edited, with hard cuts between wide negative space, dense diagnostic panels, and cropped figure silhouettes.
- Diegetic utility: every line, timestamp, tab, and prompt must imply an operating console or bounty-board workflow, not ornamental sci-fi wallpaper.
- Analog imperfection under polish: scanlines, paper grain, and slight misregistration may appear, but only at low opacity and with strict alignment.
- Existential calm: the system should hold quiet tension, leaving room for smoky pauses between bursts of red/orange action.
- Typographic authority: condensed title numerals and precise monospace labels define hierarchy more than icons or illustration.
### Anti-Values
- Cute anime lettering, bubbly shapes, mascot energy, or kawaii color choices that break the noir lounge tone.
- Generic cyberpunk neon rain, blue-purple gradients, hologram clutter, or excessive glow effects.
- Component-catalog sameness with evenly spaced cards and no cinematic crop, gutter, or asymmetrical cut.
- Over-textured vintage pastiche; the system must stay clean, premium, and usable.
### Visual Character
- Use a near-black page shell with thick black gutters and warm cream content cards clipped into asymmetric title-sequence panels.
- Place skinny ember red or burnt-orange bars on panel edges and timeline dividers, never as broad fills or multi-color decoration.
- Overlay terminal prompts, timestamps, scanline dividers, and diagnostic micro-labels in a true monospace with dim amber or green phosphor accents.
- Crop large monochrome manga-line silhouettes behind foreground panels with mix-blend-mode or low-opacity masks so the UI feels cinematic rather than illustrative.
- Build cockpit-console grids from hairline borders, square corners, tab strips, and segmented readouts with almost no shadow and disciplined negative space.
## 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 | `#B7472A` |
| background | `#050505` |
| border | `#2A2520` |
| error | `#C84730` |
| info | `#B78B45` |
| muted | `#9B8E78` |
| primary | `#0A0908` |
| secondary | `#F1E4C8` |
| success | `#8A9A5B` |
| surface | `#E8D9BA` |
| text | `#F5EBD4` |
| warning | `#C17A2B` |
## Typography
- **Headline-Lg**: Antonio, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Antonio, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Afacad Flux, 16px, weight 400, line-height 1.48.
- **Label-Md**: Martian 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
- **Desktop**: 1024px+ asymmetrical 12-column cockpit board
- **Mobile**: 375px-767px stacked title cards
- **Tablet**: 768px-1023px two-column console
### Density
Information is dense only inside diagnostics; the surrounding frame stays open and smoky so the interface breathes like a late-night lounge.
### Grid
Desktop uses a 12-column max 1360px cockpit grid with 24px gutters, a 64px left rail, and panels that span irregular 3/5/7 column cuts. Tablet uses 8 columns; mobile becomes one column with retained black gutters.
### Responsive
At narrow widths hide the decorative silhouette crop, preserve terminal labels, stack bounty cards, and convert the top nav into horizontal lounge tabs.
### Whitespace
Use black gutters as active negative space: at least 24px between panels on desktop, 16px on mobile, with cream cards allowed to hold large blank fields.
## Elevation & Depth
### Shadows
- **Lg**: 0 40px 120px rgba(0,0,0,0.48)
- **Md**: 0 24px 60px rgba(0,0,0,0.34)
- **Sm**: 0 1px 0 rgba(241,228,200,0.08)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: Black field with horizontal scanline repeating-linear-gradient and sparse amber coordinate ticks.
- **Card Style**: Square or single-radius cream cards inside black gutters; cards use hairline borders, clipped corners, and small terminal labels.
- **Treatment**: Mostly flat ink and cream fields with 0.03 opacity scanlines, light paper noise, and no glossy gradients.
### Borders
- **Accent Width**: 4px
- **Character**: Hairline console dividers in smoky brown-black with occasional left-edge ember slugs.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Compose screens as cinematic cuts: one dominant black stage, two or three asymmetrical cream panels, and a narrow diagnostic rail. Preserve heavy black gutters between panels. Align content to a cockpit-console grid, then deliberately crop one oversized silhouette or title numeral through the grid. Use red/orange only as edit marks, bounty priority slugs, or active route indicators. Every module needs a terminal label, timestamp, or tab strip to feel diegetic.
### Density
Medium-high information density inside readout panels, offset by large black pauses and cream negative-space cards. Mobile collapses into stacked title cards with diagnostic strips preserved above each section.
### Hierarchy
Headlines use tall condensed Antonio in uppercase with tight tracking and jazz-poster numerals. Operational copy uses Afacad Flux for readable lounge-menu clarity. Metadata, prompts, and HUD labels use Martian Mono at small sizes with generous letter spacing. The highest-priority object is indicated by scale and placement first, then a single ember bar; never rely on color alone.
### Signature Patterns
- Bounty-board cream cards sit in black gutters with a 4px ember left rail, clipped title numerals, and monospace timestamp slugs.
- Scanline dividers are built with repeating-linear-gradient hairlines masked to panel interiors, giving CRT texture without full-screen noise.
- Cropped monochrome manga silhouettes occupy the negative space behind panels using low-opacity SVG linework and hard rectangular masks.
- Cockpit console grids combine square tabs, amber prompt cursors, segmented status cells, and one asymmetrical oversized panel per viewport.
## 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/bebop-noir-terminal-lounge/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 Lead with smoky near-black and warm cream, then add one muted red/orange accent as a functional edit mark.
- Do Use terminal prompts, timestamps, and diagnostic readouts to make each section feel operated rather than displayed.
- Do Keep corners mostly square; reserve 16px or 24px radius for lounge menu containers only when softness is necessary.
- Do Crop titles, numerals, and silhouettes at panel boundaries to create cinematic anime pacing.
- Do Let monochrome manga linework stay secondary, low opacity, and structurally masked behind UI panels.
- Do Use Martian Mono for small labels and prompts; keep microcopy concise and technical.
- Do Maintain strong contrast for text on both black and cream surfaces, especially small terminal labels.
- Do Build pages as scenes such as bounty boards, cockpit diagnostics, session lounges, route scans, or late-night operator menus.
- Don't Do not add rainbow neon, blue-purple cyberpunk gradients, or glowing hologram panels.
- Don't Do not use cute anime type, stickers, mascots, rounded chat bubbles, or playful pastel accents.
- Don't Do not fill every gap; black negative space is part of the rhythm and should remain visible.
- Don't Do not use more than one warm accent family beyond semantic status colors.
- Don't Do not rely on generic dashboard card grids with equal columns and identical cards.
- Don't Do not overuse scanlines or noise to the point that text becomes difficult to read.
- Don't Do not introduce default browser controls, unstyled form elements, or mismatched rounded radii.
### Accessibility
Cream-on-black and ink-on-cream pairings exceed practical contrast targets; red accents must be supported by labels, position, or iconography. Scanline texture remains below 0.08 opacity and never overlays small body copy heavily.
### Usage Context
Best for creative operations tools, music/session dashboards, bounty or task boards, cinematic portfolios, diagnostics, and editorial apps needing noir terminal atmosphere.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "bebop-noir-terminal-lounge",
"type": "registry:theme",
"title": "Bebop Noir Terminal Lounge shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#050505",
"foreground": "#F5EBD4",
"card": "#E8D9BA",
"card-foreground": "#F5EBD4",
"popover": "#E8D9BA",
"popover-foreground": "#F5EBD4",
"primary": "#0A0908",
"primary-foreground": "#ffffff",
"secondary": "#F1E4C8",
"secondary-foreground": "#111111",
"muted": "#9B8E78",
"muted-foreground": "#F5EBD4",
"accent": "#B7472A",
"accent-foreground": "#ffffff",
"destructive": "#C84730",
"border": "#2A2520",
"input": "#2A2520",
"ring": "#B7472A",
"chart-1": "#0A0908",
"chart-2": "#F1E4C8",
"chart-3": "#B7472A",
"chart-4": "#8A9A5B",
"chart-5": "#C17A2B",
"sidebar": "#E8D9BA",
"sidebar-foreground": "#F5EBD4",
"sidebar-primary": "#0A0908",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#B78B45",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#2A2520",
"sidebar-ring": "#B7472A",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#0A0908",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#B7472A",
"accent-foreground": "#ffffff",
"destructive": "#C84730",
"border": "#303642",
"input": "#303642",
"ring": "#B7472A",
"chart-1": "#0A0908",
"chart-2": "#F1E4C8",
"chart-3": "#B7472A",
"chart-4": "#8A9A5B",
"chart-5": "#C17A2B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#0A0908",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#B7472A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#B7472A",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "bebop-noir-terminal-lounge",
"slug": "bebop-noir-terminal-lounge",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
- step-9128px
Shape
implementation kit
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #050505;
--foreground: #F5EBD4;
--card: #E8D9BA;
--card-foreground: #F5EBD4;
--popover: #E8D9BA;
--popover-foreground: #F5EBD4;
--primary: #0A0908;
--primary-foreground: #ffffff;
--secondary: #F1E4C8;
--secondary-foreground: #111111;
--muted: #9B8E78;
--muted-foreground: #F5EBD4;
--accent: #B7472A;
--accent-foreground: #ffffff;
--destructive: #C84730;
--border: #2A2520;
--input: #2A2520;
--ring: #B7472A;
--chart-1: #0A0908;
--chart-2: #F1E4C8;
--chart-3: #B7472A;
--chart-4: #8A9A5B;
--chart-5: #C17A2B;
--sidebar: #E8D9BA;
--sidebar-foreground: #F5EBD4;
--sidebar-primary: #0A0908;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #B78B45;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #2A2520;
--sidebar-ring: #B7472A;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #0A0908;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #B7472A;
--accent-foreground: #ffffff;
--destructive: #C84730;
--border: #303642;
--input: #303642;
--ring: #B7472A;
--chart-1: #0A0908;
--chart-2: #F1E4C8;
--chart-3: #B7472A;
--chart-4: #8A9A5B;
--chart-5: #C17A2B;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #0A0908;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #B7472A;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #B7472A;
--radius: 16px;
}
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 BebopNoirTerminalLoungeShadcnKit() {
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">Bebop Noir Terminal Lounge</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "bebop-noir-terminal-lounge",
"type": "registry:theme",
"title": "Bebop Noir Terminal Lounge shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#050505",
"foreground": "#F5EBD4",
"card": "#E8D9BA",
"card-foreground": "#F5EBD4",
"popover": "#E8D9BA",
"popover-foreground": "#F5EBD4",
"primary": "#0A0908",
"primary-foreground": "#ffffff",
"secondary": "#F1E4C8",
"secondary-foreground": "#111111",
"muted": "#9B8E78",
"muted-foreground": "#F5EBD4",
"accent": "#B7472A",
"accent-foreground": "#ffffff",
"destructive": "#C84730",
"border": "#2A2520",
"input": "#2A2520",
"ring": "#B7472A",
"chart-1": "#0A0908",
"chart-2": "#F1E4C8",
"chart-3": "#B7472A",
"chart-4": "#8A9A5B",
"chart-5": "#C17A2B",
"sidebar": "#E8D9BA",
"sidebar-foreground": "#F5EBD4",
"sidebar-primary": "#0A0908",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#B78B45",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#2A2520",
"sidebar-ring": "#B7472A",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#0A0908",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#B7472A",
"accent-foreground": "#ffffff",
"destructive": "#C84730",
"border": "#303642",
"input": "#303642",
"ring": "#B7472A",
"chart-1": "#0A0908",
"chart-2": "#F1E4C8",
"chart-3": "#B7472A",
"chart-4": "#8A9A5B",
"chart-5": "#C17A2B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#0A0908",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#B7472A",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#B7472A",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "bebop-noir-terminal-lounge",
"slug": "bebop-noir-terminal-lounge",
"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"
]
}
}
}
# Bebop Noir Terminal Lounge shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `bebop-noir-terminal-lounge`
Slug: `bebop-noir-terminal-lounge`
## Intent
A polished analog-futurist design language for systems that feel like they are being operated at 02:17 from the quiet side of a spaceship lounge: smoky near-black gutters, cream paper data cards, restrained ember bars, and terminal readouts paced like jazz cuts. It blends 90s anime title-card discipline with noir restraint: nothing cute, nothing neon for its own sake, only clipped information panels, cropped manga silhouettes, and small phosphor status notes arriving like syncopated brass hits.
## 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": "#B7472A",
"background": "#050505",
"border": "#2A2520",
"error": "#C84730",
"info": "#B78B45",
"muted": "#9B8E78",
"primary": "#0A0908",
"secondary": "#F1E4C8",
"success": "#8A9A5B",
"surface": "#E8D9BA",
"text": "#F5EBD4",
"warning": "#C17A2B"
}
Typography:
{
"base_size": "16px",
"body_font": "Afacad Flux",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Afacad+Flux:wght@400;500;600;700&family=Antonio:wght@500;600;700&family=Martian+Mono:wght@400;500;600;700&display=swap",
"heading_font": "Antonio",
"letter_spacing": "-0.02em",
"line_height": 1.48,
"mono_font": "Martian Mono",
"scale_ratio": 1.25
}
## Visual character to preserve
- Use a near-black page shell with thick black gutters and warm cream content cards clipped into asymmetric title-sequence panels.
- Place skinny ember red or burnt-orange bars on panel edges and timeline dividers, never as broad fills or multi-color decoration.
- Overlay terminal prompts, timestamps, scanline dividers, and diagnostic micro-labels in a true monospace with dim amber or green phosphor accents.
- Crop large monochrome manga-line silhouettes behind foreground panels with mix-blend-mode or low-opacity masks so the UI feels cinematic rather than illustrative.
- Build cockpit-console grids from hairline borders, square corners, tab strips, and segmented readouts with almost no shadow and disciplined negative space.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": true,
"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/bebop-noir-terminal-lounge/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: Lead with smoky near-black and warm cream, then add one muted red/orange accent as a functional edit mark.; Use terminal prompts, timestamps, and diagnostic readouts to make each section feel operated rather than displayed.; Keep corners mostly square; reserve 16px or 24px radius for lounge menu containers only when softness is necessary.; Crop titles, numerals, and silhouettes at panel boundaries to create cinematic anime pacing.; Let monochrome manga linework stay secondary, low opacity, and structurally masked behind UI panels.; Use Martian Mono for small labels and prompts; keep microcopy concise and technical.; Maintain strong contrast for text on both black and cream surfaces, especially small terminal labels.; Build pages as scenes such as bounty boards, cockpit diagnostics, session lounges, route scans, or late-night operator menus.
- Do not: Do not add rainbow neon, blue-purple cyberpunk gradients, or glowing hologram panels.; Do not use cute anime type, stickers, mascots, rounded chat bubbles, or playful pastel accents.; Do not fill every gap; black negative space is part of the rhythm and should remain visible.; Do not use more than one warm accent family beyond semantic status colors.; Do not rely on generic dashboard card grids with equal columns and identical cards.; Do not overuse scanlines or noise to the point that text becomes difficult to read.; Do not introduce default browser controls, unstyled form elements, or mismatched rounded radii.
## 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 BebopNoirTerminalLoungeShadcnKit() {
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">Bebop Noir Terminal Lounge</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": {
"desktop": "1024px+ asymmetrical 12-column cockpit board",
"mobile": "375px-767px stacked title cards",
"tablet": "768px-1023px two-column console"
},
"density": "Information is dense only inside diagnostics; the surrounding frame stays open and smoky so the interface breathes like a late-night lounge.",
"grid": "Desktop uses a 12-column max 1360px cockpit grid with 24px gutters, a 64px left rail, and panels that span irregular 3/5/7 column cuts. Tablet uses 8 columns; mobile becomes one column with retained black gutters.",
"responsive": "At narrow widths hide the decorative silhouette crop, preserve terminal labels, stack bounty cards, and convert the top nav into horizontal lounge tabs.",
"whitespace": "Use black gutters as active negative space: at least 24px between panels on desktop, 16px on mobile, with cream cards allowed to hold large blank fields."
}
{
"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": "bebop-noir-terminal-lounge",
"name": "Bebop Noir Terminal Lounge",
"slug": "bebop-noir-terminal-lounge"
},
"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 a near-black page shell with thick black gutters and warm cream content cards clipped into asymmetric title-sequence panels.",
"Place skinny ember red or burnt-orange bars on panel edges and timeline dividers, never as broad fills or multi-color decoration.",
"Overlay terminal prompts, timestamps, scanline dividers, and diagnostic micro-labels in a true monospace with dim amber or green phosphor accents.",
"Crop large monochrome manga-line silhouettes behind foreground panels with mix-blend-mode or low-opacity masks so the UI feels cinematic rather than illustrative.",
"Build cockpit-console grids from hairline borders, square corners, tab strips, and segmented readouts with almost no shadow and disciplined negative space."
],
"visualProfile": {
"family": "brutalist",
"material": "ink",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": true,
"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": "Bebop Noir Terminal Lounge 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": [
"Lead with smoky near-black and warm cream, then add one muted red/orange accent as a functional edit mark.",
"Use terminal prompts, timestamps, and diagnostic readouts to make each section feel operated rather than displayed.",
"Keep corners mostly square; reserve 16px or 24px radius for lounge menu containers only when softness is necessary.",
"Crop titles, numerals, and silhouettes at panel boundaries to create cinematic anime pacing.",
"Let monochrome manga linework stay secondary, low opacity, and structurally masked behind UI panels.",
"Use Martian Mono for small labels and prompts; keep microcopy concise and technical.",
"Maintain strong contrast for text on both black and cream surfaces, especially small terminal labels.",
"Build pages as scenes such as bounty boards, cockpit diagnostics, session lounges, route scans, or late-night operator menus."
],
"dont": [
"Do not add rainbow neon, blue-purple cyberpunk gradients, or glowing hologram panels.",
"Do not use cute anime type, stickers, mascots, rounded chat bubbles, or playful pastel accents.",
"Do not fill every gap; black negative space is part of the rhythm and should remain visible.",
"Do not use more than one warm accent family beyond semantic status colors.",
"Do not rely on generic dashboard card grids with equal columns and identical cards.",
"Do not overuse scanlines or noise to the point that text becomes difficult to read.",
"Do not introduce default browser controls, unstyled form elements, or mismatched rounded radii."
]
}
}