back to gallery
design language·splash

Splash

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
A display-type design language where the brush-stroke is used as lettering, not decoration: oversized headlines in which one key word is replaced or overpainted by a real high-resolution neon brush-stroke glyph, the word doing the work. Bright rice-paper white, sumi ink, three neon spot inks used like highlighters.
values
the word is the imagebrush-mark as type, never ornamentneon at full strength only on the stroke and the one CTAwhite paper as the festival lightrestraint in data lets the display type sing
anti-values
×serif-italic headline swaps×accent edges or borders on cards×desaturating the neon to tasteful grey×crowding a brush-stroke to an edge×emoji or symbol glyphs
tokens
colors13 items
bg
#FFFFFF
surface
#FFFFFF
surface_2
#FBFAF7
text
#0A0A0A
ink
#0A0A0A
muted
#50504A
border
#E2E0DA
accent
#FF2D1A
on_accent
#FFFFFF
info
#00C2FF
success
#2BD96B
warning
#FF8A00
error
#FF2D1A
typography8 items
base size
17px
body font
Inter
heading font
Archivo
mono font
Inter
heading weight
900
heading transform
none
letter spacing
-0.03em
google fonts url
https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;800;900&family=Inter:wght@400;500;600;700&display=swap
radii4 items
none
0
sm
16px
card
24px
pill
9999px
shadows1 items
card
0 1px 0 rgba(10,10,10,.04), 0 24px 50px -36px rgba(10,10,10,.22)
spacing2 items
base
22px
scale
8px, 14px, 22px, 34px, 56px, 84px
surfaces3 items
paper
#FFFFFF
recess
#FBFAF7
inverted
#0A0A0A
borders3 items
card
none
hairline
1px #E2E0DA
header rule
1.5px #0A0A0A
motion3 items
duration
0.7s
ease
cubic-bezier(.22,1,.36,1)
reveal
fade-rise gated behind .js, respects prefers-reduced-motion
rules
composition
Big-type-led editorial: each section opens with an oversized display headline owning the top third, body in one comfortable measure beneath, wide margins so the brush marks breathe. Asymmetric placement — strokes hang into a margin. Pad above every title.
hierarchy

Display type and the brush-stroke carry the eye; neon used like a highlighter on one word or one CTA; everything else is quiet ink on paper.

density

Generous and airy on the landing; dense, real component bands in the embodiment and dashboard.

signature
One key headline word is a neon brush-stroke glyph; titles carry a full word-width brushed underline-mark; the primary is a single-stroke pill with a hand-brushed irregular fill edge.
layout
grid

minmax(0,1fr) multi-column grids that shrink instead of overflowing; capped centred content; only the hero is full-bleed.

whitespace

Wide margins around the brush marks; the empty white paper reads as the festival light.

density

balanced

responsive

Single column on mobile with the display type clamping fluidly and secondary table columns hidden; capped and centred on ultra-wide; hero spans 100vw.

breakpoints
mobile
390px
tablet
880px
desktop
1180px
ultrawide
1700px
guidance
do
  • Let one key word per headline be a neon brush-stroke glyph
  • Keep neon at full strength only on the stroke marks and the one CTA
  • Give every title a brushed underline-mark and pad above it
  • Make one button the single-stroke pill; quiet the rest to ink-rule outlines
  • Keep tables plain sans with a header hairline and a brushed-dot active row
avoid
  • Use the serif-upright / serif-italic headline swap
  • Give a card an accent edge or border
  • Desaturate the neon accents to grey
  • Crowd a brush-stroke against an edge
  • Put emoji on buttons or symbol glyphs in copy
imagery
pairs with

splash

summary
Expressive sumi-e display calligraphy on blown-white paper: the subject reduced to a few decisive brush-strokes with exactly one stroke re-inked in a vivid neon hue, dry-brush texture intact. Applied to the wish-character / the carp's leap.
subjects
a single giant wish-character brush-strokethe carp's leap as one confident marka paper carp streamer carrying a brushed characterneon spot-ink strokes on blank white paper
usage
One full-bleed landing hero — a giant neon-vermilion brush-stroke on blank white reading as the headline's key word; ghosted koinobori in the bright distance. NO text, NO letters, NO logos in the image.
katagami spec
# Splash

## Philosophy

