Porcelain Terminal Rite
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
- Manga-panel black outer rules paired with hairline internal divisions and occasional bracket-corner notches.
- default width
- 1px
- style
- solid
colors12 items
motion3 items
- duration
- 420ms
- easing
- cubic-bezier(0.22, 0.61, 0.36, 1)
- philosophy
- Motion behaves like a service confirmation: slow teal LED breaths, precise mechanical reveals, and no attention-seeking loops.
radii5 items
- full
- 9999px
- lg
- 24px
- md
- 24px
- none
- 0
- sm
- 16px
shadows3 items
- lg
- 0 34px 80px rgba(27,24,18,0.16), inset 0 0 0 1px rgba(255,255,255,0.58)
- md
- 0 18px 44px rgba(27,24,18,0.10), inset 0 0 0 1px rgba(255,255,255,0.52)
- sm
- inset 0 1px 0 rgba(255,255,255,0.72), inset 0 -1px 0 rgba(21,21,21,0.08)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96, 128
surfaces3 items
- bg pattern
- Ivory paper-ceramic field with sparse black registration crosses and low-opacity terminal coordinate ticks.
- card style
- Hardware modules use black 3px exterior frames, 1px interior rules, 24px rounded porcelain corners, and recessed glass apertures.
- treatment
- Warm porcelain whites with fine 1px stipple, carved seams, and pale gray translucent glass insets; no glossy neon or generic white cards.
typography8 items
- base size
- 16px
- body font
- Spline Sans
- google fonts url
- https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@500;700&family=Spline+Sans:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap
- heading font
- IBM Plex Sans JP
- letter spacing
- -0.02em
- line height
- 1.5
- mono font
- Space Mono
- scale ratio
- 1.25
rules
Compose screens as a single kiosk ceremony, not a collection of cards: a black-framed outer page, a centered ceramic service body, a top visor for identity, a large glass aperture for the current state, a vertical ritual rail for steps, and a grounded base for ports and human help text. Use asymmetry through narrow caption gutters and cropped manga panels, but keep the kiosk body calm and centered. Avoid broad dashboards, floating widgets, hero illustrations, or excessive layered windows.
Medium-low density with high precision: many small marks may exist only when aligned to hardware seams or diagnostic rows, while the main glass and porcelain fields remain quiet enough to read as cared-for physical material.
Primary hierarchy comes from frame weight and aperture size: 3px black outer frames define major zones, 1px hairlines subdivide diagnostics, and teal is reserved for the active service state only. Headings are compact and technical; body copy is quiet and close to the object. Terminal text is supporting evidence, never the dominant voice.
layout
Desktop 1200px+, tablet 768-1199px with stacked service rail, mobile below 640px with single-column kiosk body and compressed hardware base.
Medium-low density chosen to preserve silence around the machine while allowing precise micro-markings where a real service kiosk would need diagnostics.
Use a 12-column desktop grid with 24px gutters and a 1180px max width; the kiosk body spans 8 columns, caption/service rails use the remaining columns, and internal modules snap to 8px spacing.
At tablet size the caption gutter folds below the main aperture; at mobile size the ritual rail becomes a horizontal step strip and terminal overlays reduce to essential rows.
Whitespace is ceramic breathing room: keep at least 24px around major apertures, 48px page margins on desktop, and intentional blank porcelain panels between terminal details.
guidance
- Use warm ivory, porcelain, pale gray, black, and a single muted teal accent with strict consistency.
- Make the scene feel like a functioning android service kiosk, including physical seams, ports, labels, and calibration states.
- Use manga structure through panel frames, cropped gutters, and disciplined black rules rather than illustration.
- Keep terminal text sparse, legible, and integrated into glass or hardware surfaces.
- Reserve teal for service state, LED feedback, and confirmation; never use it as general decoration.
- Use rounded 24px hardware panels and 16px small controls from the defined radius scale only.
- Maintain accessible contrast between black text/rules and ivory surfaces, with teal supported by labels or shapes.
- Let empty porcelain space carry the tone; do not fill every panel.
- Do not use the word Katagami in names or surface copy for this direction.
- Do not use green matrix rain, neon cyberpunk palettes, purple glows, or saturated hacker aesthetics.
- Do not produce generic SaaS card grids, analytics dashboards, or marketing component galleries.
- Do not include anime characters, mascot faces, fan-art mecha, or narrative illustration scenes.
- Do not scatter terminal code everywhere; keep it ritualized and sparse.
- Do not mix many radius values, shadows, gradients, or accent colors outside the token system.
- Do not allow default browser controls or unstyled form elements to appear.
- Do not make the interface feel hostile, militarized, or surveillance-heavy.
katagami spec
# Porcelain Terminal Rite ## Philosophy Porcelain Terminal Rite is a quiet visual system for human-scale android service kiosks: warm ceramic panels, black manga framing, pale screen glass, muted teal service LEDs, and sparse terminal marks arranged like a careful maintenance ritual. It treats interface work as a calm exchange with a machine that is near enough to be cared for, not a spectacle of hacking or neon futurism. ### Values - Ritual precision: every control sits in a deliberate sequence, with labels, apertures, and confirmation states arranged like service choreography rather than dashboard abundance. - Ceramic warmth: surfaces feel fired, ivory, and slightly imperfect through restrained texture and off-white tonal shifts, never glossy plastic or cold SaaS panels. - Manga structure without illustration: black rulework, cropped panels, inset captions, and speed-line discipline create composition while avoiding character art or decorative fan references. - Quiet cybernetics: terminal traces and robot status glyphs appear as sparse maintenance evidence, not aggressive hacker ambience or green code rain. - Human-scale robotics care: touch targets, proportions, and status language imply a kiosk a person would approach at waist and eye level for help, calibration, or repair. - Y2K hardware tactility: rounded technical modules, port-like slots, tiny screws, bevel seams, and LCD glass reference late-90s speculative service machines with contemporary polish. ### Anti-Values - No neon cyberpunk, saturated matrix green, rainbow glow, or dark-room hacker theatrics. - No generic SaaS card grids, analytics widgets, marketing gradients, or stock dashboard abstractions. - No character fan art, mecha hero illustration, mascot faces, or narrative anime stills. - No ornamental overload; if a line, LED, or mark does not clarify the service ritual, remove it. ### Visual Character - Use thick black outer manga frames with 1px interior hairlines to create cropped ceramic interface panels and asymmetric caption gutters. - Build large rounded ivory modules with inset pale-gray glass screens, subtle inner shadows, and small screw/port details positioned on a strict grid. - Limit accent color to low-saturation teal LEDs: tiny pills, status dots, active scan lines, and one restrained confirmation ring only. - Layer transparent terminal strips over ceramic surfaces using mono text, bracket marks, row numbers, and sparse diagnostic ticks at low opacity. - Compose around a central service-kiosk body rather than cards: header visor, primary glass aperture, ritual step rail, and grounded hardware base. ## Tokens ### Borders - **Accent Width**: 3px - **Character**: Manga-panel black outer rules paired with hairline internal divisions and occasional bracket-corner notches. - **Default Width**: 1px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#5F9D9B` | | background | `#EEE5D6` | | border | `#1B1B1B` | | error | `#9B3F3A` | | info | `#7A8C95` | | muted | `#6E6A61` | | primary | `#151515` | | secondary | `#F4ECDD` | | success | `#5F9D9B` | | surface | `#FBF5EA` | | text | `#171717` | | warning | `#A9783A` | ### Motion - **Duration**: 420ms - **Easing**: cubic-bezier(0.22, 0.61, 0.36, 1) - **Philosophy**: Motion behaves like a service confirmation: slow teal LED breaths, precise mechanical reveals, and no attention-seeking loops. ### Radii - **Full**: 9999px - **Lg**: 24px - **Md**: 24px - **None**: 0 - **Sm**: 16px ### Shadows - **Lg**: 0 34px 80px rgba(27,24,18,0.16), inset 0 0 0 1px rgba(255,255,255,0.58) - **Md**: 0 18px 44px rgba(27,24,18,0.10), inset 0 0 0 1px rgba(255,255,255,0.52) - **Sm**: inset 0 1px 0 rgba(255,255,255,0.72), inset 0 -1px 0 rgba(21,21,21,0.08) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96,128] ### Surfaces - **Bg Pattern**: Ivory paper-ceramic field with sparse black registration crosses and low-opacity terminal coordinate ticks. - **Card Style**: Hardware modules use black 3px exterior frames, 1px interior rules, 24px rounded porcelain corners, and recessed glass apertures. - **Treatment**: Warm porcelain whites with fine 1px stipple, carved seams, and pale gray translucent glass insets; no glossy neon or generic white cards. ### Typography - **Base Size**: 16px - **Body Font**: Spline Sans - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@500;700&family=Spline+Sans:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap - **Heading Font**: IBM Plex Sans JP - **Letter Spacing**: -0.02em - **Line Height**: 1.5 - **Mono Font**: Space Mono - **Scale Ratio**: 1.25 ## Rules ### Composition Compose screens as a single kiosk ceremony, not a collection of cards: a black-framed outer page, a centered ceramic service body, a top visor for identity, a large glass aperture for the current state, a vertical ritual rail for steps, and a grounded base for ports and human help text. Use asymmetry through narrow caption gutters and cropped manga panels, but keep the kiosk body calm and centered. Avoid broad dashboards, floating widgets, hero illustrations, or excessive layered windows. ### Density Medium-low density with high precision: many small marks may exist only when aligned to hardware seams or diagnostic rows, while the main glass and porcelain fields remain quiet enough to read as cared-for physical material. ### Hierarchy Primary hierarchy comes from frame weight and aperture size: 3px black outer frames define major zones, 1px hairlines subdivide diagnostics, and teal is reserved for the active service state only. Headings are compact and technical; body copy is quiet and close to the object. Terminal text is supporting evidence, never the dominant voice. ### Signature Patterns - Porcelain manga frame: every major module combines a thick black exterior border with inset hairline panels and off-white ceramic texture. - Service LED rail: a vertical sequence of muted teal dots, tiny labels, and one filled pill indicates ritual progress without becoming a dashboard nav. - Ghost terminal glass: translucent gray apertures carry low-opacity mono diagnostics, bracket corners, and scan ticks over a pale screen surface. - Hardware kindness base: bottom zones include port slots, screw dots, and human help labels so the robot feels maintained and approachable. ## Layout ### Breakpoints Desktop 1200px+, tablet 768-1199px with stacked service rail, mobile below 640px with single-column kiosk body and compressed hardware base. ### Density Medium-low density chosen to preserve silence around the machine while allowing precise micro-markings where a real service kiosk would need diagnostics. ### Grid Use a 12-column desktop grid with 24px gutters and a 1180px max width; the kiosk body spans 8 columns, caption/service rails use the remaining columns, and internal modules snap to 8px spacing. ### Responsive At tablet size the caption gutter folds below the main aperture; at mobile size the ritual rail becomes a horizontal step strip and terminal overlays reduce to essential rows. ### Whitespace Whitespace is ceramic breathing room: keep at least 24px around major apertures, 48px page margins on desktop, and intentional blank porcelain panels between terminal details. ## Guidance ### Do - Use warm ivory, porcelain, pale gray, black, and a single muted teal accent with strict consistency. - Make the scene feel like a functioning android service kiosk, including physical seams, ports, labels, and calibration states. - Use manga structure through panel frames, cropped gutters, and disciplined black rules rather than illustration. - Keep terminal text sparse, legible, and integrated into glass or hardware surfaces. - Reserve teal for service state, LED feedback, and confirmation; never use it as general decoration. - Use rounded 24px hardware panels and 16px small controls from the defined radius scale only. - Maintain accessible contrast between black text/rules and ivory surfaces, with teal supported by labels or shapes. - Let empty porcelain space carry the tone; do not fill every panel. ### Don't - Do not use the word Katagami in names or surface copy for this direction. - Do not use green matrix rain, neon cyberpunk palettes, purple glows, or saturated hacker aesthetics. - Do not produce generic SaaS card grids, analytics dashboards, or marketing component galleries. - Do not include anime characters, mascot faces, fan-art mecha, or narrative illustration scenes. - Do not scatter terminal code everywhere; keep it ritualized and sparse. - Do not mix many radius values, shadows, gradients, or accent colors outside the token system. - Do not allow default browser controls or unstyled form elements to appear. - Do not make the interface feel hostile, militarized, or surveillance-heavy. ### Accessibility Maintain high text contrast on ivory and glass surfaces, pair teal state with shape and text, keep touch targets at least 44px, avoid continuous animation, and ensure terminal overlays do not obscure primary labels. ### Usage Context Best for android service kiosks, robotics care stations, calibration portals, clinical maintenance terminals, quiet speculative OS screens, and physical-digital interfaces where trust and ritual matter more than speed spectacle.
DESIGN.md
---
version: "alpha"
name: "Porcelain Terminal Rite"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#5F9D9B"
background: "#EEE5D6"
border: "#1B1B1B"
error: "#9B3F3A"
info: "#7A8C95"
muted: "#6E6A61"
primary: "#151515"
secondary: "#F4ECDD"
success: "#5F9D9B"
surface: "#FBF5EA"
text: "#171717"
warning: "#A9783A"
typography:
headline-lg:
fontFamily: "IBM Plex Sans JP"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "IBM Plex Sans JP"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Spline Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.5
letterSpacing: "-0.02em"
label-md:
fontFamily: "Space Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "24px"
md: "24px"
none: "0px"
sm: "16px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
step-8: "96px"
step-9: "128px"
components:
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-warning:
backgroundColor: "{colors.warning}"
button-primary:
backgroundColor: "{colors.primary}"
textColor: "#ffffff"
typography: "{typography.label-md}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
card-surface:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
padding: "{spacing.md}"
input-default:
backgroundColor: "{colors.surface}"
textColor: "{colors.text}"
rounded: "{rounded.md}"
height: "44px"
---
# Porcelain Terminal Rite
## Overview
Porcelain Terminal Rite is a quiet visual system for human-scale android service kiosks: warm ceramic panels, black manga framing, pale screen glass, muted teal service LEDs, and sparse terminal marks arranged like a careful maintenance ritual. It treats interface work as a calm exchange with a machine that is near enough to be cared for, not a spectacle of hacking or neon futurism.
### Values
- Ritual precision: every control sits in a deliberate sequence, with labels, apertures, and confirmation states arranged like service choreography rather than dashboard abundance.
- Ceramic warmth: surfaces feel fired, ivory, and slightly imperfect through restrained texture and off-white tonal shifts, never glossy plastic or cold SaaS panels.
- Manga structure without illustration: black rulework, cropped panels, inset captions, and speed-line discipline create composition while avoiding character art or decorative fan references.
- Quiet cybernetics: terminal traces and robot status glyphs appear as sparse maintenance evidence, not aggressive hacker ambience or green code rain.
- Human-scale robotics care: touch targets, proportions, and status language imply a kiosk a person would approach at waist and eye level for help, calibration, or repair.
- Y2K hardware tactility: rounded technical modules, port-like slots, tiny screws, bevel seams, and LCD glass reference late-90s speculative service machines with contemporary polish.
### Anti-Values
- No neon cyberpunk, saturated matrix green, rainbow glow, or dark-room hacker theatrics.
- No generic SaaS card grids, analytics widgets, marketing gradients, or stock dashboard abstractions.
- No character fan art, mecha hero illustration, mascot faces, or narrative anime stills.
- No ornamental overload; if a line, LED, or mark does not clarify the service ritual, remove it.
### Visual Character
- Use thick black outer manga frames with 1px interior hairlines to create cropped ceramic interface panels and asymmetric caption gutters.
- Build large rounded ivory modules with inset pale-gray glass screens, subtle inner shadows, and small screw/port details positioned on a strict grid.
- Limit accent color to low-saturation teal LEDs: tiny pills, status dots, active scan lines, and one restrained confirmation ring only.
- Layer transparent terminal strips over ceramic surfaces using mono text, bracket marks, row numbers, and sparse diagnostic ticks at low opacity.
- Compose around a central service-kiosk body rather than cards: header visor, primary glass aperture, ritual step rail, and grounded hardware base.
## 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 | `#5F9D9B` |
| background | `#EEE5D6` |
| border | `#1B1B1B` |
| error | `#9B3F3A` |
| info | `#7A8C95` |
| muted | `#6E6A61` |
| primary | `#151515` |
| secondary | `#F4ECDD` |
| success | `#5F9D9B` |
| surface | `#FBF5EA` |
| text | `#171717` |
| warning | `#A9783A` |
## Typography
- **Headline-Lg**: IBM Plex Sans JP, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: IBM Plex Sans JP, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: Spline Sans, 16px, weight 400, line-height 1.5.
- **Label-Md**: Space 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 1200px+, tablet 768-1199px with stacked service rail, mobile below 640px with single-column kiosk body and compressed hardware base.
### Density
Medium-low density chosen to preserve silence around the machine while allowing precise micro-markings where a real service kiosk would need diagnostics.
### Grid
Use a 12-column desktop grid with 24px gutters and a 1180px max width; the kiosk body spans 8 columns, caption/service rails use the remaining columns, and internal modules snap to 8px spacing.
### Responsive
At tablet size the caption gutter folds below the main aperture; at mobile size the ritual rail becomes a horizontal step strip and terminal overlays reduce to essential rows.
### Whitespace
Whitespace is ceramic breathing room: keep at least 24px around major apertures, 48px page margins on desktop, and intentional blank porcelain panels between terminal details.
## Elevation & Depth
### Shadows
- **Lg**: 0 34px 80px rgba(27,24,18,0.16), inset 0 0 0 1px rgba(255,255,255,0.58)
- **Md**: 0 18px 44px rgba(27,24,18,0.10), inset 0 0 0 1px rgba(255,255,255,0.52)
- **Sm**: inset 0 1px 0 rgba(255,255,255,0.72), inset 0 -1px 0 rgba(21,21,21,0.08)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `24px`
- **Md**: `24px`
- **None**: `0px`
- **Sm**: `16px`
### Surfaces
- **Bg Pattern**: Ivory paper-ceramic field with sparse black registration crosses and low-opacity terminal coordinate ticks.
- **Card Style**: Hardware modules use black 3px exterior frames, 1px interior rules, 24px rounded porcelain corners, and recessed glass apertures.
- **Treatment**: Warm porcelain whites with fine 1px stipple, carved seams, and pale gray translucent glass insets; no glossy neon or generic white cards.
### Borders
- **Accent Width**: 3px
- **Character**: Manga-panel black outer rules paired with hairline internal divisions and occasional bracket-corner notches.
- **Default Width**: 1px
- **Style**: solid
## Components
### Composition
Compose screens as a single kiosk ceremony, not a collection of cards: a black-framed outer page, a centered ceramic service body, a top visor for identity, a large glass aperture for the current state, a vertical ritual rail for steps, and a grounded base for ports and human help text. Use asymmetry through narrow caption gutters and cropped manga panels, but keep the kiosk body calm and centered. Avoid broad dashboards, floating widgets, hero illustrations, or excessive layered windows.
### Density
Medium-low density with high precision: many small marks may exist only when aligned to hardware seams or diagnostic rows, while the main glass and porcelain fields remain quiet enough to read as cared-for physical material.
### Hierarchy
Primary hierarchy comes from frame weight and aperture size: 3px black outer frames define major zones, 1px hairlines subdivide diagnostics, and teal is reserved for the active service state only. Headings are compact and technical; body copy is quiet and close to the object. Terminal text is supporting evidence, never the dominant voice.
### Signature Patterns
- Porcelain manga frame: every major module combines a thick black exterior border with inset hairline panels and off-white ceramic texture.
- Service LED rail: a vertical sequence of muted teal dots, tiny labels, and one filled pill indicates ritual progress without becoming a dashboard nav.
- Ghost terminal glass: translucent gray apertures carry low-opacity mono diagnostics, bracket corners, and scan ticks over a pale screen surface.
- Hardware kindness base: bottom zones include port slots, screw dots, and human help labels so the robot feels maintained and approachable.
## 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/en-019e0731-9055-72e2-98b5-125a023a06a2/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 warm ivory, porcelain, pale gray, black, and a single muted teal accent with strict consistency.
- Do Make the scene feel like a functioning android service kiosk, including physical seams, ports, labels, and calibration states.
- Do Use manga structure through panel frames, cropped gutters, and disciplined black rules rather than illustration.
- Do Keep terminal text sparse, legible, and integrated into glass or hardware surfaces.
- Do Reserve teal for service state, LED feedback, and confirmation; never use it as general decoration.
- Do Use rounded 24px hardware panels and 16px small controls from the defined radius scale only.
- Do Maintain accessible contrast between black text/rules and ivory surfaces, with teal supported by labels or shapes.
- Do Let empty porcelain space carry the tone; do not fill every panel.
- Don't Do not use the word Katagami in names or surface copy for this direction.
- Don't Do not use green matrix rain, neon cyberpunk palettes, purple glows, or saturated hacker aesthetics.
- Don't Do not produce generic SaaS card grids, analytics dashboards, or marketing component galleries.
- Don't Do not include anime characters, mascot faces, fan-art mecha, or narrative illustration scenes.
- Don't Do not scatter terminal code everywhere; keep it ritualized and sparse.
- Don't Do not mix many radius values, shadows, gradients, or accent colors outside the token system.
- Don't Do not allow default browser controls or unstyled form elements to appear.
- Don't Do not make the interface feel hostile, militarized, or surveillance-heavy.
### Accessibility
Maintain high text contrast on ivory and glass surfaces, pair teal state with shape and text, keep touch targets at least 44px, avoid continuous animation, and ensure terminal overlays do not obscure primary labels.
### Usage Context
Best for android service kiosks, robotics care stations, calibration portals, clinical maintenance terminals, quiet speculative OS screens, and physical-digital interfaces where trust and ritual matter more than speed spectacle.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "porcelain-terminal-rite",
"type": "registry:theme",
"title": "Porcelain Terminal Rite shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#EEE5D6",
"foreground": "#171717",
"card": "#FBF5EA",
"card-foreground": "#171717",
"popover": "#FBF5EA",
"popover-foreground": "#171717",
"primary": "#151515",
"primary-foreground": "#ffffff",
"secondary": "#F4ECDD",
"secondary-foreground": "#111111",
"muted": "#6E6A61",
"muted-foreground": "#171717",
"accent": "#5F9D9B",
"accent-foreground": "#ffffff",
"destructive": "#9B3F3A",
"border": "#1B1B1B",
"input": "#1B1B1B",
"ring": "#5F9D9B",
"chart-1": "#151515",
"chart-2": "#F4ECDD",
"chart-3": "#5F9D9B",
"chart-4": "#5F9D9B",
"chart-5": "#A9783A",
"sidebar": "#FBF5EA",
"sidebar-foreground": "#171717",
"sidebar-primary": "#151515",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#7A8C95",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1B1B1B",
"sidebar-ring": "#5F9D9B",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#151515",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#5F9D9B",
"accent-foreground": "#ffffff",
"destructive": "#9B3F3A",
"border": "#303642",
"input": "#303642",
"ring": "#5F9D9B",
"chart-1": "#151515",
"chart-2": "#F4ECDD",
"chart-3": "#5F9D9B",
"chart-4": "#5F9D9B",
"chart-5": "#A9783A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#151515",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9D9B",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#5F9D9B",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e0731-9055-72e2-98b5-125a023a06a2",
"slug": "porcelain-terminal-rite",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
- step-9128px
Shape
implementation kit
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #EEE5D6;
--foreground: #171717;
--card: #FBF5EA;
--card-foreground: #171717;
--popover: #FBF5EA;
--popover-foreground: #171717;
--primary: #151515;
--primary-foreground: #ffffff;
--secondary: #F4ECDD;
--secondary-foreground: #111111;
--muted: #6E6A61;
--muted-foreground: #171717;
--accent: #5F9D9B;
--accent-foreground: #ffffff;
--destructive: #9B3F3A;
--border: #1B1B1B;
--input: #1B1B1B;
--ring: #5F9D9B;
--chart-1: #151515;
--chart-2: #F4ECDD;
--chart-3: #5F9D9B;
--chart-4: #5F9D9B;
--chart-5: #A9783A;
--sidebar: #FBF5EA;
--sidebar-foreground: #171717;
--sidebar-primary: #151515;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #7A8C95;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #1B1B1B;
--sidebar-ring: #5F9D9B;
--radius: 24px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #151515;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #5F9D9B;
--accent-foreground: #ffffff;
--destructive: #9B3F3A;
--border: #303642;
--input: #303642;
--ring: #5F9D9B;
--chart-1: #151515;
--chart-2: #F4ECDD;
--chart-3: #5F9D9B;
--chart-4: #5F9D9B;
--chart-5: #A9783A;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #151515;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #5F9D9B;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #5F9D9B;
--radius: 24px;
}
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 PorcelainTerminalRiteShadcnKit() {
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">Porcelain Terminal Rite</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": "porcelain-terminal-rite",
"type": "registry:theme",
"title": "Porcelain Terminal Rite shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#EEE5D6",
"foreground": "#171717",
"card": "#FBF5EA",
"card-foreground": "#171717",
"popover": "#FBF5EA",
"popover-foreground": "#171717",
"primary": "#151515",
"primary-foreground": "#ffffff",
"secondary": "#F4ECDD",
"secondary-foreground": "#111111",
"muted": "#6E6A61",
"muted-foreground": "#171717",
"accent": "#5F9D9B",
"accent-foreground": "#ffffff",
"destructive": "#9B3F3A",
"border": "#1B1B1B",
"input": "#1B1B1B",
"ring": "#5F9D9B",
"chart-1": "#151515",
"chart-2": "#F4ECDD",
"chart-3": "#5F9D9B",
"chart-4": "#5F9D9B",
"chart-5": "#A9783A",
"sidebar": "#FBF5EA",
"sidebar-foreground": "#171717",
"sidebar-primary": "#151515",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#7A8C95",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1B1B1B",
"sidebar-ring": "#5F9D9B",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#151515",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#5F9D9B",
"accent-foreground": "#ffffff",
"destructive": "#9B3F3A",
"border": "#303642",
"input": "#303642",
"ring": "#5F9D9B",
"chart-1": "#151515",
"chart-2": "#F4ECDD",
"chart-3": "#5F9D9B",
"chart-4": "#5F9D9B",
"chart-5": "#A9783A",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#151515",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5F9D9B",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#5F9D9B",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019e0731-9055-72e2-98b5-125a023a06a2",
"slug": "porcelain-terminal-rite",
"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"
]
}
}
}
# Porcelain Terminal Rite shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019e0731-9055-72e2-98b5-125a023a06a2`
Slug: `porcelain-terminal-rite`
## Intent
Porcelain Terminal Rite is a quiet visual system for human-scale android service kiosks: warm ceramic panels, black manga framing, pale screen glass, muted teal service LEDs, and sparse terminal marks arranged like a careful maintenance ritual. It treats interface work as a calm exchange with a machine that is near enough to be cared for, not a spectacle of hacking or neon futurism.
## 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": "#5F9D9B",
"background": "#EEE5D6",
"border": "#1B1B1B",
"error": "#9B3F3A",
"info": "#7A8C95",
"muted": "#6E6A61",
"primary": "#151515",
"secondary": "#F4ECDD",
"success": "#5F9D9B",
"surface": "#FBF5EA",
"text": "#171717",
"warning": "#A9783A"
}
Typography:
{
"base_size": "16px",
"body_font": "Spline Sans",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans+JP:wght@500;700&family=Spline+Sans:wght@400;500;600&family=Space+Mono:wght@400;700&display=swap",
"heading_font": "IBM Plex Sans JP",
"letter_spacing": "-0.02em",
"line_height": 1.5,
"mono_font": "Space Mono",
"scale_ratio": 1.25
}
## Visual character to preserve
- Use thick black outer manga frames with 1px interior hairlines to create cropped ceramic interface panels and asymmetric caption gutters.
- Build large rounded ivory modules with inset pale-gray glass screens, subtle inner shadows, and small screw/port details positioned on a strict grid.
- Limit accent color to low-saturation teal LEDs: tiny pills, status dots, active scan lines, and one restrained confirmation ring only.
- Layer transparent terminal strips over ceramic surfaces using mono text, bracket marks, row numbers, and sparse diagnostic ticks at low opacity.
- Compose around a central service-kiosk body rather than cards: header visor, primary glass aperture, ritual step rail, and grounded hardware base.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "pebble",
"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/porcelain-terminal-rite/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 warm ivory, porcelain, pale gray, black, and a single muted teal accent with strict consistency.; Make the scene feel like a functioning android service kiosk, including physical seams, ports, labels, and calibration states.; Use manga structure through panel frames, cropped gutters, and disciplined black rules rather than illustration.; Keep terminal text sparse, legible, and integrated into glass or hardware surfaces.; Reserve teal for service state, LED feedback, and confirmation; never use it as general decoration.; Use rounded 24px hardware panels and 16px small controls from the defined radius scale only.; Maintain accessible contrast between black text/rules and ivory surfaces, with teal supported by labels or shapes.; Let empty porcelain space carry the tone; do not fill every panel.
- Do not: Do not use the word Katagami in names or surface copy for this direction.; Do not use green matrix rain, neon cyberpunk palettes, purple glows, or saturated hacker aesthetics.; Do not produce generic SaaS card grids, analytics dashboards, or marketing component galleries.; Do not include anime characters, mascot faces, fan-art mecha, or narrative illustration scenes.; Do not scatter terminal code everywhere; keep it ritualized and sparse.; Do not mix many radius values, shadows, gradients, or accent colors outside the token system.; Do not allow default browser controls or unstyled form elements to appear.; Do not make the interface feel hostile, militarized, or surveillance-heavy.
## 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 PorcelainTerminalRiteShadcnKit() {
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">Porcelain Terminal Rite</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 1200px+, tablet 768-1199px with stacked service rail, mobile below 640px with single-column kiosk body and compressed hardware base.",
"density": "Medium-low density chosen to preserve silence around the machine while allowing precise micro-markings where a real service kiosk would need diagnostics.",
"grid": "Use a 12-column desktop grid with 24px gutters and a 1180px max width; the kiosk body spans 8 columns, caption/service rails use the remaining columns, and internal modules snap to 8px spacing.",
"responsive": "At tablet size the caption gutter folds below the main aperture; at mobile size the ritual rail becomes a horizontal step strip and terminal overlays reduce to essential rows.",
"whitespace": "Whitespace is ceramic breathing room: keep at least 24px around major apertures, 48px page margins on desktop, and intentional blank porcelain panels between terminal details."
}
{
"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": "en-019e0731-9055-72e2-98b5-125a023a06a2",
"name": "Porcelain Terminal Rite",
"slug": "porcelain-terminal-rite"
},
"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 thick black outer manga frames with 1px interior hairlines to create cropped ceramic interface panels and asymmetric caption gutters.",
"Build large rounded ivory modules with inset pale-gray glass screens, subtle inner shadows, and small screw/port details positioned on a strict grid.",
"Limit accent color to low-saturation teal LEDs: tiny pills, status dots, active scan lines, and one restrained confirmation ring only.",
"Layer transparent terminal strips over ceramic surfaces using mono text, bracket marks, row numbers, and sparse diagnostic ticks at low opacity.",
"Compose around a central service-kiosk body rather than cards: header visor, primary glass aperture, ritual step rail, and grounded hardware base."
],
"visualProfile": {
"family": "brutalist",
"material": "ink",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": true,
"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": "Porcelain Terminal Rite 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 warm ivory, porcelain, pale gray, black, and a single muted teal accent with strict consistency.",
"Make the scene feel like a functioning android service kiosk, including physical seams, ports, labels, and calibration states.",
"Use manga structure through panel frames, cropped gutters, and disciplined black rules rather than illustration.",
"Keep terminal text sparse, legible, and integrated into glass or hardware surfaces.",
"Reserve teal for service state, LED feedback, and confirmation; never use it as general decoration.",
"Use rounded 24px hardware panels and 16px small controls from the defined radius scale only.",
"Maintain accessible contrast between black text/rules and ivory surfaces, with teal supported by labels or shapes.",
"Let empty porcelain space carry the tone; do not fill every panel."
],
"dont": [
"Do not use the word Katagami in names or surface copy for this direction.",
"Do not use green matrix rain, neon cyberpunk palettes, purple glows, or saturated hacker aesthetics.",
"Do not produce generic SaaS card grids, analytics dashboards, or marketing component galleries.",
"Do not include anime characters, mascot faces, fan-art mecha, or narrative illustration scenes.",
"Do not scatter terminal code everywhere; keep it ritualized and sparse.",
"Do not mix many radius values, shadows, gradients, or accent colors outside the token system.",
"Do not allow default browser controls or unstyled form elements to appear.",
"Do not make the interface feel hostile, militarized, or surveillance-heavy."
]
}
}