An interactive web app for browsing, previewing, and discovering Google Fonts. Explore 1900+ fonts with real-time typography controls, favorites, and shareable URLs.
- Browse 1900+ Google Fonts — Navigate through the full catalog with keyboard arrows or swipe gestures
- Live typography controls — Adjust font size, weight, and letter spacing in real time
- Filter by category — Sans-serif, Serif, Display, Handwriting, Monospace
- Search — Find fonts by name instantly
- Favorites — Save fonts you like (persisted in localStorage)
- Copy CSS — One-click copy of the
@importsnippet for any font - Shareable URLs — Every font/text/category combination has a unique URL
- Dark / Light theme — Toggle with persistent preference
- Keyboard shortcuts —
←→navigate,Ffavorite,Ccopy CSS,Escclose modal - Mobile-friendly — Responsive layout with swipe navigation
- Next.js 15 (App Router)
- React 19
- TypeScript
- Tailwind CSS 4
- Framer Motion
- nuqs (URL query state)
- Vitest + Testing Library
- Node.js >= 18
- pnpm
pnpm installpnpm devOpen http://localhost:3000.
pnpm build
pnpm startpnpm test # single run
pnpm test:watch # watch modepnpm lintsrc/
├── app/ # Next.js pages & layout
├── components/ # UI components (header, filter bar, font preview, etc.)
├── hooks/ # Custom React hooks (state, keyboard, swipe, favorites)
├── lib/ # Utilities (font catalog, CSS generation, constants)
├── providers/ # Theme context provider
└── types/ # TypeScript interfaces
data/
└── fonts-catalog.json # Google Fonts metadata (1900+ entries)
MIT