back to gallery
design language·aqua-browser-noir-terminal

Aqua Browser Noir 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.

the spec

specification

philosophy
summary
Aqua Browser Noir Terminal turns Dreamcast-era consumer internet optimism into a polished existential interface: immaculate black-and-white manga crops are trapped inside translucent cyan browser chrome, status readouts, bitmap arrows, and unattended login panes that imply connection as both promise and surveillance.
values
Connection feels beautiful but never fully private; every warm UI gesture carries a small trace of monitoring.Manga linework stays nearly monochrome so aqua glass reads as luminous interface material rather than decoration.Pixel-era controls are drawn with care: beveled, tiny, slightly imperfect, but composed with editorial precision.Large fields of empty white or near-black space create the emotional pause before dense terminal overlays appear.Browser chrome is the architecture, not an ornament; tabs, address bars, scroll gutters, and progress meters shape the page.Cropped human presence is partial and ambiguous: eyes, hands, hairline fragments, and empty rooms replace full illustration.
anti-values
×No vaporwave rainbow nostalgia, neon floods, or arcade maximalism that would drown the quiet black-and-white tension.×No generic SaaS dashboard cards, rounded app widgets, or conventional analytics layouts disguised with cyan color.×No full anime character posters; figure fragments must remain constrained inside UI frames.×No default browser controls or unstyled form elements; every input must feel like a deliberate terminal-browser component.
tokens
borders4 items
accent width
2px
character
near-black 1px rules paired with rgba(255,255,255,.70) inner highlights and aqua top borders for active panes
default width
1px
style
solid plus inset highlight
colors12 items
accent
#2F77B7
background
#FFFFFF
border
#0A0D12
error
#C85D67
info
#74C9D2
muted
#667176
primary
#79D6DE
secondary
#BDEFF1
success
#5EA08C
surface
#F6FBFB
text
#090B0F
warning
#D47A58
motion3 items
duration
180ms
easing
cubic-bezier(.16,1,.3,1)
philosophy
small terminal blinks, progress pulses, and tab focus shifts; no sweeping animation, because the screen should feel unattended but alive
radii5 items
full
9999px
lg
24px
md
16px
none
0
sm
0
shadows3 items
lg
0 24px 80px rgba(47, 119, 183, 0.14)
md
6px 6px 0 rgba(9, 11, 15, 0.16)
sm
2px 2px 0 rgba(9, 11, 15, 0.18)
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
bg pattern
sparse halftone dots, thin manga speed lines, and isolated terminal coordinate strings; never all-over patterning
card style
rectangular browser panes with hard corners, top chrome bars, tiny tab handles, and one heavy offset pixel shadow
treatment
paper-white or ink-black fields overlaid with rgba aqua glass panes using backdrop-filter, inset white highlights, and faint 1px scanlines
typography8 items
base size
16px
body font
Noto Sans
google fonts url
https://fonts.googleapis.com/css2?family=Archivo+Narrow:wght@500;700&family=Noto+Sans:wght@400;500;700&family=Share+Tech+Mono&display=swap
heading font
Archivo Narrow
letter spacing
-0.02em
line height
1.55
mono font
Share Tech Mono
scale ratio
1.25
rules
composition
Use a dominant empty white or black manga field occupying at least half the viewport, then interrupt it with smaller browser panes that overlap like captured windows. Align most elements to a strict grid but allow one or two pixel-era misregistrations, such as a tab shifted by 2px or a floating cursor. Avoid equal card rows; create a main portal, a narrow status rail, and inset evidence fragments with different weights.
density
Alternate spacious existential voids with highly dense chrome clusters. Related UI controls can sit 4px to 8px apart, while major panels should separate by 64px or more to preserve the feeling of empty rooms and unattended terminals.
hierarchy
Headlines use condensed grotesk uppercase or tight title case, while operational data uses Share Tech Mono in small caps. The largest manga crop or portal frame becomes the hero, not a metric card. Active information is aqua glass; passive context is black ink on white; warning information appears only as tiny coral-magenta badges or terminal ticks.
signature patterns
Aqua portal frame: a hard-corner browser window with translucent cyan title bar, beveled address input, bitmap icon row, and an embedded monochrome manga crop.Surveillance status rail: vertical monospaced IP coordinates, stacked progress cells, blinking cursor blocks, and tiny coral anomaly chips along one edge.Manga-through-UI crop mask: CSS-built eye and hairline fragments clipped by rectangular browser panes with halftone dots and diagonal speed lines.Pixel chrome controls: 12px square buttons, 1px scrollbars, stepped meter blocks, and blue underlined URL labels used as compositional punctuation.
layout
breakpoints
Desktop >= 1100px keeps overlapping panes; tablet 700-1099px converts to a two-column portal plus rail; mobile < 700px stacks panes with horizontal chrome preserved and reduced terminal readouts.
density

