diff --git a/index.html b/index.html index 00b8513..ce04595 100644 --- a/index.html +++ b/index.html @@ -31,12 +31,6 @@ document.documentElement.style.colorScheme = resolved; })(); - - -
diff --git a/package.json b/package.json index 12b3d9b..4127dea 100644 --- a/package.json +++ b/package.json @@ -23,6 +23,8 @@ "typecheck": "svelte-check --tsconfig ./tsconfig.json --tsgo" }, "dependencies": { + "@fontsource-variable/ibm-plex-sans": "^5.2.8", + "@fontsource/ibm-plex-mono": "^5.2.7", "@lucide/svelte": "^1.22.0", "@netlify/database": "^1.1.0", "@sveltejs/vite-plugin-svelte": "^7.1.2", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 9fbfe6c..e1a1061 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -207,6 +207,12 @@ importers: .: dependencies: + '@fontsource-variable/ibm-plex-sans': + specifier: ^5.2.8 + version: 5.2.8 + '@fontsource/ibm-plex-mono': + specifier: ^5.2.7 + version: 5.2.7 '@lucide/svelte': specifier: ^1.22.0 version: 1.22.0(svelte@5.56.4(@typescript-eslint/types@8.62.0)) @@ -764,6 +770,12 @@ packages: '@fastify/busboy@3.2.0': resolution: {integrity: sha512-m9FVDXU3GT2ITSe0UaMA5rU3QkfC/UXtCU8y0gSN/GugTqtVldOBWIB5V6V3sbmenVZUIpU6f+mPEO2+m5iTaA==} + '@fontsource-variable/ibm-plex-sans@5.2.8': + resolution: {integrity: sha512-n5PF2iFa0CZT0QYTPzxvZ39opC9LnU0zdoRccoADbs+Dtsd+lbXOZF7RNuIPHcQX1dKjF63sxnRImQIB5eD0Ag==} + + '@fontsource/ibm-plex-mono@5.2.7': + resolution: {integrity: sha512-MKAb8qV+CaiMQn2B0dIi1OV3565NYzp3WN5b4oT6LTkk+F0jR6j0ZN+5BKJiIhffDC3rtBULsYZE65+0018z9w==} + '@humanwhocodes/momoa@2.0.4': resolution: {integrity: sha512-RE815I4arJFtt+FVeU1Tgp9/Xvecacji8w/V6XtXsWWH/wz/eNkNbhb+ny/+PlVZjV0rxQpRSQKNKE3lcktHEA==} engines: {node: '>=10.10.0'} @@ -5177,6 +5189,10 @@ snapshots: '@fastify/busboy@3.2.0': {} + '@fontsource-variable/ibm-plex-sans@5.2.8': {} + + '@fontsource/ibm-plex-mono@5.2.7': {} + '@humanwhocodes/momoa@2.0.4': {} '@iarna/toml@2.2.5': {} diff --git a/src/main.ts b/src/main.ts index 4473814..02a72a7 100644 --- a/src/main.ts +++ b/src/main.ts @@ -1,6 +1,14 @@ import { mount } from "svelte"; import App from "./App.svelte"; import SharedReport from "./SharedReport.svelte"; +// Self-hosted fonts (bundled by Vite, no third-party runtime origin). IBM Plex +// Sans is variable; IBM Plex Mono is static, so we pull only the weights the UI uses. +import "@fontsource-variable/ibm-plex-sans/wght.css"; +import "@fontsource/ibm-plex-mono/400.css"; +import "@fontsource/ibm-plex-mono/400-italic.css"; +import "@fontsource/ibm-plex-mono/500.css"; +import "@fontsource/ibm-plex-mono/600.css"; +import "@fontsource/ibm-plex-mono/700.css"; import "./styles.css"; const target = document.getElementById("root"); diff --git a/src/styles.css b/src/styles.css index e04c44a..49bcb44 100644 --- a/src/styles.css +++ b/src/styles.css @@ -33,7 +33,7 @@ --risk-line: rgba(224, 122, 95, 0.4); --mono: "IBM Plex Mono", ui-monospace, "SF Mono", Menlo, monospace; - --sans: "IBM Plex Sans", system-ui, sans-serif; + --sans: "IBM Plex Sans Variable", "IBM Plex Sans", system-ui, sans-serif; --text-xs: 0.8125rem; --text-sm: 0.875rem;