summaryrefslogtreecommitdiff
path: root/_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css
diff options
context:
space:
mode:
authort <t@tjp.lol>2026-06-16 19:28:54 -0600
committert <t@tjp.lol>2026-06-16 20:21:55 -0600
commitc21a4ebd001ca305d862b5390f090f2ef14163cf (patch)
tree6910b11139c6b01c78a64c18b206d89619bebbf1 /_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css
base site: claude design plus some tweaks
Diffstat (limited to '_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css')
-rw-r--r--_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css66
1 files changed, 66 insertions, 0 deletions
diff --git a/_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css b/_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css
new file mode 100644
index 0000000..be943df
--- /dev/null
+++ b/_ds/pantograph-design-system-56a1c74e-41c1-486b-ba3c-4eabdfacef31/tokens/typography.css
@@ -0,0 +1,66 @@
+/* ============================================================
+ Pantograph — Typography tokens
+ ------------------------------------------------------------
+ Two voices. Minimal, like the product:
+ • Saira Condensed — THE primary face. Display, headings,
+ UI, body, prose, eyebrows, scale numerals. Tall and
+ narrow; reads as engraved instrument lettering.
+ • IBM Plex Mono — code, terminals, the panto CLI, tabular
+ numerals, anything "machine".
+
+ --font-sans / --font-serif / --font-display all resolve to
+ Saira Condensed, so role tokens and existing components keep
+ working while the system runs on a single primary face.
+ ============================================================ */
+
+:root {
+ /* Families — one primary face, one mono */
+ --font-primary: 'Saira Condensed', 'Arial Narrow', sans-serif;
+ --font-mono: 'IBM Plex Mono', ui-monospace, 'SF Mono', Menlo, monospace;
+
+ /* Aliases — all point at the primary face (legacy role names) */
+ --font-display: var(--font-primary);
+ --font-sans: var(--font-primary);
+ --font-serif: var(--font-primary);
+
+ /* Type scale (1.250 major-third, rooted at 16px) */
+ --text-2xs: 0.6875rem; /* 11px — tick labels, legal */
+ --text-xs: 0.75rem; /* 12px — captions, eyebrows */
+ --text-sm: 0.875rem; /* 14px — secondary UI text */
+ --text-base: 1rem; /* 16px — body */
+ --text-md: 1.125rem; /* 18px — lead paragraph */
+ --text-lg: 1.375rem; /* 22px — h4 / card titles */
+ --text-xl: 1.75rem; /* 28px — h3 */
+ --text-2xl: 2.25rem; /* 36px — h2 */
+ --text-3xl: 3rem; /* 48px — h1 */
+ --text-4xl: 4rem; /* 64px — display */
+ --text-5xl: 5.5rem; /* 88px — hero display */
+
+ /* Weights */
+ --weight-regular: 400;
+ --weight-medium: 500;
+ --weight-semibold: 600;
+ --weight-bold: 700;
+
+ /* Line heights */
+ --leading-tight: 1.05; /* display */
+ --leading-snug: 1.25; /* headings */
+ --leading-normal: 1.5; /* UI / sans body */
+ --leading-relaxed: 1.7; /* serif prose */
+ --leading-mono: 1.6; /* code */
+
+ /* Letter spacing */
+ --tracking-label: 0.14em; /* ALL-CAPS engraved labels */
+ --tracking-tight: -0.01em; /* large display */
+ --tracking-normal: 0;
+
+ /* ---- Semantic roles ---- */
+ --role-display: var(--weight-bold) var(--text-4xl)/var(--leading-tight) var(--font-display);
+ --role-h1: var(--weight-bold) var(--text-3xl)/var(--leading-snug) var(--font-display);
+ --role-h2: var(--weight-semibold) var(--text-2xl)/var(--leading-snug) var(--font-sans);
+ --role-h3: var(--weight-semibold) var(--text-xl)/var(--leading-snug) var(--font-sans);
+ --role-body: var(--weight-regular) var(--text-base)/var(--leading-normal) var(--font-sans);
+ --role-prose: var(--weight-regular) var(--text-md)/var(--leading-relaxed) var(--font-primary);
+ --role-code: var(--weight-regular) var(--text-sm)/var(--leading-mono) var(--font-mono);
+ --role-label: var(--weight-semibold) var(--text-xs)/1 var(--font-display);
+}