Use this file to discover all available pages before exploring further.
Typography is the primary way invitations express personality. This platform uses a combination of Google Fonts (loaded via next/font/google for zero-layout-shift performance) and locally hosted decorative typefaces (loaded via next/font/local) stored in public/fonts/. All font instances are defined once in components/Fonts.ts and imported by whichever section components need them.
Use next/font/google to load any font from the Google Fonts catalog. Each font is instantiated with the subsets and weight options that match how it will be used. Named exports from Fonts.ts give each font instance a clear alias.
You do not need to use every font you declare — just import the ones you actually use in a given component. Unused exports are tree-shaken at build time.Common Google Font pairings used across invitations:
Apply a font to a React element by spreading its .className property into the element’s className string. Use template literals to combine it with Tailwind utility classes:
import { pinyion, playFair, rajdhani } from "./Fonts";// Celebrant name — large decorative script<motion.p className={`${pinyion.className} text-7xl text-yellow-400`}> Daniela</motion.p>// Section heading — serif display<motion.h1 className={`${playFair.className} text-2xl text-zinc-600`}> MIS XV AÑOS</motion.h1>// Street address — readable body font<motion.p className={`${rajdhani.className} text-sm text-center`}> Juan de La Luz Enríquez s/n, Centro, 91000 Xalapa-Enríquez, Ver.</motion.p>
Each next/font instance handles CSS variable injection automatically — you never need to load <link> tags or configure @font-face rules manually.
Two UI component libraries are included as Tailwind plugins:
NextUI (@nextui-org/react) — used for Button, Modal, Card, Avatar, and useDisclosure. Import components directly from @nextui-org/react.
Flowbite (flowbite-react) — used for the Carousel component in GodParents. Import from flowbite-react.
Both libraries require their respective packages in the Tailwind content array and as plugins entries, otherwise their utility classes will be purged in production builds.
The class .background-class is applied to the <main> element in page.tsx. The .custom-class-page selector targets the Splide pagination buttons through the classes.page option passed to the <Splide> component in Main.tsx.
Add decorative text shadow to script fonts using an inline style prop — this is faster than writing a custom CSS utility:
You can also define reusable shadow values as CSS custom properties in styles.css (e.g. --text-glow: 0 0 8px rgba(255,215,0,0.8)) and reference them via style={{ textShadow: "var(--text-glow)" }}.