diff --git a/frontend/package-lock.json b/frontend/package-lock.json index a3ed72a..4ae451a 100644 --- a/frontend/package-lock.json +++ b/frontend/package-lock.json @@ -1,12 +1,12 @@ { "name": "notify-bridge-frontend", - "version": "0.6.1", + "version": "0.7.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "notify-bridge-frontend", - "version": "0.6.1", + "version": "0.7.0", "dependencies": { "@codemirror/autocomplete": "^6.18.0", "@codemirror/lang-html": "^6.4.11", @@ -14,6 +14,7 @@ "@codemirror/state": "^6.6.0", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.40.0", + "@fontsource-variable/geist": "^5.2.8", "@fontsource/dm-sans": "^5.2.8", "@fontsource/geist-mono": "^5.2.7", "@fontsource/geist-sans": "^5.2.5", @@ -607,6 +608,14 @@ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", "dev": true }, + "node_modules/@fontsource-variable/geist": { + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@fontsource-variable/geist/-/geist-5.2.8.tgz", + "integrity": "sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw==", + "funding": { + "url": "https://github.com/sponsors/ayuhito" + } + }, "node_modules/@fontsource/dm-sans": { "version": "5.2.8", "resolved": "https://registry.npmjs.org/@fontsource/dm-sans/-/dm-sans-5.2.8.tgz", @@ -2887,6 +2896,11 @@ "integrity": "sha512-RiB/yIh78pcIxl6lLMG0CgBXAZ2Y0eVHqMPYugu+9U0AeT6YBeiJpf7lbdJNIugFP5SIjwNRgo4DhR1Qxi26Gg==", "dev": true }, + "@fontsource-variable/geist": { + "version": "5.2.8", + "resolved": "https://registry.npmjs.org/@fontsource-variable/geist/-/geist-5.2.8.tgz", + "integrity": "sha512-cJ6m9e+8MQ5dCYJsLylfZrgBh6KkG4bOLckB35Tr9J/EqdkEM6QllH5PxqP1dhTvFup+HtMRPuz9xOjxXJggxw==" + }, "@fontsource/dm-sans": { "version": "5.2.8", "resolved": "https://registry.npmjs.org/@fontsource/dm-sans/-/dm-sans-5.2.8.tgz", diff --git a/frontend/package.json b/frontend/package.json index 280ac6e..91978b5 100644 --- a/frontend/package.json +++ b/frontend/package.json @@ -34,6 +34,7 @@ "@codemirror/state": "^6.6.0", "@codemirror/theme-one-dark": "^6.1.3", "@codemirror/view": "^6.40.0", + "@fontsource-variable/geist": "^5.2.8", "@fontsource/dm-sans": "^5.2.8", "@fontsource/geist-mono": "^5.2.7", "@fontsource/geist-sans": "^5.2.5", diff --git a/frontend/src/app.css b/frontend/src/app.css index 9b91e1a..db38da2 100644 --- a/frontend/src/app.css +++ b/frontend/src/app.css @@ -1,11 +1,17 @@ -@import '@fontsource/geist-sans/300.css'; -@import '@fontsource/geist-sans/400.css'; -@import '@fontsource/geist-sans/500.css'; -@import '@fontsource/geist-sans/600.css'; -@import '@fontsource/geist-sans/700.css'; +/* Sans: variable Geist ships latin + latin-ext + cyrillic in one woff2, + so RU and EN render in the same font instead of falling back to a + system sans for Cyrillic. Replaces the legacy ``@fontsource/geist-sans`` + (latin-only) imports — see --font-sans below for the family rename. */ +@import '@fontsource-variable/geist'; @import '@fontsource/geist-mono/400.css'; @import '@fontsource/geist-mono/500.css'; @import '@fontsource/geist-mono/600.css'; +/* Geist Mono cyrillic subsets — same family name, additional unicode-range + declarations so Russian text renders in Geist Mono instead of falling + back to Cascadia/Consolas. */ +@import '@fontsource/geist-mono/cyrillic-400.css'; +@import '@fontsource/geist-mono/cyrillic-500.css'; +@import '@fontsource/geist-mono/cyrillic-600.css'; @import '@fontsource/newsreader/300-italic.css'; @import '@fontsource/newsreader/400.css'; @import '@fontsource/newsreader/400-italic.css'; @@ -68,7 +74,7 @@ --shadow-card: 0 1px 0 rgba(255,255,255,0.07) inset, 0 30px 60px -20px rgba(0,0,0,0.6); /* Typography */ - --font-sans: 'Geist Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; + --font-sans: 'Geist Variable', 'Geist', 'Geist Sans', ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif; --font-mono: 'Geist Mono', ui-monospace, 'Cascadia Code', 'Consolas', monospace; --font-display: 'Newsreader', ui-serif, Georgia, serif;