High contrast density: broad empty fields carry unease, while chrome clusters and terminal labels are packed tightly at 4px to 12px intervals.

grid

Desktop uses a 12-column max-width 1320px grid with 24px gutters; the hero spans seven columns and status/browser fragments occupy asymmetric rails.

responsive
Overlaps reduce rather than disappear on tablet; on mobile the manga portal stays first, the rail becomes a compact strip, and decorative labels are hidden before content is compressed.
whitespace

Whitespace must be theatrical and clean: 64px to 128px between major scenes, but only 4px to 8px inside browser chrome and status meters.

guidance
do
  • Let black-and-white manga linework dominate the illustration layer and reserve aqua for glass, tabs, status glow, and active interface edges.
  • Use condensed headings with -0.04em tracking and monospaced microcopy for URLs, coordinates, IP addresses, prompts, and status codes.
  • Build panes from visible browser anatomy: tab, address bar, tiny icon row, scroll groove, progress cells, and lower status strip.
  • Crop bodies and faces aggressively so the system suggests human presence without becoming character art.
  • Make one compositional break with an oversized empty field or full-bleed black console plane that interrupts the grid.
  • Keep warning color tiny and meaningful: coral or magenta should signal anomaly, recording, login failure, or unattended access only.
avoid
  • Do not use bright cyberpunk gradients, vaporwave sunsets, neon purple floods, or rainbow Y2K nostalgia.
  • Do not arrange three equal feature cards or generic dashboard widgets; the product screen must feel like a specific browser-terminal portal.
  • Do not fill every empty area with decoration; negative space is the existential atmosphere.
  • Do not use rounded modern SaaS cards, pill-heavy interfaces, or soft app-store icon language.
  • Do not make the manga crop full-color or full-body; it must remain partial, inked, and constrained by the UI frame.
  • Do not rely on default form styling, default scrollbars, or generic grey borders.
katagami spec
# Aqua Browser Noir Terminal

## Philosophy

Aqua Browser Noir Terminal turns Dreamcast-era consumer internet optimism into a polished existential interface: immaculate black-and-white manga crops are trapped inside translucent cyan browser chrome, status readouts, bitmap arrows, and unattended login panes that imply connection as both promise and surveillance.

### Values

- Connection feels beautiful but never fully private; every warm UI gesture carries a small trace of monitoring.
- Manga linework stays nearly monochrome so aqua glass reads as luminous interface material rather than decoration.
- Pixel-era controls are drawn with care: beveled, tiny, slightly imperfect, but composed with editorial precision.
- Large fields of empty white or near-black space create the emotional pause before dense terminal overlays appear.
- Browser chrome is the architecture, not an ornament; tabs, address bars, scroll gutters, and progress meters shape the page.
- Cropped human presence is partial and ambiguous: eyes, hands, hairline fragments, and empty rooms replace full illustration.

### Anti-Values

- No vaporwave rainbow nostalgia, neon floods, or arcade maximalism that would drown the quiet black-and-white tension.
- No generic SaaS dashboard cards, rounded app widgets, or conventional analytics layouts disguised with cyan color.
- No full anime character posters; figure fragments must remain constrained inside UI frames.
- No default browser controls or unstyled form elements; every input must feel like a deliberate terminal-browser component.

### Visual Character

- Use nested browser-window panes with 1px near-black outer rules, inset white highlights, and translucent aqua tab strips built from CSS borders and linear glass fills.
- Compose the page as an asymmetric split field: one oversized empty monochrome panel interrupted by smaller absolute-positioned terminal windows and manga-crop frames.
- Render bitmap navigation language through tiny square icon buttons, stepped progress meters, 1px scroll tracks, cursor arrows, and monospaced IP/status labels.
- Keep human imagery abstract in CSS: black manga-line silhouettes, cropped eye panels, halftone dot fields, and diagonal speed-line masks inside rigid UI rectangles.
- Use surgical coral-magenta warning ticks only for active surveillance states while aqua and pale cyan remain the primary luminous interface material.

## Tokens

### Borders

- **Accent Width**: 2px
- **Character**: near-black 1px rules paired with rgba(255,255,255,.70) inner highlights and aqua top borders for active panes
- **Default Width**: 1px
- **Style**: solid plus inset highlight

### Colors