A display-type design language where the brush-stroke is used as lettering, not decoration: oversized headlines in which one key word is replaced or overpainted by a real high-resolution neon brush-stroke glyph, the word doing the work. Bright rice-paper white, sumi ink, three neon spot inks used like highlighters.

### Values

- the word is the image
- brush-mark as type, never ornament
- neon at full strength only on the stroke and the one CTA
- white paper as the festival light
- restraint in data lets the display type sing

### Anti-Values

- serif-italic headline swaps
- accent edges or borders on cards
- desaturating the neon to tasteful grey
- crowding a brush-stroke to an edge
- emoji or symbol glyphs

## Tokens

### Colors

| Name | Value |
|------|-------|
| bg | `#FFFFFF` |
| surface | `#FFFFFF` |
| surface_2 | `#FBFAF7` |
| text | `#0A0A0A` |
| ink | `#0A0A0A` |
| muted | `#50504A` |
| border | `#E2E0DA` |
| accent | `#FF2D1A` |
| on_accent | `#FFFFFF` |
| info | `#00C2FF` |
| success | `#2BD96B` |
| warning | `#FF8A00` |
| error | `#FF2D1A` |

### Typography

- **Base Size**: 17px
- **Body Font**: Inter
- **Heading Font**: Archivo
- **Mono Font**: Inter
- **Heading Weight**: 900
- **Heading Transform**: none
- **Letter Spacing**: -0.03em
- **Google Fonts Url**: https://fonts.googleapis.com/css2?family=Archivo:wght@400;500;600;800;900&family=Inter:wght@400;500;600;700&display=swap

### Radii

- **None**: 0
- **Sm**: 16px
- **Card**: 24px
- **Pill**: 9999px

### Shadows

- **Card**: 0 1px 0 rgba(10,10,10,.04), 0 24px 50px -36px rgba(10,10,10,.22)

### Spacing

- **Base**: 22px
- **Scale**: ["8px","14px","22px","34px","56px","84px"]

### Surfaces

- **Paper**: #FFFFFF
- **Recess**: #FBFAF7
- **Inverted**: #0A0A0A

### Borders

- **Card**: none
- **Hairline**: 1px #E2E0DA
- **Header Rule**: 1.5px #0A0A0A

### Motion

- **Duration**: 0.7s
- **Ease**: cubic-bezier(.22,1,.36,1)
- **Reveal**: fade-rise gated behind .js, respects prefers-reduced-motion

## Rules

### Composition

Big-type-led editorial: each section opens with an oversized display headline owning the top third, body in one comfortable measure beneath, wide margins so the brush marks breathe. Asymmetric placement — strokes hang into a margin. Pad above every title.

### Hierarchy

Display type and the brush-stroke carry the eye; neon used like a highlighter on one word or one CTA; everything else is quiet ink on paper.

### Density

Generous and airy on the landing; dense, real component bands in the embodiment and dashboard.

### Signature

One key headline word is a neon brush-stroke glyph; titles carry a full word-width brushed underline-mark; the primary is a single-stroke pill with a hand-brushed irregular fill edge.

## Layout

### Grid

minmax(0,1fr) multi-column grids that shrink instead of overflowing; capped centred content; only the hero is full-bleed.

### Whitespace

Wide margins around the brush marks; the empty white paper reads as the festival light.

### Density

balanced

### Responsive

Single column on mobile with the display type clamping fluidly and secondary table columns hidden; capped and centred on ultra-wide; hero spans 100vw.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 880px
- **Desktop**: 1180px
- **Ultrawide**: 1700px

## Guidance

### Do

- Let one key word per headline be a neon brush-stroke glyph
- Keep neon at full strength only on the stroke marks and the one CTA
- Give every title a brushed underline-mark and pad above it
- Make one button the single-stroke pill; quiet the rest to ink-rule outlines
- Keep tables plain sans with a header hairline and a brushed-dot active row

### Don't

- Use the serif-upright / serif-italic headline swap
- Give a card an accent edge or border
- Desaturate the neon accents to grey
- Crowd a brush-stroke against an edge
- Put emoji on buttons or symbol glyphs in copy

### Accessibility

High contrast sumi-on-paper throughout; body 17px+, table rows 14.5px+; visible focus state (green inked baseline and ring); motion gated and respects prefers-reduced-motion; brush glyphs carry aria-labels.

## Imagery Direction

### Pairs With

splash

### Summary

