This explorer contains 3,860 icons from Font Awesome Pro 6.5.1 and Free 7.2.0, spanning 10 style families across 3 icon families (classic, sharp, duotone). The pro collection includes 1,889 pro-exclusive icons and 1,971 free-tier icons with 550 brand logos. Each non-brand icon is available in up to 9 style variants: solid, regular, light, thin, duotone, sharp solid, sharp regular, sharp light, and sharp thin.


Search uses a hybrid strategy: FTS5 keyword search runs on every keystroke at 0.18 ms average latency — 1,151x faster than embedding search — catching exact and prefix matches like "cat" → cat, cat-space, cauldron. When fewer than 10 keyword results are found, semantic embedding search (all-MiniLM-L6-v2, 384 dimensions) kicks in at ~35–55 ms in-browser, finding conceptual matches: "furry pet" → dog, cat, paw, paw-claws, hippo; "spinning loader" → spinner, spinner-third, circle-notch (80% precision); "navigation menu" → bars, ellipsis, caret-down. Score fusion blends both: 0.7 × FTS5 + 0.3 × cosine.

Press / then type a keyword, name, or concept to search. Smart mode is enabled by default — it combines keyword/prefix matching with semantic embedding search for the most comprehensive results. Click any icon for details and copy formats.

Loading 3,860 icons...

Style Comparison

Copy Formats

Metadata

About
Font Awesome Icon Explorer

Icon Packages

Pro 6.5.1 3,762 icons — Released 2023
Free 7.2.0 1,970 icons — Released 2025
Free 6.7.2 1,895 icons — Released 2024

Combined Inventory

Total3,860 unique icons
Pro-only1,889 icons
Free1,421 icons
Brands550 logos
Styles10 (solid, regular, light, thin, duotone, sharp x4, brands)
Families3 (classic, sharp, duotone)

Explorer

Built2026-03-15
StackBun, TypeScript, SQLite FTS5, sqlite-vec, transformers.js
SearchFTS5 (keyword) + all-MiniLM-L6-v2 ONNX (semantic)
DeployCloudflare Workers

Design Intent

This explorer is a reference template for building minimal, fast, in-browser search tools. The architecture demonstrates hybrid search: FTS5 keyword search for instant prefix/exact matching at sub-millisecond latency, combined with semantic embedding search (all-MiniLM-L6-v2 ONNX) for conceptual queries -- all running entirely client-side with no backend API required for search. The single-file approach (inline CSS, JS, and data) keeps deployment trivial while the neo-brutalist design system keeps the UI focused on content over chrome.

Benchmark Report
FTS5 vs Embedding Search -- 20 Queries

Executive Summary

Icons3,860 | Styles: 30,112 | Embeddings: 3,860
Database30.32 MB
Modelall-MiniLM-L6-v2 (384 dims, normalized)
MethodAvg LatencyAvg P@5Best For
FTS5 (keyword)0.181 ms37.8%Exact matches, unicode, prefix
Embedding208.6 ms32.8%Conceptual, descriptive queries
Hybrid< 1 ms typicalBest of bothProduction strategy

Key Findings

FTS5 is 1,151x faster than embedding search (0.18ms vs 209ms)
Embedding wins on conceptual (40% vs 31%) and description (80% vs 20%) queries
FTS5 wins on exact (50% vs 20%) and unicode (100% vs 0%) queries
11 of 20 queries tied -- both methods find similar results
Embedding wins 6/20, FTS5 wins 3/20 (excluding ties)

Precision by Query Type

TypeQueriesFTS5 P@5Emb P@5Winner
exact250%20%FTS5
conceptual731%40%Embedding
synonym827%32%Embedding
description120%80%Embedding
unicode2100%0%FTS5

Notable Embedding Wins

QueryFTS5 TopEmbedding TopVerdict
"spinning loader"loader (1 result)loader, spinner, spinner-scale, spinner-third, circle-notchEmb finds 4x more
"navigation menu"compass-slash, compass, barsbars, ellipsis, ellipsis-vertical, caret-downEmb nails hamburger
"play video"circle-play, play, file-videoplay, circle-play, youtube, vimeo, file-videoEmb finds platforms
"notification alert"bells, bell-exclamationbell-on, square-exclamation, triangle-exclamationEmb finds alert variants
"lock security"lock, lock-keyholelock-open, lock, unlock, lock-keyholeEmb finds unlock too

All 20 Queries -- Detailed Results

