What are you building?
Type anything in the search bar, or start from a common need. Every result can be recolored, resized, and copied in one click.
Results
Click for details · Double-click to copy · Arrow keys moveFind any brand's logo
Search 40,000+ brand marks from open logo sets, as clean vectors you can recolor and export. Need the exact file a company ships on its own site? Capture it from the website.
Popular brands
Logos are trademarks of their owners. Use them to refer to the brand, and follow its guidelines.Grab any website's logo, favicon, and app icons
Paste a website. The Library reads the page and collects every logo, app icon, and favicon it publishes, measured and ranked, ready to download or turn into a favicon pack.
Reading the site
The real logo
The logo the site declares for search engines, plus the vector or image logo in its header. Logo walls of customers and partners are filtered out.
App icons
Apple touch icons and the icons in the site's web manifest, usually the sharpest square version a brand publishes, up to 512 pixels.
Favicons
SVG favicons, PNG favicons, favicon.ico with every size inside it, and the pinned tab icon Safari uses.
Share images
The Open Graph and Twitter images that show up when the site is shared in a message or a feed.
Brand colors
The theme colors the site declares, plus the main colors sampled from its logo, each one ready to copy as hex.
A favicon pack
Turn any captured icon into favicon.ico, Apple touch icon, Android icons, and a web manifest in one download.
Every open-source set
Each set is drawn in one style by one author or team. Pick one for your product and stay in it.
Set
Favorites
Star any icon with the star button or the F key. Favorites stay in this browser, and you can download them all at once with your current color and size.
History
Icons you copied or downloaded, and websites you captured, newest first. Kept in this browser only.
Kits
A kit is a named collection of icons for one project. Add icons with the kit button on any icon, or select several at once. Export a kit as SVG or PNG files, a sprite, React components, or CSS, and share it with a link.
Kit
Turn your own logo into every file you need
Drop a PNG, JPG, WebP, GIF, ICO, or SVG, or paste an image or SVG code anywhere on this page. Trim the edges, remove a flat background, make a one color version, then export a favicon pack, a logo pack in standard upload sizes, or any single size. Your file never leaves this browser.
Paste SVG code instead
See icon sets side by side
Pick up to six sets and the words your product needs. Each cell shows that set's closest match, so you can choose one style for everything. Click any icon for its details.
Use icons and logos well
Formats, framework setup, licensing in plain words, and the craft habits that make icons look intentional.
Copy in the format you actually ship
Open any icon, pick a format, and press Copy. The format you pick becomes your quick copy format too, so the hover copy button, a double-click, and the C key all use it.
| Format | What you get | Best for |
|---|---|---|
| SVG | Raw <svg> markup with your size, stroke, turn, and flip applied. | Inline HTML, Figma, Illustrator, hand-tuning paths. |
| React | A component with the SVG inlined and props passed through. | React and Next.js without an icon package. |
| Vue | A single-file component template with the SVG inside. | Vue and Nuxt. |
| Svelte | A component with a size prop. | Svelte and SvelteKit. |
| Web component | An <iconify-icon> element that loads the icon by name. | Plain HTML and any framework. |
| Iconify React | The Icon component from @iconify/react. | React projects that load icons on demand. |
| Tailwind | A class like icon-[ph--heart] for the @iconify/tailwind4 plugin. | Tailwind CSS 4. |
| Data URI | A data:image/svg+xml string, lightly encoded. | <img src>, CSS, favicon links. |
| Base64 | The same image as a base64 string. | Tools that only accept base64. |
| CSS image | A class with the icon as a background image. | Decorative icons with a fixed color. |
| CSS mask | A class that uses the icon as a mask over currentColor. | Buttons and links whose color changes on hover. |
| Icon name | Just the id, like ph:heart. | Any Iconify package, plugin, or the API. |
How the Library works
No icons are bundled here. Everything is pulled on demand from the open Iconify registry, so the catalog is always current and the page stays light. Logo capture runs on a small capture service that reads a site's public page the way a browser does.
Live search
Each search reads every indexed set at once and returns up to 999 matches. Filter by style, set, or license without searching again.
Tune, then copy
Color, stroke, and zoom change the whole grid as you move them, so you pick the icon that looks right at your size, in your color.
Capture any site
Paste a website and get its declared logo, header logo, app icons, favicons, and share images, measured and ranked, with brand colors sampled from the logo.
License-aware
Every icon shows its set's license and what it asks of you. One switch hides any set that needs credit or limits commercial use.
Embed in your stack
The Copy tab hands you a ready snippet, but here is the bigger picture for each framework. The web-component and React approaches keep icons by name, so they stay tiny and recolor with your CSS.
Recipes worth keeping
Small, reusable patterns that come up again and again once icons are in your product. Copy, adapt, ship.
Theme-aware icon
Let one icon serve light and dark mode by inheriting the text color instead of hard-coding a fill.
<svg fill="currentColor"> ... </svg>
/* now this controls the icon too */
.card { color: #F1F5F9; }
.card.dark { color: #0A0A0A; }Labeled icon button
An icon-only button still needs a name for screen readers. Add an aria-label and hide the glyph from the tree.
<button aria-label="Delete item">
<iconify-icon icon="ph:trash-bold" aria-hidden="true"></iconify-icon>
</button>Spinning loader
Any icon becomes a loader with a one-line keyframe. A spinner or circle-notch reads best.
<iconify-icon icon="ph:spinner-bold" class="spin"></iconify-icon>
/* css */
.spin { animation: spin 0.7s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }Status dot pairing
Pair an icon with a small colored dot to show state without changing the icon itself.
<span class="with-status">
<iconify-icon icon="ph:bell-bold"></iconify-icon>
<i class="dot"></i>
</span>Crisp favicon
Use the Data URI copy format to set a favicon with zero extra files. For a full set that covers phones and installed apps, open the icon and download the favicon pack from the App icon tab.
<link rel="icon" type="image/svg+xml"
href="data:image/svg+xml,..." />Consistent sizing token
Define icon sizes as CSS variables so the whole product scales from one place.
:root { --ic-sm: 16px; --ic-md: 20px; --ic-lg: 24px; }
iconify-icon { font-size: var(--ic-md); }
.toolbar iconify-icon { font-size: var(--ic-lg); }Licensing, in plain terms
Every set shows its license on its card and in the details panel. Here is what the common ones actually mean for shipping work. This is a plain-language summary, not legal advice. When in doubt, read the set's own license file.
The most permissive common license. Use, modify, and ship in commercial products freely.
- Commercial use
- Modify and redistribute
- Keep the license notice
Permissive like MIT, with an explicit patent grant. Common for large vendor sets.
- Commercial use
- Patent grant included
- State significant changes
Functionally equivalent to MIT, just shorter wording. Fully permissive.
- Commercial use
- Modify and redistribute
- Keep the license notice
Free for commercial use, but you must credit the author. A short line in your about or footer is enough.
- Commercial use
- Credit the author
The author has waived all rights. Use it any way you like, no attribution required.
- Anything goes
- No attribution needed
Company logos are trademarks. The artwork may be free to use, but the brand has rules about how its mark is shown. Follow each brand's guidelines.
- Respect brand guidelines
- No implied endorsement
Principles for using icons well
A great icon set is only half the job. These are the habits that make icons feel intentional in a real product.
Commit to one set
Mixing libraries is the fastest way to look unfinished. Pick a single set and stay in it. Consistent stroke, corner, and grid is what reads as polish.
Match weight to text
A thin icon next to bold text looks weak. Align the icon's visual weight with the type it sits beside so they feel like one element.
Size for the target, not the grid
An icon on a touch target needs room around it. The glyph can be 20px while its tap area is 44px. Pad, do not enlarge.
Label anything ambiguous
A gear means settings, a heart is less certain. If an icon could be misread, give it a text label or a tooltip. Icons assist, they rarely replace words.
Use color for meaning, not decoration
Reserve color shifts for state: success, warning, danger. A wall of multicolor icons turns signal into noise.
Align to the optical center
A play triangle looks off when centered by its bounding box. Nudge it to where the eye expects the center, not where math puts it.
Respect the metaphor
A floppy disk for save still works because people learned it, but question stale metaphors for new audiences. The clearest icon wins over the cleverest.
Keep filled and outline consistent
If you use filled icons for active states and outline for inactive, do it everywhere. A mixed system confuses more than it guides.
Accessibility checklist
Icons carry meaning, so they have to work for assistive tech too. Run through this before you ship.
aria-hidden="true" when the icon only repeats nearby text.aria-label so its purpose is announced.prefers-reduced-motion for spinners and transitions.Sizing scale
Common pixel sizes and where each one earns its place. Most sets are drawn on a 24px grid, so sizes that divide cleanly stay sharp.
| Size | Name | Where it fits |
|---|---|---|
| 12px | Micro | Inline hints, dense tables, tiny badges. Use simple glyphs only. |
| 16px | Small | Inline with body text, menu items, compact toolbars. |
| 20px | Default | The workhorse size for buttons, inputs, and list rows. |
| 24px | Medium | Primary toolbar actions, navigation, the native grid size. |
| 32px | Large | Empty states, feature callouts, prominent buttons. |
| 48px | Display | Hero moments, onboarding, marketing. Use illustrative sets here. |
| 64px+ | Showcase | Full illustrations and spot art. Stroke icons start to feel thin. |
Animating icons
A little motion makes an icon feel alive. Keep it short, purposeful, and always respect reduced-motion. Here are the patterns worth reusing.
Spin on load
The classic loading state. Best on a spinner, circle-notch, or gear glyph.
.spin { animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }
@media (prefers-reduced-motion: reduce) {
.spin { animation: none; }
}Pulse for attention
A gentle scale pulse draws the eye to a new notification or live status without shouting.
.pulse { animation: pulse 1.6s ease-in-out infinite; }
@keyframes pulse {
0%, 100% { transform: scale(1); opacity: 1; }
50% { transform: scale(1.12); opacity: 0.8; }
}Hover lift on a button
Nudge an icon on hover so a button feels responsive. Keep the move small, a few pixels at most.
.btn iconify-icon { transition: transform 0.2s ease; }
.btn:hover iconify-icon { transform: translateX(3px); }Draw-on stroke
For an outline icon, animate the stroke so it appears to draw itself. Works best on simple, single-path glyphs.
path { stroke-dasharray: 100; stroke-dashoffset: 100;
animation: draw 0.9s var(--ease) forwards; }
@keyframes draw { to { stroke-dashoffset: 0; } }Swap on state
Cross-fade between two icons, like play and pause, by stacking them and toggling opacity. Cleaner than swapping the node.
.swap iconify-icon { transition: opacity 0.2s ease; }
.swap .pause { opacity: 0; position: absolute; }
.swap.is-playing .play { opacity: 0; }
.swap.is-playing .pause { opacity: 1; }What makes an icon an icon
Behind every clean icon is a quiet system. Knowing the parts helps you choose sets that will sit together and spot the ones that will not.
The grid
Most sets are drawn inside a fixed square, often 24 by 24. Every icon is built on this grid so they share scale and rhythm.
Live area and padding
Inside the grid sits a slightly smaller live area. The padding around it keeps icons from touching their container edges.
Keyline shapes
A square, a circle, and two rectangles define how big a shape should be so a round icon and a square one feel equal.
Stroke and terminals
The line weight and how lines end, rounded or square, give a set its voice. Consistency here is what reads as quality.
Corner radius
How soft the corners are. A shared radius ties a set together, while a mismatched one is the first thing that looks off.
Optical center
Some shapes need nudging off the mathematical center to look balanced. A play triangle is the classic example.
Framework support
Every icon here is available through these official Iconify packages. Same icon names, same props, whatever you build in.
| Framework | Package | Usage |
|---|---|---|
| Plain HTML | iconify-icon | One script tag, then the web component anywhere. |
| React | @iconify/react | The Icon component with on-demand loading. |
| Vue 3 | @iconify/vue | The Icon component, also works in Nuxt. |
| Svelte | @iconify/svelte | Default Icon import, SvelteKit friendly. |
| Angular | iconify-icon | The web component. Add CUSTOM_ELEMENTS_SCHEMA to the component that uses it. |
| Astro | astro-icon | The Icon component, build-time inlined. |
| Ember | @iconify/ember | A helper for Handlebars templates. |
| Tailwind 4 | @iconify/tailwind4 | A plugin that turns icons into classes like icon-[ph--heart]. |
| Tailwind 3 | @iconify/tailwind | The same idea for Tailwind CSS 3. |
| Any build | @iconify/json | The full registry as data for custom tooling. |
How we got to live SVG icons
A short tour of how interface icons evolved, and why on-demand SVG won.
The image era
Early icons were tiny bitmaps, one PNG per icon per size. Crisp at exactly one size, blurry everywhere else, and heavy to manage.
The icon-font era
Packing icons into a font made them scalable and recolorable with CSS. But fonts are awkward for accessibility and ship every glyph whether you use it or not.
The SVG era
SVG gave each icon real shapes, perfect scaling, full styling, and proper accessibility. The question shifted to how you deliver them.
On-demand today
Now icons load by name from a shared registry, only when used. Hundreds of sets become one searchable catalog, and your bundle stays tiny.
Performance notes
Icons are small, but a careless setup can still cost you. A few habits keep them free.
Load only what you use
Reference icons by name so your bundler ships just those glyphs. A whole icon font can be hundreds of kilobytes you never render.
Cache after first paint
The web component stores fetched icons so repeat views are instant. For critical above-the-fold icons, inline the SVG to skip the request entirely.
Inline the hero icons
For the handful of icons visible on first load, paste the raw SVG into your markup. No network call, no layout shift.
Size from CSS, not files
One SVG scales to every size. You never need a separate file per dimension, which keeps your asset count near zero.
Power-user shortcuts
The Library works without a mouse. Press ? any time for the full list.
Press / to search
Jump to the search bar from anywhere, then press the down arrow to move into the results.
Arrows, then C
Move through results with the arrow keys. C copies, D downloads the SVG, F adds a favorite.
[ and ] in details
Step to the previous or next icon without closing the details panel, keeping your color, size, and format.
Paste a website
Paste a site address into the search bar and press Enter to capture its logo, favicon, and app icons.
Frequently asked
Icon and logo glossary
A working vocabulary for anyone wiring icons, logos, and favicons into a product.