Expressive sumi-e display calligraphy on blown-white paper: the subject reduced to a few decisive brush-strokes with exactly one stroke re-inked in a vivid neon hue, dry-brush texture intact. Applied to the wish-character / the carp's leap.

### Subjects

- a single giant wish-character brush-stroke
- the carp's leap as one confident mark
- a paper carp streamer carrying a brushed character
- neon spot-ink strokes on blank white paper

### Usage

One full-bleed landing hero — a giant neon-vermilion brush-stroke on blank white reading as the headline's key word; ghosted koinobori in the bright distance. NO text, NO letters, NO logos in the image.
DESIGN.md
---
version: "alpha"
name: "Splash"
description: "Agent-curated design language exported from Katagami as DESIGN.md."
colors:
  bg: "#FFFFFF"
  surface: "#FFFFFF"
  surface_2: "#FBFAF7"
  text: "#0A0A0A"
  ink: "#0A0A0A"
  muted: "#50504A"
  border: "#E2E0DA"
  accent: "#FF2D1A"
  on_accent: "#FFFFFF"
  info: "#00C2FF"
  success: "#2BD96B"
  warning: "#FF8A00"
  error: "#FF2D1A"
typography:
  headline-lg:
    fontFamily: "Archivo"
    fontSize: "2.075rem"
    fontWeight: 700
    lineHeight: 1.1
    letterSpacing: "-0.03em"
  headline-md:
    fontFamily: "Archivo"
    fontSize: "1.66rem"
    fontWeight: 600
    lineHeight: 1.15
    letterSpacing: "-0.03em"
  body-md:
    fontFamily: "Inter"
    fontSize: "17px"
    fontWeight: 400
    lineHeight: 1.5
    letterSpacing: "-0.03em"
  label-md:
    fontFamily: "Inter"
    fontSize: "0.75rem"
    fontWeight: 600
    lineHeight: 1
    letterSpacing: "0.08em"
rounded:
  none: "0px"
  sm: "16px"
  card: "24px"
  pill: "9999px"
spacing:
  base: "22px"
  xs: "8px"
  sm: "14px"
  md: "22px"
  lg: "34px"
  xl: "56px"
  2xl: "84px"
components:
  color-reference-bg:
    backgroundColor: "{colors.bg}"
  color-reference-surface:
    backgroundColor: "{colors.surface}"
  color-reference-surface_2:
    backgroundColor: "{colors.surface_2}"
  color-reference-text:
    backgroundColor: "{colors.text}"
  color-reference-ink:
    backgroundColor: "{colors.ink}"
  color-reference-muted:
    backgroundColor: "{colors.muted}"
  color-reference-border:
    backgroundColor: "{colors.border}"
  color-reference-accent:
    backgroundColor: "{colors.accent}"
  color-reference-on_accent:
    backgroundColor: "{colors.on_accent}"
  color-reference-info:
    backgroundColor: "{colors.info}"
  color-reference-success:
    backgroundColor: "{colors.success}"
  color-reference-warning:
    backgroundColor: "{colors.warning}"
  color-reference-error:
    backgroundColor: "{colors.error}"
  button-primary:
    backgroundColor: "{colors.accent}"
    textColor: "#000000"
    typography: "{typography.label-md}"
    rounded: "{rounded.sm}"
    padding: "{spacing.md}"
  card-surface:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.sm}"
    padding: "{spacing.md}"
  input-default:
    backgroundColor: "{colors.surface}"
    textColor: "{colors.text}"
    rounded: "{rounded.sm}"
    height: "44px"
---

# Splash

## Overview

A display-type design language where the brush-stroke is used as lettering, not decoration: oversized headlines in which one key word is replaced or overpainted by a real high-resolution neon brush-stroke glyph, the word doing the work. Bright rice-paper white, sumi ink, three neon spot inks used like highlighters.

### Values

- the word is the image
- brush-mark as type, never ornament
- neon at full strength only on the stroke and the one CTA
- white paper as the festival light
- restraint in data lets the display type sing

### Anti-Values

- serif-italic headline swaps
- accent edges or borders on cards
- desaturating the neon to tasteful grey
- crowding a brush-stroke to an edge
- emoji or symbol glyphs

## Colors

Use the YAML color tokens as the normative palette. The prose below names the roles agents should preserve when generating UI.