QueryTypeFTS5 P@5Emb P@5FTS5 Lat.Emb Lat.
"arrow"exact80%20%0.71ms6.37ms
"house"exact20%40%0.41ms5.92ms
"social media"conceptual20%20%0.33ms6.30ms
"money"synonym0%20%0.31ms5.52ms
"navigation menu"conceptual60%60%0.22ms6.46ms
"cloud computing"conceptual0%40%0.18ms6.29ms
"spinning loader"description20%80%0.09ms6.22ms
"delete remove"synonym40%0%0.25ms6.16ms
"notification alert"conceptual40%60%0.31ms6.57ms
"play video"synonym60%20%0.41ms6.07ms
"user profile"synonym0%20%0.53ms6.01ms
"download file"synonym75%50%0.37ms5.86ms
"chart analytics"conceptual60%60%0.22ms6.20ms
"lock security"conceptual20%20%0.32ms6.38ms
"f015"unicode100%100%0.22ms0.22ms
"f007"unicode100%100%0.21ms0.22ms
"calendar date"synonym0%40%0.17ms6.23ms
"email message"conceptual20%20%0.24ms6.58ms
"gear settings"synonym40%20%0.18ms6.27ms
"heart love"synonym0%25%0.20ms6.44ms

Database Size Breakdown

Total database30.32 MB
Icons + FTS5 index~24.66 MB
Embeddings (3860 x 384 x float32)~5.65 MB

Recommendations

1. FTS5 is the primary search method:
   Sub-millisecond latency, excellent for exact/prefix matches

2. Embedding search excels at conceptual queries:
   "social media" finds brand icons, "spinning loader" finds spinner variants

3. Hybrid strategy:
   Run FTS5 first on every keystroke; if < 10 results, trigger embedding fallback

4. Score fusion:
   final = 0.7 * fts5_normalized + 0.3 * cosine_similarity

5. Unicode shortcut:
   Direct lookup when query matches /^[0-9a-f]{4,5}$/i
Documentation
Build Pipeline, Search System & Usage

Quick Usage

Solid: <i class="fa-solid fa-house"></i> Regular: <i class="fa-regular fa-house"></i> Light: <i class="fa-light fa-house"></i> Thin: <i class="fa-thin fa-house"></i> Duotone: <i class="fa-duotone fa-house"></i> Sharp: <i class="fa-sharp fa-solid fa-house"></i> Brands: <i class="fa-brands fa-github"></i>

Data Pipeline

Primary sourceicon-families.json (Pro 6.5.1)
Supplementicon-families.json (Free 7.2.0 — 98 extra icons)
Categoriescategories.yml — 68 categories mapped to icons
Ingest scriptbun run src/build/ingest.ts
Databasedata/icons.db — 30.32 MB (SQLite + FTS5 + embeddings)

Database Schema

icons.db ├─ icons (3,860 rows) │ name, label, unicode, │ search_terms, aliases, │ categories, tier ├─ icon_styles (30,112 rows) │ family, style, svg_path, │ svg_viewbox, width, height ├─ icons_fts (FTS5 virtual) │ name, label, search_terms, │ aliases, categories ├─ icon_embeddings (3,860) │ 384-dim float32 blobs │ all-MiniLM-L6-v2 └─ sources (2 rows) pro-6.5.1, free-7.2.0

Search: FTS5 (Keyword)

EngineSQLite FTS5 full-text search
Avg latency0.18 ms
Precision@537.8% across 20 benchmark queries
Best forExact matches, prefix search, unicode lookup
Exact queries50% P@5 — "arrow" finds arrow-right, arrow-left, arrow-down
Unicode100% P@5 — "f015" finds house, "f007" finds user

Search: Embeddings (Semantic)

Modelall-MiniLM-L6-v2 (384 dims, ONNX quantized ~23 MB)
Embedding scriptbun run src/build/embed.ts — 8.9s for 3,860 icons
Avg latency~35-55 ms (WASM in-browser estimate)
Precision@532.8% avg, but 80% on description queries
Best forConceptual & descriptive queries
"spinning loader" → loader, spinner, spinner-third, circle-notch "navigation menu" → bars, ellipsis, caret-down "social media" → microblog, reddit, tumblr, bluesky

Benchmark Summary

Queries tested20 (exact, synonym, conceptual, description, unicode)
Embedding wins6/20 queries
FTS5 wins3/20 queries
Tied11/20 queries
Speed ratioFTS5 is 1,151x faster (0.18 ms vs 209 ms)
Full reportdata/benchmark-report.md

Hybrid Strategy

Every keystroke triggers FTS5 first. When keyword results are sparse, semantic embeddings fill the gap.

1. FTS5 keyword search <1ms, runs on every keystroke 2. Embedding fallback Triggers when FTS5 < 10 results 3. Score fusion 0.7 × FTS5 + 0.3 × cosine 4. Unicode shortcut Direct lookup for /^[0-9a-f]{4,5}$/i

Build Stack

RuntimeBun 1.3.10 + TypeScript
Databasebun:sqlite (FTS5 built-in)
Embeddingssentence-transformers / all-MiniLM-L6-v2
Client searchsql.js (WASM) + ONNX Runtime (planned)
DeploymentCloudflare Workers
Design systemNeo-brutalist (monospace, rectangular, hard-offset shadows)
100%