From 97943c494056fdeb52b49bea4687f78642a4dc7c Mon Sep 17 00:00:00 2001 From: Marcus Messer Date: Fri, 17 Apr 2026 10:25:15 +0100 Subject: [PATCH] Refactored font management to use @fontsource packages and removed legacy Google Font configuration --- externals/styles/fonts.tsx | 94 ++++++-------------------------------- package.json | 4 ++ yarn.lock | 20 ++++++++ 3 files changed, 39 insertions(+), 79 deletions(-) diff --git a/externals/styles/fonts.tsx b/externals/styles/fonts.tsx index a50408e..bf5b72b 100644 --- a/externals/styles/fonts.tsx +++ b/externals/styles/fonts.tsx @@ -1,80 +1,16 @@ -import { Fira_Sans, Fira_Mono, Lato, Roboto } from 'next/font/google' +import '@fontsource/roboto/300.css' +import '@fontsource/roboto/400.css' +import '@fontsource/roboto/500.css' +import '@fontsource/roboto/700.css' +import '@fontsource/lato/400.css' +import '@fontsource/fira-mono/400.css' +import '@fontsource/fira-sans/300.css' +import '@fontsource/fira-sans/400.css' +import '@fontsource/fira-sans/500.css' +import '@fontsource/fira-sans/600.css' +import '@fontsource/fira-sans/700.css' -export const roboto = Roboto({ - subsets: ['latin'], - weight: ['400', '700'], - style: ['normal', 'italic'], - fallback: [ - '-apple-system', - 'BlinkMacSystemFont', - 'Segoe UI', - 'Roboto', - 'Helvetica Neue', - 'Arial', - 'sans-serif', - 'Apple Color Emoji', - 'Segoe UI Emoji', - 'Segoe UI Symbol', - ], - variable: '--font-roboto', - preload: false, -}) - -export const firaSans = Fira_Sans({ - subsets: ['latin'], - weight: ['300', '400', '500', '600', '700'], - style: ['normal', 'italic'], - fallback: [ - '-apple-system', - 'BlinkMacSystemFont', - 'Segoe UI', - 'Roboto', - 'Helvetica Neue', - 'Arial', - 'sans-serif', - 'Apple Color Emoji', - 'Segoe UI Emoji', - 'Segoe UI Symbol', - ], - variable: '--font-fira-sans', - preload: false, -}) - -export const firaMono = Fira_Mono({ - subsets: ['latin'], - weight: ['400'], - fallback: [ - '-apple-system', - 'BlinkMacSystemFont', - 'Segoe UI', - 'Roboto', - 'Helvetica Neue', - 'Arial', - 'sans-serif', - 'Apple Color Emoji', - 'Segoe UI Emoji', - 'Segoe UI Symbol', - ], - variable: '--font-fira-mono', - preload: false, -}) - -export const lato = Lato({ - subsets: ['latin'], - weight: ['400'], - style: ['normal', 'italic'], - fallback: [ - '-apple-system', - 'BlinkMacSystemFont', - 'Segoe UI', - 'Roboto', - 'Helvetica Neue', - 'Arial', - 'sans-serif', - 'Apple Color Emoji', - 'Segoe UI Emoji', - 'Segoe UI Symbol', - ], - variable: '--font-lato', - preload: false, -}) +export const roboto = { style: { fontFamily: 'Roboto, sans-serif' } } +export const firaSans = { style: { fontFamily: '"Fira Sans", sans-serif' } } +export const firaMono = { style: { fontFamily: '"Fira Mono", monospace' } } +export const lato = { style: { fontFamily: 'Lato, sans-serif' } } \ No newline at end of file diff --git a/package.json b/package.json index b7a8bf5..9cb22d3 100644 --- a/package.json +++ b/package.json @@ -21,6 +21,10 @@ "@emotion/react": "^11.4.1", "@emotion/server": "^11.4.0", "@emotion/styled": "^11.3.0", + "@fontsource/fira-mono": "^5.2.7", + "@fontsource/fira-sans": "^5.2.7", + "@fontsource/lato": "^5.2.7", + "@fontsource/roboto": "^5.2.10", "@monaco-editor/react": "^4.6.0", "@mui/icons-material": "^5.15.20", "@mui/lab": "^5.0.0-alpha.100", diff --git a/yarn.lock b/yarn.lock index 2f15a67..db105f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -975,6 +975,26 @@ resolved "https://registry.yarnpkg.com/@floating-ui/utils/-/utils-0.2.10.tgz#a2a1e3812d14525f725d011a73eceb41fef5bc1c" integrity sha512-aGTxbpbg8/b5JfU1HXSrbH3wXZuLPJcNEcZQFMxLs3oSzgtVu6nFPkbbGGUvBcUjKV2YyB9Wxxabo+HEH9tcRQ== +"@fontsource/fira-mono@^5.2.7": + version "5.2.7" + resolved "https://registry.yarnpkg.com/@fontsource/fira-mono/-/fira-mono-5.2.7.tgz#62b0e36d486c7d6aab348749c39b3bfefa73538b" + integrity sha512-wYrAn6i3nH6luqQBZxtWUpl4UTUvs9AEbEeZxksPMwIqyjRRaxHTNW3c2VfM50gabS2IS7pT8lVWS2USB4ukYA== + +"@fontsource/fira-sans@^5.2.7": + version "5.2.7" + resolved "https://registry.yarnpkg.com/@fontsource/fira-sans/-/fira-sans-5.2.7.tgz#f16d508b9a6bb5329f1cdc1af69d501000766630" + integrity sha512-5DE4AealD/VnbwdzMgnpWfCttMQBbteNiK9DCJE7cVwZEbDTPLUoFDMMvxNQ498nZc5in7Mta9c/s+3Ehh0BAg== + +"@fontsource/lato@^5.2.7": + version "5.2.7" + resolved "https://registry.yarnpkg.com/@fontsource/lato/-/lato-5.2.7.tgz#665b6076908b85abc26a9db5d0f34451bdb6a2d6" + integrity sha512-k5mum1ADbDW5cTw1Ett1eQVWeoZ6gq0ct6SFBibEhB4LRxhniChJZTBgd6ph5yBxLkN1fcnsnmicBNA4S/3nbw== + +"@fontsource/roboto@^5.2.10": + version "5.2.10" + resolved "https://registry.yarnpkg.com/@fontsource/roboto/-/roboto-5.2.10.tgz#b985d34de475913b41d0fb57e2dcd0b16ab9ecb5" + integrity sha512-8HlA5FtSfz//oFSr2eL7GFXAiE7eIkcGOtx7tjsLKq+as702x9+GU7K95iDeWFapHC4M2hv9RrpXKRTGGBI8Zg== + "@grpc/grpc-js@~1.9.0": version "1.9.15" resolved "https://registry.yarnpkg.com/@grpc/grpc-js/-/grpc-js-1.9.15.tgz#433d7ac19b1754af690ea650ab72190bd700739b"