| Name | Value |
|------|-------|
| accent | `#2F77B7` |
| background | `#FFFFFF` |
| border | `#0A0D12` |
| error | `#C85D67` |
| info | `#74C9D2` |
| muted | `#667176` |
| primary | `#79D6DE` |
| secondary | `#BDEFF1` |
| success | `#5EA08C` |
| surface | `#F6FBFB` |
| text | `#090B0F` |
| warning | `#D47A58` |

### Motion

- **Duration**: 180ms
- **Easing**: cubic-bezier(.16,1,.3,1)
- **Philosophy**: small terminal blinks, progress pulses, and tab focus shifts; no sweeping animation, because the screen should feel unattended but alive

### Radii

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

### Shadows

- **Lg**: 0 24px 80px rgba(47, 119, 183, 0.14)
- **Md**: 6px 6px 0 rgba(9, 11, 15, 0.16)
- **Sm**: 2px 2px 0 rgba(9, 11, 15, 0.18)

### Spacing

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

### Surfaces

- **Bg Pattern**: sparse halftone dots, thin manga speed lines, and isolated terminal coordinate strings; never all-over patterning
- **Card Style**: rectangular browser panes with hard corners, top chrome bars, tiny tab handles, and one heavy offset pixel shadow
- **Treatment**: paper-white or ink-black fields overlaid with rgba aqua glass panes using backdrop-filter, inset white highlights, and faint 1px scanlines

### Typography

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

## Rules

### Composition

Use a dominant empty white or black manga field occupying at least half the viewport, then interrupt it with smaller browser panes that overlap like captured windows. Align most elements to a strict grid but allow one or two pixel-era misregistrations, such as a tab shifted by 2px or a floating cursor. Avoid equal card rows; create a main portal, a narrow status rail, and inset evidence fragments with different weights.

### Density

Alternate spacious existential voids with highly dense chrome clusters. Related UI controls can sit 4px to 8px apart, while major panels should separate by 64px or more to preserve the feeling of empty rooms and unattended terminals.

### Hierarchy

Headlines use condensed grotesk uppercase or tight title case, while operational data uses Share Tech Mono in small caps. The largest manga crop or portal frame becomes the hero, not a metric card. Active information is aqua glass; passive context is black ink on white; warning information appears only as tiny coral-magenta badges or terminal ticks.

### Signature Patterns

- Aqua portal frame: a hard-corner browser window with translucent cyan title bar, beveled address input, bitmap icon row, and an embedded monochrome manga crop.
- Surveillance status rail: vertical monospaced IP coordinates, stacked progress cells, blinking cursor blocks, and tiny coral anomaly chips along one edge.
- Manga-through-UI crop mask: CSS-built eye and hairline fragments clipped by rectangular browser panes with halftone dots and diagonal speed lines.
- Pixel chrome controls: 12px square buttons, 1px scrollbars, stepped meter blocks, and blue underlined URL labels used as compositional punctuation.

## Layout

### Breakpoints

Desktop >= 1100px keeps overlapping panes; tablet 700-1099px converts to a two-column portal plus rail; mobile < 700px stacks panes with horizontal chrome preserved and reduced terminal readouts.

### Density

High contrast density: broad empty fields carry unease, while chrome clusters and terminal labels are packed tightly at 4px to 12px intervals.

### Grid

Desktop uses a 12-column max-width 1320px grid with 24px gutters; the hero spans seven columns and status/browser fragments occupy asymmetric rails.

### Responsive

Overlaps reduce rather than disappear on tablet; on mobile the manga portal stays first, the rail becomes a compact strip, and decorative labels are hidden before content is compressed.

### Whitespace

Whitespace must be theatrical and clean: 64px to 128px between major scenes, but only 4px to 8px inside browser chrome and status meters.

## Guidance

### Do

- Let black-and-white manga linework dominate the illustration layer and reserve aqua for glass, tabs, status glow, and active interface edges.
- Use condensed headings with -0.04em tracking and monospaced microcopy for URLs, coordinates, IP addresses, prompts, and status codes.
- Build panes from visible browser anatomy: tab, address bar, tiny icon row, scroll groove, progress cells, and lower status strip.
- Crop bodies and faces aggressively so the system suggests human presence without becoming character art.
- Make one compositional break with an oversized empty field or full-bleed black console plane that interrupts the grid.
- Keep warning color tiny and meaningful: coral or magenta should signal anomaly, recording, login failure, or unattended access only.

### Don't

