From 455acd9552c94006019ea88c81f9c3f239a8f684 Mon Sep 17 00:00:00 2001 From: unkn0wn Date: Tue, 23 Jun 2026 08:00:54 +0200 Subject: [PATCH] style: refine typo tokens --- src/styles/tokens/_typography.scss | 72 +++++++++++++++++++++++------- 1 file changed, 57 insertions(+), 15 deletions(-) diff --git a/src/styles/tokens/_typography.scss b/src/styles/tokens/_typography.scss index 437ec84..1755028 100644 --- a/src/styles/tokens/_typography.scss +++ b/src/styles/tokens/_typography.scss @@ -1,51 +1,93 @@ -@import url('https://fonts.googleapis.com/css?family=Intel%20One%20Mono:700|Intel%20One%20Mono:400'); +// ─── Nova typography ────────────────────────────────────────────────────────── +// Display / headings: Intel One Mono (brand). UI / body: Geist (legibility). +@import url('https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Intel+One+Mono:wght@400;500;700&display=swap'); -$font-mono: 'Intel One Mono', monospace; +$font-mono: 'Intel One Mono', ui-monospace, monospace; +$font-sans: 'Geist', system-ui, -apple-system, 'Segoe UI', sans-serif; +:root { + --nds-font-mono: #{$font-mono}; + --nds-font-sans: #{$font-sans}; +} + +// ── UI / body (Geist) ── @mixin text-sm { - font-size: 0.600rem; - font-family: $font-mono; + font-family: $font-sans; + font-size: 0.75rem; // 12px font-weight: 400; + line-height: 1.45; + letter-spacing: 0.005em; } @mixin text-base { - font-size: 0.8rem; - font-family: $font-mono; + font-family: $font-sans; + font-size: 0.875rem; // 14px font-weight: 400; + line-height: 1.5; } @mixin text-label { - font-size: 0.8rem; - font-family: $font-mono; - font-weight: 700; + font-family: $font-sans; + font-size: 0.8125rem; // 13px + font-weight: 600; + line-height: 1.4; + letter-spacing: 0.01em; } +@mixin text-lg { + font-family: $font-sans; + font-size: 1rem; // 16px + font-weight: 600; + line-height: 1.5; +} + +// ── Display / headings (Intel One Mono) ── @mixin text-xl { - font-size: 1.066rem; font-family: $font-mono; + font-size: 1.125rem; // 18px font-weight: 700; + line-height: 1.35; + letter-spacing: -0.01em; } @mixin text-2xl { - font-size: 1.421rem; font-family: $font-mono; + font-size: 1.375rem; // 22px font-weight: 700; + line-height: 1.3; + letter-spacing: -0.015em; } @mixin text-3xl { - font-size: 1.894rem; font-family: $font-mono; + font-size: 1.875rem; // 30px font-weight: 700; + line-height: 1.2; + letter-spacing: -0.02em; } @mixin text-4xl { - font-size: 2.525rem; font-family: $font-mono; + font-size: 2.5rem; // 40px font-weight: 700; + line-height: 1.1; + letter-spacing: -0.025em; } @mixin text-5xl { - font-size: 3.366rem; font-family: $font-mono; + font-size: 3.25rem; // 52px font-weight: 700; -} \ No newline at end of file + line-height: 1.05; + letter-spacing: -0.03em; +} + +// ── Eyebrow / section label ── +@mixin text-eyebrow { + font-family: $font-sans; + font-size: 0.6875rem; // 11px + font-weight: 600; + line-height: 1.4; + letter-spacing: 0.08em; + text-transform: uppercase; +}