Sashiko Grid Knowledge Weaving
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
- restrained grey construction lines interrupted by indigo stitch nodes and short thread ticks
- default width
- 1px
- style
- solid hairline with dashed stitch overlays for active/provenance edges
colors12 items
motion3 items
- duration
- 160ms
- easing
- cubic-bezier(0.2, 0, 0, 1)
- philosophy
- small alignment-confirming transitions only: thread highlights fade in, cards lift one pixel, and focus outlines stitch into place without bounce
radii5 items
- full
- 9999px
- lg
- 6px
- md
- 4px
- none
- 0
- sm
- 2px
shadows3 items
- lg
- 0 18px 48px rgba(23,32,51,0.10)
- md
- 0 8px 24px rgba(23,32,51,0.08)
- sm
- 0 1px 2px rgba(23,32,51,0.05)
spacing2 items
- base
- 8px
- scale
- 4, 8, 12, 16, 24, 32, 48, 64
surfaces3 items
- bg pattern
- 8px paper grid and sparse horizontal thread rules made from thin repeating-linear-gradients
- card style
- rectangular low-radius cards with 1px grey seams plus selective indigo stitch-edge accents
- treatment
- soft paper white over warm ground with faint grid texture and no glossy effects
typography8 items
- base size
- 16px
- body font
- Source Serif 4
- google fonts url
- https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=IBM+Plex+Mono:wght@400;500;600&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&display=swap
- heading font
- Fraunces
- letter spacing
- -0.01em
- line height
- 1.58
- mono font
- IBM Plex Mono
- scale ratio
- 1.2
rules
Compose around one dominant woven evidence canvas: a long-form note column, a citation gutter, and a compact right rail of timelines/widgets connected by aligned stitch threads rather than equal dashboard tiles.
Medium-light density with 8px rhythm: long notes breathe at 18px line-height while widgets stay compact through mono labels, small tick marks, and tight chart rows.
Headings are sparse and editorial; body text gets generous measure; metadata is mono and small; indigo accents mark relationships, focus, and provenance while dark text carries primary reading.
layout
mobile 375px single column; tablet 768px two-column note plus rail; desktop 1200px+ woven canvas with fixed citation gutter
12-column desktop grid on an 8px base; content spans 7 columns, citation gutter spans 2, widget rail spans 3, collapsing to stacked cards while preserving seam alignment.
Whitespace is measured as cloth tension: 16px inside dense widgets, 24px in note cards, 32px between major woven regions, with no arbitrary gaps.
guidance
- Use indigo only for relationship threads, focus, active stitch edges, and sparse chart/citation accents.
- Make textile influence structural through seams, nodes, gutters, and repair labels across all components.
- Keep cards rectangular and aligned to the 8px/2x grid so mixed modules feel woven, not scattered.
- Use real document labels, source IDs, quote anchors, revision states, and timeline dates in product scenes.
- Do not use all-over decorative embroidery patterns that ignore component boundaries or hierarchy.
- Do not create a generic analytics dashboard with equal metric cards and saturated status colors.
- Do not mix arbitrary radius sizes; use the committed small rectangular geometry.
- Do not over-darken the UI or add glass, neon, heavy shadows, or skeuomorphic fabric texture.
katagami spec
# Sashiko Grid Knowledge Weaving ## Philosophy A precise light interface language for knowledge work where sashiko repair logic becomes the structure of notes, citations, timelines, and compact data widgets: white paper surfaces are held together by thin indigo stitch lines, measured grid seams, and visibly connected evidence trails. ### Values - Visible repair as navigation: edits, citations, and relationships should be traceable rather than hidden. - Grid discipline: every module aligns to a 2x spacing weave so long-form content and widgets can coexist calmly. - Craft provenance: sources, timestamps, and authorship marks are treated as first-class interface material. - Quiet precision: small blue accents guide the eye without turning the product into an enterprise dashboard. ### Anti-Values - Generic card dashboards where color chips and metrics replace authored structure. - Decorative textile motifs that do not affect layout, states, data grouping, or responsive behavior. - Heavy gradients, dark chrome, inflated radii, or bright status palettes that overpower paper-and-thread contrast. ### Visual Character - White and warm paper panels sit on a faint off-white ground, separated by 1px grey hairlines and occasional 2px indigo stitched borders drawn with repeating linear-gradients. - A strict 8px base grid creates modular cards whose seams align vertically and horizontally, with timeline rails and citation gutters snapping to the same rhythm. - Thin blue connector threads run between notes, evidence chips, chart ticks, and revision markers using dotted borders, dashed rules, and small square stitch nodes. - Typography pairs crisp editorial headings with highly readable long-form body text; metadata, citations, and timestamps use a compact mono rhythm for provenance. - Interaction states show visible repair: focus rings are double indigo outlines, selected modules gain short perpendicular stitch marks, and edited content receives small mending labels. ## Tokens ### Borders - **Accent Width**: 2px - **Character**: restrained grey construction lines interrupted by indigo stitch nodes and short thread ticks - **Default Width**: 1px - **Style**: solid hairline with dashed stitch overlays for active/provenance edges ### Colors | Name | Value | |------|-------| | accent | `#2B73D2` | | background | `#F7F5EF` | | border | `#D8DEE8` | | error | `#B84A4A` | | info | `#2B73D2` | | muted | `#6B7280` | | primary | `#244A86` | | secondary | `#6F7D91` | | success | `#3E7C59` | | surface | `#FFFFFF` | | text | `#172033` | | warning | `#A87524` | ### Motion - **Duration**: 160ms - **Easing**: cubic-bezier(0.2, 0, 0, 1) - **Philosophy**: small alignment-confirming transitions only: thread highlights fade in, cards lift one pixel, and focus outlines stitch into place without bounce ### Radii - **Full**: 9999px - **Lg**: 6px - **Md**: 4px - **None**: 0 - **Sm**: 2px ### Shadows - **Lg**: 0 18px 48px rgba(23,32,51,0.10) - **Md**: 0 8px 24px rgba(23,32,51,0.08) - **Sm**: 0 1px 2px rgba(23,32,51,0.05) ### Spacing - **Base**: 8px - **Scale**: [4,8,12,16,24,32,48,64] ### Surfaces - **Bg Pattern**: 8px paper grid and sparse horizontal thread rules made from thin repeating-linear-gradients - **Card Style**: rectangular low-radius cards with 1px grey seams plus selective indigo stitch-edge accents - **Treatment**: soft paper white over warm ground with faint grid texture and no glossy effects ### Typography - **Base Size**: 16px - **Body Font**: Source Serif 4 - **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=IBM+Plex+Mono:wght@400;500;600&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&display=swap - **Heading Font**: Fraunces - **Letter Spacing**: -0.01em - **Line Height**: 1.58 - **Mono Font**: IBM Plex Mono - **Scale Ratio**: 1.2 ## Rules ### Composition Compose around one dominant woven evidence canvas: a long-form note column, a citation gutter, and a compact right rail of timelines/widgets connected by aligned stitch threads rather than equal dashboard tiles. ### Density Medium-light density with 8px rhythm: long notes breathe at 18px line-height while widgets stay compact through mono labels, small tick marks, and tight chart rows. ### Hierarchy Headings are sparse and editorial; body text gets generous measure; metadata is mono and small; indigo accents mark relationships, focus, and provenance while dark text carries primary reading. ### Signature Patterns - Stitch-edge borders use repeating-linear-gradient masks on one or two sides of a card so active modules feel sewn into the grid rather than merely highlighted. - Citation gutter threads align footnote chips, source IDs, and quote anchors with dotted indigo connectors that continue across card seams. - Timeline and chart marks are rendered as tiny perpendicular stitch ticks on hairline rails, avoiding heavy filled bars or enterprise-dashboard color blocks. - Repair labels appear as small off-white patches with 1px grey outlines and two blue stitch knots, used for edits, unresolved claims, and merged notes. ## Layout ### Breakpoints mobile 375px single column; tablet 768px two-column note plus rail; desktop 1200px+ woven canvas with fixed citation gutter ### Grid 12-column desktop grid on an 8px base; content spans 7 columns, citation gutter spans 2, widget rail spans 3, collapsing to stacked cards while preserving seam alignment. ### Whitespace Whitespace is measured as cloth tension: 16px inside dense widgets, 24px in note cards, 32px between major woven regions, with no arbitrary gaps. ## Guidance ### Do - Use indigo only for relationship threads, focus, active stitch edges, and sparse chart/citation accents. - Make textile influence structural through seams, nodes, gutters, and repair labels across all components. - Keep cards rectangular and aligned to the 8px/2x grid so mixed modules feel woven, not scattered. - Use real document labels, source IDs, quote anchors, revision states, and timeline dates in product scenes. ### Don't - Do not use all-over decorative embroidery patterns that ignore component boundaries or hierarchy. - Do not create a generic analytics dashboard with equal metric cards and saturated status colors. - Do not mix arbitrary radius sizes; use the committed small rectangular geometry. - Do not over-darken the UI or add glass, neon, heavy shadows, or skeuomorphic fabric texture. ### Accessibility Maintain WCAG AA contrast, never encode source status by color alone, keep focus rings visible as double stitch outlines, and preserve readable long-form text on mobile. ### Usage Context Best for research notebooks, citation managers, archival timelines, knowledge bases, study tools, and analytical writing products that need craft and precision without enterprise dashboard heaviness.
DESIGN.md
---
version: "alpha"
name: "Sashiko Grid Knowledge Weaving"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
accent: "#2B73D2"
background: "#F7F5EF"
border: "#D8DEE8"
error: "#B84A4A"
info: "#2B73D2"
muted: "#6B7280"
primary: "#244A86"
secondary: "#6F7D91"
success: "#3E7C59"
surface: "#FFFFFF"
text: "#172033"
warning: "#A87524"
typography:
headline-lg:
fontFamily: "Fraunces"
fontSize: "1.728rem"
fontWeight: 700
lineHeight: 1.1
letterSpacing: "-0.01em"
headline-md:
fontFamily: "Fraunces"
fontSize: "1.44rem"
fontWeight: 600
lineHeight: 1.15
letterSpacing: "-0.01em"
body-md:
fontFamily: "Source Serif 4"
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"
---
# Sashiko Grid Knowledge Weaving
## Overview
A precise light interface language for knowledge work where sashiko repair logic becomes the structure of notes, citations, timelines, and compact data widgets: white paper surfaces are held together by thin indigo stitch lines, measured grid seams, and visibly connected evidence trails.
### Values
- Visible repair as navigation: edits, citations, and relationships should be traceable rather than hidden.
- Grid discipline: every module aligns to a 2x spacing weave so long-form content and widgets can coexist calmly.
- Craft provenance: sources, timestamps, and authorship marks are treated as first-class interface material.
- Quiet precision: small blue accents guide the eye without turning the product into an enterprise dashboard.
### Anti-Values
- Generic card dashboards where color chips and metrics replace authored structure.
- Decorative textile motifs that do not affect layout, states, data grouping, or responsive behavior.
- Heavy gradients, dark chrome, inflated radii, or bright status palettes that overpower paper-and-thread contrast.
### Visual Character
- White and warm paper panels sit on a faint off-white ground, separated by 1px grey hairlines and occasional 2px indigo stitched borders drawn with repeating linear-gradients.
- A strict 8px base grid creates modular cards whose seams align vertically and horizontally, with timeline rails and citation gutters snapping to the same rhythm.
- Thin blue connector threads run between notes, evidence chips, chart ticks, and revision markers using dotted borders, dashed rules, and small square stitch nodes.
- Typography pairs crisp editorial headings with highly readable long-form body text; metadata, citations, and timestamps use a compact mono rhythm for provenance.
- Interaction states show visible repair: focus rings are double indigo outlines, selected modules gain short perpendicular stitch marks, and edited content receives small mending labels.
## 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 | `#2B73D2` |
| background | `#F7F5EF` |
| border | `#D8DEE8` |
| error | `#B84A4A` |
| info | `#2B73D2` |
| muted | `#6B7280` |
| primary | `#244A86` |
| secondary | `#6F7D91` |
| success | `#3E7C59` |
| surface | `#FFFFFF` |
| text | `#172033` |
| warning | `#A87524` |
## Typography
- **Headline-Lg**: Fraunces, 1.728rem, weight 700, line-height 1.1.
- **Headline-Md**: Fraunces, 1.44rem, weight 600, line-height 1.15.
- **Body-Md**: Source Serif 4, 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 single column; tablet 768px two-column note plus rail; desktop 1200px+ woven canvas with fixed citation gutter
### Grid
12-column desktop grid on an 8px base; content spans 7 columns, citation gutter spans 2, widget rail spans 3, collapsing to stacked cards while preserving seam alignment.
### Whitespace
Whitespace is measured as cloth tension: 16px inside dense widgets, 24px in note cards, 32px between major woven regions, with no arbitrary gaps.
## Elevation & Depth
### Shadows
- **Lg**: 0 18px 48px rgba(23,32,51,0.10)
- **Md**: 0 8px 24px rgba(23,32,51,0.08)
- **Sm**: 0 1px 2px rgba(23,32,51,0.05)
## Shapes
### Rounded
- **Full**: `9999px`
- **Lg**: `6px`
- **Md**: `4px`
- **None**: `0px`
- **Sm**: `2px`
### Surfaces
- **Bg Pattern**: 8px paper grid and sparse horizontal thread rules made from thin repeating-linear-gradients
- **Card Style**: rectangular low-radius cards with 1px grey seams plus selective indigo stitch-edge accents
- **Treatment**: soft paper white over warm ground with faint grid texture and no glossy effects
### Borders
- **Accent Width**: 2px
- **Character**: restrained grey construction lines interrupted by indigo stitch nodes and short thread ticks
- **Default Width**: 1px
- **Style**: solid hairline with dashed stitch overlays for active/provenance edges
## Components
### Composition
Compose around one dominant woven evidence canvas: a long-form note column, a citation gutter, and a compact right rail of timelines/widgets connected by aligned stitch threads rather than equal dashboard tiles.
### Density
Medium-light density with 8px rhythm: long notes breathe at 18px line-height while widgets stay compact through mono labels, small tick marks, and tight chart rows.
### Hierarchy
Headings are sparse and editorial; body text gets generous measure; metadata is mono and small; indigo accents mark relationships, focus, and provenance while dark text carries primary reading.
### Signature Patterns
- Stitch-edge borders use repeating-linear-gradient masks on one or two sides of a card so active modules feel sewn into the grid rather than merely highlighted.
- Citation gutter threads align footnote chips, source IDs, and quote anchors with dotted indigo connectors that continue across card seams.
- Timeline and chart marks are rendered as tiny perpendicular stitch ticks on hairline rails, avoiding heavy filled bars or enterprise-dashboard color blocks.
- Repair labels appear as small off-white patches with 1px grey outlines and two blue stitch knots, used for edits, unresolved claims, and merged notes.
## 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-019ed743-6dce-7150-98d4-7f01ddee619a/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 indigo only for relationship threads, focus, active stitch edges, and sparse chart/citation accents.
- Do Make textile influence structural through seams, nodes, gutters, and repair labels across all components.
- Do Keep cards rectangular and aligned to the 8px/2x grid so mixed modules feel woven, not scattered.
- Do Use real document labels, source IDs, quote anchors, revision states, and timeline dates in product scenes.
- Don't Do not use all-over decorative embroidery patterns that ignore component boundaries or hierarchy.
- Don't Do not create a generic analytics dashboard with equal metric cards and saturated status colors.
- Don't Do not mix arbitrary radius sizes; use the committed small rectangular geometry.
- Don't Do not over-darken the UI or add glass, neon, heavy shadows, or skeuomorphic fabric texture.
### Accessibility
Maintain WCAG AA contrast, never encode source status by color alone, keep focus rings visible as double stitch outlines, and preserve readable long-form text on mobile.
### Usage Context
Best for research notebooks, citation managers, archival timelines, knowledge bases, study tools, and analytical writing products that need craft and precision without enterprise dashboard heaviness.
shadcn/ui theme
```json
{
"$schema": "https://ui.shadcn.com/schema/registry-item.json",
"name": "sashiko-grid-knowledge-weaving",
"type": "registry:theme",
"title": "Sashiko Grid Knowledge Weaving shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F5EF",
"foreground": "#172033",
"card": "#FFFFFF",
"card-foreground": "#172033",
"popover": "#FFFFFF",
"popover-foreground": "#172033",
"primary": "#244A86",
"primary-foreground": "#ffffff",
"secondary": "#6F7D91",
"secondary-foreground": "#ffffff",
"muted": "#6B7280",
"muted-foreground": "#172033",
"accent": "#2B73D2",
"accent-foreground": "#ffffff",
"destructive": "#B84A4A",
"border": "#D8DEE8",
"input": "#D8DEE8",
"ring": "#2B73D2",
"chart-1": "#244A86",
"chart-2": "#6F7D91",
"chart-3": "#2B73D2",
"chart-4": "#3E7C59",
"chart-5": "#A87524",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#172033",
"sidebar-primary": "#244A86",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2B73D2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8DEE8",
"sidebar-ring": "#2B73D2",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#244A86",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#2B73D2",
"accent-foreground": "#ffffff",
"destructive": "#B84A4A",
"border": "#303642",
"input": "#303642",
"ring": "#2B73D2",
"chart-1": "#244A86",
"chart-2": "#6F7D91",
"chart-3": "#2B73D2",
"chart-4": "#3E7C59",
"chart-5": "#A87524",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#244A86",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2B73D2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#2B73D2",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ed743-6dce-7150-98d4-7f01ddee619a",
"slug": "sashiko-grid-knowledge-weaving",
"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: #F7F5EF;
--foreground: #172033;
--card: #FFFFFF;
--card-foreground: #172033;
--popover: #FFFFFF;
--popover-foreground: #172033;
--primary: #244A86;
--primary-foreground: #ffffff;
--secondary: #6F7D91;
--secondary-foreground: #ffffff;
--muted: #6B7280;
--muted-foreground: #172033;
--accent: #2B73D2;
--accent-foreground: #ffffff;
--destructive: #B84A4A;
--border: #D8DEE8;
--input: #D8DEE8;
--ring: #2B73D2;
--chart-1: #244A86;
--chart-2: #6F7D91;
--chart-3: #2B73D2;
--chart-4: #3E7C59;
--chart-5: #A87524;
--sidebar: #FFFFFF;
--sidebar-foreground: #172033;
--sidebar-primary: #244A86;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #2B73D2;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #D8DEE8;
--sidebar-ring: #2B73D2;
--radius: 4px;
}
.dark {
--background: #0f1115;
--foreground: #f8fafc;
--card: #181b22;
--card-foreground: #f8fafc;
--popover: #181b22;
--popover-foreground: #f8fafc;
--primary: #244A86;
--primary-foreground: #ffffff;
--secondary: #252a33;
--secondary-foreground: #f8fafc;
--muted: #252a33;
--muted-foreground: #a1a1aa;
--accent: #2B73D2;
--accent-foreground: #ffffff;
--destructive: #B84A4A;
--border: #303642;
--input: #303642;
--ring: #2B73D2;
--chart-1: #244A86;
--chart-2: #6F7D91;
--chart-3: #2B73D2;
--chart-4: #3E7C59;
--chart-5: #A87524;
--sidebar: #181b22;
--sidebar-foreground: #f8fafc;
--sidebar-primary: #244A86;
--sidebar-primary-foreground: #ffffff;
--sidebar-accent: #2B73D2;
--sidebar-accent-foreground: #ffffff;
--sidebar-border: #303642;
--sidebar-ring: #2B73D2;
--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 SashikoGridKnowledgeWeavingShadcnKit() {
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">Sashiko Grid Knowledge Weaving</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": "sashiko-grid-knowledge-weaving",
"type": "registry:theme",
"title": "Sashiko Grid Knowledge Weaving shadcn Theme",
"cssVars": {
"theme": {},
"light": {
"background": "#F7F5EF",
"foreground": "#172033",
"card": "#FFFFFF",
"card-foreground": "#172033",
"popover": "#FFFFFF",
"popover-foreground": "#172033",
"primary": "#244A86",
"primary-foreground": "#ffffff",
"secondary": "#6F7D91",
"secondary-foreground": "#ffffff",
"muted": "#6B7280",
"muted-foreground": "#172033",
"accent": "#2B73D2",
"accent-foreground": "#ffffff",
"destructive": "#B84A4A",
"border": "#D8DEE8",
"input": "#D8DEE8",
"ring": "#2B73D2",
"chart-1": "#244A86",
"chart-2": "#6F7D91",
"chart-3": "#2B73D2",
"chart-4": "#3E7C59",
"chart-5": "#A87524",
"sidebar": "#FFFFFF",
"sidebar-foreground": "#172033",
"sidebar-primary": "#244A86",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2B73D2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#D8DEE8",
"sidebar-ring": "#2B73D2",
"radius": "4px"
},
"dark": {
"background": "#0f1115",
"foreground": "#f8fafc",
"card": "#181b22",
"card-foreground": "#f8fafc",
"popover": "#181b22",
"popover-foreground": "#f8fafc",
"primary": "#244A86",
"primary-foreground": "#ffffff",
"secondary": "#252a33",
"secondary-foreground": "#f8fafc",
"muted": "#252a33",
"muted-foreground": "#a1a1aa",
"accent": "#2B73D2",
"accent-foreground": "#ffffff",
"destructive": "#B84A4A",
"border": "#303642",
"input": "#303642",
"ring": "#2B73D2",
"chart-1": "#244A86",
"chart-2": "#6F7D91",
"chart-3": "#2B73D2",
"chart-4": "#3E7C59",
"chart-5": "#A87524",
"sidebar": "#181b22",
"sidebar-foreground": "#f8fafc",
"sidebar-primary": "#244A86",
"sidebar-primary-foreground": "#ffffff",
"sidebar-accent": "#2B73D2",
"sidebar-accent-foreground": "#ffffff",
"sidebar-border": "#303642",
"sidebar-ring": "#2B73D2",
"radius": "4px"
}
},
"meta": {
"source": "katagami",
"languageId": "en-019ed743-6dce-7150-98d4-7f01ddee619a",
"slug": "sashiko-grid-knowledge-weaving",
"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"
]
}
}
}
# Sashiko Grid Knowledge Weaving shadcn/ui Components
Artifact: `component-recipes-v1`
Author: `katagami-ui-projection`
Language ID: `en-019ed743-6dce-7150-98d4-7f01ddee619a`
Slug: `sashiko-grid-knowledge-weaving`
## Intent
A precise light interface language for knowledge work where sashiko repair logic becomes the structure of notes, citations, timelines, and compact data widgets: white paper surfaces are held together by thin indigo stitch lines, measured grid seams, and visibly connected evidence trails.
## 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": "#2B73D2",
"background": "#F7F5EF",
"border": "#D8DEE8",
"error": "#B84A4A",
"info": "#2B73D2",
"muted": "#6B7280",
"primary": "#244A86",
"secondary": "#6F7D91",
"success": "#3E7C59",
"surface": "#FFFFFF",
"text": "#172033",
"warning": "#A87524"
}
Typography:
{
"base_size": "16px",
"body_font": "Source Serif 4",
"google_fonts_url": "https://fonts.googleapis.com/css2?family=Fraunces:opsz,wght@9..144,600;9..144,700&family=IBM+Plex+Mono:wght@400;500;600&family=Source+Serif+4:opsz,wght@8..60,400;8..60,500;8..60,600&display=swap",
"heading_font": "Fraunces",
"letter_spacing": "-0.01em",
"line_height": 1.58,
"mono_font": "IBM Plex Mono",
"scale_ratio": 1.2
}
## Visual character to preserve
- White and warm paper panels sit on a faint off-white ground, separated by 1px grey hairlines and occasional 2px indigo stitched borders drawn with repeating linear-gradients.
- A strict 8px base grid creates modular cards whose seams align vertically and horizontally, with timeline rails and citation gutters snapping to the same rhythm.
- Thin blue connector threads run between notes, evidence chips, chart ticks, and revision markers using dotted borders, dashed rules, and small square stitch nodes.
- Typography pairs crisp editorial headings with highly readable long-form body text; metadata, citations, and timestamps use a compact mono rhythm for provenance.
- Interaction states show visible repair: focus rings are double indigo outlines, selected modules gain short perpendicular stitch marks, and edited content receives small mending labels.
## ShadSync visual profile
{
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": false,
"grain": true,
"stickerBadges": true,
"motion": "lift",
"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/sashiko-grid-knowledge-weaving/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 indigo only for relationship threads, focus, active stitch edges, and sparse chart/citation accents.; Make textile influence structural through seams, nodes, gutters, and repair labels across all components.; Keep cards rectangular and aligned to the 8px/2x grid so mixed modules feel woven, not scattered.; Use real document labels, source IDs, quote anchors, revision states, and timeline dates in product scenes.
- Do not: Do not use all-over decorative embroidery patterns that ignore component boundaries or hierarchy.; Do not create a generic analytics dashboard with equal metric cards and saturated status colors.; Do not mix arbitrary radius sizes; use the committed small rectangular geometry.; Do not over-darken the UI or add glass, neon, heavy shadows, or skeuomorphic fabric texture.
## 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 SashikoGridKnowledgeWeavingShadcnKit() {
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">Sashiko Grid Knowledge Weaving</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 single column; tablet 768px two-column note plus rail; desktop 1200px+ woven canvas with fixed citation gutter",
"grid": "12-column desktop grid on an 8px base; content spans 7 columns, citation gutter spans 2, widget rail spans 3, collapsing to stacked cards while preserving seam alignment.",
"whitespace": "Whitespace is measured as cloth tension: 16px inside dense widgets, 24px in note cards, 32px between major woven regions, with no arbitrary gaps."
}
{
"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-019ed743-6dce-7150-98d4-7f01ddee619a",
"name": "Sashiko Grid Knowledge Weaving",
"slug": "sashiko-grid-knowledge-weaving"
},
"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": [
"White and warm paper panels sit on a faint off-white ground, separated by 1px grey hairlines and occasional 2px indigo stitched borders drawn with repeating linear-gradients.",
"A strict 8px base grid creates modular cards whose seams align vertically and horizontally, with timeline rails and citation gutters snapping to the same rhythm.",
"Thin blue connector threads run between notes, evidence chips, chart ticks, and revision markers using dotted borders, dashed rules, and small square stitch nodes.",
"Typography pairs crisp editorial headings with highly readable long-form body text; metadata, citations, and timestamps use a compact mono rhythm for provenance.",
"Interaction states show visible repair: focus rings are double indigo outlines, selected modules gain short perpendicular stitch marks, and edited content receives small mending labels."
],
"visualProfile": {
"family": "paper-collage",
"material": "paper",
"contour": "default",
"border": "dashed",
"underlay": false,
"grain": true,
"stickerBadges": true,
"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": "Sashiko Grid Knowledge Weaving 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 indigo only for relationship threads, focus, active stitch edges, and sparse chart/citation accents.",
"Make textile influence structural through seams, nodes, gutters, and repair labels across all components.",
"Keep cards rectangular and aligned to the 8px/2x grid so mixed modules feel woven, not scattered.",
"Use real document labels, source IDs, quote anchors, revision states, and timeline dates in product scenes."
],
"dont": [
"Do not use all-over decorative embroidery patterns that ignore component boundaries or hierarchy.",
"Do not create a generic analytics dashboard with equal metric cards and saturated status colors.",
"Do not mix arbitrary radius sizes; use the committed small rectangular geometry.",
"Do not over-darken the UI or add glass, neon, heavy shadows, or skeuomorphic fabric texture."
]
}
}