147 lines
5.6 KiB
CSS
147 lines
5.6 KiB
CSS
|
|
/* ============================================================
|
|||
|
|
Carlos Arias — Brand Tokens v1
|
|||
|
|
Sumi-e: ink on paper, vermillion as seal.
|
|||
|
|
|
|||
|
|
SOURCE OF TRUTH. Both /mocks and the Astro theme import this
|
|||
|
|
file. Never redeclare these values anywhere else — a hardcoded
|
|||
|
|
hex in a mock is how the design system dies.
|
|||
|
|
============================================================ */
|
|||
|
|
|
|||
|
|
:root {
|
|||
|
|
/* ---- Ground & ink -------------------------------------- */
|
|||
|
|
/* Washi-toned ground, never pure #FFF.
|
|||
|
|
Ink carries a cool/blue bias — real sumi ink is blue-black,
|
|||
|
|
not neutral grey. The whole ramp inherits that bias. */
|
|||
|
|
--ca-paper: #F6F5F2;
|
|||
|
|
--ca-paper-2: #EFEEEA;
|
|||
|
|
--ca-rule: #DFDDD7;
|
|||
|
|
--ca-ink-4: #9A9CA3;
|
|||
|
|
--ca-ink-3: #6E7078;
|
|||
|
|
--ca-ink-2: #3D3F47;
|
|||
|
|
--ca-ink: #14151A;
|
|||
|
|
|
|||
|
|
/* ---- Seal ---------------------------------------------- */
|
|||
|
|
/* Shuniku (朱肉) — seal ink. Target 1–2% coverage per screen.
|
|||
|
|
Considered and rejected: Shu-iro #EA5506 (drifts orange at
|
|||
|
|
small sizes), Akane #B7282E (formal to the point of cold). */
|
|||
|
|
--ca-seal: #D0342C;
|
|||
|
|
|
|||
|
|
/* ---- Type ---------------------------------------------- */
|
|||
|
|
/* Faces are PLACEHOLDER system stacks. Scale and role
|
|||
|
|
assignments are final; swap in self-hosted faces at build. */
|
|||
|
|
--ca-serif: "Hiragino Mincho ProN", "Yu Mincho", YuMincho, "Songti SC", Georgia, "Times New Roman", serif;
|
|||
|
|
--ca-sans: -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif;
|
|||
|
|
--ca-mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Mono", Menlo, Consolas, monospace;
|
|||
|
|
|
|||
|
|
/* 1.333 modular scale — wide intervals suit sparse layouts */
|
|||
|
|
--ca-s1: 0.75rem; /* 12px · mono · eyebrow, meta, date */
|
|||
|
|
--ca-s2: 0.875rem; /* 14px · sans · small, captions, UI */
|
|||
|
|
--ca-s3: 1rem; /* 16px · sans · body */
|
|||
|
|
--ca-s4: 1.333rem; /* 21px · sans · lede, pull-quote */
|
|||
|
|
--ca-s5: 1.777rem; /* 28px · serif · sub-heading */
|
|||
|
|
--ca-s6: 2.369rem; /* 38px · serif · section heading */
|
|||
|
|
--ca-s7: 3.157rem; /* 50px · serif · page title */
|
|||
|
|
--ca-s8: 4.209rem; /* 67px · serif · display */
|
|||
|
|
|
|||
|
|
--ca-lh-tight: 1.1;
|
|||
|
|
--ca-lh-head: 1.15;
|
|||
|
|
--ca-lh-body: 1.65;
|
|||
|
|
|
|||
|
|
/* ---- Layout -------------------------------------------- */
|
|||
|
|
--ca-measure: 62ch; /* running text cap */
|
|||
|
|
--ca-gutter: clamp(1.5rem, 6vw, 7rem);
|
|||
|
|
--ca-radius: 2px; /* near-square; not rounded-lg */
|
|||
|
|
--ca-hairline: 1px;
|
|||
|
|
|
|||
|
|
/* ---- Motion -------------------------------------------- */
|
|||
|
|
/* Wabi-sabi motion is slow, organic, and never demands attention.
|
|||
|
|
Nothing bounces. Nothing pulses. Nothing loops in the viewport
|
|||
|
|
competing with the content. If an effect asks to be watched,
|
|||
|
|
it belongs to a different brand.
|
|||
|
|
|
|||
|
|
Durations run long by web convention — ink moves at its own
|
|||
|
|
pace. Easing is asymmetric: quick to start, long to settle,
|
|||
|
|
like a brush lifting off paper. */
|
|||
|
|
--ca-dur-quick: 180ms; /* focus, small state changes */
|
|||
|
|
--ca-dur-base: 280ms; /* hover, link underlines */
|
|||
|
|
--ca-dur-slow: 620ms; /* section reveals */
|
|||
|
|
--ca-dur-ink: 1500ms; /* signature moments only */
|
|||
|
|
|
|||
|
|
--ca-ease: cubic-bezier(.33, .1, .25, 1); /* settle */
|
|||
|
|
--ca-ease-press: cubic-bezier(.2, .9, .3, 1); /* hanko */
|
|||
|
|
|
|||
|
|
--ca-reveal-y: 12px; /* travel on scroll reveal — small. */
|
|||
|
|
--ca-stagger: 70ms; /* between siblings */
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* ---- Ink surface ----------------------------------------- */
|
|||
|
|
/* A section that stays ink-ground in BOTH themes — for committed
|
|||
|
|
dark moments where the content itself demands darkness (video,
|
|||
|
|
cinematic imagery). Maps the standard token names onto dark
|
|||
|
|
values, so anything nested inside needs no changes at all.
|
|||
|
|
|
|||
|
|
Use sparingly. One per page, at most. A page that is half dark
|
|||
|
|
and half light by accident just looks broken; by intent it reads
|
|||
|
|
as an entrance. */
|
|||
|
|
:root {
|
|||
|
|
--ca-ink-surface-bg: #121317;
|
|||
|
|
--ca-ink-surface-bg-2: #191A1F;
|
|||
|
|
--ca-ink-surface-rule: #2A2C33;
|
|||
|
|
--ca-ink-surface-fg: #EDECE8;
|
|||
|
|
--ca-ink-surface-fg-2: #C2C1BD;
|
|||
|
|
--ca-ink-surface-fg-3: #8B8D95;
|
|||
|
|
--ca-ink-surface-fg-4: #5E606A;
|
|||
|
|
--ca-ink-surface-seal: #E8564A;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
.ca-ink-surface {
|
|||
|
|
--ca-paper: var(--ca-ink-surface-bg);
|
|||
|
|
--ca-paper-2: var(--ca-ink-surface-bg-2);
|
|||
|
|
--ca-rule: var(--ca-ink-surface-rule);
|
|||
|
|
--ca-ink: var(--ca-ink-surface-fg);
|
|||
|
|
--ca-ink-2: var(--ca-ink-surface-fg-2);
|
|||
|
|
--ca-ink-3: var(--ca-ink-surface-fg-3);
|
|||
|
|
--ca-ink-4: var(--ca-ink-surface-fg-4);
|
|||
|
|
--ca-seal: var(--ca-ink-surface-seal);
|
|||
|
|
background: var(--ca-paper);
|
|||
|
|
color: var(--ca-ink);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
/* ---- Dark: ink ground, paper text ------------------------ */
|
|||
|
|
/* The seal lifts on dark — #D0342C muddies against near-black,
|
|||
|
|
so dark mode uses a more luminous variant. Not an inversion. */
|
|||
|
|
@media (prefers-color-scheme: dark) {
|
|||
|
|
:root {
|
|||
|
|
--ca-paper: #121317;
|
|||
|
|
--ca-paper-2: #191A1F;
|
|||
|
|
--ca-rule: #2A2C33;
|
|||
|
|
--ca-ink-4: #5E606A;
|
|||
|
|
--ca-ink-3: #8B8D95;
|
|||
|
|
--ca-ink-2: #C2C1BD;
|
|||
|
|
--ca-ink: #EDECE8;
|
|||
|
|
--ca-seal: #E8564A;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
:root[data-theme="dark"] {
|
|||
|
|
--ca-paper: #121317;
|
|||
|
|
--ca-paper-2: #191A1F;
|
|||
|
|
--ca-rule: #2A2C33;
|
|||
|
|
--ca-ink-4: #5E606A;
|
|||
|
|
--ca-ink-3: #8B8D95;
|
|||
|
|
--ca-ink-2: #C2C1BD;
|
|||
|
|
--ca-ink: #EDECE8;
|
|||
|
|
--ca-seal: #E8564A;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
:root[data-theme="light"] {
|
|||
|
|
--ca-paper: #F6F5F2;
|
|||
|
|
--ca-paper-2: #EFEEEA;
|
|||
|
|
--ca-rule: #DFDDD7;
|
|||
|
|
--ca-ink-4: #9A9CA3;
|
|||
|
|
--ca-ink-3: #6E7078;
|
|||
|
|
--ca-ink-2: #3D3F47;
|
|||
|
|
--ca-ink: #14151A;
|
|||
|
|
--ca-seal: #D0342C;
|
|||
|
|
}
|