- Do not use bright cyberpunk gradients, vaporwave sunsets, neon purple floods, or rainbow Y2K nostalgia.
- Do not arrange three equal feature cards or generic dashboard widgets; the product screen must feel like a specific browser-terminal portal.
- Do not fill every empty area with decoration; negative space is the existential atmosphere.
- Do not use rounded modern SaaS cards, pill-heavy interfaces, or soft app-store icon language.
- Do not make the manga crop full-color or full-body; it must remain partial, inked, and constrained by the UI frame.
- Do not rely on default form styling, default scrollbars, or generic grey borders.

### Accessibility

Maintain AA contrast for body text, do not put essential copy only in tiny bitmap labels, pair color warnings with text labels, and preserve focus outlines as black or aqua double rules.

### Usage Context

Best for fictional network terminals, anime archive portals, surveillance fiction interfaces, music/film campaign microsites, and editorial systems that need clean futuristic nostalgia without kitsch.
DESIGN.md
---
version: "alpha"
name: "Aqua Browser Noir Terminal"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  accent: "#2F77B7"
  background: "#FFFFFF"
  border: "#0A0D12"
  error: "#C85D67"
  info: "#74C9D2"
  muted: "#667176"
  primary: "#79D6DE"
  secondary: "#BDEFF1"
  success: "#5EA08C"
  surface: "#F6FBFB"
  text: "#090B0F"
  warning: "#D47A58"
typography:
  headline-lg:
    fontFamily: "Archivo Narrow"
    fontSize: "1.953rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.02em"
  headline-md:
    fontFamily: "Archivo Narrow"
    fontSize: "1.563rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.02em"
  body-md:
    fontFamily: "Noto Sans"
    fontSize: "16px"
    fontWeight: 400
    lineHeight: 1.55
    letterSpacing: "-0.02em"
  label-md:
    fontFamily: "Share Tech Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  full: "9999px"
  lg: "24px"
  md: "16px"
  none: "0px"
  sm: "0px"
spacing:
  base: "8px"
  xs: "4px"
  sm: "8px"
  md: "12px"
  lg: "16px"
  xl: "24px"
  2xl: "32px"
  3xl: "48px"
  4xl: "64px"
  step-8: "96px"
  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: "#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"
---

# Aqua Browser Noir Terminal

## Overview

Aqua Browser Noir Terminal turns Dreamcast-era consumer internet optimism into a polished existential interface: immaculate black-and-white manga crops are trapped inside translucent cyan browser chrome, status readouts, bitmap arrows, and unattended login panes that imply connection as both promise and surveillance.

### Values

- Connection feels beautiful but never fully private; every warm UI gesture carries a small trace of monitoring.
- Manga linework stays nearly monochrome so aqua glass reads as luminous interface material rather than decoration.
- Pixel-era controls are drawn with care: beveled, tiny, slightly imperfect, but composed with editorial precision.
- Large fields of empty white or near-black space create the emotional pause before dense terminal overlays appear.
- Browser chrome is the architecture, not an ornament; tabs, address bars, scroll gutters, and progress meters shape the page.
- Cropped human presence is partial and ambiguous: eyes, hands, hairline fragments, and empty rooms replace full illustration.

### Anti-Values

- No vaporwave rainbow nostalgia, neon floods, or arcade maximalism that would drown the quiet black-and-white tension.
- No generic SaaS dashboard cards, rounded app widgets, or conventional analytics layouts disguised with cyan color.
- No full anime character posters; figure fragments must remain constrained inside UI frames.
- No default browser controls or unstyled form elements; every input must feel like a deliberate terminal-browser component.

### Visual Character

- Use nested browser-window panes with 1px near-black outer rules, inset white highlights, and translucent aqua tab strips built from CSS borders and linear glass fills.
- Compose the page as an asymmetric split field: one oversized empty monochrome panel interrupted by smaller absolute-positioned terminal windows and manga-crop frames.
- Render bitmap navigation language through tiny square icon buttons, stepped progress meters, 1px scroll tracks, cursor arrows, and monospaced IP/status labels.
- Keep human imagery abstract in CSS: black manga-line silhouettes, cropped eye panels, halftone dot fields, and diagonal speed-line masks inside rigid UI rectangles.
- Use surgical coral-magenta warning ticks only for active surveillance states while aqua and pale cyan remain the primary luminous interface material.

## 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 | `#2F77B7` |
| background | `#FFFFFF` |
| border | `#0A0D12` |
| error | `#C85D67` |
| info | `#74C9D2` |
| muted | `#667176` |
| primary | `#79D6DE` |
| secondary | `#BDEFF1` |
| success | `#5EA08C` |
| surface | `#F6FBFB` |
| text | `#090B0F` |
| warning | `#D47A58` |

