back to gallery
design language·sashiko

Sashiko

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
Sashiko reads the source brief — a disciplined, ruled, captioned planner page that makes room for bounded illustration — as the most disciplined page of all: a counted-thread stitch chart, dyed in aizome indigo rather than printed on paper. A fine pierce-grid of stitch points runs through the dark ground and every panel, so each module reads as charted cloth. Dividers are dashed running stitches in ecru thread, never hard borders. One madder floss marks the element you can act on; gold flags what to read next. Structure is stitched in, never drawn on.
values
the screen is a counted-stitch chart: every region snaps to one pierce-griddividers and marks are running stitches in ecru thread, never bordersa deep aizome-indigo ground, dark and saturated, never paper-whiteillustration bounded inside an embroidery hoop or a framed windowone madder floss on the live element; gold for tags and knots
anti-values
×the generic SaaS hero: an eyebrow tag, a button pair, a three-stat row×hard borders or a single accent edge stamped on a card×imagery bleeding across the controls that drive the studio×the serif/italic headline swap, or an oversized italic serif×soft blobs and arbitrary radii that erase the counted, charted feel
tokens
colors18 items
primary
#D24A3C
secondary
#5E86B8
accent
#D24A3C
bg
#0F2038
background
#0F2038
surface
#16294A
surface_raised
#1E3658
text
#EFE7D3
muted
#9FB0C9
border
#2C4470
on_accent
#FBF6E7
ecru
#EDE6D2
madder
#D24A3C
gold
#DBA844
error
#D24A3C
success
#82AA6B
warning
#DBA844
info
#5E86B8
typography10 items
heading font
Space Grotesk
body font
Inter
mono font
Spline Sans Mono
base size
17px
scale ratio
1.2
line height
1.62
letter spacing
-0.01em
heading weight
700
heading transform
none
google fonts url
https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap
spacing2 items
base
8px
scale
4, 8, 12, 16, 24, 32, 48, 64, 96
radii5 items
none
0
sm
16px
md
16px
lg
24px
full
9999px
shadows3 items
sm
0 1px 0 rgba(237,230,210,0.05) inset, 0 8px 20px rgba(0,0,0,0.30)
md
0 1px 0 rgba(237,230,210,0.05) inset, 0 16px 36px rgba(0,0,0,0.36)
lg
0 28px 60px rgba(0,0,0,0.46)
surfaces3 items
treatment
woven-textile
card style
a charted block: aizome-indigo cloth under a 26px pierce-grid dot fill, lifted by soft shadow, with a stitched coordinate tab; no border ring
bg pattern
pierce-grid
borders4 items
default width
0
accent width
0
style
none
character
no borders; separation comes from dashed running-stitch dividers, the pierce-grid, and soft shadow
motion3 items
duration
720ms
easing
cubic-bezier(0.22,0.78,0.2,1)
philosophy
deliberate: running stitches plot in cell by cell (stroke-dashoffset) and panels rise slightly; the settled state is the no-JS default
rules
composition
Compose every region as a counted-stitch chart on a 26px pierce-grid: generous margins, charted blocks that snap to the grid, stitched coordinate tabs protruding from panel edges, and the open margin left for mono annotations.
hierarchy
Hierarchy comes from stitched tabs, running-stitch subdivisions, a quiet grotesque, mono coordinates, and one madder floss on the live element — not from large scale shifts.
density

Moderately dense. Information can be plentiful, but every cluster sits inside a charted panel with visible spacing, a coordinate, and stitched micro-labels.

signature
The counted-cell stitch chart: every panel snaps to the pierce-grid and carries a row·col coordinate; dividers, the headline highlighter and chart lines are dashed running stitches; one madder floss marks the live element.
layout
grid
A counted desk-page grid capped at ~1180-1200px on desktop, collapsing to a single column under 640-760px while preserving margin gutters and the 26px pierce-grid inside modules.
whitespace
Generous perimeter margins, moderate inter-panel spacing, small internal padding always padded above titles; the open margin carries mono coordinates and timestamps.
density

comfortable-to-moderate