| Token | Value |
|-------|-------|
| bg | `#FFFFFF` |
| surface | `#FFFFFF` |
| surface_2 | `#FBFAF7` |
| text | `#0A0A0A` |
| ink | `#0A0A0A` |
| muted | `#50504A` |
| border | `#E2E0DA` |
| accent | `#FF2D1A` |
| on_accent | `#FFFFFF` |
| info | `#00C2FF` |
| success | `#2BD96B` |
| warning | `#FF8A00` |
| error | `#FF2D1A` |

## Typography

- **Headline-Lg**: Archivo, 2.075rem, weight 700, line-height 1.1.
- **Headline-Md**: Archivo, 1.66rem, weight 600, line-height 1.15.
- **Body-Md**: Inter, 17px, weight 400, line-height 1.5.
- **Label-Md**: Inter, 0.75rem, weight 600, line-height 1.

## Layout

### Spacing Tokens

- **Base**: `22px`
- **Xs**: `8px`
- **Sm**: `14px`
- **Md**: `22px`
- **Lg**: `34px`
- **Xl**: `56px`
- **2xl**: `84px`

### Grid

minmax(0,1fr) multi-column grids that shrink instead of overflowing; capped centred content; only the hero is full-bleed.

### Whitespace

Wide margins around the brush marks; the empty white paper reads as the festival light.

### Density

balanced

### Responsive

Single column on mobile with the display type clamping fluidly and secondary table columns hidden; capped and centred on ultra-wide; hero spans 100vw.

### Breakpoints

- **Mobile**: 390px
- **Tablet**: 880px
- **Desktop**: 1180px
- **Ultrawide**: 1700px

## Elevation & Depth

### Shadows

- **Card**: 0 1px 0 rgba(10,10,10,.04), 0 24px 50px -36px rgba(10,10,10,.22)

## Shapes

### Rounded

- **None**: `0px`
- **Sm**: `16px`
- **Card**: `24px`
- **Pill**: `9999px`

### Surfaces

- **Paper**: #FFFFFF
- **Recess**: #FBFAF7
- **Inverted**: #0A0A0A

### Borders

- **Card**: none
- **Hairline**: 1px #E2E0DA
- **Header Rule**: 1.5px #0A0A0A

## Components

### Composition

Big-type-led editorial: each section opens with an oversized display headline owning the top third, body in one comfortable measure beneath, wide margins so the brush marks breathe. Asymmetric placement — strokes hang into a margin. Pad above every title.

### Hierarchy

Display type and the brush-stroke carry the eye; neon used like a highlighter on one word or one CTA; everything else is quiet ink on paper.

### Density

Generous and airy on the landing; dense, real component bands in the embodiment and dashboard.

### Signature

One key headline word is a neon brush-stroke glyph; titles carry a full word-width brushed underline-mark; the primary is a single-stroke pill with a hand-brushed irregular fill edge.

## 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-019efb74-62c8-7ee2-957f-77be388ce5f6/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 one key word per headline be a neon brush-stroke glyph
- Do Keep neon at full strength only on the stroke marks and the one CTA
- Do Give every title a brushed underline-mark and pad above it
- Do Make one button the single-stroke pill; quiet the rest to ink-rule outlines
- Do Keep tables plain sans with a header hairline and a brushed-dot active row
- Don't Use the serif-upright / serif-italic headline swap
- Don't Give a card an accent edge or border
- Don't Desaturate the neon accents to grey
- Don't Crowd a brush-stroke against an edge
- Don't Put emoji on buttons or symbol glyphs in copy

### Accessibility

High contrast sumi-on-paper throughout; body 17px+, table rows 14.5px+; visible focus state (green inked baseline and ring); motion gated and respects prefers-reduced-motion; brush glyphs carry aria-labels.

## Imagery Direction

### Pairs With

splash

### Summary

Expressive sumi-e display calligraphy on blown-white paper: the subject reduced to a few decisive brush-strokes with exactly one stroke re-inked in a vivid neon hue, dry-brush texture intact. Applied to the wish-character / the carp's leap.

### Subjects

- a single giant wish-character brush-stroke
- the carp's leap as one confident mark
- a paper carp streamer carrying a brushed character
- neon spot-ink strokes on blank white paper

### Usage

