این صفحه خودِ قالب را مستند میکند و تنها به انگلیسی موجود است.
Style guide
The system, before the design
Every token, type class and component this site is built from. Kept because it is genuinely useful — and because a site about doing the invisible parts properly should show its own.
Ground and lines
#08080a
--color-ground
Page ground
#050506
--color-ground-deep
Banded sections, footer
#0f0f13
--color-raised
Cards
#16161c
--color-raised-high
Hover, nested cards
#1e1e26
--color-line
Hairlines
Ink
Headlines and body
#f5f5f7
--color-ink
18.9:1 on ground
Secondary copy
#a9a9b4
--color-ink-soft
8.6:1 on ground
Eyebrows, captions
#7c7c88
--color-ink-mute
4.85 on ground · 4.63 on raised · fails on raised-high
Accent ramp
#ff6a1f
--color-flare
Accent. The only ramp stop that may carry text
6.99:1 on ground
#d9460f
--color-flare-deep
Pressed and hovered solid orange
—
#ffb98c
--color-flare-soft
Focus ring, chip borders
11.4:1 on ground
#ff2f6d
--color-ember
Ramp middle. Decorative only
—
#a01bff
--color-magenta
Ramp end. Never a text colour
4.35:1 — decorative
Type scale
.type-display
Creative studio
.type-headline
We design with purpose
.type-title
Card and section titles
.type-lead
The opening paragraph of a section.
.type-body
The default running text of the page.
.type-small
Captions, legal and meta.
.type-label
Eyebrows and buttons
.type-mono
01 · 14 February 2026
.type-stat
$10.7B
.type-price
$2,199
Buttons
Surfaces
Raised
The default card.
Flat
Border only, no fill.
Accent
The featured pricing tier.
Generated artwork
Every image surface in the template. Each field is a pure function of its seed — the same string always produces the same gradient, on the server and in the browser, which is what keeps hydration clean.
seed: alpha
seed: beta
seed: gamma
seed: delta
seed: epsilon
seed: zeta
Small parts
Motion tokens
Easing
- reveal
- expo.out
- scrub
- power2.out
- state
- power2.inOut
- linear
- none
Duration (s)
- fast
- 0.26
- base
- 0.56
- slow
- 1.1
Stagger (s)
- tight
- 0.045
- base
- 0.08
- loose
- 0.15
Scroll start
- reveal
- top 85%
- revealLate
- top 78%
- early
- top 92%
- pin
- top top
Nothing in components/ may invent a duration, easing, stagger or scroll offset. If a beat needs something new it gets a name in lib/theme.ts first.