stoat-for-desktop/components/ui/themes/fonts.ts

161 lines
4.7 KiB
TypeScript

export const FONTS = {
Inter: {
load: async () => {
// default
},
},
"Open Sans": {
load: async () => {
await import("@fontsource/open-sans/300.css");
await import("@fontsource/open-sans/400.css");
await import("@fontsource/open-sans/500.css");
await import("@fontsource/open-sans/600.css");
await import("@fontsource/open-sans/700.css");
await import("@fontsource/open-sans/400-italic.css");
},
},
OpenDyslexic: {
load: async () => {
await import("@fontsource/opendyslexic/400.css");
await import("@fontsource/opendyslexic/700.css");
await import("@fontsource/opendyslexic/400-italic.css");
},
},
"Atkinson Hyperlegible": {
load: async () => {
await import("@fontsource/atkinson-hyperlegible/400.css");
await import("@fontsource/atkinson-hyperlegible/700.css");
await import("@fontsource/atkinson-hyperlegible/400-italic.css");
},
},
Roboto: {
load: async () => {
await import("@fontsource/roboto/400.css");
await import("@fontsource/roboto/700.css");
await import("@fontsource/roboto/400-italic.css");
},
},
"Noto Sans": {
load: async () => {
await import("@fontsource/noto-sans/400.css");
await import("@fontsource/noto-sans/700.css");
await import("@fontsource/noto-sans/400-italic.css");
},
},
Bitter: {
load: async () => {
await import("@fontsource/bitter/300.css");
await import("@fontsource/bitter/400.css");
await import("@fontsource/bitter/600.css");
await import("@fontsource/bitter/700.css");
},
},
Lato: {
load: async () => {
await import("@fontsource/lato/300.css");
await import("@fontsource/lato/400.css");
await import("@fontsource/lato/700.css");
await import("@fontsource/lato/400-italic.css");
},
},
Lexend: {
load: async () => {
await import("@fontsource/lexend/300.css");
await import("@fontsource/lexend/400.css");
await import("@fontsource/lexend/700.css");
},
},
Montserrat: {
load: async () => {
await import("@fontsource/montserrat/300.css");
await import("@fontsource/montserrat/400.css");
await import("@fontsource/montserrat/600.css");
await import("@fontsource/montserrat/700.css");
await import("@fontsource/montserrat/400-italic.css");
},
},
Poppins: {
load: async () => {
await import("@fontsource/poppins/300.css");
await import("@fontsource/poppins/400.css");
await import("@fontsource/poppins/600.css");
await import("@fontsource/poppins/700.css");
await import("@fontsource/poppins/400-italic.css");
},
},
Raleway: {
load: async () => {
await import("@fontsource/raleway/300.css");
await import("@fontsource/raleway/400.css");
await import("@fontsource/raleway/600.css");
await import("@fontsource/raleway/700.css");
await import("@fontsource/raleway/400-italic.css");
},
},
Ubuntu: {
load: async () => {
await import("@fontsource/ubuntu/300.css");
await import("@fontsource/ubuntu/400.css");
await import("@fontsource/ubuntu/500.css");
await import("@fontsource/ubuntu/700.css");
await import("@fontsource/ubuntu/400-italic.css");
},
},
"Comic Neue": {
load: async () => {
await import("@fontsource/comic-neue/300.css");
await import("@fontsource/comic-neue/400.css");
await import("@fontsource/comic-neue/700.css");
await import("@fontsource/comic-neue/400-italic.css");
},
},
"IBM Plex Sans Variable": {
load: async () => {
await import("@fontsource-variable/ibm-plex-sans/index.css");
},
},
"Plus Jakarta Sans Variable": {
load: async () => {
await import("@fontsource-variable/plus-jakarta-sans/index.css");
},
},
};
export const MONOSPACE_FONTS = {
"JetBrains Mono": {
load: () => {
/* default */
},
},
"Fira Code": {
load: () => import("@fontsource/fira-code/400.css"),
},
"Roboto Mono": {
load: () => import("@fontsource/roboto-mono/400.css"),
},
"Source Code Pro": {
load: () => import("@fontsource/source-code-pro/400.css"),
},
"Space Mono": {
load: () => import("@fontsource/space-mono/400.css"),
},
"Ubuntu Mono": {
load: () => import("@fontsource/ubuntu-mono/400.css"),
},
"IBM Plex Mono": {
load: () => import("@fontsource/ibm-plex-mono/400.css"),
},
};
export type Fonts = keyof typeof FONTS;
export type MonospaceFonts = keyof typeof MONOSPACE_FONTS;
export const FONT_KEYS = Object.keys(FONTS).sort();
export const MONOSPACE_FONT_KEYS = Object.keys(MONOSPACE_FONTS).sort();
export const DEFAULT_FONT = "Open Sans";
export const DEFAULT_MONO_FONT = "Fira Code";