UNPKG

@kobalte/solidbase

Version:

Fully featured, fully customisable static site generation for SolidStart

70 lines (69 loc) 3.03 kB
import { fileURLToPath } from "node:url"; import { defineTheme } from "../config/index.js"; const allFonts = { inter: { cssPath: import.meta.resolve("@fontsource-variable/inter"), preloadFontPath: import.meta.resolve("@fontsource-variable/inter/files/inter-latin-wght-normal.woff2"), fontType: "woff2", }, lexend: { cssPath: import.meta.resolve("@fontsource-variable/lexend"), preloadFontPath: import.meta.resolve("@fontsource-variable/lexend/files/lexend-latin-wght-normal.woff2"), fontType: "woff2", }, jetbrainsMono: { cssPath: import.meta.resolve("@fontsource-variable/jetbrains-mono"), preloadFontPath: import.meta.resolve("@fontsource-variable/jetbrains-mono/files/jetbrains-mono-latin-wght-normal.woff2"), fontType: "woff2", }, }; const defaultTheme = defineTheme({ componentsPath: import.meta.resolve("@kobalte/solidbase/default-theme"), vite(config) { const filteredFonts = []; if (config?.themeConfig?.fonts !== false) { const fonts = config?.themeConfig?.fonts; for (const [font, paths] of Object.entries(allFonts)) { if (fonts?.[font] !== false) filteredFonts.push(paths); } } return [ { name: "solidbase-default-theme-fonts", resolveId(id) { if (id.startsWith("virtual:solidbase/default-theme/fonts.css")) return "virtual:solidbase/default-theme/fonts.css"; if (id.startsWith("virtual:solidbase/default-theme/fonts")) return "\0virtual:solidbase/default-theme/fonts"; }, load(id) { if (id.startsWith("virtual:solidbase/default-theme/fonts.css")) return filteredFonts .map((font) => `@import url(${fileURLToPath(font.cssPath, { windows: false })});`) .join("\n"); if (id.startsWith("\0virtual:solidbase/default-theme/fonts")) { const preloadFonts = filteredFonts.map((font, i) => { const pathIdent = `font_${i}`; return { pathIdent, import: `import ${pathIdent} from "${fileURLToPath(font.preloadFontPath, { windows: false })}?url";`, type: font.fontType, }; }); return ` ${preloadFonts.map((f) => f.import).join("\n")} export const preloadFonts = [ ${preloadFonts .map((f) => `{ path: ${f.pathIdent}, type: "${f.type}" }`) .join(",")} ]; `; } }, }, ]; }, }); export default defaultTheme; //# sourceMappingURL=index.js.map