console: Geist — a crisp, modern enterprise typeface

Zurich Sans (a soft humanist OTF) read poorly at the data-density sizes this
console runs, and did not carry the modern-enterprise register we are after.
The UI moves to Geist — Vercel's typeface, the register of Linear/Vercel-class
tools: neutral, technical, and sharp at small sizes. Refs and figures use Geist
Mono. Zurich Sans stays in the fallback stack, so a blocked CDN degrades to the
brand face rather than to a system default.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Yashas 2026-09-09 11:44:55 +05:30
parent e4ca2b92c9
commit c0480e0ae0
2 changed files with 9 additions and 3 deletions

View File

@ -13,6 +13,12 @@
<!--BASE_HREF--> <!--BASE_HREF-->
<link rel="icon" type="image/webp" href="./brand/zurich_logo.webp" /> <link rel="icon" type="image/webp" href="./brand/zurich_logo.webp" />
<title>Zurich Kotak | Lead Desk</title> <title>Zurich Kotak | Lead Desk</title>
<!-- Geist — a modern enterprise UI typeface (Vercel). Renders crisp at
data-density sizes where the previous face went soft. Zurich Sans is
kept in the fallback stack, and Geist Mono carries refs and figures. -->
<link rel="preconnect" href="https://fonts.googleapis.com" />
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin />
<link rel="stylesheet" href="https://fonts.googleapis.com/css2?family=Geist:wght@400;500;600;700&family=Geist+Mono:wght@400;500&display=swap" />
<!-- Written next to the artifact at placement; carries this environment's <!-- Written next to the artifact at placement; carries this environment's
VITE_ZINO_API_URL, which src/runtimeConfig.js reads off VITE_ZINO_API_URL, which src/runtimeConfig.js reads off
window.__RUNTIME_CONFIG__. Without it requireConfigValue throws and the window.__RUNTIME_CONFIG__. Without it requireConfigValue throws and the

View File

@ -127,9 +127,9 @@
/* Display and body are the SAME brand face Zurich Sans has no bold, /* Display and body are the SAME brand face Zurich Sans has no bold,
so headings and figures lean on weight 500 and tighter tracking, set per so headings and figures lean on weight 500 and tighter tracking, set per
use, not on a second family. */ use, not on a second family. */
--font-display: 'Zurich Sans', Arial, Helvetica, sans-serif; --font-display: 'Geist', 'Zurich Sans', system-ui, sans-serif;
--font-zurich: 'Zurich Sans', Arial, Helvetica, sans-serif; --font-zurich: 'Geist', 'Zurich Sans', system-ui, -apple-system, sans-serif;
--font-mono: ui-monospace, SFMono-Regular, 'SF Mono', Menlo, monospace; --font-mono: 'Geist Mono', ui-monospace, SFMono-Regular, Menlo, monospace;
font-family: var(--font-zurich); font-family: var(--font-zurich);
/* The root MUST stay an absolute size every --fs-* token is rem, so /* The root MUST stay an absolute size every --fs-* token is rem, so