mirror of
https://github.com/shadcn-ui/ui.git
synced 2026-06-11 09:51:40 +00:00
* feat: add rhea * fix: blocks * feat: build chat example * fix * fix: sidebar * fix * feat: update home * fix * fix * fix * feat: optimizine fonts * feat * fix * fix * fix * fix * fix * fix * fix: font in preview * fix
78 lines
2.0 KiB
TypeScript
78 lines
2.0 KiB
TypeScript
import { FONT_DEFINITIONS, type FontName } from "@/lib/font-definitions"
|
|
|
|
type CreateFont = {
|
|
family: string
|
|
import: string
|
|
previewVariable: string
|
|
style: {
|
|
fontFamily: string
|
|
}
|
|
variable: string
|
|
}
|
|
|
|
function createFontOption(name: FontName) {
|
|
const definition = FONT_DEFINITIONS.find((font) => font.name === name)
|
|
|
|
if (!definition) {
|
|
throw new Error(`Unknown font definition: ${name}`)
|
|
}
|
|
|
|
return {
|
|
name: definition.title,
|
|
value: definition.name,
|
|
font: {
|
|
family: definition.family,
|
|
import: definition.import,
|
|
previewVariable: definition.previewVariable,
|
|
style: {
|
|
fontFamily: `var(${definition.previewVariable}), ${definition.family}`,
|
|
},
|
|
variable: definition.registryVariable,
|
|
} satisfies CreateFont,
|
|
type: definition.type,
|
|
} as const
|
|
}
|
|
|
|
export const FONTS = [
|
|
createFontOption("geist"),
|
|
createFontOption("inter"),
|
|
createFontOption("noto-sans"),
|
|
createFontOption("nunito-sans"),
|
|
createFontOption("figtree"),
|
|
createFontOption("roboto"),
|
|
createFontOption("raleway"),
|
|
createFontOption("dm-sans"),
|
|
createFontOption("public-sans"),
|
|
createFontOption("outfit"),
|
|
createFontOption("oxanium"),
|
|
createFontOption("manrope"),
|
|
createFontOption("space-grotesk"),
|
|
createFontOption("montserrat"),
|
|
createFontOption("ibm-plex-sans"),
|
|
createFontOption("source-sans-3"),
|
|
createFontOption("instrument-sans"),
|
|
createFontOption("geist-mono"),
|
|
createFontOption("jetbrains-mono"),
|
|
createFontOption("noto-serif"),
|
|
createFontOption("roboto-slab"),
|
|
createFontOption("merriweather"),
|
|
createFontOption("lora"),
|
|
createFontOption("playfair-display"),
|
|
createFontOption("eb-garamond"),
|
|
createFontOption("instrument-serif"),
|
|
] as const
|
|
|
|
export type Font = (typeof FONTS)[number]
|
|
|
|
export const FONT_HEADING_OPTIONS = [
|
|
{
|
|
name: "Inherit",
|
|
value: "inherit",
|
|
font: null,
|
|
type: "default",
|
|
},
|
|
...FONTS,
|
|
] as const
|
|
|
|
export type FontHeadingOption = (typeof FONT_HEADING_OPTIONS)[number]
|