Katagami Information Weave
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
- 2px
- character
- Sumi-gray hairlines, pale fiber borders, and occasional aizome thread rules that align across columns.
- default width
- 1px
- style
- solid with double-rule and dotted-mask variants
colors12 items
motion3 items
- duration
- 140ms
- easing
- cubic-bezier(0.2, 0, 0.1, 1)
- philosophy
- Quiet state confirmation: borders darken, accent threads extend, and paper tint changes without bouncing or scaling.
radii5 items
- full
- 9999px
- lg
- 6px
- md
- 4px
- none
- 0
- sm
- 2px
shadows3 items
- lg
- 0 0 0 1px rgba(43,45,47,0.06)
- md
- 0 0 0 1px rgba(43,45,47,0.04)
- sm
- none
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
- bg pattern
- Two repeating-linear-gradient fiber layers plus sparse radial perforations reserved for structural separators.
- card style
- Flat rectangular paper cards with 1px fiber borders, 4px radius, internal thread rails, and no blur or shadow.
- treatment
- Warm paper panels on a woven fiber field; variation comes from tint, inset rules, and masked dividers, not elevation.
typography8 items
- base size
- 16px
- body font
- IBM Plex Sans
- google fonts url
- https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;450;500;600&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap
- heading font
- Newsreader
- letter spacing
- -0.01em
- line height
- 1.58
- mono font
- IBM Plex Mono
- scale ratio
- 1.2
rules
Compose screens as reading workbenches: one primary narrative column, one context rail, and one evidence strand, aligned by continuous vertical and horizontal hairlines.
Support high information density with generous line height, compact metadata rows, and sectional breathing room every three to five content bands.
Use size sparingly and rely on typeface contrast, small caps labels, line weight, and position; headings are calm editorial anchors, not marketing headlines.
layout
mobile 375px, tablet 768px, desktop 1200px, wide 1440px
Desktop uses 12 columns with a 72px side margin, 24px gutters, and persistent context rails; tablet collapses to 8 columns; mobile becomes one woven narrative stack.
Whitespace is layered like margins around paper sheets: narrow inside dense rows, wider after decision bands, and asymmetric in rails to avoid dashboard sameness.
guidance
- Use katagami pattern as structure: masks, dividers, alignment rails, and density rhythm.
- Keep text real, specific, and product-like with long passages, metadata, states, and decision records.
- Use pale accent color for selected strands, focus rings, and quiet status chips only.
- Maintain accessible contrast on all text and ensure focus states are visible through border and thread changes.
- Do not use Japanese motifs as decorative icons, hero art, chop marks, or wallpaper.
- Do not turn the interface into a KPI dashboard; data surfaces should support reading and synthesis.
- Do not rely on heavy shadows, gradients, glossy cards, or default rounded SaaS styling.
- Do not over-pattern large fields; perforation and fiber textures must remain below content priority.
katagami spec
# Katagami Information Weave ## Philosophy Katagami Information Weave is a light, text-forward product language for AYA-style knowledge work: many strands of context are interlaced into calm reading surfaces, with Japanese stencil craft translated into structure, masks, divider rhythm, and density rather than illustration. ### Values - Contextual weaving: related text, evidence, and decisions are visibly threaded without becoming a dashboard grid. - Craft restraint: katagami influence appears as pierced separators, quiet masks, and modular density rhythms, never as scenic ornament. - Reading clarity: typography, line length, and hierarchy keep long-form interface copy comfortable and scannable. - Low-chroma precision: paper whites, sumi gray, fiber neutrals, and one aizome accent carry state without visual noise. ### Anti-Values - Decorative Japan cues such as fans, waves, red seals, faux brush lettering, or background wallpaper. - Dashboard maximalism with boxed KPI tiles dominating the product story. - Generic rounded SaaS cards with heavy shadows, saturated gradients, and interchangeable hierarchy. ### Visual Character - Use a 12-column text grid with narrow 1px sumi hairlines and occasional double-rule dividers to simulate warp and weft alignment. - Apply paper-fiber background texture through subtle repeating-linear-gradient layers at 0deg and 90deg below all surfaces. - Create katagami-informed perforated separators with CSS radial-gradient masks used only between sections and inside metadata rails. - Keep containers nearly square with 2px to 6px radii, no drop shadows, and contrast built from borders, insets, and tonal paper panels. - Use pale aizome accent as a thin left thread, focus outline, and small status mark rather than large filled buttons or banners. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: Sumi-gray hairlines, pale fiber borders, and occasional aizome thread rules that align across columns. - **Default Width**: 1px - **Style**: solid with double-rule and dotted-mask variants ### Colors | Name | Value | |------|-------| | accent | `#6D8494` | | background | `#F7F4EC` | | border | `#D8D0C1` | | error | `#9B4D43` | | info | `#607F91` | | muted | `#837C70` | | primary | `#2B2D2F` | | secondary | `#6F6A60` | | success | `#5D7A62` | | surface | `#FFFCF4` | | text | `#242321` | | warning | `#A47A3E` | ### Motion - **Duration**: 140ms - **Easing**: cubic-bezier(0.2, 0, 0.1, 1) - **Philosophy**: Quiet state confirmation: borders darken, accent threads extend, and paper tint changes without bouncing or scaling. ### Radii - **Full**: 9999px - **Lg**: 6px - **Md**: 4px - **None**: 0 - **Sm**: 2px ### Shadows - **Lg**: 0 0 0 1px rgba(43,45,47,0.06) - **Md**: 0 0 0 1px rgba(43,45,47,0.04) - **Sm**: none ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Bg Pattern**: Two repeating-linear-gradient fiber layers plus sparse radial perforations reserved for structural separators. - **Card Style**: Flat rectangular paper cards with 1px fiber borders, 4px radius, internal thread rails, and no blur or shadow. - **Treatment**: Warm paper panels on a woven fiber field; variation comes from tint, inset rules, and masked dividers, not elevation. ### Typography - **Base Size**: 16px - **Body Font**: IBM Plex Sans - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;450;500;600&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap - **Heading Font**: Newsreader - **Letter Spacing**: -0.01em - **Line Height**: 1.58 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.2 ## Rules ### Composition Compose screens as reading workbenches: one primary narrative column, one context rail, and one evidence strand, aligned by continuous vertical and horizontal hairlines. ### Density Support high information density with generous line height, compact metadata rows, and sectional breathing room every three to five content bands. ### Hierarchy Use size sparingly and rely on typeface contrast, small caps labels, line weight, and position; headings are calm editorial anchors, not marketing headlines. ### Signature Patterns - Perforation bands: CSS radial-gradient mask strips create katagami-like openings only as dividers between content strata. - Thread rails: 2px vertical accent lines run beside active decisions, selected rows, and focus areas to imply woven context. - Fiber grid underlay: intersecting low-opacity repeating-linear-gradients provide paper texture and alignment without visible wallpaper. - Staggered evidence slips: small text panels offset by 8px increments create asymmetry while remaining locked to the column grid. - Density knots: compact metadata clusters use mono numerals, dot leaders, and ruled edges to show compressed related context. ## Layout ### Breakpoints mobile 375px, tablet 768px, desktop 1200px, wide 1440px ### Grid Desktop uses 12 columns with a 72px side margin, 24px gutters, and persistent context rails; tablet collapses to 8 columns; mobile becomes one woven narrative stack. ### Whitespace Whitespace is layered like margins around paper sheets: narrow inside dense rows, wider after decision bands, and asymmetric in rails to avoid dashboard sameness. ## Guidance ### Do - Use katagami pattern as structure: masks, dividers, alignment rails, and density rhythm. - Keep text real, specific, and product-like with long passages, metadata, states, and decision records. - Use pale accent color for selected strands, focus rings, and quiet status chips only. - Maintain accessible contrast on all text and ensure focus states are visible through border and thread changes. ### Don't - Do not use Japanese motifs as decorative icons, hero art, chop marks, or wallpaper. - Do not turn the interface into a KPI dashboard; data surfaces should support reading and synthesis. - Do not rely on heavy shadows, gradients, glossy cards, or default rounded SaaS styling. - Do not over-pattern large fields; perforation and fiber textures must remain below content priority.
DESIGN.md
---
version: "alpha"
name: "Katagami Information Weave"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#6D8494"
background: "#F7F4EC"
border: "#D8D0C1"
error: "#9B4D43"
info: "#607F91"
muted: "#837C70"
primary: "#2B2D2F"
secondary: "#6F6A60"
success: "#5D7A62"
surface: "#FFFCF4"
text: "#242321"
warning: "#A47A3E"
typography:
headline-lg:
fontFamily: "Newsreader"
fontSize: "1.728rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.01em"
headline-md:
fontFamily: "Newsreader"
fontSize: "1.44rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.01em"
body-md:
fontFamily: "IBM Plex Sans"
fontSize: "16px"
fontWeight: 400
lineHeight: 1.58
letterSpacing: "-0.01em"
label-md:
fontFamily: "IBM Plex Mono"
fontSize: "0.75rem"
fontWeight: 600
lineHeight: 1
letterSpacing: "0.08em"
rounded:
full: "9999px"
lg: "6px"
md: "4px"
none: "0px"
sm: "2px"
spacing:
base: "8px"
xs: "4px"
sm: "8px"
md: "12px"
lg: "16px"
xl: "24px"
2xl: "32px"
3xl: "48px"
4xl: "64px"
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"
---
# Katagami Information Weave
## Overview
Katagami Information Weave is a light, text-forward product language for AYA-style knowledge work: many strands of context are interlaced into calm reading surfaces, with Japanese stencil craft translated into structure, masks, divider rhythm, and density rather than illustration.
### Values
- Contextual weaving: related text, evidence, and decisions are visibly threaded without becoming a dashboard grid.
- Craft restraint: katagami influence appears as pierced separators, quiet masks, and modular density rhythms, never as scenic ornament.
- Reading clarity: typography, line length, and hierarchy keep long-form interface copy comfortable and scannable.
- Low-chroma precision: paper whites, sumi gray, fiber neutrals, and one aizome accent carry state without visual noise.
### Anti-Values
- Decorative Japan cues such as fans, waves, red seals, faux brush lettering, or background wallpaper.
- Dashboard maximalism with boxed KPI tiles dominating the product story.
- Generic rounded SaaS cards with heavy shadows, saturated gradients, and interchangeable hierarchy.
### Visual Character
- Use a 12-column text grid with narrow 1px sumi hairlines and occasional double-rule dividers to simulate warp and weft alignment.
- Apply paper-fiber background texture through subtle repeating-linear-gradient layers at 0deg and 90deg below all surfaces.
- Create katagami-informed perforated separators with CSS radial-gradient masks used only between sections and inside metadata rails.
- Keep containers nearly square with 2px to 6px radii, no drop shadows, and contrast built from borders, insets, and tonal paper panels.
- Use pale aizome accent as a thin left thread, focus outline, and small status mark rather than large filled buttons or banners.
## 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 | `#6D8494` |
| background | `#F7F4EC` |
| border | `#D8D0C1` |
| error | `#9B4D43` |
| info | `#607F91` |
| muted | `#837C70` |
| primary | `#2B2D2F` |
| secondary | `#6F6A60` |
| success | `#5D7A62` |
| surface | `#FFFCF4` |
| text | `#242321` |
| warning | `#A47A3E` |
## Typography
- **Headline-Lg**: Newsreader, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: Newsreader, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: IBM Plex Sans, 16px, weight 400, line-height 1.58.
- **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`
### Breakpoints
mobile 375px, tablet 768px, desktop 1200px, wide 1440px
### Grid
Desktop uses 12 columns with a 72px side margin, 24px gutters, and persistent context rails; tablet collapses to 8 columns; mobile becomes one woven narrative stack.
### Whitespace
Whitespace is layered like margins around paper sheets: narrow inside dense rows, wider after decision bands, and asymmetric in rails to avoid dashboard sameness.
## Elevation & Depth
### Shadows
- **Lg**: 0 0 0 1px rgba(43,45,47,0.06)
- **Md**: 0 0 0 1px rgba(43,45,47,0.04)
- **Sm**: none
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `6px`
- **Md**: `4px`
- **None**: `0px`
- **Sm**: `2px`
### Surfaces
- **Bg Pattern**: Two repeating-linear-gradient fiber layers plus sparse radial perforations reserved for structural separators.
- **Card Style**: Flat rectangular paper cards with 1px fiber borders, 4px radius, internal thread rails, and no blur or shadow.
- **Treatment**: Warm paper panels on a woven fiber field; variation comes from tint, inset rules, and masked dividers, not elevation.
### Borders
- **Accent Width**: 2px
- **Character**: Sumi-gray hairlines, pale fiber borders, and occasional aizome thread rules that align across columns.
- **Default Width**: 1px
- **Style**: solid with double-rule and dotted-mask variants
## Components
### Composition
Compose screens as reading workbenches: one primary narrative column, one context rail, and one evidence strand, aligned by continuous vertical and horizontal hairlines.
### Density
Support high information density with generous line height, compact metadata rows, and sectional breathing room every three to five content bands.
### Hierarchy
Use size sparingly and rely on typeface contrast, small caps labels, line weight, and position; headings are calm editorial anchors, not marketing headlines.
### Signature Patterns
- Perforation bands: CSS radial-gradient mask strips create katagami-like openings only as dividers between content strata.
- Thread rails: 2px vertical accent lines run beside active decisions, selected rows, and focus areas to imply woven context.
- Fiber grid underlay: intersecting low-opacity repeating-linear-gradients provide paper texture and alignment without visible wallpaper.
- Staggered evidence slips: small text panels offset by 8px increments create asymmetry while remaining locked to the column grid.
- Density knots: compact metadata clusters use mono numerals, dot leaders, and ruled edges to show compressed related context.
## shadcn/ui Usage
When the target app uses shadcn/ui, copy DESIGN.md with shadcn instead of the plain DESIGN.md. It contains the same Katagami design-language source plus the shadcn/ui primitives, imports, theme variables, component recipes, and preview-shot guidance.
DESIGN.md with shadcn: `/language/en-019edab1-9cca-7c22-9a2b-b91a52cdb71d/DESIGN.with-shadcn.md`.
The shadcn page also exposes optional machine-readable files for automation, but the human-facing handoff is DESIGN.md with shadcn.
Install recommended primitives with `npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table`.
Use these primitives in shadcn apps:
- button
- card
- input
- textarea
- select
- dialog
- sheet
- tabs
- badge
- separator
- checkbox
- switch
- slider
- tooltip
- dropdown-menu
- table
Implementation rule for agents: import shadcn primitives from `@/components/ui/*`, apply the generated CSS variables first, then compose the language-specific recipes from the companion MD. Katagami remains the source of truth; shadcn names are the implementation surface.
## Do's and Don'ts
- Do Use katagami pattern as structure: masks, dividers, alignment rails, and density rhythm.
- Do Keep text real, specific, and product-like with long passages, metadata, states, and decision records.
- Do Use pale accent color for selected strands, focus rings, and quiet status chips only.
- Do Maintain accessible contrast on all text and ensure focus states are visible through border and thread changes.
- Don't Do not use Japanese motifs as decorative icons, hero art, chop marks, or wallpaper.
- Don't Do not turn the interface into a KPI dashboard; data surfaces should support reading and synthesis.
- Don't Do not rely on heavy shadows, gradients, glossy cards, or default rounded SaaS styling.
- Don't Do not over-pattern large fields; perforation and fiber textures must remain below content priority.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "katagami-information-weave",
"type": "registry:theme",
"title": "Katagami Information Weave shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F4EC",
"foreground": "#242321",
"card": "#FFFCF4",
"card-foreground": "#242321",
"popover": "#FFFCF4",
"popover-foreground": "#242321",
"primary": "#2B2D2F",
"primary-foreground": "#ffffff",
"secondary": "#6F6A60",
"secondary-foreground": "#ffffff",
"muted": "#837C70",
"muted-foreground": "#242321",
"accent": "#6D8494",
"accent-foreground": "#ffffff",
"destructive": "#9B4D43",
"border": "#D8D0C1",
"input": "#D8D0C1",
"ring": "#6D8494",
"chart-1": "#2B2D2F",
"chart-2": "#6F6A60",
"chart-3": "#6D8494",
"chart-4": "#5D7A62",
"chart-5": "#A47A3E",
"sidebar": "#FFFCF4",
"sidebar-foreground": "#242321",
"sidebar-primary": "#2B2D2F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#607F91",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D0C1",
"sidebar-ring": "#6D8494",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#2B2D2F",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#6D8494",
"accent-foreground": "#ffffff",
"destructive": "#9B4D43",
"border": "#303642",
"input": "#303642",
"ring": "#6D8494",
"chart-1": "#2B2D2F",
"chart-2": "#6F6A60",
"chart-3": "#6D8494",
"chart-4": "#5D7A62",
"chart-5": "#A47A3E",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#2B2D2F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#6D8494",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#6D8494",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019edab1-9cca-7c22-9a2b-b91a52cdb71d",
"slug": "katagami-information-weave",
"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
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: #F7F4EC;
--foreground: #242321;
--card: #FFFCF4;
--card-foreground: #242321;
--popover: #FFFCF4;
--popover-foreground: #242321;
--primary: #2B2D2F;
--primary-foreground: #ffffff;
--secondary: #6F6A60;
--secondary-foreground: #ffffff;
--muted: #837C70;
--muted-foreground: #242321;
--accent: #6D8494;
--accent-foreground: #ffffff;
--destructive: #9B4D43;
--border: #D8D0C1;
--input: #D8D0C1;
--ring: #6D8494;
--chart-1: #2B2D2F;
--chart-2: #6F6A60;
--chart-3: #6D8494;
--chart-4: #5D7A62;
--chart-5: #A47A3E;
--sidebar: #FFFCF4;
--sidebar-foreground: #242321;
--sidebar-primary: #2B2D2F;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #607F91;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #D8D0C1;
--sidebar-ring: #6D8494;
--radius: 4px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #2B2D2F;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #6D8494;
--accent-foreground: #ffffff;
--destructive: #9B4D43;
--border: #303642;
--input: #303642;
--ring: #6D8494;
--chart-1: #2B2D2F;
--chart-2: #6F6A60;
--chart-3: #6D8494;
--chart-4: #5D7A62;
--chart-5: #A47A3E;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #2B2D2F;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #6D8494;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #6D8494;
--radius: 4px;
}
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 KatagamiInformationWeaveShadcnKit() {
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">Katagami Information Weave</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": "katagami-information-weave",
"type": "registry:theme",
"title": "Katagami Information Weave shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F4EC",
"foreground": "#242321",
"card": "#FFFCF4",
"card-foreground": "#242321",
"popover": "#FFFCF4",
"popover-foreground": "#242321",
"primary": "#2B2D2F",
"primary-foreground": "#ffffff",
"secondary": "#6F6A60",
"secondary-foreground": "#ffffff",
"muted": "#837C70",
"muted-foreground": "#242321",
"accent": "#6D8494",
"accent-foreground": "#ffffff",
"destructive": "#9B4D43",
"border": "#D8D0C1",
"input": "#D8D0C1",
"ring": "#6D8494",
"chart-1": "#2B2D2F",
"chart-2": "#6F6A60",
"chart-3": "#6D8494",
"chart-4": "#5D7A62",
"chart-5": "#A47A3E",
"sidebar": "#FFFCF4",
"sidebar-foreground": "#242321",
"sidebar-primary": "#2B2D2F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#607F91",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8D0C1",
"sidebar-ring": "#6D8494",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#2B2D2F",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#6D8494",
"accent-foreground": "#ffffff",
"destructive": "#9B4D43",
"border": "#303642",
"input": "#303642",
"ring": "#6D8494",
"chart-1": "#2B2D2F",
"chart-2": "#6F6A60",
"chart-3": "#6D8494",
"chart-4": "#5D7A62",
"chart-5": "#A47A3E",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#2B2D2F",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#6D8494",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#6D8494",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019edab1-9cca-7c22-9a2b-b91a52cdb71d",
"slug": "katagami-information-weave",
"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"
]
}
}
}
# Katagami Information Weave shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019edab1-9cca-7c22-9a2b-b91a52cdb71d`
Slug: `katagami-information-weave`
## Intent
Katagami Information Weave is a light, text-forward product language for AYA-style knowledge work: many strands of context are interlaced into calm reading surfaces, with Japanese stencil craft translated into structure, masks, divider rhythm, and density rather than illustration.
## 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": "#6D8494",
"background": "#F7F4EC",
"border": "#D8D0C1",
"error": "#9B4D43",
"info": "#607F91",
"muted": "#837C70",
"primary": "#2B2D2F",
"secondary": "#6F6A60",
"success": "#5D7A62",
"surface": "#FFFCF4",
"text": "#242321",
"warning": "#A47A3E"
}
Typography:
{
"base_size": "16px",
"body_font": "IBM Plex Sans",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500&family=IBM+Plex+Sans:wght@400;450;500;600&family=Newsreader:opsz,wght@6..72,500;6..72,600&display=swap",
"heading_font": "Newsreader",
"letter_spacing": "-0.01em",
"line_height": 1.58,
"mono_font": "IBM Plex Mono",
"scale_ratio": 1.2
}
## Visual character to preserve
- Use a 12-column text grid with narrow 1px sumi hairlines and occasional double-rule dividers to simulate warp and weft alignment.
- Apply paper-fiber background texture through subtle repeating-linear-gradient layers at 0deg and 90deg below all surfaces.
- Create katagami-informed perforated separators with CSS radial-gradient masks used only between sections and inside metadata rails.
- Keep containers nearly square with 2px to 6px radii, no drop shadows, and contrast built from borders, insets, and tonal paper panels.
- Use pale aizome accent as a thin left thread, focus outline, and small status mark rather than large filled buttons or banners.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"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/katagami-information-weave/registry-theme.json` variables, then use these recipes for composition and state design.
- Preserve Katagami token names as source metadata; shadcn semantic names are only the export surface.
- Do: Use katagami pattern as structure: masks, dividers, alignment rails, and density rhythm.; Keep text real, specific, and product-like with long passages, metadata, states, and decision records.; Use pale accent color for selected strands, focus rings, and quiet status chips only.; Maintain accessible contrast on all text and ensure focus states are visible through border and thread changes.
- Do not: Do not use Japanese motifs as decorative icons, hero art, chop marks, or wallpaper.; Do not turn the interface into a KPI dashboard; data surfaces should support reading and synthesis.; Do not rely on heavy shadows, gradients, glossy cards, or default rounded SaaS styling.; Do not over-pattern large fields; perforation and fiber textures must remain below content priority.
## 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 KatagamiInformationWeaveShadcnKit() {
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">Katagami Information Weave</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 375px, tablet 768px, desktop 1200px, wide 1440px",
"grid": "Desktop uses 12 columns with a 72px side margin, 24px gutters, and persistent context rails; tablet collapses to 8 columns; mobile becomes one woven narrative stack.",
"whitespace": "Whitespace is layered like margins around paper sheets: narrow inside dense rows, wider after decision bands, and asymmetric in rails to avoid dashboard sameness."
}
{
"artifact": "katagami:shadcn-preview-shots",
"version": "preview-shots-v1",
"generator": "katagami-ui-compatibility-projection",
"generatedBy": "katagami-ui-projection",
"requiresVisualProfile": true,
"schema": "katagami:shadcn-preview-shots/renderable-v1",
"renderable": true,
"language": {
"id": "en-019edab1-9cca-7c22-9a2b-b91a52cdb71d",
"name": "Katagami Information Weave",
"slug": "katagami-information-weave"
},
"installCommand": "npx shadcn@latest add button card input textarea select dialog sheet tabs badge separator checkbox switch slider tooltip dropdown-menu table",
"primitives": [
"button",
"card",
"input",
"textarea",
"select",
"dialog",
"sheet",
"tabs",
"badge",
"separator",
"checkbox",
"switch",
"slider",
"tooltip",
"dropdown-menu",
"table"
],
"identityNotes": [
"Use a 12-column text grid with narrow 1px sumi hairlines and occasional double-rule dividers to simulate warp and weft alignment.",
"Apply paper-fiber background texture through subtle repeating-linear-gradient layers at 0deg and 90deg below all surfaces.",
"Create katagami-informed perforated separators with CSS radial-gradient masks used only between sections and inside metadata rails.",
"Keep containers nearly square with 2px to 6px radii, no drop shadows, and contrast built from borders, insets, and tonal paper panels.",
"Use pale aizome accent as a thin left thread, focus outline, and small status mark rather than large filled buttons or banners."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "solid",
"underlay": true,
"grain": true,
"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": "Katagami Information Weave launch room",
"description": "A product team workspace where navigation, filters, metrics, and dense rows carry the language's visible structure.",
"primaryAction": "Apply theme",
"secondaryAction": "Review states",
"stats": [
{
"label": "components",
"value": "16",
"tone": "accent"
},
{
"label": "states",
"value": "ready"
},
{
"label": "density",
"value": "balanced",
"tone": "warning"
}
],
"rows": [
{
"label": "Primary flow",
"value": "mapped",
"status": "active"
},
{
"label": "Token coverage",
"value": "semantic",
"status": "synced"
},
{
"label": "Responsive proof",
"value": "queued",
"status": "review"
}
],
"statuses": [
"Active",
"Synced",
"Draft"
]
}
},
{
"id": "detail-editor",
"title": "Detail editor",
"viewport": "tablet",
"primitives": [
"button",
"card",
"input",
"textarea",
"select",
"checkbox",
"switch",
"slider",
"dialog",
"sheet"
],
"composition": "A focused editing flow with form fields, validation, confirmation, and a contextual side panel.",
"mustShow": [
"focus ring",
"error or destructive state",
"dialog or sheet treatment",
"written guidance content"
],
"avoid": [
"unstyled browser controls",
"floating cards inside cards",
"missing labels"
],
"scene": {
"eyebrow": "editing flow",
"headline": "Language recipe editor",
"description": "A focused form proving labels, validation, toggles, panel rhythm, and action hierarchy.",
"primaryAction": "Save recipe",
"secondaryAction": "Open sheet",
"fields": [
{
"label": "Component family",
"value": "Narrative cards"
},
{
"label": "State treatment",
"value": "Visible focus + validation"
},
{
"label": "Motion",
"value": "Small lift, no opacity-only fade"
}
],
"statuses": [
"Focus",
"Invalid",
"Confirmed"
]
}
},
{
"id": "data-operations",
"title": "Data operations",
"viewport": "mobile",
"primitives": [
"button",
"tabs",
"badge",
"dropdown-menu",
"table",
"tooltip",
"separator"
],
"composition": "A compact operational view proving row rhythm, stacked actions, menu states, badges, and empty/destructive states.",
"mustShow": [
"responsive reflow",
"dense row styling",
"menu affordance",
"status badge system"
],
"avoid": [
"desktop-only tables",
"text overflow",
"default shadcn spacing without Katagami character"
],
"scene": {
"eyebrow": "operations",
"headline": "Compact review queue",
"description": "A narrow viewport scene with rows, menus, tooltips, badges, and destructive affordances.",
"primaryAction": "Resolve",
"secondaryAction": "Filter",
"rows": [
{
"label": "Button hierarchy",
"value": "approved",
"status": "ok"
},
{
"label": "Table rhythm",
"value": "needs pass",
"status": "watch"
},
{
"label": "Empty state",
"value": "designed",
"status": "done"
}
],
"statuses": [
"Queued",
"Blocked",
"Done"
]
}
}
],
"componentRecipes": [
{
"primitive": "button",
"intent": "Prove action hierarchy, focus, disabled, and destructive states."
},
{
"primitive": "card",
"intent": "Carry the language surface, border, elevation, and density rules."
},
{
"primitive": "input",
"intent": "Show labels, focus rings, validation, and spacing rhythm."
},
{
"primitive": "textarea",
"intent": "Show longer guidance, validation copy, and writing density."
},
{
"primitive": "select",
"intent": "Show filtering, selection contrast, and menu trigger styling."
},
{
"primitive": "dialog",
"intent": "Show centered decision states and overlay treatment."
},
{
"primitive": "sheet",
"intent": "Show contextual side panels and responsive editing."
},
{
"primitive": "tabs",
"intent": "Show navigational structure and active/inactive contrast."
},
{
"primitive": "badge",
"intent": "Show compact status vocabulary and semantic colors."
},
{
"primitive": "separator",
"intent": "Show section rhythm without generic gray dividers."
},
{
"primitive": "checkbox",
"intent": "Show binary selection with visible focus and checked states."
},
{
"primitive": "switch",
"intent": "Show settings toggles and on/off contrast."
},
{
"primitive": "slider",
"intent": "Show numeric adjustment with track/thumb styling."
},
{
"primitive": "tooltip",
"intent": "Show concise explanation styling above compact controls."
},
{
"primitive": "dropdown-menu",
"intent": "Show action menus, destructive items, and grouped choices."
},
{
"primitive": "table",
"intent": "Show dense operational data, separators, row states, and responsive behavior."
}
],
"qualityRules": {
"do": [
"Use katagami pattern as structure: masks, dividers, alignment rails, and density rhythm.",
"Keep text real, specific, and product-like with long passages, metadata, states, and decision records.",
"Use pale accent color for selected strands, focus rings, and quiet status chips only.",
"Maintain accessible contrast on all text and ensure focus states are visible through border and thread changes."
],
"dont": [
"Do not use Japanese motifs as decorative icons, hero art, chop marks, or wallpaper.",
"Do not turn the interface into a KPI dashboard; data surfaces should support reading and synthesis.",
"Do not rely on heavy shadows, gradients, glossy cards, or default rounded SaaS styling.",
"Do not over-pattern large fields; perforation and fiber textures must remain below content priority."
]
}
}