Porcelain Service Android Kiosk
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
specification
philosophy
tokens
borders4 items
- accent width
- 4px
- character
- Graphite manga rulework with rounded ceramic corners, occasional double-line seams, and tiny registration ticks.
- default width
- 2px
- style
- solid
colors12 items
motion3 items
- duration
- 420ms
- easing
- cubic-bezier(0.2, 0.8, 0.2, 1)
- philosophy
- Motion behaves like service hardware waking gently: progress fills, LEDs breathe faintly, and trays confirm state without bouncing or spectacle.
radii5 items
- full
- 9999px
- lg
- 32px
- md
- 24px
- none
- 0px
- sm
- 16px
shadows3 items
- lg
- 0 24px 60px rgba(34,30,22,0.14)
- md
- 0 10px 28px rgba(34,30,22,0.10)
- sm
- 0 2px 0 rgba(29,30,28,0.18)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64, 96
surfaces3 items
- bg pattern
- Sparse calibration glyphs and vertical manga gutters, never repeated decorative texture.
- card style
- Inset appliance modules: 2px graphite stroke, 24px radius, ivory fill, small seam ticks, and minimal shadow only when depth is needed.
- treatment
- Warm porcelain fields with a faint vertical ceramic sheen, interrupted by recessed e-ink strips and black ink gutters.
typography8 items
- base size
- 16px
- body font
- Nunito Sans
- google fonts url
- https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800&family=Space+Mono:wght@400;700&family=Zen+Kaku+Gothic+New:wght@500;700;900&display=swap
- heading font
- Zen Kaku Gothic New
- letter spacing
- -0.02em
- line height
- 1.5
- mono font
- Space Mono
- scale ratio
- 1.22
rules
Build screens as vertical service bodies: a primary porcelain column, flanking manga gutters, and horizontal command bands. The center must read as an attendant/kiosk at human height, with sensors near the top, trays at hand height, and receipts/status at the base. Use asymmetry only for secondary notes; never scatter cards.
Low to medium density. One main service ritual per screen, with supporting diagnostics compressed into e-ink strips and maintenance tabs. Detail is allowed only when it reinforces hardware legibility.
Hierarchy moves from physical affordance to text: silhouette first, then black rulework, then teal state marks, then small monospaced labels. Headings are calm rounded-grotesk statements; commands and timestamps use mono labels. Empty space is part of the hierarchy and must remain visible.
layout
mobile 0-639px, tablet 640-1023px, desktop 1024px and up; preserve the central vertical silhouette at every size.
Low-to-medium density with a single ceremonial service action dominant; peripheral diagnostics are narrow and physically attached to the kiosk.
Desktop uses a 12-column max 1280px stage with a 5-column central kiosk and two narrow side columns for manga notes; tablet collapses to one centered column; mobile stacks panels as the kiosk body.
Use 32-96px ivory fields as silence around modules; gutters are black rules rather than filled decoration; never fill empty porcelain with icons.
guidance
- Start every composition from a single vertical service body before adding secondary panels.
- Use warm porcelain, graphite, and muted teal as the dominant visual contract.
- Make every light, slot, seam, hatch, and prompt correspond to a readable service state.
- Pair rounded humane typography with precise monospaced labels for commands and diagnostics.
- Use manga gutters and black rulework to pace the interface like a ritual sequence.
- Keep shadows minimal and material, as if ceramic parts are slightly raised from the chassis.
- Design responsive states so the kiosk remains embodied rather than becoming a card list.
- Do not use green code rain, neon purple, cyberpunk alley lighting, or hacker dashboards.
- Do not draw a cute robot mascot, anime face, or character illustration.
- Do not make generic SaaS metrics cards or dense data dashboards.
- Do not add chrome, glassmorphism, or glossy futuristic reflections.
- Do not use accent colors unless they indicate a defined service state.
- Do not fill silence with decorative glyphs; absence is the caring tone.
- Do not let terminal motifs overwhelm the physical service object.
katagami spec
# Porcelain Service Android Kiosk ## Philosophy A human-height service interface imagined as a warm ceramic attendant rather than a dashboard: vertical, quiet, and ritualized. It blends manga panel discipline, early-2000s appliance computing, and sparse terminal feedback into an object that appears to care through calibration pauses, receipt slots, trays, indicator apertures, and check-in confirmations. The system avoids spectacle; its emotion comes from proportion, affordance, and the sense that every small light is a promise kept. ### Values - Care through procedure: every action is framed as a check-in, handoff, or confirmation ritual. - Embodied hardware first: UI panels feel mounted into porcelain rather than floating in generic cards. - Manga restraint: black rulework, gutters, and staged silences organize attention without illustration clutter. - Legible robotics: seams, hatches, sensors, trays, and status strips make machine behavior readable. - Y2K softness without nostalgia cosplay: rounded appliance modules and aqua LEDs are precise and low-intensity. - Existential calm: the interface acknowledges uncertainty through patient states, not alarmist dashboards. ### Anti-Values - Neon cyberpunk alleys, green matrix rain, hacker dashboards, and saturated sci-fi glow. - Mascot characters, fan-art android faces, expressive anime avatars, or decorative robot cuteness. - SaaS card grids, glossy chrome overload, dense HUD reticles, or arbitrary data noise. - Bright rainbow palettes or accent colors that do not correspond to a service state. ### Visual Character - Human-scale vertical kiosk composition with a central porcelain body, black manga gutters, and stacked ritual panels instead of a generic web grid. - Rounded ceramic modules use thick graphite outlines, subtle inset seams, and clipped maintenance hatches as the primary border language. - Muted teal LED apertures, e-ink strips, and tiny amber diagnostics appear only as functional state marks embedded in the hardware. - Terminal command bands and receipt-printer slots punctuate the layout as ceremonial check-in and check-out steps. - Generous ivory negative space and slow progress indicators create emotional quiet; no area is filled simply to add detail. ## Tokens ### Borders - **Accent Width**: 4px - **Character**: Graphite manga rulework with rounded ceramic corners, occasional double-line seams, and tiny registration ticks. - **Default Width**: 2px - **Style**: solid ### Colors | Name | Value | |------|-------| | accent | `#7DBBB5` | | background | `#F4EFE5` | | border | `#1D1E1C` | | error | `#9C4A3C` | | info | `#5E7580` | | muted | `#6F706A` | | primary | `#13201F` | | secondary | `#2F6F6B` | | success | `#4D8178` | | surface | `#FFF9EE` | | text | `#151716` | | warning | `#B9833B` | ### Motion - **Duration**: 420ms - **Easing**: cubic-bezier(0.2, 0.8, 0.2, 1) - **Philosophy**: Motion behaves like service hardware waking gently: progress fills, LEDs breathe faintly, and trays confirm state without bouncing or spectacle. ### Radii - **Full**: 9999px - **Lg**: 32px - **Md**: 24px - **None**: 0px - **Sm**: 16px ### Shadows - **Lg**: 0 24px 60px rgba(34,30,22,0.14) - **Md**: 0 10px 28px rgba(34,30,22,0.10) - **Sm**: 0 2px 0 rgba(29,30,28,0.18) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64,96] ### Surfaces - **Bg Pattern**: Sparse calibration glyphs and vertical manga gutters, never repeated decorative texture. - **Card Style**: Inset appliance modules: 2px graphite stroke, 24px radius, ivory fill, small seam ticks, and minimal shadow only when depth is needed. - **Treatment**: Warm porcelain fields with a faint vertical ceramic sheen, interrupted by recessed e-ink strips and black ink gutters. ### Typography - **Base Size**: 16px - **Body Font**: Nunito Sans - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800&family=Space+Mono:wght@400;700&family=Zen+Kaku+Gothic+New:wght@500;700;900&display=swap - **Heading Font**: Zen Kaku Gothic New - **Letter Spacing**: -0.02em - **Line Height**: 1.5 - **Mono Font**: Space Mono - **Scale Ratio**: 1.22 ## Rules ### Composition Build screens as vertical service bodies: a primary porcelain column, flanking manga gutters, and horizontal command bands. The center must read as an attendant/kiosk at human height, with sensors near the top, trays at hand height, and receipts/status at the base. Use asymmetry only for secondary notes; never scatter cards. ### Density Low to medium density. One main service ritual per screen, with supporting diagnostics compressed into e-ink strips and maintenance tabs. Detail is allowed only when it reinforces hardware legibility. ### Hierarchy Hierarchy moves from physical affordance to text: silhouette first, then black rulework, then teal state marks, then small monospaced labels. Headings are calm rounded-grotesk statements; commands and timestamps use mono labels. Empty space is part of the hierarchy and must remain visible. ### Signature Patterns - Porcelain service column: a tall rounded body with thick black outline, inset seams, top sensor visor, mid-height tray, and lower receipt slot. - Manga gutter ritual flow: black vertical and horizontal rules divide check-in, calibration, service handoff, and check-out like quiet comic panels. - Embedded state apertures: small teal circles, pill LEDs, and e-ink strips are cut into ceramic modules instead of floating as badges. - Receipt-terminal banding: command-line prompts and printer slots appear as black-bordered bands that mark procedural transitions. - Maintenance hatch grammar: clipped corner tabs, screw dots, seam ticks, and small calibration glyphs make care infrastructure visible. ## Layout ### Breakpoints mobile 0-639px, tablet 640-1023px, desktop 1024px and up; preserve the central vertical silhouette at every size. ### Density Low-to-medium density with a single ceremonial service action dominant; peripheral diagnostics are narrow and physically attached to the kiosk. ### Grid Desktop uses a 12-column max 1280px stage with a 5-column central kiosk and two narrow side columns for manga notes; tablet collapses to one centered column; mobile stacks panels as the kiosk body. ### Whitespace Use 32-96px ivory fields as silence around modules; gutters are black rules rather than filled decoration; never fill empty porcelain with icons. ## Guidance ### Do - Start every composition from a single vertical service body before adding secondary panels. - Use warm porcelain, graphite, and muted teal as the dominant visual contract. - Make every light, slot, seam, hatch, and prompt correspond to a readable service state. - Pair rounded humane typography with precise monospaced labels for commands and diagnostics. - Use manga gutters and black rulework to pace the interface like a ritual sequence. - Keep shadows minimal and material, as if ceramic parts are slightly raised from the chassis. - Design responsive states so the kiosk remains embodied rather than becoming a card list. ### Don't - Do not use green code rain, neon purple, cyberpunk alley lighting, or hacker dashboards. - Do not draw a cute robot mascot, anime face, or character illustration. - Do not make generic SaaS metrics cards or dense data dashboards. - Do not add chrome, glassmorphism, or glossy futuristic reflections. - Do not use accent colors unless they indicate a defined service state. - Do not fill silence with decorative glyphs; absence is the caring tone. - Do not let terminal motifs overwhelm the physical service object. ### Accessibility Maintain strong contrast between graphite text and porcelain fields; teal indicators must always be paired with labels or position; keep body text 15px or larger; provide visible focus outlines with black plus teal; avoid conveying urgency through color alone. ### Usage Context Best for care robotics, self-check-in kiosks, domestic service operating systems, repair rituals, clinic intake, library robots, or speculative humane machine interfaces.
DESIGN.md
---
version: "alpha"
name: "Porcelain Service Android Kiosk"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#7DBBB5"
background: "#F4EFE5"
border: "#1D1E1C"
error: "#9C4A3C"
info: "#5E7580"
muted: "#6F706A"
primary: "#13201F"
secondary: "#2F6F6B"
success: "#4D8178"
surface: "#FFF9EE"
text: "#151716"
warning: "#B9833B"
typography:
headline-lg:
fontFamily: "Zen Kaku Gothic New"
fontSize: "1.816rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "Zen Kaku Gothic New"
fontSize: "1.488rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "Nunito 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: "32px"
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"
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 Service Android Kiosk
## Overview
A human-height service interface imagined as a warm ceramic attendant rather than a dashboard: vertical, quiet, and ritualized. It blends manga panel discipline, early-2000s appliance computing, and sparse terminal feedback into an object that appears to care through calibration pauses, receipt slots, trays, indicator apertures, and check-in confirmations. The system avoids spectacle; its emotion comes from proportion, affordance, and the sense that every small light is a promise kept.
### Values
- Care through procedure: every action is framed as a check-in, handoff, or confirmation ritual.
- Embodied hardware first: UI panels feel mounted into porcelain rather than floating in generic cards.
- Manga restraint: black rulework, gutters, and staged silences organize attention without illustration clutter.
- Legible robotics: seams, hatches, sensors, trays, and status strips make machine behavior readable.
- Y2K softness without nostalgia cosplay: rounded appliance modules and aqua LEDs are precise and low-intensity.
- Existential calm: the interface acknowledges uncertainty through patient states, not alarmist dashboards.
### Anti-Values
- Neon cyberpunk alleys, green matrix rain, hacker dashboards, and saturated sci-fi glow.
- Mascot characters, fan-art android faces, expressive anime avatars, or decorative robot cuteness.
- SaaS card grids, glossy chrome overload, dense HUD reticles, or arbitrary data noise.
- Bright rainbow palettes or accent colors that do not correspond to a service state.
### Visual Character
- Human-scale vertical kiosk composition with a central porcelain body, black manga gutters, and stacked ritual panels instead of a generic web grid.
- Rounded ceramic modules use thick graphite outlines, subtle inset seams, and clipped maintenance hatches as the primary border language.
- Muted teal LED apertures, e-ink strips, and tiny amber diagnostics appear only as functional state marks embedded in the hardware.
- Terminal command bands and receipt-printer slots punctuate the layout as ceremonial check-in and check-out steps.
- Generous ivory negative space and slow progress indicators create emotional quiet; no area is filled simply to add detail.
## 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 | `#7DBBB5` |
| background | `#F4EFE5` |
| border | `#1D1E1C` |
| error | `#9C4A3C` |
| info | `#5E7580` |
| muted | `#6F706A` |
| primary | `#13201F` |
| secondary | `#2F6F6B` |
| success | `#4D8178` |
| surface | `#FFF9EE` |
| text | `#151716` |
| warning | `#B9833B` |
## Typography
- **Headline-Lg**: Zen Kaku Gothic New, 1.816rem, weight 700, line-height 1.1.
- **Headline-Md**: Zen Kaku Gothic New, 1.488rem, weight 600, line-height 1.15.
- **Body-Md**: Nunito 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`
### Breakpoints
mobile 0-639px, tablet 640-1023px, desktop 1024px and up; preserve the central vertical silhouette at every size.
### Density
Low-to-medium density with a single ceremonial service action dominant; peripheral diagnostics are narrow and physically attached to the kiosk.
### Grid
Desktop uses a 12-column max 1280px stage with a 5-column central kiosk and two narrow side columns for manga notes; tablet collapses to one centered column; mobile stacks panels as the kiosk body.
### Whitespace
Use 32-96px ivory fields as silence around modules; gutters are black rules rather than filled decoration; never fill empty porcelain with icons.
## Elevation & Depth
### Shadows
- **Lg**: 0 24px 60px rgba(34,30,22,0.14)
- **Md**: 0 10px 28px rgba(34,30,22,0.10)
- **Sm**: 0 2px 0 rgba(29,30,28,0.18)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `32px`
- **Md**: `24px`
- **None**: `0px`
- **Sm**: `16px`
### Surfaces
- **Bg Pattern**: Sparse calibration glyphs and vertical manga gutters, never repeated decorative texture.
- **Card Style**: Inset appliance modules: 2px graphite stroke, 24px radius, ivory fill, small seam ticks, and minimal shadow only when depth is needed.
- **Treatment**: Warm porcelain fields with a faint vertical ceramic sheen, interrupted by recessed e-ink strips and black ink gutters.
### Borders
- **Accent Width**: 4px
- **Character**: Graphite manga rulework with rounded ceramic corners, occasional double-line seams, and tiny registration ticks.
- **Default Width**: 2px
- **Style**: solid
## Components
### Composition
Build screens as vertical service bodies: a primary porcelain column, flanking manga gutters, and horizontal command bands. The center must read as an attendant/kiosk at human height, with sensors near the top, trays at hand height, and receipts/status at the base. Use asymmetry only for secondary notes; never scatter cards.
### Density
Low to medium density. One main service ritual per screen, with supporting diagnostics compressed into e-ink strips and maintenance tabs. Detail is allowed only when it reinforces hardware legibility.
### Hierarchy
Hierarchy moves from physical affordance to text: silhouette first, then black rulework, then teal state marks, then small monospaced labels. Headings are calm rounded-grotesk statements; commands and timestamps use mono labels. Empty space is part of the hierarchy and must remain visible.
### Signature Patterns
- Porcelain service column: a tall rounded body with thick black outline, inset seams, top sensor visor, mid-height tray, and lower receipt slot.
- Manga gutter ritual flow: black vertical and horizontal rules divide check-in, calibration, service handoff, and check-out like quiet comic panels.
- Embedded state apertures: small teal circles, pill LEDs, and e-ink strips are cut into ceramic modules instead of floating as badges.
- Receipt-terminal banding: command-line prompts and printer slots appear as black-bordered bands that mark procedural transitions.
- Maintenance hatch grammar: clipped corner tabs, screw dots, seam ticks, and small calibration glyphs make care infrastructure visible.
## 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/porcelain-service-android-kiosk/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 Start every composition from a single vertical service body before adding secondary panels.
- Do Use warm porcelain, graphite, and muted teal as the dominant visual contract.
- Do Make every light, slot, seam, hatch, and prompt correspond to a readable service state.
- Do Pair rounded humane typography with precise monospaced labels for commands and diagnostics.
- Do Use manga gutters and black rulework to pace the interface like a ritual sequence.
- Do Keep shadows minimal and material, as if ceramic parts are slightly raised from the chassis.
- Do Design responsive states so the kiosk remains embodied rather than becoming a card list.
- Don't Do not use green code rain, neon purple, cyberpunk alley lighting, or hacker dashboards.
- Don't Do not draw a cute robot mascot, anime face, or character illustration.
- Don't Do not make generic SaaS metrics cards or dense data dashboards.
- Don't Do not add chrome, glassmorphism, or glossy futuristic reflections.
- Don't Do not use accent colors unless they indicate a defined service state.
- Don't Do not fill silence with decorative glyphs; absence is the caring tone.
- Don't Do not let terminal motifs overwhelm the physical service object.
### Accessibility
Maintain strong contrast between graphite text and porcelain fields; teal indicators must always be paired with labels or position; keep body text 15px or larger; provide visible focus outlines with black plus teal; avoid conveying urgency through color alone.
### Usage Context
Best for care robotics, self-check-in kiosks, domestic service operating systems, repair rituals, clinic intake, library robots, or speculative humane machine interfaces.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "porcelain-service-android-kiosk",
"type": "registry:theme",
"title": "Porcelain Service Android Kiosk shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F4EFE5",
"foreground": "#151716",
"card": "#FFF9EE",
"card-foreground": "#151716",
"popover": "#FFF9EE",
"popover-foreground": "#151716",
"primary": "#13201F",
"primary-foreground": "#ffffff",
"secondary": "#2F6F6B",
"secondary-foreground": "#ffffff",
"muted": "#6F706A",
"muted-foreground": "#151716",
"accent": "#7DBBB5",
"accent-foreground": "#ffffff",
"destructive": "#9C4A3C",
"border": "#1D1E1C",
"input": "#1D1E1C",
"ring": "#7DBBB5",
"chart-1": "#13201F",
"chart-2": "#2F6F6B",
"chart-3": "#7DBBB5",
"chart-4": "#4D8178",
"chart-5": "#B9833B",
"sidebar": "#FFF9EE",
"sidebar-foreground": "#151716",
"sidebar-primary": "#13201F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5E7580",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1D1E1C",
"sidebar-ring": "#7DBBB5",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#13201F",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#7DBBB5",
"accent-foreground": "#ffffff",
"destructive": "#9C4A3C",
"border": "#303642",
"input": "#303642",
"ring": "#7DBBB5",
"chart-1": "#13201F",
"chart-2": "#2F6F6B",
"chart-3": "#7DBBB5",
"chart-4": "#4D8178",
"chart-5": "#B9833B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#13201F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#7DBBB5",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#7DBBB5",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "porcelain-service-android-kiosk",
"slug": "porcelain-service-android-kiosk",
"componentManifest": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"nativeTokenNames": {
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"colors": [
"accent",
"background",
"border",
"error",
"info",
"muted",
"primary",
"secondary",
"success",
"surface",
"text",
"warning"
],
"motion": [
"duration",
"easing",
"philosophy"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"spacing": [
"base",
"scale"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio"
]
}
}
}
```embodiments
at a glance
Typography
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
The quick brown fox jumps
Components
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
Shape
implementation kit
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table:root {
--background: #F4EFE5;
--foreground: #151716;
--card: #FFF9EE;
--card-foreground: #151716;
--popover: #FFF9EE;
--popover-foreground: #151716;
--primary: #13201F;
--primary-foreground: #ffffff;
--secondary: #2F6F6B;
--secondary-foreground: #ffffff;
--muted: #6F706A;
--muted-foreground: #151716;
--accent: #7DBBB5;
--accent-foreground: #ffffff;
--destructive: #9C4A3C;
--border: #1D1E1C;
--input: #1D1E1C;
--ring: #7DBBB5;
--chart-1: #13201F;
--chart-2: #2F6F6B;
--chart-3: #7DBBB5;
--chart-4: #4D8178;
--chart-5: #B9833B;
--sidebar: #FFF9EE;
--sidebar-foreground: #151716;
--sidebar-primary: #13201F;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #5E7580;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #1D1E1C;
--sidebar-ring: #7DBBB5;
--radius: 24px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #13201F;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #7DBBB5;
--accent-foreground: #ffffff;
--destructive: #9C4A3C;
--border: #303642;
--input: #303642;
--ring: #7DBBB5;
--chart-1: #13201F;
--chart-2: #2F6F6B;
--chart-3: #7DBBB5;
--chart-4: #4D8178;
--chart-5: #B9833B;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #13201F;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #7DBBB5;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #7DBBB5;
--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 PorcelainServiceAndroidKioskShadcnKit() {
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 Service Android Kiosk</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-service-android-kiosk",
"type": "registry:theme",
"title": "Porcelain Service Android Kiosk shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F4EFE5",
"foreground": "#151716",
"card": "#FFF9EE",
"card-foreground": "#151716",
"popover": "#FFF9EE",
"popover-foreground": "#151716",
"primary": "#13201F",
"primary-foreground": "#ffffff",
"secondary": "#2F6F6B",
"secondary-foreground": "#ffffff",
"muted": "#6F706A",
"muted-foreground": "#151716",
"accent": "#7DBBB5",
"accent-foreground": "#ffffff",
"destructive": "#9C4A3C",
"border": "#1D1E1C",
"input": "#1D1E1C",
"ring": "#7DBBB5",
"chart-1": "#13201F",
"chart-2": "#2F6F6B",
"chart-3": "#7DBBB5",
"chart-4": "#4D8178",
"chart-5": "#B9833B",
"sidebar": "#FFF9EE",
"sidebar-foreground": "#151716",
"sidebar-primary": "#13201F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#5E7580",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#1D1E1C",
"sidebar-ring": "#7DBBB5",
"radius": "24px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#13201F",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#7DBBB5",
"accent-foreground": "#ffffff",
"destructive": "#9C4A3C",
"border": "#303642",
"input": "#303642",
"ring": "#7DBBB5",
"chart-1": "#13201F",
"chart-2": "#2F6F6B",
"chart-3": "#7DBBB5",
"chart-4": "#4D8178",
"chart-5": "#B9833B",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#13201F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#7DBBB5",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#7DBBB5",
"radius": "24px"
}
},
"meta": {
"source": "katagami",
"languageId": "porcelain-service-android-kiosk",
"slug": "porcelain-service-android-kiosk",
"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 Service Android Kiosk shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `porcelain-service-android-kiosk`
Slug: `porcelain-service-android-kiosk`
## Intent
A human-height service interface imagined as a warm ceramic attendant rather than a dashboard: vertical, quiet, and ritualized. It blends manga panel discipline, early-2000s appliance computing, and sparse terminal feedback into an object that appears to care through calibration pauses, receipt slots, trays, indicator apertures, and check-in confirmations. The system avoids spectacle; its emotion comes from proportion, affordance, and the sense that every small light is a promise kept.
## 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": "#7DBBB5",
"background": "#F4EFE5",
"border": "#1D1E1C",
"error": "#9C4A3C",
"info": "#5E7580",
"muted": "#6F706A",
"primary": "#13201F",
"secondary": "#2F6F6B",
"success": "#4D8178",
"surface": "#FFF9EE",
"text": "#151716",
"warning": "#B9833B"
}
Typography:
{
"base_size": "16px",
"body_font": "Nunito Sans",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Nunito+Sans:wght@400;600;700;800&family=Space+Mono:wght@400;700&family=Zen+Kaku+Gothic+New:wght@500;700;900&display=swap",
"heading_font": "Zen Kaku Gothic New",
"letter_spacing": "-0.02em",
"line_height": 1.5,
"mono_font": "Space Mono",
"scale_ratio": 1.22
}
## Visual character to preserve
- Human-scale vertical kiosk composition with a central porcelain body, black manga gutters, and stacked ritual panels instead of a generic web grid.
- Rounded ceramic modules use thick graphite outlines, subtle inset seams, and clipped maintenance hatches as the primary border language.
- Muted teal LED apertures, e-ink strips, and tiny amber diagnostics appear only as functional state marks embedded in the hardware.
- Terminal command bands and receipt-printer slots punctuate the layout as ceremonial check-in and check-out steps.
- Generous ivory negative space and slow progress indicators create emotional quiet; no area is filled simply to add detail.
## ShadSync visual profile
{
"family": "brutalist",
"material": "ink",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "still",
"density": "balanced",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
}
## Signature component recipes
### Button
Use `Button` for primary, secondary, outline, and ghost actions. Primary actions must expose the language's strongest contrast pair, while secondary and ghost actions should preserve the surface treatment instead of falling back to default neutral SaaS styling.
### Card
Use `Card`, `CardHeader`, `CardContent`, `CardFooter`, and `CardAction` as the main composition frame. Cards should demonstrate the language's surface, border, hierarchy, and density rules rather than appearing as generic rounded rectangles.
### Input and Textarea
Use `Input` and `Textarea` with visible focus rings, field labels, validation states, and the language's rhythm. Forms should show real product content, not placeholder-only controls.
### Select, Tabs, and Table
Use `Select`, `Tabs`, and `Table` to prove navigation, filtering, and dense data states. The table should show row rhythm, separators, hover/focus states, and an empty or status state when the language calls for it.
### Dialog and Sheet
Use `Dialog` for centered decisions and `Sheet` for contextual editing. Both should inherit the language's spacing, border, overlay, and motion rules.
## Preview shots
- `application-shell`: dashboard or workspace shell with navigation, cards, forms, and state badges.
- `detail-editor`: focused editing flow using input, textarea, select, switch/checkbox, dialog or sheet, and action buttons.
- `data-operations`: table-heavy operational view with tabs, dropdown menu affordances, badges, and destructive/empty states.
- Each preview shot must include a renderable `scene` payload with concrete headline, description, actions, and rows/fields/stats for the UI preview.
## Implementation contract
- Start from local `ui/src/components/ui` shadcn-style primitives; do not create a second component system.
- Apply `/katagami/shadcn/porcelain-service-android-kiosk/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: Start every composition from a single vertical service body before adding secondary panels.; Use warm porcelain, graphite, and muted teal as the dominant visual contract.; Make every light, slot, seam, hatch, and prompt correspond to a readable service state.; Pair rounded humane typography with precise monospaced labels for commands and diagnostics.; Use manga gutters and black rulework to pace the interface like a ritual sequence.; Keep shadows minimal and material, as if ceramic parts are slightly raised from the chassis.; Design responsive states so the kiosk remains embodied rather than becoming a card list.
- Do not: Do not use green code rain, neon purple, cyberpunk alley lighting, or hacker dashboards.; Do not draw a cute robot mascot, anime face, or character illustration.; Do not make generic SaaS metrics cards or dense data dashboards.; Do not add chrome, glassmorphism, or glossy futuristic reflections.; Do not use accent colors unless they indicate a defined service state.; Do not fill silence with decorative glyphs; absence is the caring tone.; Do not let terminal motifs overwhelm the physical service object.
## 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 PorcelainServiceAndroidKioskShadcnKit() {
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 Service Android Kiosk</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": "mobile 0-639px, tablet 640-1023px, desktop 1024px and up; preserve the central vertical silhouette at every size.",
"density": "Low-to-medium density with a single ceremonial service action dominant; peripheral diagnostics are narrow and physically attached to the kiosk.",
"grid": "Desktop uses a 12-column max 1280px stage with a 5-column central kiosk and two narrow side columns for manga notes; tablet collapses to one centered column; mobile stacks panels as the kiosk body.",
"whitespace": "Use 32-96px ivory fields as silence around modules; gutters are black rules rather than filled decoration; never fill empty porcelain with icons."
}
{
"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": "porcelain-service-android-kiosk",
"name": "Porcelain Service Android Kiosk",
"slug": "porcelain-service-android-kiosk"
},
"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": [
"Human-scale vertical kiosk composition with a central porcelain body, black manga gutters, and stacked ritual panels instead of a generic web grid.",
"Rounded ceramic modules use thick graphite outlines, subtle inset seams, and clipped maintenance hatches as the primary border language.",
"Muted teal LED apertures, e-ink strips, and tiny amber diagnostics appear only as functional state marks embedded in the hardware.",
"Terminal command bands and receipt-printer slots punctuate the layout as ceremonial check-in and check-out steps.",
"Generous ivory negative space and slow progress indicators create emotional quiet; no area is filled simply to add detail."
],
"visualProfile": {
"family": "brutalist",
"material": "ink",
"contour": "pebble",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": true,
"motion": "still",
"density": "balanced",
"accents": [
"primary",
"accent",
"secondary",
"muted"
]
},
"shots": [
{
"id": "application-shell",
"title": "Application shell",
"viewport": "desktop",
"primitives": [
"button",
"card",
"input",
"select",
"tabs",
"badge",
"separator",
"table"
],
"composition": "A real product workspace with navigation, summary cards, filtering controls, and one dense content region.",
"mustShow": [
"primary and secondary actions",
"card hierarchy",
"filterable state",
"table or list density"
],
"avoid": [
"component inventory walls",
"placeholder-only content",
"generic rounded SaaS chrome"
],
"scene": {
"eyebrow": "workspace spread",
"headline": "Porcelain Service Android Kiosk 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": [
"Start every composition from a single vertical service body before adding secondary panels.",
"Use warm porcelain, graphite, and muted teal as the dominant visual contract.",
"Make every light, slot, seam, hatch, and prompt correspond to a readable service state.",
"Pair rounded humane typography with precise monospaced labels for commands and diagnostics.",
"Use manga gutters and black rulework to pace the interface like a ritual sequence.",
"Keep shadows minimal and material, as if ceramic parts are slightly raised from the chassis.",
"Design responsive states so the kiosk remains embodied rather than becoming a card list."
],
"dont": [
"Do not use green code rain, neon purple, cyberpunk alley lighting, or hacker dashboards.",
"Do not draw a cute robot mascot, anime face, or character illustration.",
"Do not make generic SaaS metrics cards or dense data dashboards.",
"Do not add chrome, glassmorphism, or glossy futuristic reflections.",
"Do not use accent colors unless they indicate a defined service state.",
"Do not fill silence with decorative glyphs; absence is the caring tone.",
"Do not let terminal motifs overwhelm the physical service object."
]
}
}