Font Picker
Google Fonts picker field with font previews, search, and category filtering.
Author:
Charlie Etienne
Documentation
A beautiful Google Fonts picker component for Filament forms with real-time font previews, search functionality, and category filtering.
#Features
- 🔍 Search Google Fonts: Find fonts quickly with intelligent search
- 🏷️ Category Filtering: Filter by serif, sans-serif, monospace, display, and handwriting fonts
- 👀 Live Previews: See font previews as you browse
- ⚡ Performance Optimized: Fonts load only when needed with intersection observer
- 🌙 Dark Mode Support: Seamless integration with Filament's dark mode
- 📱 Mobile Friendly: Responsive design that works on all devices
- ♿ Accessibility First: Full keyboard navigation and screen reader support
#Installation
You can install the package via composer:
composer require charlieetienne/filament-font-picker
[!IMPORTANT] If you have not set up a custom theme and are using Filament Panels follow the instructions in the Filament Docs first.
After setting up a custom theme add the plugin's views to your theme css file or your app's css file if using the standalone packages.
@source '../../../../vendor/charlieetienne/filament-font-picker/resources/**/*.blade.php';
#Usage
Use the FontPicker component in your Filament forms:
use CharlieEtienne\FilamentFontPicker\FontPicker;
FontPicker::make('font')
->label('Choose Font')
#Options
You can control which font categories are available and which are preselected:
#Available Categories
Limit which categories are shown (restricts the available options):
FontPicker::make('font')
->availableCategories([
'serif',
'sans-serif',
'monospace',
'display',
'handwriting',
])
#Selected Categories
Preselect certain categories when the component loads (users can still change them):
FontPicker::make('font')
->selectedCategories([
'monospace',
'handwriting',
])
#Other options
You can customize all these options:
FontPicker::make('font')
->placeholder('Select a font')
->searchPrompt('Search fonts')
->previewText('The quick brown fox jumps over the lazy dog')
->noResultsTitle('No fonts found matching')
->noResultsSubtitle('Try searching for serif, sans-serif, monospace, or display fonts')
->loadingMessage('Loading Google Fonts...')
->loadingPreviewMessage('Loading preview...')
#Updating the Google Fonts list
The package includes a built-in Google Fonts dataset that works out of the box.
However, if you want to update the fonts data or need the latest fonts from Google, you'll need to configure a Google Fonts API key.
- Get a Google Fonts API key from the Google Cloud Console
- Add your API key to your
.envfile:GOOGLE_FONTS_API_KEY=your_api_key_here - Update the Google Fonts data with the latest fonts from Google's API:
This command will fetch the latest fonts from Google and update the list of available fonts.php artisan filament-font-picker:update-fonts
#Requirements
- PHP 8.2+
- Filament 4.0+
- Laravel 11.0+
#Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
#License
The MIT License (MIT). Please see License File for more information.
#Credits
- Built for Filament
- Fonts provided by Google Fonts
- Created by Charlie Etienne
- Inspired by Filament Studio's font picker by Dennis Koch
The author
I’m an indie Laravel and PHP developer with 15+ years of experience. I believe Filament is one of the best things to happen to web development, and I’m proud to be part of this awesome community.
Featured Plugins
A selection of plugins curated by the Filament team
Custom Dashboards
Let your users build and share their own dashboards with a drag-and-drop interface. Define your data sources in PHP and let them do the rest.
Filament
Advanced Tables (formerly Filter Sets)
Supercharge your tables with powerful features like user-customizable views, quick filters, multi-column sorting, advanced table searching, convenient view management, and more. Compatible with Resource Panel Tables, Relation Managers, Table Widgets, and Table Builder!
Kenneth Sese
Data Lens
Advanced Data Visualization for Laravel Filament - a premium reporting solution enabling custom column creation, sophisticated filtering, and enterprise-grade data insights within admin panels.
Padmission