responsive
Single column under 640-760px; the pierce-grid, stitched tabs and coordinates persist at every width; tables scroll inside their panel; hoops and framed windows move below primary content; the hero headline uses clamp(2rem,6.6vw,4rem) and wraps, rendering at the 32px floor at 390px without clipping.
breakpoints
sm
390px
md
640px
lg
900px
xl
1440px
guidance
do
  • Let the 26px pierce-grid show through the indigo ground and every panel.
  • Label sections with short stitched tabs and a row·col coordinate.
  • Divide rows and frames with dashed running stitches in ecru; keep illustration inside a hoop or framed window.
  • Reserve one madder floss for the live element of a view; use gold for tags and knots.
  • Leave the margin open for timestamps, owners and coordinates.
avoid
  • Open on the generic SaaS hero (eyebrow tag, button pair, three-stat row) or swap a serif headline to italic.
  • Put a hard border or a single accent edge on a card, or trap navigation in a floating pill bar.
  • Let imagery bleed across functional controls.
  • Spread all three flosses across the chrome in the same view.
  • Round everything into soft blobs or use arbitrary radii that erase the counted, charted feel.
imagery
pairs with

woven-sampler-embroidery

summary
Subjects rendered as hand-embroidered woven textile — directional satin and long-and-short fills, couched outlines, french knots on a visible linen warp-weft weave — worked in the Aizome Skein flosses (ecru, madder, gold) on a deep indigo ground.
subjects
a counted sashiko motif of asanoha and seven-treasure patterns on indigoan embroidered carp bounded in a hoopa stitched wave banda woven map of an order ledger
usage
One full-bleed hero per landing; spot illustration bounded inside an embroidery hoop or a 16:10 framed window, driven by --hero-image, never bleeding across controls.
katagami spec
# Sashiko

## Philosophy

Sashiko reads the source brief — a disciplined, ruled, captioned planner page that makes room for bounded illustration — as the most disciplined page of all: a counted-thread stitch chart, dyed in aizome indigo rather than printed on paper. A fine pierce-grid of stitch points runs through the dark ground and every panel, so each module reads as charted cloth. Dividers are dashed running stitches in ecru thread, never hard borders. One madder floss marks the element you can act on; gold flags what to read next. Structure is stitched in, never drawn on.

### Values

- the screen is a counted-stitch chart: every region snaps to one pierce-grid
- dividers and marks are running stitches in ecru thread, never borders
- a deep aizome-indigo ground, dark and saturated, never paper-white
- illustration bounded inside an embroidery hoop or a framed window
- one madder floss on the live element; gold for tags and knots

### Anti-Values

- the generic SaaS hero: an eyebrow tag, a button pair, a three-stat row
- hard borders or a single accent edge stamped on a card
- imagery bleeding across the controls that drive the studio
- the serif/italic headline swap, or an oversized italic serif
- soft blobs and arbitrary radii that erase the counted, charted feel

### Visual Character

- a counted pierce-grid shows through the indigo ground and every panel, so the module reads as charted cloth
- section labels are short stitched tabs (gold, madder or indigo) protruding from a panel's top edge
- dividers, the headline highlighter and chart lines are dashed running stitches in ecru thread
- illustration is bounded inside an embroidery hoop or a 16:10 framed window, never bleeding across controls
- timestamps, owners and row·col coordinates tuck into the open margin as quiet mono annotations

## Tokens

### Colors

| Name | Value |
|------|-------|
| primary | `#D24A3C` |
| secondary | `#5E86B8` |
| accent | `#D24A3C` |
| bg | `#0F2038` |
| background | `#0F2038` |
| surface | `#16294A` |
| surface_raised | `#1E3658` |
| text | `#EFE7D3` |
| muted | `#9FB0C9` |
| border | `#2C4470` |
| on_accent | `#FBF6E7` |
| ecru | `#EDE6D2` |
| madder | `#D24A3C` |
| gold | `#DBA844` |
| error | `#D24A3C` |
| success | `#82AA6B` |
| warning | `#DBA844` |
| info | `#5E86B8` |

