diff --git a/public/fonts/firacode-bold.woff2 b/public/fonts/firacode-bold.woff2 new file mode 100644 index 00000000..349dc36a Binary files /dev/null and b/public/fonts/firacode-bold.woff2 differ diff --git a/public/fonts/firacode-regular.woff2 b/public/fonts/firacode-regular.woff2 new file mode 100644 index 00000000..f8b63fb0 Binary files /dev/null and b/public/fonts/firacode-regular.woff2 differ diff --git a/src/app/clientsettings/clientsettings.tsx b/src/app/clientsettings/clientsettings.tsx index 17f4f811..764bc993 100644 --- a/src/app/clientsettings/clientsettings.tsx +++ b/src/app/clientsettings/clientsettings.tsx @@ -87,6 +87,7 @@ class ClientSettingsView extends React.Component<{ model: RemotesModel }, { hove const availableFontFamilies: DropdownItem[] = []; availableFontFamilies.push({ label: "JetBrains Mono", value: "JetBrains Mono" }); availableFontFamilies.push({ label: "Hack", value: "Hack" }); + availableFontFamilies.push({ label: "Fira Code", value: "Fira Code" }); return availableFontFamilies; } diff --git a/src/util/fontutil.ts b/src/util/fontutil.ts index ea91e85f..848d0090 100644 --- a/src/util/fontutil.ts +++ b/src/util/fontutil.ts @@ -5,6 +5,7 @@ let isJetBrainsMonoLoaded = false; let isLatoFontLoaded = false; let isHackFontLoaded = false; let isBaseFontsLoaded = false; +let isFiraCodeLoaded = false; function addToFontFaceSet(fontFaceSet: FontFaceSet, fontFace: FontFace) { // any cast to work around typing issue @@ -55,6 +56,25 @@ function loadLatoFont() { latoFontBold.load(); } +function loadFiraCodeFont() { + if (isFiraCodeLoaded) { + return; + } + isFiraCodeLoaded = true; + let firaCodeRegular = new FontFace("Fira Code", "url('public/fonts/firacode-regular.woff2')", { + style: "normal", + weight: "400", + }); + let firaCodeBold = new FontFace("Fira Code", "url('public/fonts/firacode-bold.woff2')", { + style: "normal", + weight: "700", + }); + addToFontFaceSet(document.fonts, firaCodeRegular); + addToFontFaceSet(document.fonts, firaCodeBold); + firaCodeRegular.load(); + firaCodeBold.load(); +} + function loadHackFont() { if (isHackFontLoaded) { return; @@ -104,6 +124,7 @@ function loadFonts() { loadLatoFont(); loadJetBrainsMonoFont(); loadHackFont(); + loadFiraCodeFont(); } export { loadFonts };