diff --git a/ui/src/fonts/dm-sans-400-italic.woff2 b/ui/src/fonts/dm-sans-400-italic.woff2 new file mode 100644 index 00000000..d7898c96 Binary files /dev/null and b/ui/src/fonts/dm-sans-400-italic.woff2 differ diff --git a/ui/src/fonts/dm-sans-400.woff2 b/ui/src/fonts/dm-sans-400.woff2 new file mode 100644 index 00000000..0b8bc556 Binary files /dev/null and b/ui/src/fonts/dm-sans-400.woff2 differ diff --git a/ui/src/fonts/dm-sans-500.woff2 b/ui/src/fonts/dm-sans-500.woff2 new file mode 100644 index 00000000..48e16128 Binary files /dev/null and b/ui/src/fonts/dm-sans-500.woff2 differ diff --git a/ui/src/fonts/dm-sans-600.woff2 b/ui/src/fonts/dm-sans-600.woff2 new file mode 100644 index 00000000..5e39dbc9 Binary files /dev/null and b/ui/src/fonts/dm-sans-600.woff2 differ diff --git a/ui/src/fonts/dm-sans-700.woff2 b/ui/src/fonts/dm-sans-700.woff2 new file mode 100644 index 00000000..26edc56c Binary files /dev/null and b/ui/src/fonts/dm-sans-700.woff2 differ diff --git a/ui/src/fonts/jetbrains-mono-400.woff2 b/ui/src/fonts/jetbrains-mono-400.woff2 new file mode 100644 index 00000000..58588733 Binary files /dev/null and b/ui/src/fonts/jetbrains-mono-400.woff2 differ diff --git a/ui/src/fonts/jetbrains-mono-500.woff2 b/ui/src/fonts/jetbrains-mono-500.woff2 new file mode 100644 index 00000000..be878e68 Binary files /dev/null and b/ui/src/fonts/jetbrains-mono-500.woff2 differ diff --git a/ui/src/fonts/jetbrains-mono-600.woff2 b/ui/src/fonts/jetbrains-mono-600.woff2 new file mode 100644 index 00000000..59c24e7c Binary files /dev/null and b/ui/src/fonts/jetbrains-mono-600.woff2 differ diff --git a/ui/src/index.css b/ui/src/index.css index b236e147..83ff9288 100644 --- a/ui/src/index.css +++ b/ui/src/index.css @@ -1,4 +1,62 @@ -@import url('https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,100..1000;1,9..40,100..1000&family=JetBrains+Mono:wght@400;500;600&display=swap'); +/* DM Sans — self-hosted (GDPR compliant) */ +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('./fonts/dm-sans-400.woff2') format('woff2'); +} +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url('./fonts/dm-sans-500.woff2') format('woff2'); +} +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('./fonts/dm-sans-600.woff2') format('woff2'); +} +@font-face { + font-family: 'DM Sans'; + font-style: normal; + font-weight: 700; + font-display: swap; + src: url('./fonts/dm-sans-700.woff2') format('woff2'); +} +@font-face { + font-family: 'DM Sans'; + font-style: italic; + font-weight: 400; + font-display: swap; + src: url('./fonts/dm-sans-400-italic.woff2') format('woff2'); +} + +/* JetBrains Mono — self-hosted (GDPR compliant) */ +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 400; + font-display: swap; + src: url('./fonts/jetbrains-mono-400.woff2') format('woff2'); +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 500; + font-display: swap; + src: url('./fonts/jetbrains-mono-500.woff2') format('woff2'); +} +@font-face { + font-family: 'JetBrains Mono'; + font-style: normal; + font-weight: 600; + font-display: swap; + src: url('./fonts/jetbrains-mono-600.woff2') format('woff2'); +} :root { font-family: 'DM Sans', system-ui, sans-serif;