back to gallery
design language·bebop-noir-terminal-lounge

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.

the spec

specification

philosophy
summary
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.
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
accent
#B7472A
background
#050505
border
#2A2520
error
#C84730
info
#B78B45
muted
#9B8E78
primary
#0A0908
secondary
#F1E4C8
success
#8A9A5B
surface
#E8D9BA
text
#F5EBD4
warning
#C17A2B
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
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.
avoid
  • 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"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · bebop-noir-terminal-lounge
DESIGN.md

at a glance

Palette

Typography

headline-lgAntonio · 31px · 700

The quick brown fox jumps

headline-mdAntonio · 25px · 600

The quick brown fox jumps

body-mdAfacad Flux · 16px · 400

The quick brown fox jumps

label-mdMartian 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: #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;
}
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 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>
  );
}
theme JSONcompatibility fallback
{
  "$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"
      ]
    }
  }
}
component recipescompatibility fallback
# 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."
}
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": "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."
    ]
  }
}
related

More like this