PlanetWeb Aqua Terminal
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
- 3px
- character
- Near-black hairline rules define panes; aqua highlights and orange status notches mark active regions.
- default width
- 1px
- style
- solid with occasional dotted focus rectangles and segmented double-rule browser rails
colors12 items
motion3 items
- duration
- 180ms
- easing
- cubic-bezier(.18,.84,.28,1)
- philosophy
- Motion feels like dial-up UI feedback: short cursor blinks, stepped progress fills, and tab focus changes with no liquid animation.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 16px
- none
- 0
- sm
- 0
shadows3 items
- lg
- 0 0 0 1px rgba(16,19,21,0.10), 0 34px 90px rgba(39,84,96,0.20)
- md
- 0 0 0 1px rgba(16,19,21,0.08), 0 18px 48px rgba(41,96,110,0.14)
- sm
- 0 1px 0 rgba(255,255,255,0.82) inset, 0 1px 2px rgba(16,19,21,0.10)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
- bg pattern
- Faint horizontal scanlines, pale cyan grid ticks, and sparse halftone dots at 6-10% opacity.
- card style
- Cards are browser panes with 1px black outer rules, aqua title tabs, square pixel controls, and bottom status strips rather than floating rounded cards.
- treatment
- Mostly white manga paper with translucent aqua browser bars, silver chrome gradients, and occasional dark diagnostic insets.
typography8 items
- base size
- 16px
- body font
- News Cycle
- google fonts url
- https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@400;500;600&family=Electrolize&family=News+Cycle:wght@400;700&display=swap
- heading font
- Electrolize
- letter spacing
- -0.02em
- line height
- 1.56
- mono font
- Azeret Mono
- scale ratio
- 1.25
rules
Alternate sparse white browser fields with one dense terminal pane. Tight 4-8px control clusters contrast with 64-96px atmospheric margins.
layout
- desktop
- 1180px
- mobile
- 480px
- tablet
- 768px
Medium-high interface density is reserved for chrome rails and diagnostics; content fields stay open so the white manga paper can breathe.
Desktop uses a 12-column max-width 1280px browser stage with nested split panes; tablet collapses to 6 columns and mobile stacks windows vertically with horizontal status rails preserved.
At small widths, the manga crop moves above the terminal, tabs become scrollable, and modal popups remain inset rather than full-width.
Whitespace is dramatic and cold: tiny 4px icon gaps sit inside 64px and 96px white fields, creating loneliness around the glossy portal.
guidance
- Use browser chrome as structure: title bars, URL fields, status strips, splitters, tabs, and scroll gutters should be functional layout elements.
- Keep most large surfaces white or translucent pale aqua, then concentrate unease in one dark terminal diagnostic block.
- Draw manga fragments with black CSS lines, halftone dots, stark crops, and white negative space instead of full-color anime illustration.
- Use underlined link-blue text sparingly for genuine navigation affordances and tiny portal hints.
- Let orange appear as a Dreamcast-like route/status signal, not as broad brand color.
- Preserve crisp bitmap edges: 1px rules, square icons, dotted focus outlines, and stepped progress bars.
- Make the fictional product specific, such as a browser-based memory terminal, console portal, or identity sync tool.
- Do not create generic KPI dashboards, equal pricing cards, or abstract component catalogs.
- Do not flood the screen with neon cyan, purple vaporwave gradients, or arcade nostalgia unrelated to browser chrome.
- Do not round every pane; only aqua glass and modal shells may use the 16px or 24px radii.
- Do not use photo-real anime art, complex illustration, or colorful character scenes as the main identity.
- Do not replace terminal unease with skulls, glitch chaos, horror textures, or illegible noise.
- Do not make all gaps 24px; the rhythm depends on tiny controls and large empty paper fields.
- Do not hide affordances: links should look like links, status bars should look like status bars.
katagami spec
# PlanetWeb Aqua Terminal ## Philosophy PlanetWeb Aqua Terminal treats a product screen like a late-Dreamcast browser session that has learned to draw manga: polished consumer web chrome floats over severe black ink panels while terminal diagnostics quietly undermine the optimism. It is clean, bright, and usable, but every status bar and cursor prompt suggests a hidden machine reading back through the interface. ### Values - Polished early-internet optimism expressed through translucent aqua tabs, silver browser rails, and friendly portal framing. - Existential restraint: unease appears through diagnostic text, cropped monochrome eyes, and status messages rather than horror decoration. - Browser-native structure: navigation bars, split panes, underlined links, modal windows, and progress meters define the composition. - Manga economy: white space, black rules, and cropped line-art panels carry emotion without painterly color fills. - Bitmap precision: tiny iconography, monospace readouts, and hard one-pixel strokes stay crisp at every scale. - Consumer hardware tactility: rounded aqua glass and soft silver chrome are balanced by cold terminal grids. ### Anti-Values - No generic SaaS dashboard cards, analytics widgets, or evenly spaced three-card sections. - No vaporwave maximalism, neon overload, or nostalgic clutter that buries the clean portal frame. - No soft startup gradients used as filler; translucent surfaces must behave like browser chrome. - No fully illustrated anime scenes; use cropped manga fragments as interface evidence, not wallpaper. ### Visual Character - Nested browser-window frames use 1px black rules, segmented top bars, aqua active tabs, URL strips, and bottom status rails as the primary CSS layout grammar. - Manga crops appear as monochrome linework panels with thick black gutters, halftone dot backgrounds, and masked eye or hand silhouettes set inside UI panes. - Terminal diagnostics sit beneath the glossy layer in dark inset panels using CRT green monospace text, scanline overlays, cursor blocks, and progress ticks. - Translucent aqua and soft silver surfaces use subtle linear gradients, backdrop blur, and inner highlights while most of the canvas remains white and misty. - Early-web affordances such as underlined blue links, tiny square bitmap icons, arrow cursors, modal popups, and dotted focus rectangles are intentionally visible. ## Tokens ### Borders - **Accent Width**: 3px - **Character**: Near-black hairline rules define panes; aqua highlights and orange status notches mark active regions. - **Default Width**: 1px - **Style**: solid with occasional dotted focus rectangles and segmented double-rule browser rails ### Colors | Name | Value | |------|-------| | accent | `#D66A23` | | background | `#F8FCFC` | | border | `#101315` | | error | `#B8324B` | | info | `#2F67B2` | | muted | `#66757C` | | primary | `#8FDDE7` | | secondary | `#D7DEE4` | | success | `#3F7D4C` | | surface | `#FFFFFF` | | text | `#101315` | | warning | `#C9872B` | ### Motion - **Duration**: 180ms - **Easing**: cubic-bezier(.18,.84,.28,1) - **Philosophy**: Motion feels like dial-up UI feedback: short cursor blinks, stepped progress fills, and tab focus changes with no liquid animation. ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 16px - **None**: 0 - **Sm**: 0 ### Shadows - **Lg**: 0 0 0 1px rgba(16,19,21,0.10), 0 34px 90px rgba(39,84,96,0.20) - **Md**: 0 0 0 1px rgba(16,19,21,0.08), 0 18px 48px rgba(41,96,110,0.14) - **Sm**: 0 1px 0 rgba(255,255,255,0.82) inset, 0 1px 2px rgba(16,19,21,0.10) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Surfaces - **Bg Pattern**: Faint horizontal scanlines, pale cyan grid ticks, and sparse halftone dots at 6-10% opacity. - **Card Style**: Cards are browser panes with 1px black outer rules, aqua title tabs, square pixel controls, and bottom status strips rather than floating rounded cards. - **Treatment**: Mostly white manga paper with translucent aqua browser bars, silver chrome gradients, and occasional dark diagnostic insets. ### Typography - **Base Size**: 16px - **Body Font**: News Cycle - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@400;500;600&family=Electrolize&family=News+Cycle:wght@400;700&display=swap - **Heading Font**: Electrolize - **Letter Spacing**: -0.02em - **Line Height**: 1.56 - **Mono Font**: Azeret Mono - **Scale Ratio**: 1.25 ## Rules ### Composition - Build every major section as a browser window or modal nested inside a larger browser viewport. - Use manga panel crops as asymmetrical inserts, never as full-bleed illustration backgrounds. - Keep the dominant field white or misty cyan and let black rules create the drawing. - Break the grid with one oversized cropped ink panel or diagnostic overlay that interrupts the portal frame. - Anchor the bottom of important panes with status bars containing link hints, bytes loaded, or connection state. ### Density Alternate sparse white browser fields with one dense terminal pane. Tight 4-8px control clusters contrast with 64-96px atmospheric margins. ### Hierarchy - Display headlines use condensed futuristic sans in uppercase with tight negative tracking and small orange route codes. - Controls, labels, and diagnostics use bitmap-like monospace with square brackets, slashes, and cursor blocks. - Body explanations remain narrow and calm, set in a readable grotesk voice with underlined link-blue anchors. - Active items are indicated by aqua tab fills and orange pixel notches rather than heavy shadows or large color fields. ### Signature Patterns - Aqua browser tab stacks: clipped translucent tabs overlap a 1px black chrome rail with pixel control buttons and a URL capsule below. - Manga diagnostic split pane: a monochrome halftone crop is overprinted by segmented terminal brackets and thin status measurements. - Dial-up progress status rails: bottom bars contain stepped cyan loading blocks, byte counters, and underlined blue link hints. - Ghost layer scanlines: ::before overlays add faint horizontal CRT lines and tiny grid ticks only inside chrome and terminal panes. - Modal loneliness popups: small white system dialogs float off-center with hard black borders, bitmap icons, and terse existential prompts. ## Layout ### Breakpoints - **Desktop**: 1180px - **Mobile**: 480px - **Tablet**: 768px ### Density Medium-high interface density is reserved for chrome rails and diagnostics; content fields stay open so the white manga paper can breathe. ### Grid Desktop uses a 12-column max-width 1280px browser stage with nested split panes; tablet collapses to 6 columns and mobile stacks windows vertically with horizontal status rails preserved. ### Responsive At small widths, the manga crop moves above the terminal, tabs become scrollable, and modal popups remain inset rather than full-width. ### Whitespace Whitespace is dramatic and cold: tiny 4px icon gaps sit inside 64px and 96px white fields, creating loneliness around the glossy portal. ## Guidance ### Do - Use browser chrome as structure: title bars, URL fields, status strips, splitters, tabs, and scroll gutters should be functional layout elements. - Keep most large surfaces white or translucent pale aqua, then concentrate unease in one dark terminal diagnostic block. - Draw manga fragments with black CSS lines, halftone dots, stark crops, and white negative space instead of full-color anime illustration. - Use underlined link-blue text sparingly for genuine navigation affordances and tiny portal hints. - Let orange appear as a Dreamcast-like route/status signal, not as broad brand color. - Preserve crisp bitmap edges: 1px rules, square icons, dotted focus outlines, and stepped progress bars. - Make the fictional product specific, such as a browser-based memory terminal, console portal, or identity sync tool. ### Don't - Do not create generic KPI dashboards, equal pricing cards, or abstract component catalogs. - Do not flood the screen with neon cyan, purple vaporwave gradients, or arcade nostalgia unrelated to browser chrome. - Do not round every pane; only aqua glass and modal shells may use the 16px or 24px radii. - Do not use photo-real anime art, complex illustration, or colorful character scenes as the main identity. - Do not replace terminal unease with skulls, glitch chaos, horror textures, or illegible noise. - Do not make all gaps 24px; the rhythm depends on tiny controls and large empty paper fields. - Do not hide affordances: links should look like links, status bars should look like status bars. ### Accessibility Maintain strong black-on-white contrast, avoid relying only on aqua for state, keep body text at 16px, and ensure scanlines stay decorative at low opacity. ### Usage Context Best for fictional console portals, identity terminals, archival anime-web interfaces, experimental browsers, memory sync products, and clean cybernetic tools that need optimism with cold diagnostic undertones.
DESIGN.md
---
version: "alpha"
name: "PlanetWeb Aqua Terminal"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#D66A23"
background: "#F8FCFC"
border: "#101315"
error: "#B8324B"
info: "#2F67B2"
muted: "#66757C"
primary: "#8FDDE7"
secondary: "#D7DEE4"
success: "#3F7D4C"
surface: "#FFFFFF"
text: "#101315"
warning: "#C9872B"
typography:
headline-lg:
fontFamily: "Electrolize"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Electrolize"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "News Cycle"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.56
letterSpacing: "-0.02em"
label-md:
fontFamily: "Azeret Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "24px"
md: "16px"
none: "0px"
sm: "0px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#000000"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# PlanetWeb Aqua Terminal
## Overview
PlanetWeb Aqua Terminal treats a product screen like a late-Dreamcast browser session that has learned to draw manga: polished consumer web chrome floats over severe black ink panels while terminal diagnostics quietly undermine the optimism. It is clean, bright, and usable, but every status bar and cursor prompt suggests a hidden machine reading back through the interface.
### Values
- Polished early-internet optimism expressed through translucent aqua tabs, silver browser rails, and friendly portal framing.
- Existential restraint: unease appears through diagnostic text, cropped monochrome eyes, and status messages rather than horror decoration.
- Browser-native structure: navigation bars, split panes, underlined links, modal windows, and progress meters define the composition.
- Manga economy: white space, black rules, and cropped line-art panels carry emotion without painterly color fills.
- Bitmap precision: tiny iconography, monospace readouts, and hard one-pixel strokes stay crisp at every scale.
- Consumer hardware tactility: rounded aqua glass and soft silver chrome are balanced by cold terminal grids.
### Anti-Values
- No generic SaaS dashboard cards, analytics widgets, or evenly spaced three-card sections.
- No vaporwave maximalism, neon overload, or nostalgic clutter that buries the clean portal frame.
- No soft startup gradients used as filler; translucent surfaces must behave like browser chrome.
- No fully illustrated anime scenes; use cropped manga fragments as interface evidence, not wallpaper.
### Visual Character
- Nested browser-window frames use 1px black rules, segmented top bars, aqua active tabs, URL strips, and bottom status rails as the primary CSS layout grammar.
- Manga crops appear as monochrome linework panels with thick black gutters, halftone dot backgrounds, and masked eye or hand silhouettes set inside UI panes.
- Terminal diagnostics sit beneath the glossy layer in dark inset panels using CRT green monospace text, scanline overlays, cursor blocks, and progress ticks.
- Translucent aqua and soft silver surfaces use subtle linear gradients, backdrop blur, and inner highlights while most of the canvas remains white and misty.
- Early-web affordances such as underlined blue links, tiny square bitmap icons, arrow cursors, modal popups, and dotted focus rectangles are intentionally visible.
## 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 | `#D66A23` |
| background | `#F8FCFC` |
| border | `#101315` |
| error | `#B8324B` |
| info | `#2F67B2` |
| muted | `#66757C` |
| primary | `#8FDDE7` |
| secondary | `#D7DEE4` |
| success | `#3F7D4C` |
| surface | `#FFFFFF` |
| text | `#101315` |
| warning | `#C9872B` |
## Typography
- **Headline-Lg**: Electrolize, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Electrolize, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: News Cycle, 16px, weight 400, line-height 1.56.
- **Label-Md**: Azeret Mono, 0.75rem, weight 600, line-height 1.
## Layout
### Spacing Tokens
- **Base**: `8px`
- **Xs**: `4px`
- **Sm**: `8px`
- **Md**: `12px`
- **Lg**: `16px`
- **Xl**: `24px`
- **2xl**: `32px`
- **3xl**: `48px`
- **4xl**: `64px`
- **Step-8**: `96px`
### Breakpoints
- **Desktop**: 1180px
- **Mobile**: 480px
- **Tablet**: 768px
### Density
Medium-high interface density is reserved for chrome rails and diagnostics; content fields stay open so the white manga paper can breathe.
### Grid
Desktop uses a 12-column max-width 1280px browser stage with nested split panes; tablet collapses to 6 columns and mobile stacks windows vertically with horizontal status rails preserved.
### Responsive
At small widths, the manga crop moves above the terminal, tabs become scrollable, and modal popups remain inset rather than full-width.
### Whitespace
Whitespace is dramatic and cold: tiny 4px icon gaps sit inside 64px and 96px white fields, creating loneliness around the glossy portal.
## Elevation & Depth
### Shadows
- **Lg**: 0 0 0 1px rgba(16,19,21,0.10), 0 34px 90px rgba(39,84,96,0.20)
- **Md**: 0 0 0 1px rgba(16,19,21,0.08), 0 18px 48px rgba(41,96,110,0.14)
- **Sm**: 0 1px 0 rgba(255,255,255,0.82) inset, 0 1px 2px rgba(16,19,21,0.10)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `16px`
- **None**: `0px`
- **Sm**: `0px`
### Surfaces
- **Bg Pattern**: Faint horizontal scanlines, pale cyan grid ticks, and sparse halftone dots at 6-10% opacity.
- **Card Style**: Cards are browser panes with 1px black outer rules, aqua title tabs, square pixel controls, and bottom status strips rather than floating rounded cards.
- **Treatment**: Mostly white manga paper with translucent aqua browser bars, silver chrome gradients, and occasional dark diagnostic insets.
### Borders
- **Accent Width**: 3px
- **Character**: Near-black hairline rules define panes; aqua highlights and orange status notches mark active regions.
- **Default Width**: 1px
- **Style**: solid with occasional dotted focus rectangles and segmented double-rule browser rails
## Components
### Composition
- Build every major section as a browser window or modal nested inside a larger browser viewport.
- Use manga panel crops as asymmetrical inserts, never as full-bleed illustration backgrounds.
- Keep the dominant field white or misty cyan and let black rules create the drawing.
- Break the grid with one oversized cropped ink panel or diagnostic overlay that interrupts the portal frame.
- Anchor the bottom of important panes with status bars containing link hints, bytes loaded, or connection state.
### Density
Alternate sparse white browser fields with one dense terminal pane. Tight 4-8px control clusters contrast with 64-96px atmospheric margins.
### Hierarchy
- Display headlines use condensed futuristic sans in uppercase with tight negative tracking and small orange route codes.
- Controls, labels, and diagnostics use bitmap-like monospace with square brackets, slashes, and cursor blocks.
- Body explanations remain narrow and calm, set in a readable grotesk voice with underlined link-blue anchors.
- Active items are indicated by aqua tab fills and orange pixel notches rather than heavy shadows or large color fields.
### Signature Patterns
- Aqua browser tab stacks: clipped translucent tabs overlap a 1px black chrome rail with pixel control buttons and a URL capsule below.
- Manga diagnostic split pane: a monochrome halftone crop is overprinted by segmented terminal brackets and thin status measurements.
- Dial-up progress status rails: bottom bars contain stepped cyan loading blocks, byte counters, and underlined blue link hints.
- Ghost layer scanlines: ::before overlays add faint horizontal CRT lines and tiny grid ticks only inside chrome and terminal panes.
- Modal loneliness popups: small white system dialogs float off-center with hard black borders, bitmap icons, and terse existential prompts.
## 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/planetweb-aqua-terminal/DESIGN.with-shadcn.md`.
The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.
Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.
## Do's and Don'ts
- Do Use browser chrome as structure: title bars, URL fields, status strips, splitters, tabs, and scroll gutters should be functional layout elements.
- Do Keep most large surfaces white or translucent pale aqua, then concentrate unease in one dark terminal diagnostic block.
- Do Draw manga fragments with black CSS lines, halftone dots, stark crops, and white negative space instead of full-color anime illustration.
- Do Use underlined link-blue text sparingly for genuine navigation affordances and tiny portal hints.
- Do Let orange appear as a Dreamcast-like route/status signal, not as broad brand color.
- Do Preserve crisp bitmap edges: 1px rules, square icons, dotted focus outlines, and stepped progress bars.
- Do Make the fictional product specific, such as a browser-based memory terminal, console portal, or identity sync tool.
- Don't Do not create generic KPI dashboards, equal pricing cards, or abstract component catalogs.
- Don't Do not flood the screen with neon cyan, purple vaporwave gradients, or arcade nostalgia unrelated to browser chrome.
- Don't Do not round every pane; only aqua glass and modal shells may use the 16px or 24px radii.
- Don't Do not use photo-real anime art, complex illustration, or colorful character scenes as the main identity.
- Don't Do not replace terminal unease with skulls, glitch chaos, horror textures, or illegible noise.
- Don't Do not make all gaps 24px; the rhythm depends on tiny controls and large empty paper fields.
- Don't Do not hide affordances: links should look like links, status bars should look like status bars.
### Accessibility
Maintain strong black-on-white contrast, avoid relying only on aqua for state, keep body text at 16px, and ensure scanlines stay decorative at low opacity.
### Usage Context
Best for fictional console portals, identity terminals, archival anime-web interfaces, experimental browsers, memory sync products, and clean cybernetic tools that need optimism with cold diagnostic undertones.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "planetweb-aqua-terminal",
"type": "registry:theme",
"title": "PlanetWeb Aqua Terminal shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F8FCFC",
"foreground": "#101315",
"card": "#FFFFFF",
"card-foreground": "#101315",
"popover": "#FFFFFF",
"popover-foreground": "#101315",
"primary": "#8FDDE7",
"primary-foreground": "#111111",
"secondary": "#D7DEE4",
"secondary-foreground": "#111111",
"muted": "#66757C",
"muted-foreground": "#101315",
"accent": "#D66A23",
"accent-foreground": "#ffffff",
"destructive": "#B8324B",
"border": "#101315",
"input": "#101315",
"ring": "#D66A23",
"chart-1": "#8FDDE7",
"chart-2": "#D7DEE4",
"chart-3": "#D66A23",
"chart-4": "#3F7D4C",
"chart-5": "#C9872B",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#101315",
"sidebar-primary": "#8FDDE7",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#2F67B2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#101315",
"sidebar-ring": "#D66A23",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#8FDDE7",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#D66A23",
"accent-foreground": "#ffffff",
"destructive": "#B8324B",
"border": "#303642",
"input": "#303642",
"ring": "#D66A23",
"chart-1": "#8FDDE7",
"chart-2": "#D7DEE4",
"chart-3": "#D66A23",
"chart-4": "#3F7D4C",
"chart-5": "#C9872B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#8FDDE7",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#D66A23",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#D66A23",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "planetweb-aqua-terminal",
"slug": "planetweb-aqua-terminal",
"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
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: #F8FCFC;
--foreground: #101315;
--card: #FFFFFF;
--card-foreground: #101315;
--popover: #FFFFFF;
--popover-foreground: #101315;
--primary: #8FDDE7;
--primary-foreground: #111111;
--secondary: #D7DEE4;
--secondary-foreground: #111111;
--muted: #66757C;
--muted-foreground: #101315;
--accent: #D66A23;
--accent-foreground: #ffffff;
--destructive: #B8324B;
--border: #101315;
--input: #101315;
--ring: #D66A23;
--chart-1: #8FDDE7;
--chart-2: #D7DEE4;
--chart-3: #D66A23;
--chart-4: #3F7D4C;
--chart-5: #C9872B;
--sidebar: #FFFFFF;
--sidebar-foreground: #101315;
--sidebar-primary: #8FDDE7;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #2F67B2;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #101315;
--sidebar-ring: #D66A23;
--radius: 16px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #8FDDE7;
--primary-foreground: #111111;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #D66A23;
--accent-foreground: #ffffff;
--destructive: #B8324B;
--border: #303642;
--input: #303642;
--ring: #D66A23;
--chart-1: #8FDDE7;
--chart-2: #D7DEE4;
--chart-3: #D66A23;
--chart-4: #3F7D4C;
--chart-5: #C9872B;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #8FDDE7;
--sidebar-primary-foreground: #111111;
--sidebar-accent: #D66A23;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #D66A23;
--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 PlanetwebAquaTerminalShadcnKit() {
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">PlanetWeb Aqua Terminal</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": "planetweb-aqua-terminal",
"type": "registry:theme",
"title": "PlanetWeb Aqua Terminal shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F8FCFC",
"foreground": "#101315",
"card": "#FFFFFF",
"card-foreground": "#101315",
"popover": "#FFFFFF",
"popover-foreground": "#101315",
"primary": "#8FDDE7",
"primary-foreground": "#111111",
"secondary": "#D7DEE4",
"secondary-foreground": "#111111",
"muted": "#66757C",
"muted-foreground": "#101315",
"accent": "#D66A23",
"accent-foreground": "#ffffff",
"destructive": "#B8324B",
"border": "#101315",
"input": "#101315",
"ring": "#D66A23",
"chart-1": "#8FDDE7",
"chart-2": "#D7DEE4",
"chart-3": "#D66A23",
"chart-4": "#3F7D4C",
"chart-5": "#C9872B",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#101315",
"sidebar-primary": "#8FDDE7",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#2F67B2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#101315",
"sidebar-ring": "#D66A23",
"radius": "16px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#8FDDE7",
"primary-foreground": "#111111",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#D66A23",
"accent-foreground": "#ffffff",
"destructive": "#B8324B",
"border": "#303642",
"input": "#303642",
"ring": "#D66A23",
"chart-1": "#8FDDE7",
"chart-2": "#D7DEE4",
"chart-3": "#D66A23",
"chart-4": "#3F7D4C",
"chart-5": "#C9872B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#8FDDE7",
"sidebar-primary-foreground": "#111111",
"sidebar-accent": "#D66A23",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#D66A23",
"radius": "16px"
}
},
"meta": {
"source": "katagami",
"languageId": "planetweb-aqua-terminal",
"slug": "planetweb-aqua-terminal",
"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"
]
}
}
}
# PlanetWeb Aqua Terminal shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `planetweb-aqua-terminal`
Slug: `planetweb-aqua-terminal`
## Intent
PlanetWeb Aqua Terminal treats a product screen like a late-Dreamcast browser session that has learned to draw manga: polished consumer web chrome floats over severe black ink panels while terminal diagnostics quietly undermine the optimism. It is clean, bright, and usable, but every status bar and cursor prompt suggests a hidden machine reading back through the interface.
## 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": "#D66A23",
"background": "#F8FCFC",
"border": "#101315",
"error": "#B8324B",
"info": "#2F67B2",
"muted": "#66757C",
"primary": "#8FDDE7",
"secondary": "#D7DEE4",
"success": "#3F7D4C",
"surface": "#FFFFFF",
"text": "#101315",
"warning": "#C9872B"
}
Typography:
{
"base_size": "16px",
"body_font": "News Cycle",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Azeret+Mono:wght@400;500;600&family=Electrolize&family=News+Cycle:wght@400;700&display=swap",
"heading_font": "Electrolize",
"letter_spacing": "-0.02em",
"line_height": 1.56,
"mono_font": "Azeret Mono",
"scale_ratio": 1.25
}
## Visual character to preserve
- Nested browser-window frames use 1px black rules, segmented top bars, aqua active tabs, URL strips, and bottom status rails as the primary CSS layout grammar.
- Manga crops appear as monochrome linework panels with thick black gutters, halftone dot backgrounds, and masked eye or hand silhouettes set inside UI panes.
- Terminal diagnostics sit beneath the glossy layer in dark inset panels using CRT green monospace text, scanline overlays, cursor blocks, and progress ticks.
- Translucent aqua and soft silver surfaces use subtle linear gradients, backdrop blur, and inner highlights while most of the canvas remains white and misty.
- Early-web affordances such as underlined blue links, tiny square bitmap icons, arrow cursors, modal popups, and dotted focus rectangles are intentionally visible.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": true,
"stickerBadges": false,
"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/planetweb-aqua-terminal/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use browser chrome as structure: title bars, URL fields, status strips, splitters, tabs, and scroll gutters should be functional layout elements.; Keep most large surfaces white or translucent pale aqua, then concentrate unease in one dark terminal diagnostic block.; Draw manga fragments with black CSS lines, halftone dots, stark crops, and white negative space instead of full-color anime illustration.; Use underlined link-blue text sparingly for genuine navigation affordances and tiny portal hints.; Let orange appear as a Dreamcast-like route/status signal, not as broad brand color.; Preserve crisp bitmap edges: 1px rules, square icons, dotted focus outlines, and stepped progress bars.; Make the fictional product specific, such as a browser-based memory terminal, console portal, or identity sync tool.
- Do not: Do not create generic KPI dashboards, equal pricing cards, or abstract component catalogs.; Do not flood the screen with neon cyan, purple vaporwave gradients, or arcade nostalgia unrelated to browser chrome.; Do not round every pane; only aqua glass and modal shells may use the 16px or 24px radii.; Do not use photo-real anime art, complex illustration, or colorful character scenes as the main identity.; Do not replace terminal unease with skulls, glitch chaos, horror textures, or illegible noise.; Do not make all gaps 24px; the rhythm depends on tiny controls and large empty paper fields.; Do not hide affordances: links should look like links, status bars should look like status bars.
## 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 PlanetwebAquaTerminalShadcnKit() {
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">PlanetWeb Aqua Terminal</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": "1180px",
"mobile": "480px",
"tablet": "768px"
},
"density": "Medium-high interface density is reserved for chrome rails and diagnostics; content fields stay open so the white manga paper can breathe.",
"grid": "Desktop uses a 12-column max-width 1280px browser stage with nested split panes; tablet collapses to 6 columns and mobile stacks windows vertically with horizontal status rails preserved.",
"responsive": "At small widths, the manga crop moves above the terminal, tabs become scrollable, and modal popups remain inset rather than full-width.",
"whitespace": "Whitespace is dramatic and cold: tiny 4px icon gaps sit inside 64px and 96px white fields, creating loneliness around the glossy portal."
}
{
"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": "planetweb-aqua-terminal",
"name": "PlanetWeb Aqua Terminal",
"slug": "planetweb-aqua-terminal"
},
"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": [
"Nested browser-window frames use 1px black rules, segmented top bars, aqua active tabs, URL strips, and bottom status rails as the primary CSS layout grammar.",
"Manga crops appear as monochrome linework panels with thick black gutters, halftone dot backgrounds, and masked eye or hand silhouettes set inside UI panes.",
"Terminal diagnostics sit beneath the glossy layer in dark inset panels using CRT green monospace text, scanline overlays, cursor blocks, and progress ticks.",
"Translucent aqua and soft silver surfaces use subtle linear gradients, backdrop blur, and inner highlights while most of the canvas remains white and misty.",
"Early-web affordances such as underlined blue links, tiny square bitmap icons, arrow cursors, modal popups, and dotted focus rectangles are intentionally visible."
],
"visualProfile": {
"family": "brutalist",
"material": "ink",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": false,
"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": "PlanetWeb Aqua Terminal launch room",
"description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
"primaryAction": "Apply theme",
"secondaryAction": "Review states",
"stats": [
{
"label": "components",
"value": "16",
"tone": "accent"
},
{
"label": "states",
"value": "ready"
},
{
"label": "density",
"value": "balanced",
"tone": "warning"
}
],
"rows": [
{
"label": "Primary flow",
"value": "mapped",
"status": "active"
},
{
"label": "Token coverage",
"value": "semantic",
"status": "synced"
},
{
"label": "Responsive proof",
"value": "queued",
"status": "review"
}
],
"statuses": [
"Active",
"Synced",
"Draft"
]
}
},
{
"id": "detail-editor",
"title": "Detail editor",
"viewport": "tablet",
"primitives": [
"button",
"card",
"input",
"textarea",
"select",
"checkbox",
"switch",
"slider",
"dialog",
"sheet"
],
"composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
"mustShow": [
"focus ring",
"error or destructive state",
"dialog or sheet treatment",
"written guidance content"
],
"avoid": [
"unstyled browser controls",
"floating cards inside cards",
"missing labels"
],
"scene": {
"eyebrow": "editing flow",
"headline": "Language recipe editor",
"description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
"primaryAction": "Save recipe",
"secondaryAction": "Open sheet",
"fields": [
{
"label": "Component family",
"value": "Narrative cards"
},
{
"label": "State treatment",
"value": "Visible focus + validation"
},
{
"label": "Motion",
"value": "Small lift, no opacity-only fade"
}
],
"statuses": [
"Focus",
"Invalid",
"Confirmed"
]
}
},
{
"id": "data-operations",
"title": "Data operations",
"viewport": "mobile",
"primitives": [
"button",
"tabs",
"badge",
"dropdown-menu",
"table",
"tooltip",
"separator"
],
"composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
"mustShow": [
"responsive reflow",
"dense row styling",
"menu affordance",
"status badge system"
],
"avoid": [
"desktop-only tables",
"text overflow",
"default shadcn spacing without Katagami character"
],
"scene": {
"eyebrow": "operations",
"headline": "Compact review queue",
"description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
"primaryAction": "Resolve",
"secondaryAction": "Filter",
"rows": [
{
"label": "Button hierarchy",
"value": "approved",
"status": "ok"
},
{
"label": "Table rhythm",
"value": "needs pass",
"status": "watch"
},
{
"label": "Empty state",
"value": "designed",
"status": "done"
}
],
"statuses": [
"Queued",
"Blocked",
"Done"
]
}
}
],
"componentRecipes": [
{
"primitive": "button",
"intent": "Prove action hierarchy, focus, disabled, and destructive states."
},
{
"primitive": "card",
"intent": "Carry the language surface, border, elevation, and density rules."
},
{
"primitive": "input",
"intent": "Show labels, focus rings, validation, and spacing rhythm."
},
{
"primitive": "textarea",
"intent": "Show longer guidance, validation copy, and writing density."
},
{
"primitive": "select",
"intent": "Show filtering, selection contrast, and menu trigger styling."
},
{
"primitive": "dialog",
"intent": "Show centered decision states and overlay treatment."
},
{
"primitive": "sheet",
"intent": "Show contextual side panels and responsive editing."
},
{
"primitive": "tabs",
"intent": "Show navigational structure and active/inactive contrast."
},
{
"primitive": "badge",
"intent": "Show compact status vocabulary and semantic colors."
},
{
"primitive": "separator",
"intent": "Show section rhythm without generic gray dividers."
},
{
"primitive": "checkbox",
"intent": "Show binary selection with visible focus and checked states."
},
{
"primitive": "switch",
"intent": "Show settings toggles and on/off contrast."
},
{
"primitive": "slider",
"intent": "Show numeric adjustment with track/thumb styling."
},
{
"primitive": "tooltip",
"intent": "Show concise explanation styling above compact controls."
},
{
"primitive": "dropdown-menu",
"intent": "Show action menus, destructive items, and grouped choices."
},
{
"primitive": "table",
"intent": "Show dense operational data, separators, row states, and responsive behavior."
}
],
"qualityRules": {
"do": [
"Use browser chrome as structure: title bars, URL fields, status strips, splitters, tabs, and scroll gutters should be functional layout elements.",
"Keep most large surfaces white or translucent pale aqua, then concentrate unease in one dark terminal diagnostic block.",
"Draw manga fragments with black CSS lines, halftone dots, stark crops, and white negative space instead of full-color anime illustration.",
"Use underlined link-blue text sparingly for genuine navigation affordances and tiny portal hints.",
"Let orange appear as a Dreamcast-like route/status signal, not as broad brand color.",
"Preserve crisp bitmap edges: 1px rules, square icons, dotted focus outlines, and stepped progress bars.",
"Make the fictional product specific, such as a browser-based memory terminal, console portal, or identity sync tool."
],
"dont": [
"Do not create generic KPI dashboards, equal pricing cards, or abstract component catalogs.",
"Do not flood the screen with neon cyan, purple vaporwave gradients, or arcade nostalgia unrelated to browser chrome.",
"Do not round every pane; only aqua glass and modal shells may use the 16px or 24px radii.",
"Do not use photo-real anime art, complex illustration, or colorful character scenes as the main identity.",
"Do not replace terminal unease with skulls, glitch chaos, horror textures, or illegible noise.",
"Do not make all gaps 24px; the rhythm depends on tiny controls and large empty paper fields.",
"Do not hide affordances: links should look like links, status bars should look like status bars."
]
}
}