Shirokane
Remix this template to create a similar design — same sections, layout, animations, colors, and typography.
Landing page for a Japanese katagami textile atelier. Style: cinematic photographic, dark workshop theme, indigo textile banners with washi-cream type and vermilion seal accents, Cormorant Garamond with Japanese mincho type. Layout: full-bleed atelier photograph with bottom-left display headline. Components: bilingual EN/JP nav, live-from-workshop status with coordinates, folio counter, hanko seal badge, italic technique caption. Vibe: artisanal, reverent, heritage — Japanese craft.
Palette
Typography
clamp(64px, 10vw, 158px)
clamp(54px, 7vw, 96px)
clamp(36px, 4vw, 52px)
clamp(24px, 2.6vw, 34px)
16px
14px
11px
12px
18px
Spacing & Shape
| Token | Value | Preview |
|---|---|---|
| xs | 4px | |
| sm | 8px | |
| md | 16px | |
| lg | 24px | |
| xl | 36px | |
| xxl | 48px | |
| section-y | 120px | |
| gutter | 56px |
Border Radius
| Token | Value | Preview |
|---|---|---|
| none | 0px | |
| stamp | 6px | |
| full | 9999px |
design.md
tokens (raw)
name: shirokane-design
version: alpha
description: >
An editorial, scroll-driven site for a fictional Japanese katagami stencil-dyeing
house, set on warm paper-white washi (#EDE4CF) over ink-black sumi (#16120E). The
signature voltage is a vermilion hanko red (#D4452A), backed by deep indigo (#22335C)
and persimmon (#C26A3A) section grounds. The type story braces an English display
serif (Cormorant Garamond) against a Japanese mincho (Shippori Mincho B1), with a
mono caption face (JetBrains Mono) for codes and labels. Geometry is near-zero radius
and razor hairlines; the page is a four-folio register of pinned, parallaxing,
theme-inverting sections wrapped in SVG paper grain and torn-paper edges.
colors:
# Brand / Voltage
vermilion: '#D4452A' # primary accent — hanko stamp, kickers, buttons, dots, focus ring, prices
persimmon: '#C26A3A' # secondary accent — custom-section ground, intro kicker, spec labels
# Surface
washi: '#EDE4CF' # primary page surface (warm paper-white); also light text on dark grounds
sumi: '#16120E' # ink-black — dark sections (craft), body text, button hover
indigo: '#22335C' # deep blue ground — intro + footer sections, photo placeholders
linen: '#DDD0B4' # muted card panel fill — etymology boxes, geo/spec panels, custom-right ground
# Text
ink-mist: '#8A8270' # muted text — captions, intro-t, notes, roman gloss names
panel-body: '#4a4034' # warm brown body copy inside light custom panel (p1 p)
# Hairlines (derived via rgba/opacity)
hairline-dark: 'rgba(22,18,14,.2)' # hairlines on washi grounds
hairline-light: 'rgba(237,228,207,.16)' # hairlines on dark grounds (marquee borders)
# Overlay / scrim
scrim: 'rgba(22,18,14,.6)' # photo tag chips, hero gradient darkening
nav-solid: 'rgba(22,18,14,.92)' # nav background once scrolled
# Gradient
hero-grad: 'linear-gradient(160deg, #22335C, #16120E 70%)' # hero base behind video
typography:
display:
fontFamily: "'Cormorant Garamond', serif"
fontSize: clamp(64px, 10vw, 158px)
fontWeight: 400
lineHeight: 0.84
letterSpacing: 0.04em
display-section:
fontFamily: "'Cormorant Garamond', serif"
fontSize: clamp(54px, 7vw, 96px)
fontWeight: 300
lineHeight: 0.95
mincho-head:
fontFamily: "'Shippori Mincho B1', serif"
fontSize: clamp(36px, 4vw, 52px)
fontWeight: 700
lineHeight: 1
display-italic:
fontFamily: "'Cormorant Garamond', serif"
fontSize: clamp(24px, 2.6vw, 34px)
fontWeight: 400
fontStyle: italic
lineHeight: 1.3
body:
fontFamily: "'Zen Kaku Gothic New', sans-serif"
fontSize: 16px
fontWeight: 400
lineHeight: 1.65
body-sm:
fontFamily: "'Zen Kaku Gothic New', sans-serif"
fontSize: 14px
fontWeight: 400
lineHeight: 1.6
label:
fontFamily: "'JetBrains Mono', monospace"
fontSize: 11px
fontWeight: 400
letterSpacing: 0.18em
textTransform: uppercase
spec-mono:
fontFamily: "'JetBrains Mono', monospace"
fontSize: 12px
fontWeight: 400
lineHeight: 1.9
button:
fontFamily: "'Cormorant Garamond', serif"
fontSize: 18px
fontWeight: 400
letterSpacing: 0.24em
textTransform: uppercase
rounded: # near-zero geometry; only stamps + dots are round
none: 0px
stamp: 6px
full: 9999px
spacing: # base unit 4px; section rhythm in large multiples
xs: 4px
sm: 8px
md: 16px
lg: 24px
xl: 36px
xxl: 48px
section-y: 120px
gutter: 56px
components:
button:
backgroundColor: '{colors.vermilion}'
textColor: '{colors.washi}'
typography: '{typography.button}'
rounded: '{rounded.none}'
padding: '17px 30px'
hoverBackgroundColor: '{colors.sumi}'
# label e.g. "VIEW FULL REGISTER →", "SEND INQUIRY ↗"
hanko:
backgroundColor: '{colors.vermilion}'
textColor: '{colors.washi}'
typography: '{typography.mincho-head}'
rounded: '{rounded.stamp}'
size: 'clamp(48px,5.5vw,86px)'
# vertical-rl stamp set into the H1 lockup ("白金")
photo-tag:
backgroundColor: '{colors.scrim}'
textColor: '{colors.washi}'
typography: '{typography.label}'
rounded: '{rounded.none}'
padding: '5px 12px'
# corner chip on bolt/drape photos ("macro · raking light")
etymology-card:
backgroundColor: '{colors.linen}'
textColor: '{colors.sumi}'
typography: '{typography.body-sm}'
rounded: '{rounded.none}'
padding: '20px'
# hover/reveal panel under a bolt title
spec-row:
typography: '{typography.spec-mono}'
keyColor: '{colors.ink-mist}'
priceColor: '{colors.vermilion}'
# justified key/value rows; price in Cormorant 20px
input-line:
backgroundColor: 'transparent'
textColor: '{colors.sumi}'
typography: '{typography.display-italic}'
border: '1px solid {colors.hairline-dark} (bottom only)'
focusBorderColor: '{colors.vermilion}'
rounded: '{rounded.none}'
padding: '12px 0'
nav:
backgroundColor: 'transparent → {colors.nav-solid} (on scroll)'
textColor: '{colors.washi}'
typography: '{typography.label}'
padding: '18px 56px'
stat:
backgroundColor: 'rgba(237,228,207,.05)'
numberTypography: '{typography.display-section}'
labelTypography: '{typography.label}'
rounded: '{rounded.none}'
padding: '18px 22px'
motion:
ease: 'cubic-bezier(.16,1,.3,1) — the single house easing on nearly every transition'
hero-entrance: 'per-letter blur(16px)+translateY(28px)→0 stagger (55ms step, 200ms base); hanko scales 1.12→1 at .5s delay'
word-reveal: 'translateY(105%)→0 clip lines on intro H2 (.9s); clip-path inset wipes on collection headers (1s)'
count-up: 'stats ease-out cubic count to data-count over 900ms on intersection'
parallax: 'rAF scroll loop: hero video scale 1→1.1 + dim 0→.55; photos translateY by data-speed -0.08; vertical rail drift'
craft-rail: 'sticky 460vh pin → horizontal translateX of card strip driven by scroll progress, with progress fill bar'
custom-split: 'sticky 340vh pin, 3 stacked panels cross-fade by scroll segment (0-.32 / .32-.6 / .6-1), seam dots toggle'
heritage-invert: 'sticky 300vh pin: background washi→sumi & text sumi→washi color-mix across .15-.55 scroll; vertical title scaleY .4→1; timeline nodes clip-reveal'
marquee: 'intro label tape translateX 0→-50% over 42s linear infinite'
underline-wipe: 'links: 1px underline scaleX(0)→1 from left over .45s on hover'
icons:
library: inline SVG (hand-authored, no icon font)
style: outline (line) with a few solid glyphs (play triangle, star, hanko mark)
stroke: 1.4–1.6px (UI), 1.2px (geo motif diagrams)
sizes: { sm: 16px, md: 18px, lg: 22px, brand: 28px }
color: '{colors.vermilion} for accent marks; currentColor otherwise'SHIROKANE
shirokane-design · alpha
Design spec — version alpha. Source: static HTML (
index.html); tokens read from inline styles +:rootcustom properties + class rules. Fictional/sample product; described factually.
Overview
SHIROKANE is a long-scroll editorial site for a fictional Ise katagami stencil-dyeing
atelier, structured as a four-folio register. It lives on warm paper-white washi
#EDE4CF over ink-black sumi #16120E, with a single hot voltage — vermilion hanko red
#D4452A — reserved for the brand stamp, kickers, prices, the focus ring, and the
underline-wipe accents. Whole sections switch to coloured grounds: indigo #22335C
(intro, footer), pure sumi (craft), and persimmon #C26A3A (custom). The type story is
a deliberate east/west bracing: an English display serif, Cormorant Garamond, set huge
and light, against a Japanese mincho, Shippori Mincho B1, for the kanji and headings,
with JetBrains Mono carrying every code, label, and spec row in .18em uppercase
tracking. The geometry is austere — near-zero radius everywhere, razor 1px hairlines
instead of shadows, the only curves being the 6px-radius hanko stamp and tiny round
dots. The signature moves are all scroll-driven via a single rAF loop: a per-letter
blurred hero entrance, a horizontally-pinned 460vh "twelve steps" photo rail, a pinned
three-panel custom split, and a heritage section that color-mixes its entire theme from
light to dark as you scroll. Two textures recur over everything: an SVG feTurbulence
paper grain at 5% multiply, and a masked torn-paper top edge on dark sections.
Colors
Brand / Voltage. vermilion #D4452A is the one true accent — it fills the .btn
buttons, the hero .hanko stamp, every .kick kicker label, the inline dots, prices
(.pm .v), the focus outline, and the underline-wipe hover. persimmon #C26A3A is the
secondary accent: it is the full ground of the custom-left split panel and tints the
intro kicker and spec labels.
Surface. washi #EDE4CF is the default page background and the light text colour on
dark grounds. sumi #16120E is the ink-black used for body text, the craft section
ground, and button hover. indigo #22335C grounds the intro and footer and stands in as
a placeholder behind loading photos. linen #DDD0B4 is the muted card fill for
etymology boxes, geo/spec panels, and the custom-right column.
Text. Body copy is sumi on light, washi on dark. ink-mist #8A8270 is the muted
text for captions, intro lead-ins, the bolt-count note, and roman gloss names. A one-off
warm brown #4a4034 carries the body paragraph inside the light custom panel.
Hairlines. No borders are opaque black — they are rgba(22,18,14,.2) on light
grounds and rgba(237,228,207,.16) on dark (e.g. the marquee top/bottom rules). The
.hair utility is currentColor at .22 opacity.
Scrims / overlays. Photo tag chips and hero darkening use rgba(22,18,14,.6); the
nav becomes rgba(22,18,14,.92) once scrolled past the hero. The hero base is
linear-gradient(160deg, #22335C, #16120E 70%) behind the video.
Typography
Four families, all loaded from Google Fonts in one request: Cormorant Garamond
(display serif, weights 300–600 + italics), Shippori Mincho B1 (Japanese mincho,
400–800), Zen Kaku Gothic New (body sans, 300–500), and JetBrains Mono (labels &
specs, 400–500). These are real open-source faces — no substitution needed. Display
serif is set light (300–400) and enormous; mincho headings are heavy (700) and often run
writing-mode: vertical-rl; the mono is always uppercase with wide tracking.
| Token | Size | Weight | Line-height | Tracking | Usage |
|---|---|---|---|---|---|
| display | clamp(64–158px) | 400 | 0.84 | .04em | Hero H1 lockup |
| display-section | clamp(54–96px) | 300 | 0.95 | — | Section H2s, footer wordmark, stat numbers |
| mincho-head | clamp(36–52px) | 700 | 1 | — | Japanese bolt titles (青海波) |
| display-italic | clamp(24–34px) | 400 italic | 1.3 | — | Pull-quotes, input field text |
| body | 16px | 400 | 1.65 | — | Default paragraph copy |
| body-sm | 14px | 400 | 1.6 | — | Captions, etymology, intro-t |
| label | 11px | 400 | — | .18em | Kickers, nav, tags, all-caps mono labels |
| spec-mono | 12px | 400 | 1.9 | — | Spec key/value rows, codes, addresses |
| button | 18px | 400 | — | .24em | Button labels (uppercase serif) |
Layout
Base unit is 4px; section vertical rhythm runs in big multiples (120px section padding,
128px between bolts, 140px intro). The page is centred on a max-width: 1440px .wrap
with 56px side gutters (32px under 980px). The composition is a stack of full-bleed
folios: a 100vh hero with corner ticks and HUD captions; an indigo intro with a 3fr/6fr/3fr
grid and a vertical-rl kanji rail; a collections register of alternating .bolt grids
(64px metarail / 7fr photo / 5fr info, flipped on even rows); a sumi craft section with a
460vh sticky-pinned horizontal photo rail; a 340vh pinned 1fr/1fr custom split; a 300vh
pinned heritage section that inverts its theme; and an indigo footer. Whitespace is
generous and editorial; asymmetry (offset hero lockup lower-left, flipped grids,
vertical rails) is the structural signature.
Elevation & Depth
This system is essentially flat — depth comes from hairlines, coloured grounds, and
texture, not shadows. The only real box-shadow is on the custom-left monitor frame
(0 30px 80px rgba(22,18,14,.4)) and the hero headline text-shadow
(0 4px 44px rgba(22,18,14,.55)). Everywhere else, separation is achieved with 1px
hairlines (often double-rule 3px double on the masthead), .05–.22 opacity overlays,
and section background swaps. Two textures add tactility: an SVG feTurbulence paper
grain (.grain::after, 5% opacity, multiply blend) and masked torn-paper top edges
(.torn::before).
Shapes
Resolutely orthogonal. Radius is 0 on every card, photo, button, input, panel, and
chip — corners are sharp. The only rounded forms are the .hanko stamp at 6px and
fully-round 50% dots (the vermilion .dot, metarail tick, seam-rail dots). Photos use
strict aspect ratios (4/3 bolts, 4/5 drapes, 3/4 craft & heritage) and reveal via
clip-path inset wipes rather than scale or fade.
Components
- Button (
.btn) — vermilion fill, washi text, no radius,17px 30pxpadding, 18px Cormorant uppercase at.24em; hover swaps fill to sumi; active nudges down 1px. Label pairs text with an inline arrow SVG (e.g. "View full register →"). - Hanko stamp (
.hanko) — vermilion6px-radius square set into the H1, with vertical-rl mincho "白金"; scales in on load. - Photo tag (
.tag) —rgba(22,18,14,.6)chip, washi mono label,5px 12px, pinned top-left of photos. - Etymology card (
.ety) — linen fill,20pxpadding, hidden until bolt hover/reveal. - Spec block (
.spec) — JetBrains Mono 12px justified key/value rows, muted keys, vermilion Cormorant price. - Stat (
.stat) —rgba(237,228,207,.05)fill, Cormorant 54px count-up number, mono label. - Input line (
.iline) — transparent, bottom 1px hairline only, Cormorant 20px text, vermilion underline on focus. - Nav (
header.nav) — fixed, transparent over hero, solidifies torgba(22,18,14,.92)past 85vh; mono links with mincho Japanese sub-labels. - Geo / spec panels (
.geo,.specgrid) — linen fill, hand-drawn pattern SVGs at 1.2px stroke alongside italic Cormorant values.
Motion
One easing rules everything: cubic-bezier(.16,1,.3,1) (--ease). The hero entrance
staggers each headline letter from blur(16px) + translateY(28px) at a 55ms step, then
the hanko scales 1.12→1. Section headers reveal with translateY(105%) line wipes or
clip-path inset reveals. A single requestAnimationFrame scroll loop drives the rest:
hero video scales 1→1.1 with a darkening overlay, photos parallax by data-speed, the
craft rail translates horizontally across a 460vh pin with a progress-fill bar, the
custom split cross-fades three panels by scroll segment, and the heritage section
color-mixes its whole theme washi→sumi while a vertical title grows scaleY .4→1 and
timeline nodes clip-reveal. The intro marquee scrolls 42s linear infinite; links carry a
.45s underline-wipe. prefers-reduced-motion is acknowledged in code via a reduce
flag but it is hard-set to false, so motion always runs.
Iconography
All icons are hand-authored inline SVGs — there is no icon font. Style is predominantly
outline (1.4–1.6px stroke, currentColor) with a handful of solid glyphs: the play
triangle on the documentary link, the star/clock heritage marks, and the brand compass
mark. Pattern diagrams in the geo panels are drawn at 1.2px stroke with solid sumi
dots. Accent marks (dots, ticks) take vermilion; functional UI icons inherit
currentColor so they flip with the section theme. Sizes: 16px UI, 18px in buttons,
22px heritage marks, 28px brand mark.
Do's and Don'ts
- Do keep vermilion as the only saturated accent — one voltage, used sparingly on stamps, kickers, prices, and focus.
- Do brace Cormorant Garamond against Shippori Mincho B1, and reserve JetBrains Mono exclusively for uppercase labels, codes, and spec rows.
- Do keep corners sharp (radius 0) and lean on hairlines, coloured grounds, and the grain/torn textures for depth instead of shadows.
- Do preserve the scroll-pinned signature sections and the single shared
cubic-bezier(.16,1,.3,1)easing. - Don't introduce drop shadows, soft rounded cards, or a second bright accent — it breaks the austere paper-and-ink discipline.
- Don't body-set the display serif or drop the Japanese mincho; the east/west pairing is the identity.
- Don't swap reveal wipes (clip-path / line-mask) for generic fades, or let the marquee/parallax run without the house easing.
Known Gaps
- The reduced-motion path exists in JS (
reduceflag) but is hard-coded tofalse, so the spec documents motion as always-on. - Section-inversion colours during the heritage scroll are computed live via JS
color-mix/lerp between washi, sumi, persimmon, and indigo — intermediate values are interpolated, not authored tokens. --her-accentinterpolates between[212,69,42](vermilion) and[34,51,92](indigo); the resting value is vermilion, captured here ashairline/accent rather than a fixed hex.- Spacing tokens are inferred from the recurring padding/gap values; the HTML uses raw pixel values rather than a named scale.