back to gallerydo avoid
design language·quiet-grid-minimalism
Quiet Grid Minimalism
A portable design language for agents: download the markdown first, then inspect the preview, tokens, and rules as needed.
Download DESIGN.md
Portable DESIGN.md source of truth for most agents and apps.
the spec
specification
philosophy
summary
Quiet Grid Minimalism is an interface language for tools that want to feel deliberate, legible, and almost silent. It removes decorative persuasion so that structure, alignment, typography, and content order become the visual system. The language treats whitespace as a working material: not empty space, but a calibrated pause that separates decisions, clarifies hierarchy, and gives important content room to breathe. It is minimalist without becoming anonymous by relying on severe geometric alignment, visible grid discipline, rectangular material honesty, and restrained semantic color.
values
Reduction with evidenceWhitespace as structureTypographic authorityGeometric simplicitySemantic restraintMaterial honestyContent economy
anti-values
×Decorative minimalism×Chromatic branding×Soft app friendliness×Dense control surfaces
tokens
colors16 items
primary
#000000
secondary
#2B2B2B
accent
#0057FF
background
#FFFFFF
surface
#FFFFFF
text
#000000
muted
#6F6F6F
border
#D8D8D8
error
#C1121F
success
#137333
warning
#A05A00
info
#0057FF
rule_dark
#000000
rule_light
#E8E8E8
subtle
#F7F7F7
disabled
#B8B8B8
typography10 items
- heading font
- IBM Plex Sans
- body font
- IBM Plex Sans
- mono font
- IBM Plex Mono
- base size
- 16px
- scale ratio
- 1.25
- line height
- 1.45
- letter spacing
- -0.02em
- google fonts url
- https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
- sizes
- xs 12px·sm 14px·base 16px·md 20px·lg 25px·xl 31px·xxl 48px
- weights
- regular 400·medium 500·semibold 600·bold 700
spacing2 items
- base
- 8px
- scale
- 4px, 8px, 12px, 16px, 24px, 32px, 48px, 64px, 96px
radii5 items
- none
- 0px
- sm
- 0px
- md
- 0px
- lg
- 0px
- full
- 9999px
shadows3 items
- sm
- none
- md
- none
- lg
- none
surfaces3 items
- treatment
- flat
- card style
- Flat white rectangular planes with no shadow, defined only by rule-line borders and internal whitespace.
- bg pattern
- none
borders4 items
- default width
- 1px
- accent width
- 2px
- style
- solid
- character
- Crisp architectural rule lines that expose the grid and separate information without adding decoration.
motion3 items
- duration
- 140ms
- easing
- cubic-bezier(0.2, 0, 0, 1)
- philosophy
- snappy and nearly invisible, used only to confirm hover, focus, selection, and disclosure changes
rules
composition
Use a 12-column grid with generous 32px gutters on desktop. Align every header, card edge, table column, and control to the same grid. Prefer one dominant axis and one secondary column rather than scattered modules. Group related content by whitespace first, 1px rules second, and background changes last. Keep panels rectangular and flat. Use fewer larger regions instead of many nested cards. Leave at least one intentionally quiet open area in major screens.
hierarchy
Establish hierarchy through typographic scale, weight, and placement. Page titles should be large and quiet, labels should be small uppercase or mono-coded, and primary actions should be obvious through position and border contrast rather than bright fills. Body text remains black or muted grey; semantic color is reserved for state. Data hierarchy uses alignment, column width, and line rules instead of zebra stripes or badges everywhere.
density
Medium-low density with high information precision: compact rows are acceptable only inside tables, while decision areas use wide spacing and clear separation. Controls maintain 44px minimum touch targets even when the visual language feels severe.
signature patterns
Every major panel uses a flat white background with a 1px solid rule border and 0px border-radius, with no box-shadow allowed.Section headers use a two-part typographic lockup: small IBM Plex Mono index label above a larger IBM Plex Sans title aligned to the same left edge.Interactive focus and selected states use a thin 2px blue inset or left rule instead of filled colored backgrounds or glow effects.Tables and lists use horizontal 1px rules with generous vertical padding, no zebra striping, and mono numeric columns aligned right.The page composition includes an oversized whitespace gutter or empty grid column that remains intentionally blank on desktop.
layout
density
Quiet medium-low density chosen to make professional tools feel calm while preserving fast scanning in tables and status lists.
grid
Desktop uses a 12-column grid with 32px gutters and a max content width of 1280px. Main scenes reserve one empty or low-density column group as negative space. Panels align to 4-column and 8-column spans.
whitespace
Whitespace is the primary separator: 48px between modules, 64px to 96px between major sections, and 24px to 32px inside panels. Avoid cramped decorative minimalism.
breakpoints
- desktop
- 1024px and above: 12 columns with deliberate empty gutter
- tablet
- 768px to 1023px: 6 columns, panels reflow into two stacked regions
- mobile
- 480px and below: single column, full-width controls, table scroll only where unavoidable
guidance
- Start every screen in black, white, and grey; add the blue accent only after assigning a semantic purpose.
- Use 0px radius on all panels, inputs, cards, and buttons; reserve 9999px only for small status pills or avatars.
- Apply -0.02em letter spacing globally and rely on IBM Plex Sans weight changes for hierarchy.
- Separate groups with whitespace before adding borders; add a rule line only when the relationship needs precision.
- Make focus states visibly accessible with 2px blue outlines or inset rules that do not disturb layout.
- Keep labels short, tables sparse, and status language factual.
- Right-align numeric data and use IBM Plex Mono for times, counts, IDs, and compact metadata.
- Let one area of the desktop layout remain intentionally quiet to preserve the minimalist rhythm.
- Do not use gradients, pastel backgrounds, glassmorphism, decorative blobs, or textured surfaces.
- Do not use shadows to create depth; use spacing, alignment, and rule lines instead.
- Do not introduce rounded card radii such as 8px, 12px, 20px, 32px, or 48px.
- Do not color buttons, badges, or charts unless the color communicates state or selection.
- Do not center everything; disciplined left alignment is the default.
- Do not create component-catalog screens with sample controls unrelated to a real workflow.
- Do not pack actions into every corner; expose the next likely decision and hide secondary options.
- Do not use playful icon sets, emoji, or illustration to soften the interface.
katagami spec
# Quiet Grid Minimalism
## Philosophy
Quiet Grid Minimalism is an interface language for tools that want to feel deliberate, legible, and almost silent. It removes decorative persuasion so that structure, alignment, typography, and content order become the visual system. The language treats whitespace as a working material: not empty space, but a calibrated pause that separates decisions, clarifies hierarchy, and gives important content room to breathe. It is minimalist without becoming anonymous by relying on severe geometric alignment, visible grid discipline, rectangular material honesty, and restrained semantic color.
### Values
- {"name":"Reduction with evidence","explanation":"Every visible element must either communicate state, create hierarchy, or support task completion; if it only adds mood, remove it."}
- {"name":"Whitespace as structure","explanation":"Large margins, generous gutters, and sparse grouping create the primary rhythm instead of boxes, dividers, or ornamental fills."}
- {"name":"Typographic authority","explanation":"Hierarchy comes from weight, scale, line length, and tight letter spacing rather than color, icon density, or illustration."}
- {"name":"Geometric simplicity","explanation":"Containers, controls, and navigation use strict rectangles, rule lines, and a consistent square-ended geometry with no softened personality."}
- {"name":"Semantic restraint","explanation":"Color appears only when it carries meaning: focus, success, warning, error, or the single selected path."}
- {"name":"Material honesty","explanation":"Surfaces remain flat, white, and untextured; depth is indicated by spacing and borders instead of shadows or simulated materials."}
- {"name":"Content economy","explanation":"Labels are short, tables are sparse, and panels expose only the information needed for the current decision."}
### Anti-Values
- {"name":"Decorative minimalism","explanation":"Do not replace clarity with lifestyle emptiness, oversized hero slogans, or ornamental blankness."}
- {"name":"Chromatic branding","explanation":"Avoid palettes where color becomes personality; the system should remain largely black, white, and grey."}
- {"name":"Soft app friendliness","explanation":"Avoid bubbly radii, plush shadows, pastel backgrounds, and playful micro-illustrations."}
- {"name":"Dense control surfaces","explanation":"Do not pack every available action into the frame; force prioritization and progressive disclosure."}
### Visual Character
- Pure white canvas with flat #FFFFFF panels separated by 1px black or grey rule lines, never by shadows or tinted cards.
- Large measured whitespace using 48px to 96px section gaps and sparse grid gutters so negative space becomes the main composition device.
- Square 0px-radius rectangular controls and panels with crisp aligned edges to express geometric reduction and material honesty.
- Tight typographic system with -0.02em letter spacing on all text, strong size contrast, and restrained weights rather than decorative styling.
- Semantic color appears only as thin state indicators, focus rings, selected rows, and compact status marks; default UI stays monochrome.
## Tokens
### Colors
| Name | Value |
|------|-------|
| primary | `#000000` |
| secondary | `#2B2B2B` |
| accent | `#0057FF` |
| background | `#FFFFFF` |
| surface | `#FFFFFF` |
| text | `#000000` |
| muted | `#6F6F6F` |
| border | `#D8D8D8` |
| error | `#C1121F` |
| success | `#137333` |
| warning | `#A05A00` |
| info | `#0057FF` |
| rule_dark | `#000000` |
| rule_light | `#E8E8E8` |
| subtle | `#F7F7F7` |
| disabled | `#B8B8B8` |
### Typography
- **Heading Font**: IBM Plex Sans
- **Body Font**: IBM Plex Sans
- **Mono Font**: IBM Plex Mono
- **Base Size**: 16px
- **Scale Ratio**: 1.25
- **Line Height**: 1.45
- **Letter Spacing**: -0.02em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap
- **Sizes**: {"xs":"12px","sm":"14px","base":"16px","md":"20px","lg":"25px","xl":"31px","xxl":"48px"}
- **Weights**: {"regular":400,"medium":500,"semibold":600,"bold":700}
### Spacing
- **Base**: 8px
- **Scale**: ["4px","8px","12px","16px","24px","32px","48px","64px","96px"]
### Radii
- **None**: 0px
- **Sm**: 0px
- **Md**: 0px
- **Lg**: 0px
- **Full**: 9999px
### Shadows
- **Sm**: none
- **Md**: none
- **Lg**: none
### Surfaces
- **Treatment**: flat
- **Card Style**: Flat white rectangular planes with no shadow, defined only by rule-line borders and internal whitespace.
- **Bg Pattern**: none
### Borders
- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Crisp architectural rule lines that expose the grid and separate information without adding decoration.
### Motion
- **Duration**: 140ms
- **Easing**: cubic-bezier(0.2, 0, 0, 1)
- **Philosophy**: snappy and nearly invisible, used only to confirm hover, focus, selection, and disclosure changes
## Rules
### Composition
Use a 12-column grid with generous 32px gutters on desktop. Align every header, card edge, table column, and control to the same grid. Prefer one dominant axis and one secondary column rather than scattered modules. Group related content by whitespace first, 1px rules second, and background changes last. Keep panels rectangular and flat. Use fewer larger regions instead of many nested cards. Leave at least one intentionally quiet open area in major screens.
### Hierarchy
Establish hierarchy through typographic scale, weight, and placement. Page titles should be large and quiet, labels should be small uppercase or mono-coded, and primary actions should be obvious through position and border contrast rather than bright fills. Body text remains black or muted grey; semantic color is reserved for state. Data hierarchy uses alignment, column width, and line rules instead of zebra stripes or badges everywhere.
### Density
Medium-low density with high information precision: compact rows are acceptable only inside tables, while decision areas use wide spacing and clear separation. Controls maintain 44px minimum touch targets even when the visual language feels severe.
### Signature Patterns
- Every major panel uses a flat white background with a 1px solid rule border and 0px border-radius, with no box-shadow allowed.
- Section headers use a two-part typographic lockup: small IBM Plex Mono index label above a larger IBM Plex Sans title aligned to the same left edge.
- Interactive focus and selected states use a thin 2px blue inset or left rule instead of filled colored backgrounds or glow effects.
- Tables and lists use horizontal 1px rules with generous vertical padding, no zebra striping, and mono numeric columns aligned right.
- The page composition includes an oversized whitespace gutter or empty grid column that remains intentionally blank on desktop.
## Layout
### Density
Quiet medium-low density chosen to make professional tools feel calm while preserving fast scanning in tables and status lists.
### Grid
Desktop uses a 12-column grid with 32px gutters and a max content width of 1280px. Main scenes reserve one empty or low-density column group as negative space. Panels align to 4-column and 8-column spans.
### Whitespace
Whitespace is the primary separator: 48px between modules, 64px to 96px between major sections, and 24px to 32px inside panels. Avoid cramped decorative minimalism.
### Breakpoints
- **Desktop**: 1024px and above: 12 columns with deliberate empty gutter
- **Tablet**: 768px to 1023px: 6 columns, panels reflow into two stacked regions
- **Mobile**: 480px and below: single column, full-width controls, table scroll only where unavoidable
## Guidance
### Do
- Start every screen in black, white, and grey; add the blue accent only after assigning a semantic purpose.
- Use 0px radius on all panels, inputs, cards, and buttons; reserve 9999px only for small status pills or avatars.
- Apply -0.02em letter spacing globally and rely on IBM Plex Sans weight changes for hierarchy.
- Separate groups with whitespace before adding borders; add a rule line only when the relationship needs precision.
- Make focus states visibly accessible with 2px blue outlines or inset rules that do not disturb layout.
- Keep labels short, tables sparse, and status language factual.
- Right-align numeric data and use IBM Plex Mono for times, counts, IDs, and compact metadata.
- Let one area of the desktop layout remain intentionally quiet to preserve the minimalist rhythm.
### Don't
- Do not use gradients, pastel backgrounds, glassmorphism, decorative blobs, or textured surfaces.
- Do not use shadows to create depth; use spacing, alignment, and rule lines instead.
- Do not introduce rounded card radii such as 8px, 12px, 20px, 32px, or 48px.
- Do not color buttons, badges, or charts unless the color communicates state or selection.
- Do not center everything; disciplined left alignment is the default.
- Do not create component-catalog screens with sample controls unrelated to a real workflow.
- Do not pack actions into every corner; expose the next likely decision and hide secondary options.
- Do not use playful icon sets, emoji, or illustration to soften the interface.
### Usage Context
Best for productivity software, editorial systems, analytics workspaces, admin consoles, documentation tools, and decision dashboards where attention should stay on content and state.
### Accessibility
Maintain WCAG AA contrast by default through black text on white surfaces. Ensure keyboard focus is always visible with the blue 2px rule. Keep touch targets at least 44px, preserve readable 16px body text, and never rely on color alone for status; pair color with text and shape.
DESIGN.md
---
version: "alpha"
name: "Quiet Grid Minimalism"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
primary: "#000000"
secondary: "#2B2B2B"
accent: "#0057FF"
background: "#FFFFFF"
surface: "#FFFFFF"
text: "#000000"
muted: "#6F6F6F"
border: "#D8D8D8"
error: "#C1121F"
success: "#137333"
warning: "#A05A00"
info: "#0057FF"
rule_dark: "#000000"
rule_light: "#E8E8E8"
subtle: "#F7F7F7"
disabled: "#B8B8B8"
typography:
headline-lg:
fontFamily: "IBM Plex Sans"
fontSize: "1.953rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.02em"
headline-md:
fontFamily: "IBM Plex Sans"
fontSize: "1.563rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.02em"
body-md:
fontFamily: "IBM Plex Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.45
letterSpacing: "-0.02em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
none: "0px"
sm: "0px"
md: "0px"
lg: "0px"
full: "9999px"
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-primary:
backgroundColor: "{colors.primary}"
color-reference-secondary:
backgroundColor: "{colors.secondary}"
color-reference-accent:
backgroundColor: "{colors.accent}"
color-reference-background:
backgroundColor: "{colors.background}"
color-reference-surface:
backgroundColor: "{colors.surface}"
color-reference-text:
backgroundColor: "{colors.text}"
color-reference-muted:
backgroundColor: "{colors.muted}"
color-reference-border:
backgroundColor: "{colors.border}"
color-reference-error:
backgroundColor: "{colors.error}"
color-reference-success:
backgroundColor: "{colors.success}"
color-reference-warning:
backgroundColor: "{colors.warning}"
color-reference-info:
backgroundColor: "{colors.info}"
color-reference-rule_dark:
backgroundColor: "{colors.rule_dark}"
color-reference-rule_light:
backgroundColor: "{colors.rule_light}"
color-reference-subtle:
backgroundColor: "{colors.subtle}"
color-reference-disabled:
backgroundColor: "{colors.disabled}"
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"
---
# Quiet Grid Minimalism
## Overview
Quiet Grid Minimalism is an interface language for tools that want to feel deliberate, legible, and almost silent. It removes decorative persuasion so that structure, alignment, typography, and content order become the visual system. The language treats whitespace as a working material: not empty space, but a calibrated pause that separates decisions, clarifies hierarchy, and gives important content room to breathe. It is minimalist without becoming anonymous by relying on severe geometric alignment, visible grid discipline, rectangular material honesty, and restrained semantic color.
### Values
- {"name":"Reduction with evidence","explanation":"Every visible element must either communicate state, create hierarchy, or support task completion; if it only adds mood, remove it."}
- {"name":"Whitespace as structure","explanation":"Large margins, generous gutters, and sparse grouping create the primary rhythm instead of boxes, dividers, or ornamental fills."}
- {"name":"Typographic authority","explanation":"Hierarchy comes from weight, scale, line length, and tight letter spacing rather than color, icon density, or illustration."}
- {"name":"Geometric simplicity","explanation":"Containers, controls, and navigation use strict rectangles, rule lines, and a consistent square-ended geometry with no softened personality."}
- {"name":"Semantic restraint","explanation":"Color appears only when it carries meaning: focus, success, warning, error, or the single selected path."}
- {"name":"Material honesty","explanation":"Surfaces remain flat, white, and untextured; depth is indicated by spacing and borders instead of shadows or simulated materials."}
- {"name":"Content economy","explanation":"Labels are short, tables are sparse, and panels expose only the information needed for the current decision."}
### Anti-Values
- {"name":"Decorative minimalism","explanation":"Do not replace clarity with lifestyle emptiness, oversized hero slogans, or ornamental blankness."}
- {"name":"Chromatic branding","explanation":"Avoid palettes where color becomes personality; the system should remain largely black, white, and grey."}
- {"name":"Soft app friendliness","explanation":"Avoid bubbly radii, plush shadows, pastel backgrounds, and playful micro-illustrations."}
- {"name":"Dense control surfaces","explanation":"Do not pack every available action into the frame; force prioritization and progressive disclosure."}
### Visual Character
- Pure white canvas with flat #FFFFFF panels separated by 1px black or grey rule lines, never by shadows or tinted cards.
- Large measured whitespace using 48px to 96px section gaps and sparse grid gutters so negative space becomes the main composition device.
- Square 0px-radius rectangular controls and panels with crisp aligned edges to express geometric reduction and material honesty.
- Tight typographic system with -0.02em letter spacing on all text, strong size contrast, and restrained weights rather than decorative styling.
- Semantic color appears only as thin state indicators, focus rings, selected rows, and compact status marks; default UI stays monochrome.
## Colors
Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.
| Token | Value |
|-------|-------|
| primary | `#000000` |
| secondary | `#2B2B2B` |
| accent | `#0057FF` |
| background | `#FFFFFF` |
| surface | `#FFFFFF` |
| text | `#000000` |
| muted | `#6F6F6F` |
| border | `#D8D8D8` |
| error | `#C1121F` |
| success | `#137333` |
| warning | `#A05A00` |
| info | `#0057FF` |
| rule_dark | `#000000` |
| rule_light | `#E8E8E8` |
| subtle | `#F7F7F7` |
| disabled | `#B8B8B8` |
## Typography
- **Headline-Lg**: IBM Plex Sans, 1.953rem, weight 700, line-height 1.1.
- **Headline-Md**: IBM Plex Sans, 1.563rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.45.
- **Label-Md**: IBM Plex 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`
### Density
Quiet medium-low density chosen to make professional tools feel calm while preserving fast scanning in tables and status lists.
### Grid
Desktop uses a 12-column grid with 32px gutters and a max content width of 1280px. Main scenes reserve one empty or low-density column group as negative space. Panels align to 4-column and 8-column spans.
### Whitespace
Whitespace is the primary separator: 48px between modules, 64px to 96px between major sections, and 24px to 32px inside panels. Avoid cramped decorative minimalism.
### Breakpoints
- **Desktop**: 1024px and above: 12 columns with deliberate empty gutter
- **Tablet**: 768px to 1023px: 6 columns, panels reflow into two stacked regions
- **Mobile**: 480px and below: single column, full-width controls, table scroll only where unavoidable
## Elevation & Depth
### Shadows
- **Sm**: none
- **Md**: none
- **Lg**: none
## Shapes
### Rounded
- **None**: `0px`
- **Sm**: `0px`
- **Md**: `0px`
- **Lg**: `0px`
- **Full**: `9999px`
### Surfaces
- **Treatment**: flat
- **Card Style**: Flat white rectangular planes with no shadow, defined only by rule-line borders and internal whitespace.
- **Bg Pattern**: none
### Borders
- **Default Width**: 1px
- **Accent Width**: 2px
- **Style**: solid
- **Character**: Crisp architectural rule lines that expose the grid and separate information without adding decoration.
## Components
### Composition
Use a 12-column grid with generous 32px gutters on desktop. Align every header, card edge, table column, and control to the same grid. Prefer one dominant axis and one secondary column rather than scattered modules. Group related content by whitespace first, 1px rules second, and background changes last. Keep panels rectangular and flat. Use fewer larger regions instead of many nested cards. Leave at least one intentionally quiet open area in major screens.
### Hierarchy
Establish hierarchy through typographic scale, weight, and placement. Page titles should be large and quiet, labels should be small uppercase or mono-coded, and primary actions should be obvious through position and border contrast rather than bright fills. Body text remains black or muted grey; semantic color is reserved for state. Data hierarchy uses alignment, column width, and line rules instead of zebra stripes or badges everywhere.
### Density
Medium-low density with high information precision: compact rows are acceptable only inside tables, while decision areas use wide spacing and clear separation. Controls maintain 44px minimum touch targets even when the visual language feels severe.
### Signature Patterns
- Every major panel uses a flat white background with a 1px solid rule border and 0px border-radius, with no box-shadow allowed.
- Section headers use a two-part typographic lockup: small IBM Plex Mono index label above a larger IBM Plex Sans title aligned to the same left edge.
- Interactive focus and selected states use a thin 2px blue inset or left rule instead of filled colored backgrounds or glow effects.
- Tables and lists use horizontal 1px rules with generous vertical padding, no zebra striping, and mono numeric columns aligned right.
- The page composition includes an oversized whitespace gutter or empty grid column that remains intentionally blank on desktop.
## 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/quiet-grid-minimalism/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 screen in black, white, and grey; add the blue accent only after assigning a semantic purpose.
- Do Use 0px radius on all panels, inputs, cards, and buttons; reserve 9999px only for small status pills or avatars.
- Do Apply -0.02em letter spacing globally and rely on IBM Plex Sans weight changes for hierarchy.
- Do Separate groups with whitespace before adding borders; add a rule line only when the relationship needs precision.
- Do Make focus states visibly accessible with 2px blue outlines or inset rules that do not disturb layout.
- Do Keep labels short, tables sparse, and status language factual.
- Do Right-align numeric data and use IBM Plex Mono for times, counts, IDs, and compact metadata.
- Do Let one area of the desktop layout remain intentionally quiet to preserve the minimalist rhythm.
- Don't Do not use gradients, pastel backgrounds, glassmorphism, decorative blobs, or textured surfaces.
- Don't Do not use shadows to create depth; use spacing, alignment, and rule lines instead.
- Don't Do not introduce rounded card radii such as 8px, 12px, 20px, 32px, or 48px.
- Don't Do not color buttons, badges, or charts unless the color communicates state or selection.
- Don't Do not center everything; disciplined left alignment is the default.
- Don't Do not create component-catalog screens with sample controls unrelated to a real workflow.
- Don't Do not pack actions into every corner; expose the next likely decision and hide secondary options.
- Don't Do not use playful icon sets, emoji, or illustration to soften the interface.
### Usage Context
Best for productivity software, editorial systems, analytics workspaces, admin consoles, documentation tools, and decision dashboards where attention should stay on content and state.
### Accessibility
Maintain WCAG AA contrast by default through black text on white surfaces. Ensure keyboard focus is always visible with the blue 2px rule. Keep touch targets at least 44px, preserve readable 16px body text, and never rely on color alone for status; pair color with text and shape.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "quiet-grid-minimalism",
"type": "registry:theme",
"title": "Quiet Grid Minimalism shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FFFFFF",
"foreground": "#000000",
"card": "#FFFFFF",
"card-foreground": "#000000",
"popover": "#FFFFFF",
"popover-foreground": "#000000",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#2B2B2B",
"secondary-foreground": "#ffffff",
"muted": "#6F6F6F",
"muted-foreground": "#000000",
"accent": "#0057FF",
"accent-foreground": "#ffffff",
"destructive": "#C1121F",
"border": "#D8D8D8",
"input": "#D8D8D8",
"ring": "#0057FF",
"chart-1": "#000000",
"chart-2": "#2B2B2B",
"chart-3": "#0057FF",
"chart-4": "#137333",
"chart-5": "#A05A00",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#000000",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0057FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D8D8",
"sidebar-ring": "#0057FF",
"radius": "0px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#0057FF",
"accent-foreground": "#ffffff",
"destructive": "#C1121F",
"border": "#303642",
"input": "#303642",
"ring": "#0057FF",
"chart-1": "#000000",
"chart-2": "#2B2B2B",
"chart-3": "#0057FF",
"chart-4": "#137333",
"chart-5": "#A05A00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0057FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#0057FF",
"radius": "0px"
}
},
"meta": {
"source": "katagami",
"languageId": "quiet-grid-minimalism",
"slug": "quiet-grid-minimalism",
"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": {
"colors": [
"accent",
"background",
"border",
"disabled",
"error",
"info",
"muted",
"primary",
"rule_dark",
"rule_light",
"secondary",
"subtle",
"success",
"surface",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio",
"sizes",
"weights"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
```in the wild
embodiments
the full element showcase
embodiment · quiet-grid-minimalism
DESIGN.md
at a glance
Typography
headline-lgIBM Plex Sans · 31px · 700
The quick brown fox jumps
headline-mdIBM Plex Sans · 25px · 600
The quick brown fox jumps
body-mdIBM Plex Sans · 16px · 400
The quick brown fox jumps
label-mdIBM Plex Mono · 12px · 600
The quick brown fox jumps
Components
New
Card title
Components rendered with this language’s tokens — colors, type, and rounded corners as specified.
Spacing
- base8px
- xs4px
- sm8px
- md12px
- lg16px
- xl24px
- 2xl32px
- 3xl48px
- 4xl64px
- step-896px
Shape
none0px
sm0px
md0px
lg0px
full9999px
shadcn/ui
implementation kit
recommendedcompatibility fallback
DESIGN.md with shadcn
Copy this when the target app uses shadcn/ui. It packages the Katagami DESIGN.md context with the install list, theme variables, component recipes, preview-shot contract, and starter TSX in one Markdown companion.
advanced implementation filesoptional machine-readable theme, CSS, TSX starter, recipes, and preview contract
shadcn add
npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu tabletheme css
:root {
--background: #FFFFFF;
--foreground: #000000;
--card: #FFFFFF;
--card-foreground: #000000;
--popover: #FFFFFF;
--popover-foreground: #000000;
--primary: #000000;
--primary-foreground: #ffffff;
--secondary: #2B2B2B;
--secondary-foreground: #ffffff;
--muted: #6F6F6F;
--muted-foreground: #000000;
--accent: #0057FF;
--accent-foreground: #ffffff;
--destructive: #C1121F;
--border: #D8D8D8;
--input: #D8D8D8;
--ring: #0057FF;
--chart-1: #000000;
--chart-2: #2B2B2B;
--chart-3: #0057FF;
--chart-4: #137333;
--chart-5: #A05A00;
--sidebar: #FFFFFF;
--sidebar-foreground: #000000;
--sidebar-primary: #000000;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #0057FF;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #D8D8D8;
--sidebar-ring: #0057FF;
--radius: 0px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #000000;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #0057FF;
--accent-foreground: #ffffff;
--destructive: #C1121F;
--border: #303642;
--input: #303642;
--ring: #0057FF;
--chart-1: #000000;
--chart-2: #2B2B2B;
--chart-3: #0057FF;
--chart-4: #137333;
--chart-5: #A05A00;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #000000;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #0057FF;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #0057FF;
--radius: 0px;
}
tsx starter
import { Badge } from "@/components/ui/badge";
import { Button } from "@/components/ui/button";
import {
Card,
CardContent,
CardDescription,
CardFooter,
CardHeader,
CardTitle,
} from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Tabs, TabsList, TabsTrigger } from "@/components/ui/tabs";
export function QuietGridMinimalismShadcnKit() {
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">Quiet Grid Minimalism</h2>
<p className="mt-1 max-w-xl text-sm text-muted-foreground">
Use the Katagami registry theme, then compose these shadcn primitives
with the language-specific component recipes.
</p>
</div>
<Button>Apply theme</Button>
</div>
<Tabs defaultValue="components">
<TabsList>
<TabsTrigger value="components">Components</TabsTrigger>
<TabsTrigger value="states">States</TabsTrigger>
<TabsTrigger value="export">Export</TabsTrigger>
</TabsList>
</Tabs>
<Card>
<CardHeader>
<CardTitle>Component recipe</CardTitle>
<CardDescription>
Replace this starter content with the agent-authored product scene
from components.md and preview-shots.json.
</CardDescription>
</CardHeader>
<CardContent className="grid gap-3 sm:grid-cols-[1fr_auto]">
<Input defaultValue="Tokenized shadcn surface" aria-label="Recipe name" />
<Button variant="secondary">Preview state</Button>
</CardContent>
<CardFooter className="justify-between">
<Badge>Ready</Badge>
<Button variant="outline">Copy recipe</Button>
</CardFooter>
</Card>
</section>
);
}
theme JSONcompatibility fallback
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "quiet-grid-minimalism",
"type": "registry:theme",
"title": "Quiet Grid Minimalism shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#FFFFFF",
"foreground": "#000000",
"card": "#FFFFFF",
"card-foreground": "#000000",
"popover": "#FFFFFF",
"popover-foreground": "#000000",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#2B2B2B",
"secondary-foreground": "#ffffff",
"muted": "#6F6F6F",
"muted-foreground": "#000000",
"accent": "#0057FF",
"accent-foreground": "#ffffff",
"destructive": "#C1121F",
"border": "#D8D8D8",
"input": "#D8D8D8",
"ring": "#0057FF",
"chart-1": "#000000",
"chart-2": "#2B2B2B",
"chart-3": "#0057FF",
"chart-4": "#137333",
"chart-5": "#A05A00",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#000000",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0057FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D8D8",
"sidebar-ring": "#0057FF",
"radius": "0px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#000000",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#0057FF",
"accent-foreground": "#ffffff",
"destructive": "#C1121F",
"border": "#303642",
"input": "#303642",
"ring": "#0057FF",
"chart-1": "#000000",
"chart-2": "#2B2B2B",
"chart-3": "#0057FF",
"chart-4": "#137333",
"chart-5": "#A05A00",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#000000",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#0057FF",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#0057FF",
"radius": "0px"
}
},
"meta": {
"source": "katagami",
"languageId": "quiet-grid-minimalism",
"slug": "quiet-grid-minimalism",
"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": {
"colors": [
"accent",
"background",
"border",
"disabled",
"error",
"info",
"muted",
"primary",
"rule_dark",
"rule_light",
"secondary",
"subtle",
"success",
"surface",
"text",
"warning"
],
"typography": [
"base_size",
"body_font",
"google_fonts_url",
"heading_font",
"letter_spacing",
"line_height",
"mono_font",
"scale_ratio",
"sizes",
"weights"
],
"spacing": [
"base",
"scale"
],
"radii": [
"full",
"lg",
"md",
"none",
"sm"
],
"shadows": [
"lg",
"md",
"sm"
],
"surfaces": [
"bg_pattern",
"card_style",
"treatment"
],
"borders": [
"accent_width",
"character",
"default_width",
"style"
],
"motion": [
"duration",
"easing",
"philosophy"
]
}
}
}
component recipescompatibility fallback
# Quiet Grid Minimalism shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `quiet-grid-minimalism`
Slug: `quiet-grid-minimalism`
## Intent
Quiet Grid Minimalism is an interface language for tools that want to feel deliberate, legible, and almost silent. It removes decorative persuasion so that structure, alignment, typography, and content order become the visual system. The language treats whitespace as a working material: not empty space, but a calibrated pause that separates decisions, clarifies hierarchy, and gives important content room to breathe. It is minimalist without becoming anonymous by relying on severe geometric alignment, visible grid discipline, rectangular material honesty, and restrained semantic color.
## 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:
{
"primary": "#000000",
"secondary": "#2B2B2B",
"accent": "#0057FF",
"background": "#FFFFFF",
"surface": "#FFFFFF",
"text": "#000000",
"muted": "#6F6F6F",
"border": "#D8D8D8",
"error": "#C1121F",
"success": "#137333",
"warning": "#A05A00",
"info": "#0057FF",
"rule_dark": "#000000",
"rule_light": "#E8E8E8",
"subtle": "#F7F7F7",
"disabled": "#B8B8B8"
}
Typography:
{
"heading_font": "IBM Plex Sans",
"body_font": "IBM Plex Sans",
"mono_font": "IBM Plex Mono",
"base_size": "16px",
"scale_ratio": 1.25,
"line_height": 1.45,
"letter_spacing": "-0.02em",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Sans:wght@400;500;600;700&family=IBM+Plex+Mono:wght@400;500;600&display=swap",
"sizes": {
"xs": "12px",
"sm": "14px",
"base": "16px",
"md": "20px",
"lg": "25px",
"xl": "31px",
"xxl": "48px"
},
"weights": {
"regular": 400,
"medium": 500,
"semibold": 600,
"bold": 700
}
}
## Visual character to preserve
- Pure white canvas with flat #FFFFFF panels separated by 1px black or grey rule lines, never by shadows or tinted cards.
- Large measured whitespace using 48px to 96px section gaps and sparse grid gutters so negative space becomes the main composition device.
- Square 0px-radius rectangular controls and panels with crisp aligned edges to express geometric reduction and material honesty.
- Tight typographic system with -0.02em letter spacing on all text, strong size contrast, and restrained weights rather than decorative styling.
- Semantic color appears only as thin state indicators, focus rings, selected rows, and compact status marks; default UI stays monochrome.
## ShadSync visual profile
{
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"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/quiet-grid-minimalism/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 screen in black, white, and grey; add the blue accent only after assigning a semantic purpose.; Use 0px radius on all panels, inputs, cards, and buttons; reserve 9999px only for small status pills or avatars.; Apply -0.02em letter spacing globally and rely on IBM Plex Sans weight changes for hierarchy.; Separate groups with whitespace before adding borders; add a rule line only when the relationship needs precision.; Make focus states visibly accessible with 2px blue outlines or inset rules that do not disturb layout.; Keep labels short, tables sparse, and status language factual.; Right-align numeric data and use IBM Plex Mono for times, counts, IDs, and compact metadata.; Let one area of the desktop layout remain intentionally quiet to preserve the minimalist rhythm.
- Do not: Do not use gradients, pastel backgrounds, glassmorphism, decorative blobs, or textured surfaces.; Do not use shadows to create depth; use spacing, alignment, and rule lines instead.; Do not introduce rounded card radii such as 8px, 12px, 20px, 32px, or 48px.; Do not color buttons, badges, or charts unless the color communicates state or selection.; Do not center everything; disciplined left alignment is the default.; Do not create component-catalog screens with sample controls unrelated to a real workflow.; Do not pack actions into every corner; expose the next likely decision and hide secondary options.; Do not use playful icon sets, emoji, or illustration to soften the interface.
## 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 QuietGridMinimalismShadcnKit() {
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">Quiet Grid Minimalism</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
{
"density": "Quiet medium-low density chosen to make professional tools feel calm while preserving fast scanning in tables and status lists.",
"grid": "Desktop uses a 12-column grid with 32px gutters and a max content width of 1280px. Main scenes reserve one empty or low-density column group as negative space. Panels align to 4-column and 8-column spans.",
"whitespace": "Whitespace is the primary separator: 48px between modules, 64px to 96px between major sections, and 24px to 32px inside panels. Avoid cramped decorative minimalism.",
"breakpoints": {
"desktop": "1024px and above: 12 columns with deliberate empty gutter",
"tablet": "768px to 1023px: 6 columns, panels reflow into two stacked regions",
"mobile": "480px and below: single column, full-width controls, table scroll only where unavoidable"
}
}
preview shotscompatibility fallback
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "quiet-grid-minimalism",
"name": "Quiet Grid Minimalism",
"slug": "quiet-grid-minimalism"
},
"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": [
"Pure white canvas with flat #FFFFFF panels separated by 1px black or grey rule lines, never by shadows or tinted cards.",
"Large measured whitespace using 48px to 96px section gaps and sparse grid gutters so negative space becomes the main composition device.",
"Square 0px-radius rectangular controls and panels with crisp aligned edges to express geometric reduction and material honesty.",
"Tight typographic system with -0.02em letter spacing on all text, strong size contrast, and restrained weights rather than decorative styling.",
"Semantic color appears only as thin state indicators, focus rings, selected rows, and compact status marks; default UI stays monochrome."
],
"visualProfile": {
"family": "system",
"material": "flat",
"contour": "default",
"border": "solid",
"underlay": false,
"grain": false,
"stickerBadges": false,
"motion": "still",
"density": "dense",
"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": "Quiet Grid Minimalism 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 screen in black, white, and grey; add the blue accent only after assigning a semantic purpose.",
"Use 0px radius on all panels, inputs, cards, and buttons; reserve 9999px only for small status pills or avatars.",
"Apply -0.02em letter spacing globally and rely on IBM Plex Sans weight changes for hierarchy.",
"Separate groups with whitespace before adding borders; add a rule line only when the relationship needs precision.",
"Make focus states visibly accessible with 2px blue outlines or inset rules that do not disturb layout.",
"Keep labels short, tables sparse, and status language factual.",
"Right-align numeric data and use IBM Plex Mono for times, counts, IDs, and compact metadata.",
"Let one area of the desktop layout remain intentionally quiet to preserve the minimalist rhythm."
],
"dont": [
"Do not use gradients, pastel backgrounds, glassmorphism, decorative blobs, or textured surfaces.",
"Do not use shadows to create depth; use spacing, alignment, and rule lines instead.",
"Do not introduce rounded card radii such as 8px, 12px, 20px, 32px, or 48px.",
"Do not color buttons, badges, or charts unless the color communicates state or selection.",
"Do not center everything; disciplined left alignment is the default.",
"Do not create component-catalog screens with sample controls unrelated to a real workflow.",
"Do not pack actions into every corner; expose the next likely decision and hide secondary options.",
"Do not use playful icon sets, emoji, or illustration to soften the interface."
]
}
}
related