Component Registry
Install reusable Favycons shadcn/ui components, starting with the Google Font Picker.
Component Registry
Favycons publishes reusable UI components through a shadcn/ui registry.
The registry is currently hosted at:
https://favycons.com/r/{name}.jsonAvailable Components
google-font-picker
A searchable, virtualized font picker built with shadcn/ui primitives.
- Uses
CommandandPopover - Accepts a font list via props
- Does not require a Google Fonts API key
- Works with curated lists and app-specific font metadata
Install directly via URL:
npx shadcn@latest add https://favycons.com/r/google-font-picker.jsonOr configure a registry alias in components.json:
{
"registries": {
"@favycons": "https://favycons.com/r/{name}.json"
}
}Then install by name:
npx shadcn@latest add @favycons/google-font-pickerWhat Gets Installed
The google-font-picker item installs:
components/ui/google-font-picker.tsx
It also expects these dependencies in the consumer app:
@tanstack/react-virtuallucide-react
And these shadcn/ui registry dependencies:
buttoncommandpopover
Basic Usage
'use client';
import * as React from 'react';
import { GoogleFontPicker } from '@/components/ui/google-font-picker';
const fonts = [
{ family: 'Inter', category: 'sans-serif' },
{ family: 'Playfair Display', category: 'serif' },
{ family: 'JetBrains Mono', category: 'monospace' },
];
export function Example() {
const [font, setFont] = React.useState('Inter');
return (
<GoogleFontPicker
value={font}
onValueChange={setFont}
fonts={fonts}
/>
);
}Notes
- The component is deliberately data-driven. It does not fetch Google Fonts metadata itself.
- If you want live font previews for each row, lazy-load them in your app to avoid flooding
fonts.googleapis.comwith requests. - Favycons currently uses this pattern with a curated list rather than the full Google Fonts catalog.