diff --git a/web/blume.config.ts b/web/blume.config.ts index 623448b..602ab88 100644 --- a/web/blume.config.ts +++ b/web/blume.config.ts @@ -8,6 +8,16 @@ export default defineConfig({ // Logo mark beside the wordmark (Blume inlines web/public/logo.svg; the // same file ships as /favicon.svg for the favicon). logo: { image: "/logo.svg", text: "Outer" }, + // Typography: Geist everywhere, self-hosted (Blume downloads the files + // at build time and serves them locally — no Google Fonts requests at + // runtime). Same two families as the console (see pages/console/console.css). + theme: { + fonts: { + display: "geist", + body: "geist", + mono: "geist-mono", + }, + }, // Ilha islands in the console pages (`pages/console/`): Astro renders // them server-side and hydrates them in the browser (`client:load`). // The islands use the automatic JSX runtime (`jsxImportSource: ilha`, diff --git a/web/bun.lock b/web/bun.lock index a65843c..d85a4a8 100644 --- a/web/bun.lock +++ b/web/bun.lock @@ -5,6 +5,8 @@ "": { "name": "outer-web", "dependencies": { + "@fontsource-variable/geist": "^5.3.0", + "@fontsource-variable/geist-mono": "^5.3.0", "@ilha/astro": "^0.4.0", "blume": "^2.2.4", "daisyui": "^5.7.50", @@ -136,6 +138,10 @@ "@emnapi/wasi-threads": ["@emnapi/wasi-threads@1.2.2", "", { "dependencies": { "tslib": "^2.4.0" } }, "sha512-c95qOXkHdydNKhscBTebqEC1CVAZpyqOfVfBzQ1qgzyl3gfeldUjIggDbIZgDKsHLgnsM+igH7TJ/eAasaVuMA=="], + "@fontsource-variable/geist": ["@fontsource-variable/geist@5.3.0", "", {}, "sha512-j0m+vLQuG5XAYoHtGCVu0spvlGreR3EzpECUVzkFmI1mTVnAO38l/NEPDCFgZ177JxzYJCLSmTQibIiYPilGrA=="], + + "@fontsource-variable/geist-mono": ["@fontsource-variable/geist-mono@5.3.0", "", {}, "sha512-vBbuwDEo9AkrqADMXOrlAR3DFcJi4/JxeuU43FoiQERnNwsfXNnvxvReZG02cQKmyk4DZkZdBZX3oTDvy2zBAw=="], + "@hono/node-server": ["@hono/node-server@2.1.5", "", { "peerDependencies": { "hono": "^4 || ^5.0.0-0" } }, "sha512-MgP/I06GdvsilDspMk/qmRzpk8LOUStP6jFAbSRi40W09DhoyUn+Mj7eyKICPqeYKybOjVFLVIAQzvu1bfIa7Q=="], "@iconify-json/lucide": ["@iconify-json/lucide@1.2.147", "", { "dependencies": { "@iconify/types": "*" } }, "sha512-7Qqa/joSBeUxihWsQJx5nKcqMWtV3YrH90Jldxcx4J9ciTLavRUlpexQwRTcx9dcb7CJpISfjZTj42zD/30sqA=="], diff --git a/web/package.json b/web/package.json index 1ee806a..8f22931 100644 --- a/web/package.json +++ b/web/package.json @@ -12,6 +12,8 @@ "validate": "bun ./node_modules/blume/bin/blume.mjs validate" }, "dependencies": { + "@fontsource-variable/geist": "^5.3.0", + "@fontsource-variable/geist-mono": "^5.3.0", "@ilha/astro": "^0.4.0", "blume": "^2.2.4", "daisyui": "^5.7.50", diff --git a/web/pages/console/_islands/console.tsx b/web/pages/console/_islands/console.tsx index 225578d..b21acbf 100644 --- a/web/pages/console/_islands/console.tsx +++ b/web/pages/console/_islands/console.tsx @@ -1065,7 +1065,7 @@ export function Console() { aria-hidden="true" />