### Typography

- **Heading Font**: Space Grotesk
- **Body Font**: Inter
- **Mono Font**: Spline Sans Mono
- **Base Size**: 17px
- **Scale Ratio**: 1.2
- **Line Height**: 1.62
- **Letter Spacing**: -0.01em
- **Heading Weight**: 700
- **Heading Transform**: none
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Space+Grotesk:wght@400;500;600;700&family=Inter:wght@400;500;600;700&family=Spline+Sans+Mono:wght@400;500;600&display=swap

### Spacing

- **Base**: 8px
- **Scale**: [4,8,12,16,24,32,48,64,96]

### Radii

- **None**: 0
- **Sm**: 16px
- **Md**: 16px
- **Lg**: 24px
- **Full**: 9999px

### Shadows

- **Sm**: 0 1px 0 rgba(237,230,210,0.05) inset, 0 8px 20px rgba(0,0,0,0.30)
- **Md**: 0 1px 0 rgba(237,230,210,0.05) inset, 0 16px 36px rgba(0,0,0,0.36)
- **Lg**: 0 28px 60px rgba(0,0,0,0.46)

### Surfaces

- **Treatment**: woven-textile
- **Card Style**: a charted block: aizome-indigo cloth under a 26px pierce-grid dot fill, lifted by soft shadow, with a stitched coordinate tab; no border ring
- **Bg Pattern**: pierce-grid

### Borders

- **Default Width**: 0
- **Accent Width**: 0
- **Style**: none
- **Character**: no borders; separation comes from dashed running-stitch dividers, the pierce-grid, and soft shadow

### Motion

- **Duration**: 720ms
- **Easing**: cubic-bezier(0.22,0.78,0.2,1)
- **Philosophy**: deliberate: running stitches plot in cell by cell (stroke-dashoffset) and panels rise slightly; the settled state is the no-JS default

## Rules

### Composition

Compose every region as a counted-stitch chart on a 26px pierce-grid: generous margins, charted blocks that snap to the grid, stitched coordinate tabs protruding from panel edges, and the open margin left for mono annotations.

### Hierarchy

Hierarchy comes from stitched tabs, running-stitch subdivisions, a quiet grotesque, mono coordinates, and one madder floss on the live element — not from large scale shifts.

### Density

Moderately dense. Information can be plentiful, but every cluster sits inside a charted panel with visible spacing, a coordinate, and stitched micro-labels.

### Signature

The counted-cell stitch chart: every panel snaps to the pierce-grid and carries a row·col coordinate; dividers, the headline highlighter and chart lines are dashed running stitches; one madder floss marks the live element.

## Layout

### Grid

A counted desk-page grid capped at ~1180-1200px on desktop, collapsing to a single column under 640-760px while preserving margin gutters and the 26px pierce-grid inside modules.

### Whitespace

Generous perimeter margins, moderate inter-panel spacing, small internal padding always padded above titles; the open margin carries mono coordinates and timestamps.

### Density

comfortable-to-moderate

### Responsive

Single column under 640-760px; the pierce-grid, stitched tabs and coordinates persist at every width; tables scroll inside their panel; hoops and framed windows move below primary content; the hero headline uses clamp(2rem,6.6vw,4rem) and wraps, rendering at the 32px floor at 390px without clipping.

### Breakpoints

- **Sm**: 390px
- **Md**: 640px
- **Lg**: 900px
- **Xl**: 1440px

## Guidance

### Do

- Let the 26px pierce-grid show through the indigo ground and every panel.
- Label sections with short stitched tabs and a row·col coordinate.
- Divide rows and frames with dashed running stitches in ecru; keep illustration inside a hoop or framed window.
- Reserve one madder floss for the live element of a view; use gold for tags and knots.
- Leave the margin open for timestamps, owners and coordinates.

### Don't

- Open on the generic SaaS hero (eyebrow tag, button pair, three-stat row) or swap a serif headline to italic.
- Put a hard border or a single accent edge on a card, or trap navigation in a floating pill bar.
- Let imagery bleed across functional controls.
- Spread all three flosses across the chrome in the same view.
- Round everything into soft blobs or use arbitrary radii that erase the counted, charted feel.