## Typography

- **Headline-Lg**: Archivo Narrow, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo Narrow, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Noto Sans, 16px, weight 400, line-height 1.55.
- **Label-Md**: Share Tech Mono, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

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

### Breakpoints

Desktop >= 1100px keeps overlapping panes; tablet 700-1099px converts to a two-column portal plus rail; mobile < 700px stacks panes with horizontal chrome preserved and reduced terminal readouts.

### Density

High contrast density: broad empty fields carry unease, while chrome clusters and terminal labels are packed tightly at 4px to 12px intervals.

### Grid

Desktop uses a 12-column max-width 1320px grid with 24px gutters; the hero spans seven columns and status/browser fragments occupy asymmetric rails.

### Responsive

Overlaps reduce rather than disappear on tablet; on mobile the manga portal stays first, the rail becomes a compact strip, and decorative labels are hidden before content is compressed.

### Whitespace

Whitespace must be theatrical and clean: 64px to 128px between major scenes, but only 4px to 8px inside browser chrome and status meters.

## Elevation & Depth

### Shadows

- **Lg**: 0 24px 80px rgba(47, 119, 183, 0.14)
- **Md**: 6px 6px 0 rgba(9, 11, 15, 0.16)
- **Sm**: 2px 2px 0 rgba(9, 11, 15, 0.18)

## Shapes

### Rounded

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

### Surfaces

- **Bg Pattern**: sparse halftone dots, thin manga speed lines, and isolated terminal coordinate strings; never all-over patterning
- **Card Style**: rectangular browser panes with hard corners, top chrome bars, tiny tab handles, and one heavy offset pixel shadow
- **Treatment**: paper-white or ink-black fields overlaid with rgba aqua glass panes using backdrop-filter, inset white highlights, and faint 1px scanlines

### Borders

- **Accent Width**: 2px
- **Character**: near-black 1px rules paired with rgba(255,255,255,.70) inner highlights and aqua top borders for active panes
- **Default Width**: 1px
- **Style**: solid plus inset highlight

## Components

### Composition

Use a dominant empty white or black manga field occupying at least half the viewport, then interrupt it with smaller browser panes that overlap like captured windows. Align most elements to a strict grid but allow one or two pixel-era misregistrations, such as a tab shifted by 2px or a floating cursor. Avoid equal card rows; create a main portal, a narrow status rail, and inset evidence fragments with different weights.

### Density

Alternate spacious existential voids with highly dense chrome clusters. Related UI controls can sit 4px to 8px apart, while major panels should separate by 64px or more to preserve the feeling of empty rooms and unattended terminals.

### Hierarchy

Headlines use condensed grotesk uppercase or tight title case, while operational data uses Share Tech Mono in small caps. The largest manga crop or portal frame becomes the hero, not a metric card. Active information is aqua glass; passive context is black ink on white; warning information appears only as tiny coral-magenta badges or terminal ticks.

### Signature Patterns

- Aqua portal frame: a hard-corner browser window with translucent cyan title bar, beveled address input, bitmap icon row, and an embedded monochrome manga crop.
- Surveillance status rail: vertical monospaced IP coordinates, stacked progress cells, blinking cursor blocks, and tiny coral anomaly chips along one edge.
- Manga-through-UI crop mask: CSS-built eye and hairline fragments clipped by rectangular browser panes with halftone dots and diagonal speed lines.
- Pixel chrome controls: 12px square buttons, 1px scrollbars, stepped meter blocks, and blue underlined URL labels used as compositional punctuation.

## 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/aqua-browser-noir-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 Let black-and-white manga linework dominate the illustration layer and reserve aqua for glass, tabs, status glow, and active interface edges.
- Do Use condensed headings with -0.04em tracking and monospaced microcopy for URLs, coordinates, IP addresses, prompts, and status codes.
- Do Build panes from visible browser anatomy: tab, address bar, tiny icon row, scroll groove, progress cells, and lower status strip.
- Do Crop bodies and faces aggressively so the system suggests human presence without becoming character art.
- Do Make one compositional break with an oversized empty field or full-bleed black console plane that interrupts the grid.
- Do Keep warning color tiny and meaningful: coral or magenta should signal anomaly, recording, login failure, or unattended access only.
- Don't Do not use bright cyberpunk gradients, vaporwave sunsets, neon purple floods, or rainbow Y2K nostalgia.
- Don't Do not arrange three equal feature cards or generic dashboard widgets; the product screen must feel like a specific browser-terminal portal.
- Don't Do not fill every empty area with decoration; negative space is the existential atmosphere.
- Don't Do not use rounded modern SaaS cards, pill-heavy interfaces, or soft app-store icon language.
- Don't Do not make the manga crop full-color or full-body; it must remain partial, inked, and constrained by the UI frame.
- Don't Do not rely on default form styling, default scrollbars, or generic grey borders.

