@iconsroom/mcp 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,59 @@
1
+ # @iconsroom/mcp
2
+
3
+ MCP server for [IconsRoom](https://iconsroom.com) — search **276,000+ open source icons** from 220 packs and drop them straight into your code from any MCP client.
4
+
5
+ ## Requirements
6
+
7
+ An **IconsRoom lifetime license** (one-time payment — [iconsroom.com/pricing](https://iconsroom.com/pricing)). Your license token (`IR-XXXX…`, from the purchase confirmation) is your API key.
8
+
9
+ ## Install
10
+
11
+ **Claude Code**
12
+
13
+ ```bash
14
+ claude mcp add iconsroom --env ICONSROOM_API_KEY=IR-XXXXXXXXXXXXXXXX -- npx -y @iconsroom/mcp
15
+ ```
16
+
17
+ **Cursor** (`.cursor/mcp.json`) / **Windsurf** / **Claude Desktop**
18
+
19
+ ```json
20
+ {
21
+ "mcpServers": {
22
+ "iconsroom": {
23
+ "command": "npx",
24
+ "args": ["-y", "@iconsroom/mcp"],
25
+ "env": { "ICONSROOM_API_KEY": "IR-XXXXXXXXXXXXXXXX" }
26
+ }
27
+ }
28
+ }
29
+ ```
30
+
31
+ Without a valid key the tools respond with purchase instructions instead of icons.
32
+
33
+ ## Tools
34
+
35
+ | Tool | What it does |
36
+ |---|---|
37
+ | `search_icons` | Keyword search across all packs (optionally scoped to one pack) |
38
+ | `get_icon` | Fetch an icon as `svg`, `react` (JSX component), `url`, or `datauri` — with optional recoloring for monochrome icons |
39
+ | `list_packs` | Browse the 220 packs with icon counts, categories and licenses |
40
+ | `get_pack` | Details + sample icons for one pack |
41
+
42
+ ## Example
43
+
44
+ > "Add a shopping-cart icon button to the navbar"
45
+
46
+ The agent calls `search_icons("shopping cart")`, picks a hit, calls `get_icon("tabler", "shopping-cart", format: "react", color: "#0f172a")`, and pastes a ready JSX component — license and source URL included in the header comment.
47
+
48
+ ## Licensing
49
+
50
+ Every result carries its pack's license (MIT, Apache 2.0, CC BY…). A small number of packs are **CC BY-NC (non-commercial)** — the license field tells you. Full details: [iconsroom.com/licensing](https://iconsroom.com/licensing).
51
+
52
+ ## Development
53
+
54
+ ```bash
55
+ npm install
56
+ npm test # protocol-level test over stdio (12 checks)
57
+ ```
58
+
59
+ MIT © IconsRoom
package/index.js ADDED
@@ -0,0 +1,249 @@
1
+ #!/usr/bin/env node
2
+ // @iconsroom/mcp — MCP server for IconsRoom (https://iconsroom.com)
3
+ // Search 276,000+ open source icons and pull them into code from any MCP
4
+ // client. Stdio transport.
5
+ //
6
+ // Requires an IconsRoom lifetime license: set ICONSROOM_API_KEY to your
7
+ // IR-XXXX license token (from your purchase email / iconsroom.com/activate).
8
+
9
+ import { readFileSync } from 'node:fs';
10
+ import { fileURLToPath } from 'node:url';
11
+ import { dirname, join } from 'node:path';
12
+ import { McpServer } from '@modelcontextprotocol/sdk/server/mcp.js';
13
+ import { StdioServerTransport } from '@modelcontextprotocol/sdk/server/stdio.js';
14
+ import { z } from 'zod';
15
+ import { colorizeSvg, toReactComponent } from './lib/colorize.js';
16
+
17
+ const __dirname = dirname(fileURLToPath(import.meta.url));
18
+ const PACKS = JSON.parse(readFileSync(join(__dirname, 'packs.json'), 'utf8'));
19
+ const PACKS_BY_KEY = new Map(PACKS.map((p) => [p.key, p]));
20
+
21
+ const SITE = 'https://iconsroom.com';
22
+ const CDN = 'https://files.svgcdn.io';
23
+
24
+ // ── License gate ────────────────────────────────────────────────────────────
25
+ const API_BASE = process.env.ICONSROOM_API_URL || `${SITE}/api/v1`;
26
+ const API_KEY = (process.env.ICONSROOM_API_KEY || '').trim();
27
+ const LICENSE_HELP =
28
+ `This MCP server requires an IconsRoom lifetime license.\n\n` +
29
+ `1. Get lifetime access (one-time payment): ${SITE}/pricing\n` +
30
+ `2. Copy the license token (IR-XXXX…) from your purchase confirmation\n` +
31
+ `3. Add it to your MCP config as the ICONSROOM_API_KEY environment variable:\n\n` +
32
+ ` { "mcpServers": { "iconsroom": {\n` +
33
+ ` "command": "npx", "args": ["-y", "@iconsroom/mcp"],\n` +
34
+ ` "env": { "ICONSROOM_API_KEY": "IR-XXXXXXXXXXXXXXXX" }\n` +
35
+ ` } } }`;
36
+
37
+ let licenseState = null; // null = unchecked, then { ok, reason }
38
+
39
+ async function checkLicense() {
40
+ if (licenseState) return licenseState;
41
+
42
+ if (!API_KEY) {
43
+ licenseState = { ok: false, reason: `No license key configured.\n\n${LICENSE_HELP}` };
44
+ return licenseState;
45
+ }
46
+ if (!/^IR-[A-Z0-9-]+$/i.test(API_KEY)) {
47
+ licenseState = { ok: false, reason: `ICONSROOM_API_KEY doesn't look like a license token (expected IR-XXXX…).\n\n${LICENSE_HELP}` };
48
+ return licenseState;
49
+ }
50
+
51
+ try {
52
+ const res = await fetch(`${API_BASE}/auth/verify`, {
53
+ method: 'POST',
54
+ headers: { 'Content-Type': 'application/json' },
55
+ body: JSON.stringify({ token: API_KEY }),
56
+ signal: AbortSignal.timeout(6000),
57
+ });
58
+ if (res.ok) {
59
+ const data = await res.json();
60
+ licenseState = data.valid
61
+ ? { ok: true }
62
+ : { ok: false, reason: `This license token was not recognized. Double-check it, or get access at ${SITE}/pricing.` };
63
+ return licenseState;
64
+ }
65
+ // Server-side hiccup (5xx): don't punish paying users — allow this
66
+ // session and re-check next boot.
67
+ licenseState = { ok: true, degraded: true };
68
+ return licenseState;
69
+ } catch {
70
+ // Network unreachable: same fail-open courtesy for a well-formed key.
71
+ licenseState = { ok: true, degraded: true };
72
+ return licenseState;
73
+ }
74
+ }
75
+
76
+ const licenseError = (reason) => ({
77
+ content: [{ type: 'text', text: reason }],
78
+ isError: true,
79
+ });
80
+ // Search-only Algolia credentials (public by design).
81
+ const ALGOLIA_APP = 'B0ACZYR9N7';
82
+ const ALGOLIA_KEY = '86274c5faf63766cd4827e4389768ab1';
83
+ const ALGOLIA_INDEX = 'icons';
84
+
85
+ async function algoliaSearch(query, { pack, limit }) {
86
+ const body = {
87
+ query,
88
+ hitsPerPage: Math.min(Math.max(limit, 1), 50),
89
+ };
90
+ if (pack) body.filters = `collectionId:${pack}`;
91
+
92
+ const res = await fetch(
93
+ `https://${ALGOLIA_APP}-dsn.algolia.net/1/indexes/${ALGOLIA_INDEX}/query`,
94
+ {
95
+ method: 'POST',
96
+ headers: {
97
+ 'Content-Type': 'application/json',
98
+ 'X-Algolia-Application-Id': ALGOLIA_APP,
99
+ 'X-Algolia-API-Key': ALGOLIA_KEY,
100
+ },
101
+ body: JSON.stringify(body),
102
+ signal: AbortSignal.timeout(8000),
103
+ }
104
+ );
105
+ if (!res.ok) throw new Error(`Search failed (HTTP ${res.status})`);
106
+ return res.json();
107
+ }
108
+
109
+ async function fetchSvg(pack, name) {
110
+ const res = await fetch(`${CDN}/${pack}/${name}.svg`, {
111
+ signal: AbortSignal.timeout(8000),
112
+ });
113
+ if (!res.ok) throw new Error(`Icon "${pack}/${name}" not found (HTTP ${res.status})`);
114
+ const text = await res.text();
115
+ if (!text.includes('<svg')) throw new Error(`"${pack}/${name}" did not return SVG markup`);
116
+ return text;
117
+ }
118
+
119
+ function iconMeta(pack, name) {
120
+ const p = PACKS_BY_KEY.get(pack);
121
+ return {
122
+ pack,
123
+ name,
124
+ packName: p?.name || pack,
125
+ license: p?.license || 'see pack page',
126
+ author: p?.author || undefined,
127
+ page: `${SITE}/${pack}/${name}`,
128
+ svgUrl: `${CDN}/${pack}/${name}.svg`,
129
+ };
130
+ }
131
+
132
+ const text = (value) => ({
133
+ content: [{ type: 'text', text: typeof value === 'string' ? value : JSON.stringify(value, null, 2) }],
134
+ });
135
+ const errorText = (message) => ({
136
+ content: [{ type: 'text', text: message }],
137
+ isError: true,
138
+ });
139
+
140
+ const server = new McpServer({ name: 'iconsroom', version: '0.1.0' });
141
+
142
+ server.tool(
143
+ 'search_icons',
144
+ 'Search 276,000+ open source icons on IconsRoom by keyword. Returns matching icons with pack, license and URLs. Use get_icon to fetch the actual SVG/JSX.',
145
+ {
146
+ query: z.string().min(1).describe('What the icon should depict, e.g. "shopping cart", "arrow left"'),
147
+ pack: z.string().optional().describe('Restrict to one icon pack key, e.g. "heroicons", "tabler", "mdi"'),
148
+ limit: z.number().int().min(1).max(50).default(12).describe('Max results (default 12)'),
149
+ },
150
+ async ({ query, pack, limit }) => {
151
+ const lic = await checkLicense();
152
+ if (!lic.ok) return licenseError(lic.reason);
153
+ try {
154
+ const results = await algoliaSearch(query, { pack, limit });
155
+ const hits = (results.hits || []).map((h) => iconMeta(h.collectionId, h.slug));
156
+ if (hits.length === 0) {
157
+ return text(`No icons matched "${query}"${pack ? ` in pack "${pack}"` : ''}. Try a broader keyword.`);
158
+ }
159
+ return text({ totalMatches: results.nbHits, showing: hits.length, icons: hits });
160
+ } catch (err) {
161
+ return errorText(`Icon search is unreachable right now (${err.message}). Check network access to algolia.net.`);
162
+ }
163
+ }
164
+ );
165
+
166
+ server.tool(
167
+ 'get_icon',
168
+ 'Fetch one icon from IconsRoom as ready-to-use code. Formats: "svg" (markup), "react" (JSX component), "url" (CDN link), "datauri" (base64 CSS-ready). Optionally recolor monochrome icons.',
169
+ {
170
+ pack: z.string().min(1).describe('Icon pack key, e.g. "heroicons"'),
171
+ name: z.string().min(1).describe('Icon slug, e.g. "academic-cap"'),
172
+ format: z.enum(['svg', 'react', 'url', 'datauri']).default('svg'),
173
+ color: z
174
+ .string()
175
+ .regex(/^#(?:[0-9a-fA-F]{3}|[0-9a-fA-F]{6})$/)
176
+ .optional()
177
+ .describe('Optional hex color, e.g. "#0f172a" — applied to monochrome icons only'),
178
+ },
179
+ async ({ pack, name, format, color }) => {
180
+ const lic = await checkLicense();
181
+ if (!lic.ok) return licenseError(lic.reason);
182
+ const meta = iconMeta(pack, name);
183
+ if (format === 'url') {
184
+ return text({ ...meta, note: 'Hotlink or download; license applies.' });
185
+ }
186
+ try {
187
+ let svg = await fetchSvg(pack, name);
188
+ if (color) svg = colorizeSvg(svg, color);
189
+
190
+ if (format === 'react') {
191
+ return text(`// ${meta.packName} · ${meta.license} · ${meta.page}\n${toReactComponent(svg, name)}`);
192
+ }
193
+ if (format === 'datauri') {
194
+ const encoded = Buffer.from(svg, 'utf8').toString('base64');
195
+ return text(`data:image/svg+xml;base64,${encoded}`);
196
+ }
197
+ return text(`<!-- ${meta.packName} · ${meta.license} · ${meta.page} -->\n${svg}`);
198
+ } catch (err) {
199
+ return errorText(err.message);
200
+ }
201
+ }
202
+ );
203
+
204
+ server.tool(
205
+ 'list_packs',
206
+ 'List the 220 icon packs on IconsRoom (key, name, icon count, license, category). Filter by category or license keyword.',
207
+ {
208
+ category: z.string().optional().describe('Filter by category, e.g. "General", "Emoji", "Logos"'),
209
+ search: z.string().optional().describe('Filter pack names by keyword'),
210
+ },
211
+ async ({ category, search }) => {
212
+ const lic = await checkLicense();
213
+ if (!lic.ok) return licenseError(lic.reason);
214
+ let packs = PACKS;
215
+ if (category) packs = packs.filter((p) => p.category?.toLowerCase() === category.toLowerCase());
216
+ if (search) {
217
+ const q = search.toLowerCase();
218
+ packs = packs.filter((p) => p.name.toLowerCase().includes(q) || p.key.includes(q));
219
+ }
220
+ return text({
221
+ total: packs.length,
222
+ packs: packs.map(({ key, name, total, category: cat, license }) => ({ key, name, total, category: cat, license })),
223
+ });
224
+ }
225
+ );
226
+
227
+ server.tool(
228
+ 'get_pack',
229
+ 'Details for one icon pack: name, author, license, icon count, sample icons and its IconsRoom page.',
230
+ {
231
+ key: z.string().min(1).describe('Pack key, e.g. "heroicons"'),
232
+ },
233
+ async ({ key }) => {
234
+ const lic = await checkLicense();
235
+ if (!lic.ok) return licenseError(lic.reason);
236
+ const p = PACKS_BY_KEY.get(key);
237
+ if (!p) {
238
+ return errorText(`Unknown pack "${key}". Use list_packs to see the 220 available keys.`);
239
+ }
240
+ return text({
241
+ ...p,
242
+ page: `${SITE}/${p.key}`,
243
+ sampleUrls: (p.samples || []).map((s) => `${CDN}/${p.key}/${s}.svg`),
244
+ });
245
+ }
246
+ );
247
+
248
+ const transport = new StdioServerTransport();
249
+ await server.connect(transport);
@@ -0,0 +1,103 @@
1
+ // Pure-string, DOM-free port of IconsRoom's knockout-safe SVG recoloring
2
+ // (lib/colorizeSvg.js on the site). White paint is protected detail;
3
+ // multicolor icons are left untouched.
4
+
5
+ const isKnockout = (v) =>
6
+ /^(#fff(?:fff)?|white|rgb\(\s*255\s*,\s*255\s*,\s*255\s*\))$/i.test((v || '').trim());
7
+
8
+ function collectColors(svg) {
9
+ const fills = new Set();
10
+ const strokes = new Set();
11
+ const attrRe = /\s(fill|stroke)="([^"]+)"/g;
12
+ let m;
13
+ while ((m = attrRe.exec(svg))) {
14
+ const [, kind, value] = m;
15
+ if (value === 'none' || value === 'currentColor' || value.startsWith('url') || isKnockout(value)) continue;
16
+ (kind === 'fill' ? fills : strokes).add(value.trim());
17
+ }
18
+ const styleRe = /style="([^"]*)"/g;
19
+ while ((m = styleRe.exec(svg))) {
20
+ const style = m[1];
21
+ const f = (style.match(/(?:^|;)\s*fill\s*:\s*([^;]+)/) || [])[1];
22
+ const s = (style.match(/(?:^|;)\s*stroke\s*:\s*([^;]+)/) || [])[1];
23
+ if (f && f !== 'none' && f !== 'currentColor' && !f.startsWith('url') && !isKnockout(f)) fills.add(f.trim());
24
+ if (s && s !== 'none' && s !== 'currentColor' && !s.startsWith('url') && !isKnockout(s)) strokes.add(s.trim());
25
+ }
26
+ return { fills, strokes };
27
+ }
28
+
29
+ export function colorizeSvg(svg, color) {
30
+ if (!svg || !color) return svg;
31
+
32
+ const { fills, strokes } = collectColors(svg);
33
+ const hasDuotone = /opacity="\.?0?\.2"/.test(svg);
34
+ const isColorful = (fills.size > 1 || strokes.size > 1) && !hasDuotone;
35
+ if (isColorful) return svg;
36
+
37
+ let out = svg;
38
+
39
+ // Normalize root: derive viewBox, drop fixed dimensions.
40
+ out = out.replace(/<svg([^>]*)>/, (match, attrs) => {
41
+ let a = attrs;
42
+ if (!/viewBox=/i.test(a)) {
43
+ const w = (a.match(/\swidth="([0-9.]+)(?:px)?"/i) || [])[1];
44
+ const h = (a.match(/\sheight="([0-9.]+)(?:px)?"/i) || [])[1];
45
+ if (w && h) a += ` viewBox="0 0 ${w} ${h}"`;
46
+ }
47
+ a = a.replace(/\swidth="[^"]*"/i, '').replace(/\sheight="[^"]*"/i, '');
48
+ return `<svg${a}>`;
49
+ });
50
+
51
+ out = out.replace(/fill="currentColor"/g, `fill="${color}"`);
52
+ out = out.replace(/stroke="([^"]*)"/g, (match, value) =>
53
+ value === 'none' || isKnockout(value) ? match : `stroke="${color}"`
54
+ );
55
+
56
+ for (const tag of ['path', 'circle', 'rect', 'polygon', 'polyline', 'ellipse', 'line', 'g']) {
57
+ const re = new RegExp(`<${tag}([^>]*)fill="([^"]*)"`, 'g');
58
+ out = out.replace(re, (match, attrs, value) =>
59
+ value !== 'none' && !isKnockout(value) ? `<${tag}${attrs}fill="${color}"` : match
60
+ );
61
+ }
62
+
63
+ out = out.replace(/fill\s*:\s*([^;"']+)/g, (match, value) => {
64
+ const v = value.trim();
65
+ return v === 'none' || v === 'currentColor' || v.startsWith('url') || isKnockout(v) ? match : `fill:${color}`;
66
+ });
67
+ out = out.replace(/stroke\s*:\s*([^;"']+)/g, (match, value) => {
68
+ const v = value.trim();
69
+ return v === 'none' || v === 'currentColor' || v.startsWith('url') || isKnockout(v) ? match : `stroke:${color}`;
70
+ });
71
+
72
+ if (fills.size === 0 && strokes.size === 0) {
73
+ out = out.replace(/<svg([^>]*)>/, (match, attrs) =>
74
+ attrs.includes('fill=') ? match : `<svg${attrs} fill="${color}">`
75
+ );
76
+ }
77
+
78
+ return out;
79
+ }
80
+
81
+ export function toReactComponent(svg, name) {
82
+ const componentName =
83
+ name
84
+ .split(/[-_]/)
85
+ .filter(Boolean)
86
+ .map((w) => w[0].toUpperCase() + w.slice(1))
87
+ .join('') + 'Icon';
88
+
89
+ const jsxSvg = svg
90
+ .replace(/<svg([^>]*)>/, (m, attrs) => {
91
+ let a = attrs
92
+ .replace(/\s(width|height)="[^"]*"/gi, '')
93
+ .replace(/class="/g, 'className="')
94
+ .replace(/([a-z]+)-([a-z])(?=[a-z-]*=")/g, (mm, p1, p2) => `${p1}${p2.toUpperCase()}`);
95
+ return `<svg${a} width={size} height={size} {...props}>`;
96
+ })
97
+ .replace(/class="/g, 'className="')
98
+ .replace(/\s(stroke-width|stroke-linecap|stroke-linejoin|fill-rule|clip-rule|clip-path|stroke-miterlimit|stroke-dasharray|stroke-dashoffset|fill-opacity|stroke-opacity)=/g, (m, attr) =>
99
+ ` ${attr.replace(/-([a-z])/g, (x, c) => c.toUpperCase())}=`
100
+ );
101
+
102
+ return `export function ${componentName}({ size = 24, ...props }) {\n return (\n ${jsxSvg}\n );\n}\n`;
103
+ }
package/package.json ADDED
@@ -0,0 +1,42 @@
1
+ {
2
+ "name": "@iconsroom/mcp",
3
+ "version": "0.1.0",
4
+ "description": "MCP server for IconsRoom — search 276,000+ open source icons and drop them into your code from any MCP client (Claude Code, Cursor, Windsurf…).",
5
+ "type": "module",
6
+ "bin": {
7
+ "iconsroom-mcp": "index.js"
8
+ },
9
+ "files": [
10
+ "index.js",
11
+ "lib/",
12
+ "packs.json",
13
+ "README.md"
14
+ ],
15
+ "engines": {
16
+ "node": ">=18"
17
+ },
18
+ "keywords": [
19
+ "mcp",
20
+ "modelcontextprotocol",
21
+ "icons",
22
+ "svg",
23
+ "iconsroom",
24
+ "claude",
25
+ "cursor"
26
+ ],
27
+ "author": "IconsRoom (https://iconsroom.com)",
28
+ "license": "MIT",
29
+ "homepage": "https://iconsroom.com",
30
+ "repository": {
31
+ "type": "git",
32
+ "url": "https://github.com/iconsroom/mcp"
33
+ },
34
+ "dependencies": {
35
+ "@modelcontextprotocol/sdk": "^1.12.0",
36
+ "zod": "^3.24.0"
37
+ },
38
+ "scripts": {
39
+ "start": "node index.js",
40
+ "test": "node test.mjs"
41
+ }
42
+ }
package/packs.json ADDED
@@ -0,0 +1 @@
1
+ [{"key":"academicons","name":"Academicons","total":158,"category":"Thematic","license":"Open Font License","author":"James Walsh","samples":["conversation","crossref-square","stackoverflow"]},{"key":"akar-icons","name":"Akar Icons","total":454,"category":"UI 24px","license":"MIT","author":"Arturo Wibawa","samples":["paper","pencil","location"]},{"key":"ant-design","name":"Ant Design Icons","total":830,"category":"UI 16px / 32px","license":"MIT","author":"HeskeyBaozi","samples":["pushpin-filled","pie-chart-outlined","shopping-twotone"]},{"key":"arcticons","name":"Arcticons","total":12200,"category":"Logos","license":"CC BY-SA 4.0","author":"Donnnno","samples":["paperlaunch","gravadordevoz","appstract"]},{"key":"bpmn","name":"BPMN","total":112,"category":"General","license":"Open Font License","author":"Camunda Services GmbH","samples":["intermediate-event-catch-non-interrupting-escalation","user","lane-insert-above"]},{"key":"basil","name":"Basil","total":493,"category":"UI 24px","license":"CC BY 4.0","author":"Craftwork","samples":["comment-solid","search-outline","lightning-alt-solid"]},{"key":"bitcoin-icons","name":"Bitcoin Icons","total":250,"category":"UI 24px","license":"MIT","author":"Bitcoin Design Community","samples":["exchange-outline","brush-filled","satoshi-v3-outline"]},{"key":"bi","name":"Bootstrap Icons","total":2050,"category":"UI 16px / 32px","license":"MIT","author":"The Bootstrap Authors","samples":["graph-up","card-image","code-slash"]},{"key":"bx","name":"BoxIcons","total":814,"category":"UI 24px","license":"CC BY 4.0","author":"Atisa","samples":["heart-circle","last-page","bar-chart-square"]},{"key":"bxl","name":"BoxIcons Logo","total":155,"category":"Logos","license":"CC BY 4.0","author":"Atisa","samples":["patreon","adobe","vuejs"]},{"key":"bxs","name":"BoxIcons Solid","total":665,"category":"UI 24px","license":"CC BY 4.0","author":"Atisa","samples":["edit-alt","tree-alt","circle-half"]},{"key":"brandico","name":"Brandico","total":45,"category":"Logos","license":"CC BY SA","author":"Fontello","samples":["vimeo","twitter-bird","yandex"]},{"key":"bytesize","name":"Bytesize Icons","total":101,"category":"UI 16px / 32px","license":"MIT","author":"Dan Klammer","samples":["desktop","code","sign-out"]},{"key":"carbon","name":"Carbon","total":2267,"category":"UI 16px / 32px","license":"Apache 2.0","author":"IBM","samples":["user-certification","humidity","edit-off"]},{"key":"catppuccin","name":"Catppuccin Icons","total":539,"category":"Programming","license":"MIT","author":"Catppuccin","samples":["folder","nuxt","vscode"]},{"key":"charm","name":"Charm Icons","total":261,"category":"UI 16px / 32px","license":"MIT","author":"Jay Newey","samples":["chart-line","image","thumb-up"]},{"key":"circle-flags","name":"Circle Flags","total":632,"category":"Flags / Maps","license":"MIT","author":"HatScripts","samples":["ee","klingon","jp"]},{"key":"circum","name":"Circum Icons","total":288,"category":"UI 24px","license":"Mozilla Public License 2.0","author":"Klarr Agency","samples":["text","pill","zoom-out"]},{"key":"clarity","name":"Clarity","total":1103,"category":"UI Other / Mixed Grid","license":"MIT","author":"VMware","samples":["help-outline-badged","heart-broken-solid","shield-outline-alerted"]},{"key":"codex","name":"CodeX Icons","total":78,"category":"UI Other / Mixed Grid","license":"MIT","author":"CodeX","samples":["align-left","table-with-headings","heading"]},{"key":"codicon","name":"Codicons","total":468,"category":"Programming","license":"CC BY 4.0","author":"Microsoft Corporation","samples":["account","bell-dot","new-file"]},{"key":"cib","name":"CoreUI Brands","total":830,"category":"Logos","license":"CC0 1.0","author":"creativeLabs \u0141ukasz Holeczek","samples":["cc-amazon-pay","hotjar","open-id"]},{"key":"cif","name":"CoreUI Flags","total":199,"category":"Flags / Maps","license":"CC0 1.0","author":"creativeLabs \u0141ukasz Holeczek","samples":["ee","ca","sk"]},{"key":"cil","name":"CoreUI Free","total":554,"category":"UI 16px / 32px","license":"CC BY 4.0","author":"creativeLabs \u0141ukasz Holeczek","samples":["airplane-mode-off","badge","color-border"]},{"key":"covid","name":"Covid Icons","total":142,"category":"Thematic","license":"CC BY 4.0","author":"Streamline","samples":["social-distancing-correct-2","personal-hygiene-clean-toothpaste","vaccine-protection-medicine-pill"]},{"key":"cryptocurrency-color","name":"Cryptocurrency Color Icons","total":483,"category":"Logos","license":"CC0 1.0","author":"Christopher Downer","samples":["btc","ltc","eth"]},{"key":"cryptocurrency","name":"Cryptocurrency Icons","total":483,"category":"Logos","license":"CC0 1.0","author":"Christopher Downer","samples":["btc","ltc","eth"]},{"key":"cuida","name":"Cuida Icons","total":164,"category":"UI 24px","license":"Apache 2.0","author":"Sysvale","samples":["sidebar-expand-outline","filter-outline","caret-up-outline"]},{"key":"cbi","name":"Custom Brand Icons","total":1364,"category":"Logos","license":"CC BY-NC-SA 4.0","author":"Emanuele & rchiileea","samples":["mitsubishi","espn","roomscomputer"]},{"key":"dashicons","name":"Dashicons","total":342,"category":"Archive / Unmaintained","license":"GPL","author":"WordPress","samples":["shortcode","businessperson","editor-expand"]},{"key":"devicon","name":"Devicon","total":853,"category":"Programming","license":"MIT","author":"konpa","samples":["windows8","tensorflow","logstash"]},{"key":"devicon-plain","name":"Devicon Plain","total":626,"category":"Programming","license":"MIT","author":"konpa","samples":["kotlin","bulma","logstash"]},{"key":"duo-icons","name":"Duoicons","total":91,"category":"UI 24px","license":"MIT","author":"fernandcf","samples":["credit-card","check-circle","box"]},{"key":"eos-icons","name":"EOS Icons","total":253,"category":"UI 24px","license":"MIT","author":"SUSE UX/UI team","samples":["modified-date-outlined","arrow-rotate","package"]},{"key":"et","name":"Elegant","total":100,"category":"Archive / Unmaintained","license":"GPL 3.0","author":"Kenny Sing","samples":["profile-female","ribbon","layers"]},{"key":"ep","name":"Element Plus","total":293,"category":"UI 16px / 32px","license":"MIT","author":"Element Plus","samples":["home-filled","partly-cloudy","avatar"]},{"key":"el","name":"Elusive Icons","total":304,"category":"Archive / Unmaintained","license":"Open Font License","author":"Team Redux","samples":["headphones","cog","user"]},{"key":"emojione","name":"Emoji One (Colored)","total":1834,"category":"Emoji","license":"CC BY 4.0","author":"Emoji One","samples":["anxious-face-with-sweat","cloud-with-snow","studio-microphone"]},{"key":"emojione-monotone","name":"Emoji One (Monotone)","total":1403,"category":"Emoji","license":"CC BY 4.0","author":"Emoji One","samples":["face-with-tongue","envelope","frog-face"]},{"key":"emojione-v1","name":"Emoji One (v1)","total":1262,"category":"Emoji","license":"CC BY-SA 4.0","author":"Emoji One","samples":["face-savoring-food","panda-face","artist-palette"]},{"key":"entypo","name":"Entypo+","total":321,"category":"Archive / Unmaintained","license":"CC BY-SA 4.0","author":"Daniel Bruce","samples":["bell","image","erase"]},{"key":"entypo-social","name":"Entypo+ Social","total":76,"category":"Logos","license":"CC BY-SA 4.0","author":"Daniel Bruce","samples":["linkedin-with-circle","twitter","youtube"]},{"key":"eva","name":"Eva Icons","total":490,"category":"Archive / Unmaintained","license":"MIT","author":"Akveo","samples":["droplet-off-outline","flash-fill","printer-outline"]},{"key":"ei","name":"Evil Icons","total":70,"category":"UI Other / Mixed Grid","license":"MIT","author":"Alexander Madyankin and Roman Shamin","samples":["paperclip","like","arrow-right"]},{"key":"famicons","name":"Famicons","total":1342,"category":"UI 16px / 32px","license":"MIT","author":"Family","samples":["backspace-outline","home-sharp","bluetooth-outline"]},{"key":"fe","name":"Feather Icon","total":255,"category":"UI 24px","license":"MIT","author":"Megumi Hano","samples":["add-cart","comments","link-external"]},{"key":"feather","name":"Feather Icons","total":286,"category":"General","license":"MIT","author":"Cole Bemis","samples":["check-circle","award","home"]},{"key":"file-icons","name":"File Icons","total":930,"category":"Programming","license":"ISC","author":"John Gardner","samples":["adobe","chartjs","dom"]},{"key":"fxemoji","name":"Firefox OS Emoji","total":1034,"category":"Emoji","license":"Apache 2.0","author":"Mozilla","samples":["foxweary","loveletter","openlock"]},{"key":"flag","name":"Flag Icons","total":542,"category":"Flags / Maps","license":"MIT","author":"Panayiotis Lipiridis","samples":["fr-1x1","de-1x1","bh-1x1"]},{"key":"flagpack","name":"Flagpack","total":255,"category":"Flags / Maps","license":"MIT","author":"Yummygum","samples":["ci","gb-ukm","wf"]},{"key":"flat-color-icons","name":"Flat Color Icons","total":329,"category":"Archive / Unmaintained","license":"MIT","author":"Icons8","samples":["edit-image","donate","planner"]},{"key":"flat-ui","name":"Flat UI Icons","total":100,"category":"General","license":"MIT","author":"Designmodo, Inc.","samples":["map","graph","imac"]},{"key":"flowbite","name":"Flowbite Icons","total":654,"category":"UI 24px","license":"MIT","author":"Themesberg","samples":["user-outline","vue-solid","list-outline"]},{"key":"fluent-emoji","name":"Fluent Emoji","total":3126,"category":"Emoji","license":"MIT","author":"Microsoft Corporation","samples":["avocado","ticket","straight-ruler"]},{"key":"fluent-emoji-flat","name":"Fluent Emoji Flat","total":3145,"category":"Emoji","license":"MIT","author":"Microsoft Corporation","samples":["avocado","ticket","straight-ruler"]},{"key":"fluent-emoji-high-contrast","name":"Fluent Emoji High Contrast","total":1595,"category":"Emoji","license":"MIT","author":"Microsoft Corporation","samples":["avocado","ticket","straight-ruler"]},{"key":"fluent-mdl2","name":"Fluent UI MDL2","total":1735,"category":"Archive / Unmaintained","license":"MIT","author":"Microsoft Corporation","samples":["flow","home","switch"]},{"key":"fluent-color","name":"Fluent UI System Color Icons","total":403,"category":"UI Multicolor","license":"MIT","author":"Microsoft Corporation","samples":["mic-20","alert-32","wrench-24"]},{"key":"fluent","name":"Fluent UI System Icons","total":17269,"category":"UI Other / Mixed Grid","license":"MIT","author":"Microsoft Corporation","samples":["zoom-out-24-filled","drink-coffee-24-regular","photo-filter-24-regular"]},{"key":"fa","name":"Font Awesome 4","total":678,"category":"Archive / Unmaintained","license":"Open Font License","author":"Dave Gandy","samples":["wrench","bell-o","user-o"]},{"key":"fa-brands","name":"Font Awesome 5 Brands","total":457,"category":"Archive / Unmaintained","license":"CC BY 4.0","author":"Dave Gandy","samples":["amazon","cc-visa","vuejs"]},{"key":"fa-regular","name":"Font Awesome 5 Regular","total":151,"category":"Archive / Unmaintained","license":"CC BY 4.0","author":"Dave Gandy","samples":["bell","comment","hand-point-left"]},{"key":"fa-solid","name":"Font Awesome 5 Solid","total":1001,"category":"Archive / Unmaintained","license":"CC BY 4.0","author":"Dave Gandy","samples":["search-plus","paste","comment-dots"]},{"key":"fa6-brands","name":"Font Awesome Brands","total":495,"category":"Logos","license":"CC BY 4.0","author":"Dave Gandy","samples":["strava","css3","y-combinator"]},{"key":"fa6-regular","name":"Font Awesome Regular","total":163,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Dave Gandy","samples":["message","clock","folder"]},{"key":"fa6-solid","name":"Font Awesome Solid","total":1402,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Dave Gandy","samples":["location-pin","gem","folder"]},{"key":"gis","name":"Font-GIS","total":367,"category":"Flags / Maps","license":"CC BY 4.0","author":"Jean-Marc Viglino","samples":["layer-o","poi-o","bbox"]},{"key":"fad","name":"FontAudio","total":155,"category":"Thematic","license":"CC BY 4.0","author":"@fefanto","samples":["shuffle","headphones","rew"]},{"key":"fontelico","name":"Fontelico","total":34,"category":"General","license":"CC BY SA","author":"Fontello","samples":["spin5","emo-sunglasses","crown-plus"]},{"key":"fontisto","name":"Fontisto","total":615,"category":"Archive / Unmaintained","license":"MIT","author":"Kenan G\u00fcndo\u011fan","samples":["prescription","heartbeat-alt","rain"]},{"key":"formkit","name":"FormKit Icons","total":144,"category":"UI 16px / 32px","license":"MIT","author":"FormKit, Inc","samples":["checkbox","reorder","submit"]},{"key":"foundation","name":"Foundation","total":283,"category":"Archive / Unmaintained","license":"MIT","author":"Zurb","samples":["graph-trend","indent-more","lock"]},{"key":"f7","name":"Framework7 Icons","total":1253,"category":"UI Other / Mixed Grid","license":"MIT","author":"Vladimir Kharlampidi","samples":["hourglass-bottomhalf-fill","pencil-outline","rosette"]},{"key":"gala","name":"Gala Icons","total":51,"category":"Archive / Unmaintained","license":"GPL","author":"Jake Wells","samples":["brochure","remove","chart"]},{"key":"game-icons","name":"Game Icons","total":4102,"category":"Thematic","license":"CC BY 3.0","author":"GameIcons","samples":["diamond-trophy","thrown-spear","rank-3"]},{"key":"garden","name":"Garden SVG Icons","total":1003,"category":"UI Other / Mixed Grid","license":"Apache 2.0","author":"Zendesk","samples":["relationshape-sell-26","bookmark-fill-12","moon-fill-12"]},{"key":"geo","name":"GeoGlyphs","total":30,"category":"Flags / Maps","license":"MIT","author":"Sam Matthews","samples":["turf-center","turf-erased","turf-point-on-line"]},{"key":"pajamas","name":"Gitlab SVGs","total":385,"category":"UI Other / Mixed Grid","license":"MIT","author":"GitLab B.V.","samples":["preferences","expire","merge"]},{"key":"ic","name":"Google Material Icons","total":10955,"category":"Material","license":"Apache 2.0","author":"Material Design Authors","samples":["baseline-notifications-active","outline-person-outline","twotone-videocam-off"]},{"key":"gravity-ui","name":"Gravity UI Icons","total":677,"category":"UI 16px / 32px","license":"MIT","author":"YANDEX LLC","samples":["magnifier","bookmark-fill","display"]},{"key":"gridicons","name":"Gridicons","total":207,"category":"UI 24px","license":"GPL 2.0","author":"Automattic","samples":["code","multiple-users","types"]},{"key":"grommet-icons","name":"Grommet Icons","total":634,"category":"Archive / Unmaintained","license":"Apache 2.0","author":"Grommet","samples":["user-expert","action","home"]},{"key":"guidance","name":"Guidance","total":360,"category":"UI 24px","license":"CC BY 4.0","author":"Streamline","samples":["smoking-area","playground","glass"]},{"key":"healthicons","name":"Health Icons","total":1774,"category":"Thematic","license":"MIT","author":"Resolve to Save Lives","samples":["cold-chain","emergency-post","asthma-outline"]},{"key":"heroicons","name":"HeroIcons","total":1288,"category":"UI Other / Mixed Grid","license":"MIT","author":"Refactoring UI Inc","samples":["camera","building-library","receipt-refund"]},{"key":"heroicons-outline","name":"HeroIcons v1 Outline","total":230,"category":"Archive / Unmaintained","license":"MIT","author":"Refactoring UI Inc","samples":["color-swatch","library","receipt-refund"]},{"key":"heroicons-solid","name":"HeroIcons v1 Solid","total":230,"category":"Archive / Unmaintained","license":"MIT","author":"Refactoring UI Inc","samples":["color-swatch","library","receipt-refund"]},{"key":"hugeicons","name":"Huge Icons","total":4151,"category":"UI 24px","license":"MIT","author":"Hugeicons","samples":["analytics-up","android","search-02"]},{"key":"humbleicons","name":"Humbleicons","total":252,"category":"UI 24px","license":"MIT","author":"Ji\u0159\u00ed Zral\u00fd","samples":["aid","droplet","rss"]},{"key":"il","name":"Icalicons","total":84,"category":"General","license":"MIT","author":"Icalia Labs","samples":["calendar","users","conversation"]},{"key":"icomoon-free","name":"IcoMoon Free","total":491,"category":"Archive / Unmaintained","license":"GPL","author":"Keyamoon","samples":["bubbles3","forward","volume-medium"]},{"key":"icon-park","name":"IconPark","total":2658,"category":"UI Multicolor","license":"Apache 2.0","author":"ByteDance","samples":["add-one","english-mustache","basketball-clothes"]},{"key":"icon-park-outline","name":"IconPark Outline","total":2658,"category":"UI 24px","license":"Apache 2.0","author":"ByteDance","samples":["add-one","english-mustache","basketball-clothes"]},{"key":"icon-park-solid","name":"IconPark Solid","total":1947,"category":"UI 24px","license":"Apache 2.0","author":"ByteDance","samples":["add-one","english-mustache","basketball-clothes"]},{"key":"icon-park-twotone","name":"IconPark TwoTone","total":1944,"category":"UI 24px","license":"Apache 2.0","author":"ByteDance","samples":["add-one","english-mustache","basketball-clothes"]},{"key":"iconamoon","name":"IconaMoon","total":1781,"category":"UI 24px","license":"CC BY 4.0","author":"Dariush Habibpour","samples":["shield-off-thin","lightning-1-duotone","player-previous-fill"]},{"key":"iconoir","name":"Iconoir","total":1671,"category":"UI 24px","license":"MIT","author":"Luca Burgio","samples":["chat-bubble-check","edit","activity"]},{"key":"icons8","name":"Icons8 Windows 10 Icons","total":234,"category":"Archive / Unmaintained","license":"MIT","author":"Icons8","samples":["checked","create-new","group"]},{"key":"wpf","name":"Icons8 Windows 8 Icons","total":200,"category":"Archive / Unmaintained","license":"MIT","author":"Icons8","samples":["check-file","add-image","geo-fence"]},{"key":"iwwa","name":"Innowatio Font","total":105,"category":"Archive / Unmaintained","license":"Apache 2.0","author":"Innowatio","samples":["tag","settings","connection-o"]},{"key":"ion","name":"IonIcons","total":1356,"category":"UI 16px / 32px","license":"MIT","author":"Ben Sperry","samples":["code-download-sharp","contrast-outline","checkmark-done"]},{"key":"jam","name":"Jam Icons","total":940,"category":"UI 24px","license":"MIT","author":"Michael Amprimo","samples":["chevrons-square-up-right","luggage-f","rubber"]},{"key":"lets-icons","name":"Lets Icons","total":1528,"category":"UI 24px","license":"CC BY 4.0","author":"Leonid Tsvetkov","samples":["search-duotone-line","view-alt","message-duotone"]},{"key":"ls","name":"Ligature Symbols","total":348,"category":"General","license":"Open Font License","author":"Kazuyuki Motoyama","samples":["bad","search","bag"]},{"key":"la","name":"Line Awesome","total":1544,"category":"Archive / Unmaintained","license":"Apache 2.0","author":"Icons8","samples":["archive-solid","female-solid","check-circle"]},{"key":"lineicons","name":"Lineicons","total":606,"category":"UI 24px","license":"MIT","author":"Lineicons","samples":["check","vuejs","star-fat"]},{"key":"lsicon","name":"Lsicon","total":716,"category":"UI 16px / 32px","license":"MIT","author":"Wis Design","samples":["pointer-outline","column-filled","vip-outline"]},{"key":"lucide","name":"Lucide","total":1548,"category":"UI 24px","license":"ISC","author":"Lucide Contributors","samples":["check-circle","award","home"]},{"key":"lucide-lab","name":"Lucide Lab","total":373,"category":"UI 24px","license":"ISC","author":"Lucide Contributors","samples":["venn","card-credit","pac-man"]},{"key":"mage","name":"Mage Icons","total":1042,"category":"UI 24px","license":"Apache 2.0","author":"MageIcons","samples":["chart-25","music-fill","coin-a-fill"]},{"key":"majesticons","name":"Majesticons","total":760,"category":"UI 24px","license":"MIT","author":"Gerrit Halfmann","samples":["chats-line","home","edit-pen-4-line"]},{"key":"maki","name":"Maki","total":214,"category":"UI Other / Mixed Grid","license":"CC0","author":"Mapbox","samples":["entrance-alt1","clothing-store","grocery"]},{"key":"map","name":"Map Icons","total":167,"category":"Flags / Maps","license":"Open Font License","author":"Scott de Jonge","samples":["restaurant","real-estate-agency","wheelchair"]},{"key":"marketeq","name":"Marketeq","total":590,"category":"UI Multicolor","license":"MIT","author":"Marketeq","samples":["mute","desk-6","fishing-hook"]},{"key":"zmdi","name":"Material Design Iconic Font","total":777,"category":"General","license":"Open Font License","author":"MDI Community","samples":["alarm-snooze","cloud-off","library"]},{"key":"mdi","name":"Material Design Icons","total":7447,"category":"Material","license":"Apache 2.0","author":"Pictogrammers","samples":["account-check","bell-alert-outline","calendar-edit"]},{"key":"mdi-light","name":"Material Design Light","total":284,"category":"Material","license":"Open Font License","author":"Pictogrammers","samples":["cart","bell","login"]},{"key":"line-md","name":"Material Line Icons","total":1089,"category":"Material","license":"MIT","author":"Vjacheslav Trushkin","samples":["loading-twotone-loop","beer-alt-twotone-loop","image-twotone"]},{"key":"material-symbols","name":"Material Symbols","total":13803,"category":"Material","license":"Apache 2.0","author":"Google","samples":["downloading","privacy-tip","filter-drama-outline"]},{"key":"material-symbols-light","name":"Material Symbols Light","total":13870,"category":"Material","license":"Apache 2.0","author":"Google","samples":["downloading","privacy-tip","filter-drama-outline"]},{"key":"medical-icon","name":"Medical Icons","total":144,"category":"Thematic","license":"MIT","author":"Samuel Fr\u00e9mondi\u00e8re","samples":["i-care-staff-area","i-nursery","immunizations"]},{"key":"memory","name":"Memory Icons","total":651,"category":"UI Other / Mixed Grid","license":"Apache 2.0","author":"Pictogrammers","samples":["chart-bar","application","message"]},{"key":"meteocons","name":"Meteocons","total":447,"category":"Thematic","license":"MIT","author":"Bas Milius","samples":["hurricane-fill","sunrise-fill","windsock"]},{"key":"meteor-icons","name":"Meteor Icons","total":321,"category":"UI 24px","license":"MIT","author":"zkreations","samples":["droplet","bolt","flipboard"]},{"key":"mingcute","name":"MingCute Icon","total":3098,"category":"UI 24px","license":"Apache 2.0","author":"MingCute Design","samples":["edit-3-line","alert-fill","riding-line"]},{"key":"mi","name":"Mono Icons","total":180,"category":"UI 24px","license":"MIT","author":"Mono","samples":["bar-chart","cloud-upload","log-out"]},{"key":"mono-icons","name":"Mono Icons","total":180,"category":"General","license":"MIT","author":"Mono","samples":["user","log-in","play"]},{"key":"mynaui","name":"Myna UI Icons","total":2382,"category":"UI 24px","license":"MIT","author":"Praveen Juge","samples":["signal","power","tree"]},{"key":"nrk","name":"NRK Core Icons","total":230,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Norsk rikskringkasting","samples":["lyn","edit","mening"]},{"key":"nimbus","name":"Nimbus","total":140,"category":"UI 16px / 32px","license":"MIT","author":"Linkedstore S.A.","samples":["barcode","mail","calendar"]},{"key":"nonicons","name":"Nonicons","total":69,"category":"Logos","license":"MIT","author":"yamatsum","samples":["kotlin-16","vue-16","npm-16"]},{"key":"noto","name":"Noto Emoji","total":3562,"category":"Emoji","license":"Apache 2.0","author":"Google Inc","samples":["beaming-face-with-smiling-eyes","computer-mouse","chart-increasing"]},{"key":"noto-v1","name":"Noto Emoji (v1)","total":2162,"category":"Emoji","license":"Apache 2.0","author":"Google Inc","samples":["face-with-open-mouth","no-entry","scissors"]},{"key":"ooui","name":"OOUI","total":361,"category":"UI Other / Mixed Grid","license":"MIT","author":"OOUI Team","samples":["search","share","restore"]},{"key":"octicon","name":"Octicons","total":645,"category":"UI Other / Mixed Grid","license":"MIT","author":"GitHub","samples":["alert-24","bell-slash-24","hourglass-24"]},{"key":"oi","name":"Open Iconic","total":223,"category":"Archive / Unmaintained","license":"MIT","author":"Iconic","samples":["bug","bullhorn","chat"]},{"key":"openmoji","name":"OpenMoji","total":4174,"category":"Emoji","license":"CC BY-SA 4.0","author":"OpenMoji","samples":["bicycle","bow-and-arrow","full-moon-face"]},{"key":"oui","name":"OpenSearch UI","total":402,"category":"UI Other / Mixed Grid","license":"Apache 2.0","author":"OpenSearch Contributors","samples":["word-wrap-disabled","annotation","token-rank-feature"]},{"key":"pepicons","name":"Pepicons","total":428,"category":"General","license":"CC BY 4.0","author":"CyCraft","samples":["bookmark-print","moon","pen-print"]},{"key":"pepicons-pencil","name":"Pepicons Pencil","total":1275,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"CyCraft","samples":["bookmark","moon","pen"]},{"key":"pepicons-pop","name":"Pepicons Pop!","total":1275,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"CyCraft","samples":["bookmark","moon","pen"]},{"key":"pepicons-print","name":"Pepicons Print","total":1275,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"CyCraft","samples":["bookmark","moon","pen"]},{"key":"ph","name":"Phosphor","total":9072,"category":"UI Other / Mixed Grid","license":"MIT","author":"Phosphor Icons","samples":["folder-open-duotone","check-square-offset-thin","pencil-line-fill"]},{"key":"pixelarticons","name":"Pixelarticons","total":486,"category":"UI 24px","license":"MIT","author":"Gerrit Halfmann","samples":["drag-and-drop","arrows-horizontal","heart"]},{"key":"ps","name":"PrestaShop Icons","total":479,"category":"General","license":"CC BY-NC 4.0","author":"PrestaShop","samples":["bell","girl","home"]},{"key":"prime","name":"Prime Icons","total":313,"category":"UI 24px","license":"MIT","author":"PrimeTek","samples":["book","telegram","volume-off"]},{"key":"proicons","name":"ProIcons","total":490,"category":"UI 24px","license":"MIT","author":"ProCode","samples":["code","checkmark","photo-filter"]},{"key":"qlementine-icons","name":"Qlementine Icons","total":437,"category":"UI Other / Mixed Grid","license":"MIT","author":"Olivier Cl\u00e9ro","samples":["windows-16","check-tick-small-16","speaker-0-16"]},{"key":"quill","name":"Quill Icons","total":140,"category":"UI 16px / 32px","license":"MIT","author":"Casper Lourens","samples":["collapse","desktop","moon"]},{"key":"radix-icons","name":"Radix Icons","total":318,"category":"UI Other / Mixed Grid","license":"MIT","author":"WorkOS","samples":["width","checkbox","code"]},{"key":"raphael","name":"Raphael","total":266,"category":"Archive / Unmaintained","license":"MIT","author":"Dmitry Baranovskiy","samples":["home","cloud","parent"]},{"key":"ri","name":"Remix Icon","total":3058,"category":"UI 24px","license":"Apache 2.0","author":"Remix Design","samples":["lock-2-line","mark-pen-fill","moon-line"]},{"key":"rivet-icons","name":"Rivet Icons","total":210,"category":"UI 16px / 32px","license":"BSD 3-Clause","author":"Indiana University","samples":["lightning","credit-card-solid","pause"]},{"key":"logos","name":"SVG Logos","total":1838,"category":"Logos","license":"CC0","author":"Gil Barbara","samples":["npm-icon","uikit","patreon"]},{"key":"svg-spinners","name":"SVG Spinners","total":46,"category":"UI 24px","license":"MIT","author":"Utkarsh Verma","samples":["tadpole","pulse","3-dots-rotate"]},{"key":"si","name":"Sargam Icons","total":924,"category":"UI 24px","license":"MIT","author":"Abhimanyu Rana","samples":["eject-duotone","zoom-in-line","play-duotone"]},{"key":"ix","name":"Siemens Industrial Experience Icons","total":815,"category":"UI Other / Mixed Grid","license":"MIT","author":"Siemens AG","samples":["notification-filled","home-filled","panel-ipc"]},{"key":"simple-icons","name":"Simple Icons","total":3267,"category":"Logos","license":"CC0 1.0","author":"Simple Icons Collaborators","samples":["wise","framer","vuetify"]},{"key":"simple-line-icons","name":"Simple line icons","total":189,"category":"Archive / Unmaintained","license":"MIT","author":"Sabbir Ahmed","samples":["bubbles","camrecorder","cloud-upload"]},{"key":"skill-icons","name":"Skill Icons","total":397,"category":"Programming","license":"MIT","author":"tandpfun","samples":["markdown-light","vuejs-dark","html"]},{"key":"si-glyph","name":"SmartIcons Glyph","total":799,"category":"General","license":"CC BY SA 4.0","author":"SmartIcons","samples":["circle-load-left","basket-arrow-right","slide-show"]},{"key":"solar","name":"Solar","total":7401,"category":"UI 24px","license":"CC BY 4.0","author":"480 Design","samples":["magnifer-zoom-out-broken","armchair-2-bold-duotone","traffic-economy-line-duotone"]},{"key":"stash","name":"Stash Icons","total":982,"category":"UI 24px","license":"MIT","author":"Pingback LLC","samples":["cloud-solid","clock-duotone","search-duotone"]},{"key":"streamline","name":"Streamline","total":2000,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Streamline","samples":["sign-hashtag","open-umbrella-solid","graph-bar-increase"]},{"key":"streamline-emojis","name":"Streamline Emojis","total":787,"category":"Emoji","license":"CC BY 4.0","author":"Streamline","samples":["crescent-moon","fire","kissing-face-with-smiling-eyes"]},{"key":"subway","name":"Subway Icon Set","total":306,"category":"Archive / Unmaintained","license":"CC BY 4.0","author":"Mariusz Ostrowski","samples":["call-2","power-batton","admin"]},{"key":"system-uicons","name":"System UIcons","total":430,"category":"UI Other / Mixed Grid","license":"Unlicense","author":"Corey Ginnivan","samples":["bell","message-writing","write"]},{"key":"tdesign","name":"TDesign Icons","total":2116,"category":"UI 24px","license":"MIT","author":"TDesign","samples":["activity","doge","dam"]},{"key":"tabler","name":"Tabler Icons","total":5844,"category":"UI 24px","license":"MIT","author":"Pawe\u0142 Kuna","samples":["alien","device-desktop","photo"]},{"key":"teenyicons","name":"Teenyicons","total":1200,"category":"UI Other / Mixed Grid","license":"MIT","author":"smhmd","samples":["face-id-solid","user-outline","page-break-outline"]},{"key":"topcoat","name":"TopCoat Icons","total":89,"category":"General","license":"Apache 2.0","author":"TopCoat","samples":["wifi","feedback","pencil"]},{"key":"twemoji","name":"Twitter Emoji","total":3668,"category":"Emoji","license":"CC BY 4.0","author":"Twitter","samples":["anguished-face","duck","bell"]},{"key":"typcn","name":"Typicons","total":336,"category":"UI 24px","license":"CC BY-SA 4.0","author":"Stephen Hutchings","samples":["pin-outline","cloud-storage","bell"]},{"key":"unjs","name":"UnJS Logos","total":63,"category":"Programming","license":"Apache 2.0","author":"UnJS","samples":["nitro","jiti","unstorage"]},{"key":"uil","name":"Unicons","total":1215,"category":"UI 24px","license":"Apache 2.0","author":"Iconscout","samples":["arrow-circle-right","chat-bubble-user","edit-alt"]},{"key":"uim","name":"Unicons Monochrome","total":298,"category":"UI 24px","license":"Apache 2.0","author":"Iconscout","samples":["airplay","circle-layer","lock-access"]},{"key":"uis","name":"Unicons Solid","total":190,"category":"UI 24px","license":"Apache 2.0","author":"Iconscout","samples":["analysis","user-md","bookmark"]},{"key":"uit","name":"Unicons Thin Line","total":216,"category":"UI 24px","license":"Apache 2.0","author":"Iconscout","samples":["circuit","favorite","toggle-on"]},{"key":"vscode-icons","name":"VSCode Icons","total":1362,"category":"Programming","license":"MIT","author":"Roberto Huertas","samples":["file-type-actionscript2","file-type-json","file-type-manifest"]},{"key":"vaadin","name":"Vaadin Icons","total":636,"category":"Archive / Unmaintained","license":"Apache 2.0","author":"Vaadin","samples":["area-select","file-picture","plus-circle-o"]},{"key":"vs","name":"Vesper Icons","total":159,"category":"General","license":"Open Font License","author":"TableCheck","samples":["edit-page","kakao-square","person"]},{"key":"weui","name":"WeUI Icon","total":162,"category":"UI 24px","license":"MIT","author":"WeUI","samples":["search-outlined","clip-filled","done-filled"]},{"key":"wi","name":"Weather Icons","total":219,"category":"Thematic","license":"Open Font License","author":"Erik Flowers","samples":["day-hail","barometer","day-windy"]},{"key":"websymbol","name":"Web Symbols Liga","total":85,"category":"General","license":"Open Font License","author":"Just Be Nice studio","samples":["clock","resize-full-circle","tag"]},{"key":"token","name":"Web3 Icons","total":1715,"category":"Logos","license":"MIT","author":"0xa3k5","samples":["bit","dog","eth"]},{"key":"token-branded","name":"Web3 Icons Branded","total":1967,"category":"Logos","license":"MIT","author":"0xa3k5","samples":["bit","dog","eth"]},{"key":"whh","name":"WebHostingHub Glyphs","total":2125,"category":"General","license":"Open Font License","author":"WebHostingHub","samples":["addtags","brightness","circlecallincoming"]},{"key":"zondicons","name":"Zondicons","total":297,"category":"UI Other / Mixed Grid","license":"MIT","author":"Steve Schoger","samples":["copy","hand-stop","mouse"]},{"key":"ci","name":"coolicons","total":442,"category":"UI 24px","license":"CC BY 4.0","author":"Kryston Schwarze","samples":["bulb","house-01","compass"]},{"key":"gg","name":"css.gg","total":704,"category":"UI 24px","license":"MIT","author":"Astrit","samples":["align-left","server","overflow"]},{"key":"uiw","name":"uiw icons","total":214,"category":"UI Other / Mixed Grid","license":"MIT","author":"liwen0526","samples":["cut","like-o","download"]},{"key":"dinkie-icons","name":"Dinkie Icons","total":1198,"category":"UI Other / Mixed Grid","license":"MIT","author":"atelierAnchor","samples":["lock-small-filled","u1faab-small","battery-small"]},{"key":"fa7-brands","name":"Font Awesome Brands","total":586,"category":"Logos","license":"CC BY 4.0","author":"Dave Gandy","samples":["strava","css3","y-combinator"]},{"key":"fa7-regular","name":"Font Awesome Regular","total":272,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Dave Gandy","samples":["message","clock","folder"]},{"key":"fa7-solid","name":"Font Awesome Solid","total":1999,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Dave Gandy","samples":["location-pin","gem","folder"]},{"key":"material-icon-theme","name":"Material Icon Theme","total":900,"category":"Programming","license":"MIT","author":"Material Extensions","samples":["zip","email","folder-upload"]},{"key":"picon","name":"Pico-icon","total":824,"category":"UI Other / Mixed Grid","license":"Open Font License","author":"Picon Contributors","samples":["bookmark","rewind","folder"]},{"key":"pixel","name":"Pixel Icon","total":578,"category":"UI 24px","license":"CC BY 4.0","author":"HackerNoon","samples":["folder-solid","message","bullet-list"]},{"key":"roentgen","name":"R\u00f6ntgen","total":569,"category":"Flags / Maps","license":"CC BY 4.0","author":"Sergey Vartanov","samples":["apartments-3-story","binoculars","car"]},{"key":"sidekickicons","name":"SidekickIcons","total":232,"category":"UI Other / Mixed Grid","license":"MIT","author":"Andri Soone","samples":["crown","blockquote","compass"]},{"key":"streamline-block","name":"Streamline Block","total":300,"category":"UI 16px / 32px","license":"CC BY 4.0","author":"Streamline","samples":["other-ui-chat","content-write","content-bookmark"]},{"key":"streamline-color","name":"Streamline color","total":2000,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["graph","pie-chart-flat","filter-2"]},{"key":"streamline-cyber","name":"Cyber free icons","total":500,"category":"UI 24px","license":"CC BY 4.0","author":"Streamline","samples":["music-note-1","navigation-up-arrow","map-direction"]},{"key":"streamline-cyber-color","name":"Cyber color icons","total":500,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["shopping-basket-3","command-2","music-note-1"]},{"key":"streamline-flex","name":"Flex free icons","total":1500,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Streamline","samples":["shield-2","number-sign","heart"]},{"key":"streamline-flex-color","name":"Flex color icons","total":1000,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["fahrenheit","tablet-capsule-flat","shuffle"]},{"key":"streamline-freehand","name":"Freehand free icons","total":1000,"category":"UI Other / Mixed Grid","license":"CC BY 4.0","author":"Streamline","samples":["terminal","cursor-speed-1","lock-cancel-slash"]},{"key":"streamline-freehand-color","name":"Freehand color icons","total":1000,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["discount-percent-thin","cursor-speed-1","data-transfer-diagonal"]},{"key":"streamline-kameleon-color","name":"Kameleon color icons","total":400,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["pointer","filter-duo","text-file"]},{"key":"streamline-logos","name":"Logos free icons","total":1362,"category":"Logos","license":"CC BY 4.0","author":"Streamline","samples":["microsoft-windows-logo-2","unspash-logo-solid","patreon-logo"]},{"key":"streamline-pixel","name":"Pixel free icons","total":662,"category":"UI 16px / 32px","license":"CC BY 4.0","author":"Streamline","samples":["shopping-shipping-bag-1","interface-essential-battery","social-rewards-flag"]},{"key":"streamline-plump","name":"Plump free icons","total":1499,"category":"UI 24px","license":"CC BY 4.0","author":"Streamline","samples":["smiley-indiferent","music-note-2","web"]},{"key":"streamline-plump-color","name":"Plump color icons","total":1000,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["tune-adjust-volume","pacman-flat","web"]},{"key":"streamline-sharp","name":"Sharp free icons","total":1500,"category":"UI 24px","license":"CC BY 4.0","author":"Streamline","samples":["home-1","paperclip-2","new-folder"]},{"key":"streamline-sharp-color","name":"Sharp color icons","total":1000,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["file-bookmark-flat","double-bookmark-flat","battery-medium-3-flat"]},{"key":"streamline-stickies-color","name":"Stickies color icons","total":200,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["mail","love","validation-1"]},{"key":"streamline-ultimate","name":"Ultimate free icons","total":1999,"category":"UI 24px","license":"CC BY 4.0","author":"Streamline","samples":["power-button","arrow-right","stairs-descend"]},{"key":"streamline-ultimate-color","name":"Ultimate color icons","total":998,"category":"UI Multicolor","license":"CC BY 4.0","author":"Streamline","samples":["touch-up","like","download-bottom"]},{"key":"temaki","name":"Temaki","total":557,"category":"Flags / Maps","license":"CC0","author":"Bryan Housel","samples":["milestone","elevator","storage"]}]