### Accessibility

Body 17px+; ecru text #EFE7D3 on aizome indigo #0F2038 clears 4.5:1; status never relies on colour alone (every status thread carries a mono label and a dot); the hero headline wraps and never clips at 390px; motion respects prefers-reduced-motion and the settled state renders with no JavaScript.

## Imagery Direction

### Pairs With

woven-sampler-embroidery

### Summary

Subjects rendered as hand-embroidered woven textile — directional satin and long-and-short fills, couched outlines, french knots on a visible linen warp-weft weave — worked in the Aizome Skein flosses (ecru, madder, gold) on a deep indigo ground.

### Subjects

- a counted sashiko motif of asanoha and seven-treasure patterns on indigo
- an embroidered carp bounded in a hoop
- a stitched wave band
- a woven map of an order ledger

### Usage

One full-bleed hero per landing; spot illustration bounded inside an embroidery hoop or a 16:10 framed window, driven by --hero-image, never bleeding across controls.
DESIGN.md
---
version: "alpha"
name: "Sashiko"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  primary: "#D24A3C"
  secondary: "#5E86B8"
  accent: "#D24A3C"
  bg: "#0F2038"
  background: "#0F2038"
  surface: "#16294A"
  surface_raised: "#1E3658"
  text: "#EFE7D3"
  muted: "#9FB0C9"
  border: "#2C4470"
  on_accent: "#FBF6E7"
  ecru: "#EDE6D2"
  madder: "#D24A3C"
  gold: "#DBA844"
  error: "#D24A3C"
  success: "#82AA6B"
  warning: "#DBA844"
  info: "#5E86B8"
typography:
  headline-lg:
    fontFamily: "Space Grotesk"
    fontSize: "1.836rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.01em"
  headline-md:
    fontFamily: "Space Grotesk"
    fontSize: "1.53rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.01em"
  body-md:
    fontFamily: "Inter"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.62
    letterSpacing: "-0.01em"
  label-md:
    fontFamily: "Spline Sans Mono"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "16px"
  md: "16px"
  lg: "24px"
  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-bg:
    backgroundColor: "{colors.bg}"
  color-reference-background:
    backgroundColor: "{colors.background}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_raised:
    backgroundColor: "{colors.surface_raised}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-ecru:
    backgroundColor: "{colors.ecru}"
  color-reference-madder:
    backgroundColor: "{colors.madder}"
  color-reference-gold:
    backgroundColor: "{colors.gold}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  button-primary:
    backgroundColor: "{colors.primary}"
    textColor: "#000000"
    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

## Overview

Sashiko reads the source brief — a disciplined, ruled, captioned planner page that makes room for bounded illustration — as the most disciplined page of all: a counted-thread stitch chart, dyed in aizome indigo rather than printed on paper. A fine pierce-grid of stitch points runs through the dark ground and every panel, so each module reads as charted cloth. Dividers are dashed running stitches in ecru thread, never hard borders. One madder floss marks the element you can act on; gold flags what to read next. Structure is stitched in, never drawn on.

### Values

- the screen is a counted-stitch chart: every region snaps to one pierce-grid
- dividers and marks are running stitches in ecru thread, never borders
- a deep aizome-indigo ground, dark and saturated, never paper-white
- illustration bounded inside an embroidery hoop or a framed window
- one madder floss on the live element; gold for tags and knots

### Anti-Values

- the generic SaaS hero: an eyebrow tag, a button pair, a three-stat row
- hard borders or a single accent edge stamped on a card
- imagery bleeding across the controls that drive the studio
- the serif/italic headline swap, or an oversized italic serif
- soft blobs and arbitrary radii that erase the counted, charted feel

### Visual Character

- a counted pierce-grid shows through the indigo ground and every panel, so the module reads as charted cloth
- section labels are short stitched tabs (gold, madder or indigo) protruding from a panel's top edge
- dividers, the headline highlighter and chart lines are dashed running stitches in ecru thread
- illustration is bounded inside an embroidery hoop or a 16:10 framed window, never bleeding across controls
- timestamps, owners and row·col coordinates tuck into the open margin as quiet mono annotations