### Accessibility

Maintain AA contrast for body text, do not put essential copy only in tiny bitmap labels, pair color warnings with text labels, and preserve focus outlines as black or aqua double rules.

### Usage Context

Best for fictional network terminals, anime archive portals, surveillance fiction interfaces, music/film campaign microsites, and editorial systems that need clean futuristic nostalgia without kitsch.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "aqua-browser-noir-terminal",
  "type": "registry:theme",
  "title": "Aqua Browser Noir Terminal shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#090B0F",
      "card": "#F6FBFB",
      "card-foreground": "#090B0F",
      "popover": "#F6FBFB",
      "popover-foreground": "#090B0F",
      "primary": "#79D6DE",
      "primary-foreground": "#111111",
      "secondary": "#BDEFF1",
      "secondary-foreground": "#111111",
      "muted": "#667176",
      "muted-foreground": "#090B0F",
      "accent": "#2F77B7",
      "accent-foreground": "#ffffff",
      "destructive": "#C85D67",
      "border": "#0A0D12",
      "input": "#0A0D12",
      "ring": "#2F77B7",
      "chart-1": "#79D6DE",
      "chart-2": "#BDEFF1",
      "chart-3": "#2F77B7",
      "chart-4": "#5EA08C",
      "chart-5": "#D47A58",
      "sidebar": "#F6FBFB",
      "sidebar-foreground": "#090B0F",
      "sidebar-primary": "#79D6DE",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#74C9D2",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#0A0D12",
      "sidebar-ring": "#2F77B7",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#79D6DE",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#2F77B7",
      "accent-foreground": "#ffffff",
      "destructive": "#C85D67",
      "border": "#303642",
      "input": "#303642",
      "ring": "#2F77B7",
      "chart-1": "#79D6DE",
      "chart-2": "#BDEFF1",
      "chart-3": "#2F77B7",
      "chart-4": "#5EA08C",
      "chart-5": "#D47A58",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#79D6DE",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#2F77B7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#2F77B7",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "aqua-browser-noir-terminal",
    "slug": "aqua-browser-noir-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"
      ]
    }
  }
}
```
in the wild

embodiments

the full element showcase
embodiment · aqua-browser-noir-terminal
DESIGN.md

at a glance

Palette

Typography

headline-lgArchivo Narrow · 31px · 700

The quick brown fox jumps

headline-mdArchivo Narrow · 25px · 600

The quick brown fox jumps

body-mdNoto Sans · 16px · 400

The quick brown fox jumps

label-mdShare Tech Mono · 12px · 600

The quick brown fox jumps

Components

New
Card title

Components rendered with this language’s tokens — colors, type, and rounded corners as specified.

Spacing

  • base8px
  • xs4px
  • sm8px
  • md12px
  • lg16px
  • xl24px
  • 2xl32px
  • 3xl48px
  • 4xl64px
  • step-896px
  • 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: #FFFFFF;
  --foreground: #090B0F;
  --card: #F6FBFB;
  --card-foreground: #090B0F;
  --popover: #F6FBFB;
  --popover-foreground: #090B0F;
  --primary: #79D6DE;
  --primary-foreground: #111111;
  --secondary: #BDEFF1;
  --secondary-foreground: #111111;
  --muted: #667176;
  --muted-foreground: #090B0F;
  --accent: #2F77B7;
  --accent-foreground: #ffffff;
  --destructive: #C85D67;
  --border: #0A0D12;
  --input: #0A0D12;
  --ring: #2F77B7;
  --chart-1: #79D6DE;
  --chart-2: #BDEFF1;
  --chart-3: #2F77B7;
  --chart-4: #5EA08C;
  --chart-5: #D47A58;
  --sidebar: #F6FBFB;
  --sidebar-foreground: #090B0F;
  --sidebar-primary: #79D6DE;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #74C9D2;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #0A0D12;
  --sidebar-ring: #2F77B7;
  --radius: 16px;
}

.dark {
  --background: #0f1115;
  --foreground: #f8fafc;
  --card: #181b22;
  --card-foreground: #f8fafc;
  --popover: #181b22;
  --popover-foreground: #f8fafc;
  --primary: #79D6DE;
  --primary-foreground: #111111;
  --secondary: #252a33;
  --secondary-foreground: #f8fafc;
  --muted: #252a33;
  --muted-foreground: #a1a1aa;
  --accent: #2F77B7;
  --accent-foreground: #ffffff;
  --destructive: #C85D67;
  --border: #303642;
  --input: #303642;
  --ring: #2F77B7;
  --chart-1: #79D6DE;
  --chart-2: #BDEFF1;
  --chart-3: #2F77B7;
  --chart-4: #5EA08C;
  --chart-5: #D47A58;
  --sidebar: #181b22;
  --sidebar-foreground: #f8fafc;
  --sidebar-primary: #79D6DE;
  --sidebar-primary-foreground: #111111;
  --sidebar-accent: #2F77B7;
  --sidebar-accent-foreground: #ffffff;
  --sidebar-border: #303642;
  --sidebar-ring: #2F77B7;
  --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 AquaBrowserNoirTerminalShadcnKit() {
  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">Aqua Browser Noir 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>
  );
}
theme JSONcompatibility fallback
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "aqua-browser-noir-terminal",
  "type": "registry:theme",
  "title": "Aqua Browser Noir Terminal shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#090B0F",
      "card": "#F6FBFB",
      "card-foreground": "#090B0F",
      "popover": "#F6FBFB",
      "popover-foreground": "#090B0F",
      "primary": "#79D6DE",
      "primary-foreground": "#111111",
      "secondary": "#BDEFF1",
      "secondary-foreground": "#111111",
      "muted": "#667176",
      "muted-foreground": "#090B0F",
      "accent": "#2F77B7",
      "accent-foreground": "#ffffff",
      "destructive": "#C85D67",
      "border": "#0A0D12",
      "input": "#0A0D12",
      "ring": "#2F77B7",
      "chart-1": "#79D6DE",
      "chart-2": "#BDEFF1",
      "chart-3": "#2F77B7",
      "chart-4": "#5EA08C",
      "chart-5": "#D47A58",
      "sidebar": "#F6FBFB",
      "sidebar-foreground": "#090B0F",
      "sidebar-primary": "#79D6DE",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#74C9D2",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#0A0D12",
      "sidebar-ring": "#2F77B7",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#79D6DE",
      "primary-foreground": "#111111",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#2F77B7",
      "accent-foreground": "#ffffff",
      "destructive": "#C85D67",
      "border": "#303642",
      "input": "#303642",
      "ring": "#2F77B7",
      "chart-1": "#79D6DE",
      "chart-2": "#BDEFF1",
      "chart-3": "#2F77B7",
      "chart-4": "#5EA08C",
      "chart-5": "#D47A58",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#79D6DE",
      "sidebar-primary-foreground": "#111111",
      "sidebar-accent": "#2F77B7",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#2F77B7",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "aqua-browser-noir-terminal",
    "slug": "aqua-browser-noir-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"
      ]
    }
  }
}
component recipescompatibility fallback
# Aqua Browser Noir Terminal shadcn/ui Components

Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `aqua-browser-noir-terminal`
Slug: `aqua-browser-noir-terminal`

## Intent

Aqua Browser Noir Terminal turns Dreamcast-era consumer internet optimism into a polished existential interface: immaculate black-and-white manga crops are trapped inside translucent cyan browser chrome, status readouts, bitmap arrows, and unattended login panes that imply connection as both promise and surveillance.

## 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": "#2F77B7",
  "background": "#FFFFFF",
  "border": "#0A0D12",
  "error": "#C85D67",
  "info": "#74C9D2",
  "muted": "#667176",
  "primary": "#79D6DE",
  "secondary": "#BDEFF1",
  "success": "#5EA08C",
  "surface": "#F6FBFB",
  "text": "#090B0F",
  "warning": "#D47A58"
}

Typography:

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

## Visual character to preserve

- Use nested browser-window panes with 1px near-black outer rules, inset white highlights, and translucent aqua tab strips built from CSS borders and linear glass fills.
- Compose the page as an asymmetric split field: one oversized empty monochrome panel interrupted by smaller absolute-positioned terminal windows and manga-crop frames.
- Render bitmap navigation language through tiny square icon buttons, stepped progress meters, 1px scroll tracks, cursor arrows, and monospaced IP/status labels.
- Keep human imagery abstract in CSS: black manga-line silhouettes, cropped eye panels, halftone dot fields, and diagonal speed-line masks inside rigid UI rectangles.
- Use surgical coral-magenta warning ticks only for active surveillance states while aqua and pale cyan remain the primary luminous interface material.

## ShadSync visual profile

{
  "family": "paper-collage",
  "material": "paper",
  "contour": "default",
  "border": "solid",
  "underlay": true,
  "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/aqua-browser-noir-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: Let black-and-white manga linework dominate the illustration layer and reserve aqua for glass, tabs, status glow, and active interface edges.; Use condensed headings with -0.04em tracking and monospaced microcopy for URLs, coordinates, IP addresses, prompts, and status codes.; Build panes from visible browser anatomy: tab, address bar, tiny icon row, scroll groove, progress cells, and lower status strip.; Crop bodies and faces aggressively so the system suggests human presence without becoming character art.; Make one compositional break with an oversized empty field or full-bleed black console plane that interrupts the grid.; Keep warning color tiny and meaningful: coral or magenta should signal anomaly, recording, login failure, or unattended access only.
- Do not: Do not use bright cyberpunk gradients, vaporwave sunsets, neon purple floods, or rainbow Y2K nostalgia.; Do not arrange three equal feature cards or generic dashboard widgets; the product screen must feel like a specific browser-terminal portal.; Do not fill every empty area with decoration; negative space is the existential atmosphere.; Do not use rounded modern SaaS cards, pill-heavy interfaces, or soft app-store icon language.; Do not make the manga crop full-color or full-body; it must remain partial, inked, and constrained by the UI frame.; Do not rely on default form styling, default scrollbars, or generic grey borders.

## 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 AquaBrowserNoirTerminalShadcnKit() {
  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">Aqua Browser Noir 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 >= 1100px keeps overlapping panes; tablet 700-1099px converts to a two-column portal plus rail; mobile < 700px stacks panes with horizontal chrome preserved and reduced terminal readouts.",
  "density": "High contrast density: broad empty fields carry unease, while chrome clusters and terminal labels are packed tightly at 4px to 12px intervals.",
  "grid": "Desktop uses a 12-column max-width 1320px grid with 24px gutters; the hero spans seven columns and status/browser fragments occupy asymmetric rails.",
  "responsive": "Overlaps reduce rather than disappear on tablet; on mobile the manga portal stays first, the rail becomes a compact strip, and decorative labels are hidden before content is compressed.",
  "whitespace": "Whitespace must be theatrical and clean: 64px to 128px between major scenes, but only 4px to 8px inside browser chrome and status meters."
}
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": "aqua-browser-noir-terminal",
    "name": "Aqua Browser Noir Terminal",
    "slug": "aqua-browser-noir-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": [
    "Use nested browser-window panes with 1px near-black outer rules, inset white highlights, and translucent aqua tab strips built from CSS borders and linear glass fills.",
    "Compose the page as an asymmetric split field: one oversized empty monochrome panel interrupted by smaller absolute-positioned terminal windows and manga-crop frames.",
    "Render bitmap navigation language through tiny square icon buttons, stepped progress meters, 1px scroll tracks, cursor arrows, and monospaced IP/status labels.",
    "Keep human imagery abstract in CSS: black manga-line silhouettes, cropped eye panels, halftone dot fields, and diagonal speed-line masks inside rigid UI rectangles.",
    "Use surgical coral-magenta warning ticks only for active surveillance states while aqua and pale cyan remain the primary luminous interface material."
  ],
  "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": "Aqua Browser Noir 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": [
      "Let black-and-white manga linework dominate the illustration layer and reserve aqua for glass, tabs, status glow, and active interface edges.",
      "Use condensed headings with -0.04em tracking and monospaced microcopy for URLs, coordinates, IP addresses, prompts, and status codes.",
      "Build panes from visible browser anatomy: tab, address bar, tiny icon row, scroll groove, progress cells, and lower status strip.",
      "Crop bodies and faces aggressively so the system suggests human presence without becoming character art.",
      "Make one compositional break with an oversized empty field or full-bleed black console plane that interrupts the grid.",
      "Keep warning color tiny and meaningful: coral or magenta should signal anomaly, recording, login failure, or unattended access only."
    ],
    "dont": [
      "Do not use bright cyberpunk gradients, vaporwave sunsets, neon purple floods, or rainbow Y2K nostalgia.",
      "Do not arrange three equal feature cards or generic dashboard widgets; the product screen must feel like a specific browser-terminal portal.",
      "Do not fill every empty area with decoration; negative space is the existential atmosphere.",
      "Do not use rounded modern SaaS cards, pill-heavy interfaces, or soft app-store icon language.",
      "Do not make the manga crop full-color or full-body; it must remain partial, inked, and constrained by the UI frame.",
      "Do not rely on default form styling, default scrollbars, or generic grey borders."
    ]
  }
}
related

More like this