A modern web application for extracting and downloading fonts from websites for educational purposes. Built with Next.js 16, React 19, and Tailwind CSS.
- π Font Extraction - Extract all fonts from any website URL
- π₯ Easy Download - Download fonts with a single click
- π¨ Font Preview - Preview fonts before downloading
- π Search & Filter - Search fonts by name, family, or source
- π Export to CSV - Export font lists for documentation
- π Dark Mode - Full dark mode support with system preference detection
- π± Responsive Design - Works seamlessly on desktop, tablet, and mobile
- βοΈ License Information - Educational content about font licensing
- π― Domain Suggestions - Quick domain TLD suggestions (.com, .org, etc.)
- Node.js 18+ or higher
- npm, pnpm, or yarn
- Clone the repository:
git clone https://github.com/yourusername/fontextract.git
cd fontextract- Install dependencies:
npm install
# or
pnpm install
# or
yarn install- Run the development server:
npm run dev
# or
pnpm dev
# or
yarn dev- Open http://localhost:3000 in your browser.
- Framework: Next.js 16 with App Router
- UI Library: React 19
- Styling: Tailwind CSS
- UI Components: Radix UI
- Theme: next-themes
- Icons: Lucide React
- Language: TypeScript
fontextract/
βββ app/
β βββ api/
β β βββ download-font/ # Font download API endpoint
β β βββ extract-fonts/ # Font extraction API endpoint
β βββ globals.css # Global styles and theme variables
β βββ layout.tsx # Root layout with theme provider
β βββ loading.tsx # Loading state
β βββ page.tsx # Main application page
βββ components/
β βββ ui/ # Reusable UI components (shadcn/ui)
β βββ EducationalGuide.tsx # Font licensing education
β βββ FontList.tsx # Font display and download
β βββ Logo.tsx # Application logo
β βββ ThemeToggle.tsx # Dark/light mode toggle
β βββ theme-provider.tsx # Theme context provider
βββ hooks/ # Custom React hooks
βββ lib/ # Utility functions
βββ public/ # Static assets
βββ styles/ # Additional styles
Enter any website URL to extract all fonts used on that page. The app analyzes:
- Web fonts (WOFF, WOFF2, TTF, OTF, EOT, SVG)
- Google Fonts
- Custom fonts
- Font families and variations
For each font, you'll see:
- Font name and family
- File type and size
- Source URL
- License information (when available)
- Live preview with sample text
- Real-time search across font names, families, and sources
- Grouped display by font source
- Export filtered results to CSV
Learn about:
- Font licensing types (Open Source, Commercial, etc.)
- Font file formats (WOFF, TTF, OTF, etc.)
- Ethical usage guidelines
- Legal considerations
- Free font alternatives
IMPORTANT: This tool is provided for educational purposes only. Users are solely responsible for ensuring they have the right to download and use fonts. Always:
- β Verify font licenses before use
- β Respect copyright and intellectual property rights
- β Use only openly licensed fonts or fonts you have permission to use
- β Do not download fonts from subscription services without authorization
- β Do not redistribute copyrighted fonts
Unauthorized distribution or commercial use of copyrighted fonts is illegal.
Extract fonts from a website URL.
Request Body:
{
"url": "https://example.com"
}Response:
{
"fonts": [
{
"name": "Font Name",
"family": "Font Family",
"type": "woff2",
"size": "24.5 KB",
"url": "https://...",
"source": "Google Fonts",
"filename": "font-name.woff2",
"isOpenSource": true,
"license": "OFL"
}
]
}Download a font file through a proxy to avoid CORS issues.
Request Body:
{
"url": "https://fonts.gstatic.com/..."
}Edit app/globals.css to customize the color scheme:
:root {
--primary: 217 91% 60%; /* Blue */
--secondary: 210 40% 96%; /* Light gray */
--accent: 210 40% 96%; /* Accent color */
/* ... more variables */
}Edit the DOMAIN_SUGGESTIONS array in app/page.tsx:
const DOMAIN_SUGGESTIONS = ['.com', '.org', '.net', /* ... */]npm run build
npm startContributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/AmazingFeature) - Commit your changes (
git commit -m 'Add some AmazingFeature') - Push to the branch (
git push origin feature/AmazingFeature) - Open a Pull Request
This project is licensed under the MIT License - see the LICENSE file for details.
- Telegram: @tmeta9
- Next.js - The React Framework
- Tailwind CSS - Utility-first CSS framework
- Radix UI - Unstyled, accessible components
- Lucide - Beautiful & consistent icons
- shadcn/ui - Re-usable components
- Initial release
- Font extraction from websites
- Download functionality
- Dark mode support
- Educational content
- CSV export
- Responsive design
Made with β€οΈ for the web development community