## 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 | `#D24A3C` |
| secondary | `#5E86B8` |
| accent | `#D24A3C` |
| bg | `#0F2038` |
| background | `#0F2038` |
| surface | `#16294A` |
| surface_raised | `#1E3658` |
| text | `#EFE7D3` |
| muted | `#9FB0C9` |
| border | `#2C4470` |
| on_accent | `#FBF6E7` |
| ecru | `#EDE6D2` |
| madder | `#D24A3C` |
| gold | `#DBA844` |
| error | `#D24A3C` |
| success | `#82AA6B` |
| warning | `#DBA844` |
| info | `#5E86B8` |

## Typography

- **Headline-Lg**: Space Grotesk, 1.836rem, weight 700, line-height 1.1.
- **Headline-Md**: Space Grotesk, 1.53rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 17px, weight 400, line-height 1.62.
- **Label-Md**: Spline Sans 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`

### Grid

A counted desk-page grid capped at ~1180-1200px on desktop, collapsing to a single column under 640-760px while preserving margin gutters and the 26px pierce-grid inside modules.

### Whitespace

Generous perimeter margins, moderate inter-panel spacing, small internal padding always padded above titles; the open margin carries mono coordinates and timestamps.

### Density

comfortable-to-moderate

### Responsive

Single column under 640-760px; the pierce-grid, stitched tabs and coordinates persist at every width; tables scroll inside their panel; hoops and framed windows move below primary content; the hero headline uses clamp(2rem,6.6vw,4rem) and wraps, rendering at the 32px floor at 390px without clipping.

### Breakpoints

- **Sm**: 390px
- **Md**: 640px
- **Lg**: 900px
- **Xl**: 1440px

## Elevation & Depth

### Shadows

- **Sm**: 0 1px 0 rgba(237,230,210,0.05) inset, 0 8px 20px rgba(0,0,0,0.30)
- **Md**: 0 1px 0 rgba(237,230,210,0.05) inset, 0 16px 36px rgba(0,0,0,0.36)
- **Lg**: 0 28px 60px rgba(0,0,0,0.46)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `16px`
- **Md**: `16px`
- **Lg**: `24px`
- **Full**: `9999px`

### Surfaces

- **Treatment**: woven-textile
- **Card Style**: a charted block: aizome-indigo cloth under a 26px pierce-grid dot fill, lifted by soft shadow, with a stitched coordinate tab; no border ring
- **Bg Pattern**: pierce-grid

### Borders

- **Default Width**: 0
- **Accent Width**: 0
- **Style**: none
- **Character**: no borders; separation comes from dashed running-stitch dividers, the pierce-grid, and soft shadow

## Components

### Composition

Compose every region as a counted-stitch chart on a 26px pierce-grid: generous margins, charted blocks that snap to the grid, stitched coordinate tabs protruding from panel edges, and the open margin left for mono annotations.

### Hierarchy

Hierarchy comes from stitched tabs, running-stitch subdivisions, a quiet grotesque, mono coordinates, and one madder floss on the live element — not from large scale shifts.

### Density

Moderately dense. Information can be plentiful, but every cluster sits inside a charted panel with visible spacing, a coordinate, and stitched micro-labels.

### Signature

The counted-cell stitch chart: every panel snaps to the pierce-grid and carries a row·col coordinate; dividers, the headline highlighter and chart lines are dashed running stitches; one madder floss marks the live element.

## 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-019efdee-0edb-7430-97f1-ce4299b05a04/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 Let the 26px pierce-grid show through the indigo ground and every panel.
- Do Label sections with short stitched tabs and a row·col coordinate.
- Do Divide rows and frames with dashed running stitches in ecru; keep illustration inside a hoop or framed window.
- Do Reserve one madder floss for the live element of a view; use gold for tags and knots.
- Do Leave the margin open for timestamps, owners and coordinates.
- Don't Open on the generic SaaS hero (eyebrow tag, button pair, three-stat row) or swap a serif headline to italic.
- Don't Put a hard border or a single accent edge on a card, or trap navigation in a floating pill bar.
- Don't Let imagery bleed across functional controls.
- Don't Spread all three flosses across the chrome in the same view.
- Don't Round everything into soft blobs or use arbitrary radii that erase the counted, charted feel.

### Accessibility

Body 17px+; ecru text #EFE7D3 on aizome indigo #0F2038 clears 4.5:1; status never relies on colour alone (every status thread carries a mono label and a dot); the hero headline wraps and never clips at 390px; motion respects prefers-reduced-motion and the settled state renders with no JavaScript.

## Imagery Direction

### Pairs With

woven-sampler-embroidery

### Summary

Subjects rendered as hand-embroidered woven textile — directional satin and long-and-short fills, couched outlines, french knots on a visible linen warp-weft weave — worked in the Aizome Skein flosses (ecru, madder, gold) on a deep indigo ground.

### Subjects

- a counted sashiko motif of asanoha and seven-treasure patterns on indigo
- an embroidered carp bounded in a hoop
- a stitched wave band
- a woven map of an order ledger

### Usage

One full-bleed hero per landing; spot illustration bounded inside an embroidery hoop or a 16:10 framed window, driven by --hero-image, never bleeding across controls.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "sashiko",
  "type": "registry:theme",
  "title": "Sashiko shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#0F2038",
      "foreground": "#EFE7D3",
      "card": "#16294A",
      "card-foreground": "#EFE7D3",
      "popover": "#16294A",
      "popover-foreground": "#EFE7D3",
      "primary": "#D24A3C",
      "primary-foreground": "#ffffff",
      "secondary": "#5E86B8",
      "secondary-foreground": "#ffffff",
      "muted": "#9FB0C9",
      "muted-foreground": "#EFE7D3",
      "accent": "#D24A3C",
      "accent-foreground": "#ffffff",
      "destructive": "#D24A3C",
      "border": "#2C4470",
      "input": "#2C4470",
      "ring": "#D24A3C",
      "chart-1": "#D24A3C",
      "chart-2": "#5E86B8",
      "chart-3": "#D24A3C",
      "chart-4": "#82AA6B",
      "chart-5": "#DBA844",
      "sidebar": "#16294A",
      "sidebar-foreground": "#EFE7D3",
      "sidebar-primary": "#D24A3C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#5E86B8",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#2C4470",
      "sidebar-ring": "#D24A3C",
      "radius": "16px"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#D24A3C",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#D24A3C",
      "accent-foreground": "#ffffff",
      "destructive": "#D24A3C",
      "border": "#303642",
      "input": "#303642",
      "ring": "#D24A3C",
      "chart-1": "#D24A3C",
      "chart-2": "#5E86B8",
      "chart-3": "#D24A3C",
      "chart-4": "#82AA6B",
      "chart-5": "#DBA844",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#D24A3C",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#D24A3C",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#D24A3C",
      "radius": "16px"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efdee-0edb-7430-97f1-ce4299b05a04",
    "slug": "sashiko",
    "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",
        "bg",
        "border",
        "ecru",
        "error",
        "gold",
        "info",
        "madder",
        "muted",
        "on_accent",
        "primary",
        "secondary",
        "success",
        "surface",
        "surface_raised",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "line_height",
        "mono_font",
        "scale_ratio"
      ],
      "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

bespoke marketing landingopen full page ↗
landing · sashiko
DESIGN.md

at a glance

Typography

headline-lgSpace Grotesk · 29px · 700

The quick brown fox jumps

headline-mdSpace Grotesk · 24px · 600

The quick brown fox jumps

body-mdInter · 17px · 400

The quick brown fox jumps

label-mdSpline Sans Mono · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with
Palette

Agent-generated

remix lane

try a remix

Keep Sashikoand swap a palette and an art style onto it — the landing & dashboard recolor live. The Studio does the same with all three lanes free.

UI language · fixed
Sashiko
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

related

More like this