// lib/fonts.js import { Montserrat, Open_Sans, Roboto, Lato, Raleway, Poppins, Work_Sans, Jost, Noto_Sans, Quicksand, Averia_Libre, Philosopher, Pacifico, Caveat, Sacramento, Dancing_Script, Indie_Flower, Amatic_SC, Kaushan_Script, Architects_Daughter, Neucha, Great_Vibes, Satisfy, Yellowtail, Gloria_Hallelujah, Courgette, Almendra, Oswald, Bebas_Neue, Anton, Ultra, Stint_Ultra_Condensed, Playfair_Display, Abril_Fatface, Permanent_Marker, Alfa_Slab_One, Black_Ops_One, Germania_One, Holtwood_One_SC, Exo, Orbitron, Audiowide, Rajdhani, Space_Mono, Questrial, Syncopate, Unica_One, Italiana, Staatliches, Press_Start_2P, Righteous, Metal_Mania, Alegreya, Spectral, Fjalla_One, Glass_Antiqua, Cinzel_Decorative, Andika, } from "next/font/google"; function createFont(fontFn, name) { return { ...fontFn, className: `font-${name.toLowerCase().replace(/\s+/g, "")}`, }; } // ๐Ÿ”ค Modern Fonts const montserrat = Montserrat({ subsets: ["latin"], variable: "--font-montserrat", }); const opensans = Open_Sans({ subsets: ["latin"], variable: "--font-opensans" }); const roboto = Roboto({ subsets: ["latin"], variable: "--font-roboto" }); const lato = Lato({ subsets: ["latin"], variable: "--font-lato" }); const raleway = Raleway({ subsets: ["latin"], variable: "--font-raleway" }); const poppins = Poppins({ subsets: ["latin"], variable: "--font-poppins" }); const worksans = Work_Sans({ subsets: ["latin"], variable: "--font-worksans" }); const jost = Jost({ subsets: ["latin"], variable: "--font-jost" }); const notosans = Noto_Sans({ subsets: ["latin"], variable: "--font-notosans" }); const quicksand = Quicksand({ subsets: ["latin"], variable: "--font-quicksand", }); const averialibre = Averia_Libre({ subsets: ["latin"], variable: "--font-averialibre", }); const philosopher = Philosopher({ subsets: ["latin"], variable: "--font-philosopher", }); // โœ๏ธ Handwriting const pacifico = Pacifico({ subsets: ["latin"], variable: "--font-pacifico" }); const caveat = Caveat({ subsets: ["latin"], variable: "--font-caveat" }); const sacramento = Sacramento({ subsets: ["latin"], variable: "--font-sacramento", }); const dancingscript = Dancing_Script({ subsets: ["latin"], variable: "--font-dancingscript", }); const indieflower = Indie_Flower({ subsets: ["latin"], variable: "--font-indieflower", }); const amaticsc = Amatic_SC({ subsets: ["latin"], variable: "--font-amatic" }); const kaushanscript = Kaushan_Script({ subsets: ["latin"], variable: "--font-kaushan", }); const architectsdaughter = Architects_Daughter({ subsets: ["latin"], variable: "--font-architects", }); const neucha = Neucha({ subsets: ["latin"], variable: "--font-neucha" }); const greatvibes = Great_Vibes({ subsets: ["latin"], variable: "--font-greatvibes", }); const satisfy = Satisfy({ subsets: ["latin"], variable: "--font-satisfy" }); const yellowtail = Yellowtail({ subsets: ["latin"], variable: "--font-yellowtail", }); const gloriahallelujah = Gloria_Hallelujah({ subsets: ["latin"], variable: "--font-gloria", }); const courgette = Courgette({ subsets: ["latin"], variable: "--font-courgette", }); const almendra = Almendra({ subsets: ["latin"], variable: "--font-almendra" }); // ๐Ÿง‘โ€๐ŸŽค Statement const oswald = Oswald({ subsets: ["latin"], variable: "--font-oswald" }); const bebasneue = Bebas_Neue({ subsets: ["latin"], variable: "--font-bebasneue", }); const anton = Anton({ subsets: ["latin"], weight: "400", variable: "--font-anton", }); const ultra = Ultra({ subsets: ["latin"], variable: "--font-ultra" }); const stintultracondensed = Stint_Ultra_Condensed({ subsets: ["latin"], variable: "--font-stint", }); const playfair = Playfair_Display({ subsets: ["latin"], variable: "--font-playfair", }); const abril = Abril_Fatface({ subsets: ["latin"], weight: "400", variable: "--font-abril", }); const permanentmarker = Permanent_Marker({ subsets: ["latin"], weight: "400", variable: "--font-permanentmarker", }); const alfaslab = Alfa_Slab_One({ subsets: ["latin"], weight: "400", variable: "--font-alfaslab", }); const blackops = Black_Ops_One({ subsets: ["latin"], weight: "400", variable: "--font-blackops", }); const germania = Germania_One({ subsets: ["latin"], weight: "400", variable: "--font-germania", }); const holtwood = Holtwood_One_SC({ subsets: ["latin"], weight: "400", variable: "--font-holtwood", }); // ๐Ÿš€ Futuristic const exo = Exo({ subsets: ["latin"], variable: "--font-exo" }); const orbitron = Orbitron({ subsets: ["latin"], weight: "400", variable: "--font-orbitron", }); const audiowide = Audiowide({ subsets: ["latin"], weight: "400", variable: "--font-audiowide", }); const rajdhani = Rajdhani({ subsets: ["latin"], variable: "--font-rajdhani" }); const spacemono = Space_Mono({ subsets: ["latin"], variable: "--font-spacemono", }); const questrial = Questrial({ subsets: ["latin"], variable: "--font-questrial", }); const syncopate = Syncopate({ subsets: ["latin"], variable: "--font-syncopate", }); const unicaone = Unica_One({ subsets: ["latin"], variable: "--font-unicaone" }); const italiana = Italiana({ subsets: ["latin"], variable: "--font-italiana" }); const staatliches = Staatliches({ subsets: ["latin"], weight: "400", variable: "--font-staatliches", }); // ๐Ÿงข Aesthetic const pressstart2p = Press_Start_2P({ subsets: ["latin"], variable: "--font-pressstart2p", }); const righteous = Righteous({ subsets: ["latin"], weight: "400", variable: "--font-righteous", }); const metalmania = Metal_Mania({ subsets: ["latin"], weight: "400", variable: "--font-metalmania", }); const alegreya = Alegreya({ subsets: ["latin"], variable: "--font-alegreya" }); const spectral = Spectral({ subsets: ["latin"], variable: "--font-spectral" }); const fjallaone = Fjalla_One({ subsets: ["latin"], variable: "--font-fjallaone", }); const glassantiqua = Glass_Antiqua({ subsets: ["latin"], variable: "--font-glassantiqua", }); const cinzeldecorative = Cinzel_Decorative({ subsets: ["latin"], variable: "--font-cinzeldecorative", }); const andika = Andika({ subsets: ["latin"], weight: "400", variable: "--font-andika", }); export const fonts = { Montserrat: createFont(montserrat, "montserrat"), "Open Sans": createFont(opensans, "opensans"), Roboto: createFont(roboto, "roboto"), Lato: createFont(lato, "lato"), Raleway: createFont(raleway, "raleway"), Poppins: createFont(poppins, "poppins"), "Work Sans": createFont(worksans, "worksans"), Jost: createFont(jost, "jost"), "Noto Sans": createFont(notosans, "notosans"), Quicksand: createFont(quicksand, "quicksand"), "Averia Libre": createFont(averialibre, "averialibre"), Philosopher: createFont(philosopher, "philosopher"), Pacifico: createFont(pacifico, "pacifico"), Caveat: createFont(caveat, "caveat"), Sacramento: createFont(sacramento, "sacramento"), "Dancing Script": createFont(dancingscript, "dancingscript"), "Indie Flower": createFont(indieflower, "indieflower"), "Amatic SC": createFont(amaticsc, "amatic"), "Kaushan Script": createFont(kaushanscript, "kaushan"), "Architects Daughter": createFont(architectsdaughter, "architects"), Neucha: createFont(neucha, "neucha"), "Great Vibes": createFont(greatvibes, "greatvibes"), Satisfy: createFont(satisfy, "satisfy"), Yellowtail: createFont(yellowtail, "yellowtail"), "Gloria Hallelujah": createFont(gloriahallelujah, "gloria"), Courgette: createFont(courgette, "courgette"), Almendra: createFont(almendra, "almendra"), Oswald: createFont(oswald, "oswald"), "Bebas Neue": createFont(bebasneue, "bebasneue"), Anton: createFont(anton, "anton"), Ultra: createFont(ultra, "ultra"), "Stint Ultra Condensed": createFont(stintultracondensed, "stint"), "Playfair Display": createFont(playfair, "playfair"), "Abril Fatface": createFont(abril, "abril"), "Permanent Marker": createFont(permanentmarker, "permanentmarker"), "Alfa Slab One": createFont(alfaslab, "alfaslab"), "Black Ops One": createFont(blackops, "blackops"), "Germania One": createFont(germania, "germania"), "Holtwood One SC": createFont(holtwood, "holtwood"), Exo: createFont(exo, "exo"), Orbitron: createFont(orbitron, "orbitron"), Audiowide: createFont(audiowide, "audiowide"), Rajdhani: createFont(rajdhani, "rajdhani"), "Space Mono": createFont(spacemono, "spacemono"), Questrial: createFont(questrial, "questrial"), Syncopate: createFont(syncopate, "syncopate"), "Unica One": createFont(unicaone, "unicaone"), Italiana: createFont(italiana, "italiana"), Staatliches: createFont(staatliches, "staatliches"), "Press Start 2P": createFont(pressstart2p, "pressstart2p"), Righteous: createFont(righteous, "righteous"), "Metal Mania": createFont(metalmania, "metalmania"), Alegreya: createFont(alegreya, "alegreya"), Spectral: createFont(spectral, "spectral"), "Fjalla One": createFont(fjallaone, "fjallaone"), "Glass Antiqua": createFont(glassantiqua, "glassantiqua"), "Cinzel Decorative": createFont(cinzeldecorative, "cinzeldecorative"), Andika: createFont(andika, "andika"), }; export const getFontData = (key) => fonts[key] ?? fonts["Anton"];