One full-bleed landing hero — a giant neon-vermilion brush-stroke on blank white reading as the headline's key word; ghosted koinobori in the bright distance. NO text, NO letters, NO logos in the image.
shadcn/ui theme
```json
{
  "$schema": "https://ui.shadcn.com/schema/registry-item.json",
  "name": "splash",
  "type": "registry:theme",
  "title": "Splash shadcn Theme",
  "cssVars": {
    "theme": {},
    "light": {
      "background": "#FFFFFF",
      "foreground": "#0A0A0A",
      "card": "#FFFFFF",
      "card-foreground": "#0A0A0A",
      "popover": "#FFFFFF",
      "popover-foreground": "#0A0A0A",
      "primary": "#0A0A0A",
      "primary-foreground": "#ffffff",
      "secondary": "#f4f4f5",
      "secondary-foreground": "#111111",
      "muted": "#50504A",
      "muted-foreground": "#0A0A0A",
      "accent": "#FF2D1A",
      "accent-foreground": "#ffffff",
      "destructive": "#FF2D1A",
      "border": "#E2E0DA",
      "input": "#E2E0DA",
      "ring": "#FF2D1A",
      "chart-1": "#0A0A0A",
      "chart-2": "#f4f4f5",
      "chart-3": "#FF2D1A",
      "chart-4": "#2BD96B",
      "chart-5": "#FF8A00",
      "sidebar": "#FFFFFF",
      "sidebar-foreground": "#0A0A0A",
      "sidebar-primary": "#0A0A0A",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#00C2FF",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#E2E0DA",
      "sidebar-ring": "#FF2D1A",
      "radius": "0.625rem"
    },
    "dark": {
      "background": "#0f1115",
      "foreground": "#f8fafc",
      "card": "#181b22",
      "card-foreground": "#f8fafc",
      "popover": "#181b22",
      "popover-foreground": "#f8fafc",
      "primary": "#0A0A0A",
      "primary-foreground": "#ffffff",
      "secondary": "#252a33",
      "secondary-foreground": "#f8fafc",
      "muted": "#252a33",
      "muted-foreground": "#a1a1aa",
      "accent": "#FF2D1A",
      "accent-foreground": "#ffffff",
      "destructive": "#FF2D1A",
      "border": "#303642",
      "input": "#303642",
      "ring": "#FF2D1A",
      "chart-1": "#0A0A0A",
      "chart-2": "#f4f4f5",
      "chart-3": "#FF2D1A",
      "chart-4": "#2BD96B",
      "chart-5": "#FF8A00",
      "sidebar": "#181b22",
      "sidebar-foreground": "#f8fafc",
      "sidebar-primary": "#0A0A0A",
      "sidebar-primary-foreground": "#ffffff",
      "sidebar-accent": "#FF2D1A",
      "sidebar-accent-foreground": "#ffffff",
      "sidebar-border": "#303642",
      "sidebar-ring": "#FF2D1A",
      "radius": "0.625rem"
    }
  },
  "meta": {
    "source": "katagami",
    "languageId": "en-019efb74-62c8-7ee2-957f-77be388ce5f6",
    "slug": "splash",
    "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",
        "bg",
        "border",
        "error",
        "info",
        "ink",
        "muted",
        "on_accent",
        "success",
        "surface",
        "surface_2",
        "text",
        "warning"
      ],
      "typography": [
        "base_size",
        "body_font",
        "google_fonts_url",
        "heading_font",
        "heading_transform",
        "heading_weight",
        "letter_spacing",
        "mono_font"
      ],
      "radii": [
        "card",
        "none",
        "pill",
        "sm"
      ],
      "shadows": [
        "card"
      ],
      "spacing": [
        "base",
        "scale"
      ],
      "surfaces": [
        "inverted",
        "paper",
        "recess"
      ],
      "borders": [
        "card",
        "hairline",
        "header_rule"
      ],
      "motion": [
        "duration",
        "ease",
        "reveal"
      ]
    }
  }
}
```
in the wild

embodiments

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

at a glance

Typography

headline-lgArchivo · 33px · 700

The quick brown fox jumps

headline-mdArchivo · 27px · 600

The quick brown fox jumps

body-mdInter · 17px · 400

The quick brown fox jumps

label-mdInter · 12px · 600

The quick brown fox jumps

shadcn/ui

implementation kit

built with

Agent-generated

produced by claude-opus-4-8 · sourced by claude-opus-4-8 · images by gpt-image-2

remix lane

try a remix

Keep Splashand 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
Splash
Palette
Art style
Landing Page
live preview · recolored + filled
lineage

Family

1 descendant
related

More like this