summaryrefslogtreecommitdiffhomepage
path: root/packages/ui/src/components
diff options
context:
space:
mode:
authorAdam <[email protected]>2026-03-25 06:23:25 -0500
committerAdam <[email protected]>2026-03-25 06:25:05 -0500
commit898456a25cf2edbfc4ae4961b37424f633419dd6 (patch)
tree626207d26b6c338136b069bbaaa09d67a45ddde3 /packages/ui/src/components
parent53d0b58ebf3468bd161dcfcdc67cd66b6508e9f8 (diff)
downloadopencode-898456a25cf2edbfc4ae4961b37424f633419dd6.tar.gz
opencode-898456a25cf2edbfc4ae4961b37424f633419dd6.zip
Revert "fix(app): startup efficiency"
Diffstat (limited to 'packages/ui/src/components')
-rw-r--r--packages/ui/src/components/font.tsx119
1 files changed, 116 insertions, 3 deletions
diff --git a/packages/ui/src/components/font.tsx b/packages/ui/src/components/font.tsx
index e1a508f16..f735747a4 100644
--- a/packages/ui/src/components/font.tsx
+++ b/packages/ui/src/components/font.tsx
@@ -1,9 +1,121 @@
-import { Link, Style } from "@solidjs/meta"
import { Show } from "solid-js"
+import { Style, Link } from "@solidjs/meta"
import inter from "../assets/fonts/inter.woff2"
-import ibmPlexMonoBold from "../assets/fonts/ibm-plex-mono-bold.woff2"
-import ibmPlexMonoMedium from "../assets/fonts/ibm-plex-mono-medium.woff2"
import ibmPlexMonoRegular from "../assets/fonts/ibm-plex-mono.woff2"
+import ibmPlexMonoMedium from "../assets/fonts/ibm-plex-mono-medium.woff2"
+import ibmPlexMonoBold from "../assets/fonts/ibm-plex-mono-bold.woff2"
+
+import cascadiaCode from "../assets/fonts/cascadia-code-nerd-font.woff2"
+import cascadiaCodeBold from "../assets/fonts/cascadia-code-nerd-font-bold.woff2"
+import firaCode from "../assets/fonts/fira-code-nerd-font.woff2"
+import firaCodeBold from "../assets/fonts/fira-code-nerd-font-bold.woff2"
+import hack from "../assets/fonts/hack-nerd-font.woff2"
+import hackBold from "../assets/fonts/hack-nerd-font-bold.woff2"
+import inconsolata from "../assets/fonts/inconsolata-nerd-font.woff2"
+import inconsolataBold from "../assets/fonts/inconsolata-nerd-font-bold.woff2"
+import intelOneMono from "../assets/fonts/intel-one-mono-nerd-font.woff2"
+import intelOneMonoBold from "../assets/fonts/intel-one-mono-nerd-font-bold.woff2"
+import jetbrainsMono from "../assets/fonts/jetbrains-mono-nerd-font.woff2"
+import jetbrainsMonoBold from "../assets/fonts/jetbrains-mono-nerd-font-bold.woff2"
+import mesloLgs from "../assets/fonts/meslo-lgs-nerd-font.woff2"
+import mesloLgsBold from "../assets/fonts/meslo-lgs-nerd-font-bold.woff2"
+import robotoMono from "../assets/fonts/roboto-mono-nerd-font.woff2"
+import robotoMonoBold from "../assets/fonts/roboto-mono-nerd-font-bold.woff2"
+import sourceCodePro from "../assets/fonts/source-code-pro-nerd-font.woff2"
+import sourceCodeProBold from "../assets/fonts/source-code-pro-nerd-font-bold.woff2"
+import ubuntuMono from "../assets/fonts/ubuntu-mono-nerd-font.woff2"
+import ubuntuMonoBold from "../assets/fonts/ubuntu-mono-nerd-font-bold.woff2"
+import iosevka from "../assets/fonts/iosevka-nerd-font.woff2"
+import iosevkaBold from "../assets/fonts/iosevka-nerd-font-bold.woff2"
+import geistMono from "../assets/fonts/GeistMonoNerdFontMono-Regular.woff2"
+import geistMonoBold from "../assets/fonts/GeistMonoNerdFontMono-Bold.woff2"
+
+type MonoFont = {
+ family: string
+ regular: string
+ bold: string
+}
+
+export const MONO_NERD_FONTS = [
+ {
+ family: "JetBrains Mono Nerd Font",
+ regular: jetbrainsMono,
+ bold: jetbrainsMonoBold,
+ },
+ {
+ family: "Fira Code Nerd Font",
+ regular: firaCode,
+ bold: firaCodeBold,
+ },
+ {
+ family: "Cascadia Code Nerd Font",
+ regular: cascadiaCode,
+ bold: cascadiaCodeBold,
+ },
+ {
+ family: "Hack Nerd Font",
+ regular: hack,
+ bold: hackBold,
+ },
+ {
+ family: "Source Code Pro Nerd Font",
+ regular: sourceCodePro,
+ bold: sourceCodeProBold,
+ },
+ {
+ family: "Inconsolata Nerd Font",
+ regular: inconsolata,
+ bold: inconsolataBold,
+ },
+ {
+ family: "Roboto Mono Nerd Font",
+ regular: robotoMono,
+ bold: robotoMonoBold,
+ },
+ {
+ family: "Ubuntu Mono Nerd Font",
+ regular: ubuntuMono,
+ bold: ubuntuMonoBold,
+ },
+ {
+ family: "Intel One Mono Nerd Font",
+ regular: intelOneMono,
+ bold: intelOneMonoBold,
+ },
+ {
+ family: "Meslo LGS Nerd Font",
+ regular: mesloLgs,
+ bold: mesloLgsBold,
+ },
+ {
+ family: "Iosevka Nerd Font",
+ regular: iosevka,
+ bold: iosevkaBold,
+ },
+ {
+ family: "GeistMono Nerd Font",
+ regular: geistMono,
+ bold: geistMonoBold,
+ },
+] satisfies MonoFont[]
+
+const monoNerdCss = MONO_NERD_FONTS.map(
+ (font) => `
+ @font-face {
+ font-family: "${font.family}";
+ src: url("${font.regular}") format("woff2");
+ font-display: swap;
+ font-style: normal;
+ font-weight: 400;
+ }
+ @font-face {
+ font-family: "${font.family}";
+ src: url("${font.bold}") format("woff2");
+ font-display: swap;
+ font-style: normal;
+ font-weight: 700;
+ }`,
+).join("")
export const Font = () => {
return (
@@ -53,6 +165,7 @@ export const Font = () => {
descent-override: 25%;
line-gap-override: 1%;
}
+${monoNerdCss}
`}</Style>
<Show when={typeof location === "undefined" || location.protocol !== "file:"}>
<Link rel="preload" href={inter} as="font" type="font/woff2" crossorigin="anonymous" />