UI library

Copertura icone 2026: quante icone servono davvero

12.808 icone in cinque famiglie, misurate il 31 ottobre 2026. Cosa significa copertura, perché i duplicati contano e come scegliere una famiglia senza cambiarla a metà progetto.

In sintesi

  • La copertura non è il numero totale: è quante icone servono al tuo prodotto e quante sono coerenti tra loro.
  • Cinque famiglie coprono quasi tutto: Tabler, Remix, Bootstrap, Lucide, Heroicons.
  • Scegli una famiglia, un peso di tratto e una griglia; mescolarle è il modo più rapido per sembrare non finiti.

Un catalogo con 12.808 icone non risolve il problema di un prodotto. Il problema è: ho l’icona giusta, nello stesso stile delle altre? La copertura si misura sul set che usi, non sul totale disponibile.

EneUI indicizza 12.808 icone in cinque famiglie SVG al 31 ottobre 2026: Tabler, Remix, Bootstrap Icons, Lucide e Heroicons.

Le famiglie, per stile

FamigliaStileLicenzaQuando usarla
TablerOutline, 24px, tratto uniformeMITInterfacce dense, molte icone
LucideOutline, 24px, tratto pulitoISCUI moderne, React
RemixOutline e filled, 24pxApache 2.0Mix outline/filled
Bootstrap IconsOutline e filledMITAffiancate a Bootstrap
HeroiconsOutline, solid, miniMITProgetti Tailwind

Le licenze sono permissive, ma restano licenze: Apache 2.0 richiede di conservare l’avviso, MIT e ISC richiedono il testo della licenza. Un’icona è software.

Perché i duplicati contano

Lo stesso nome esiste in più famiglie con disegni diversi. `home` in Tabler, Lucide e Heroicons non è la stessa icona: cambiano griglia, tratto e proporzioni. Se prendi un’icona da ogni famiglia, il set sembra assemblato.

  • Scegli una famiglia primaria e usala per il 90% delle icone.
  • Ammetti eccezioni solo per marchi (logo di terze parti), che hanno regole proprie.
  • Definisci una taglia base e un peso di tratto, poi non cambiarli per schermata.
  • Controlla che ogni icona abbia un nome stabile: gli alias cambiano tra versioni.

L’impatto sul bundle

Importare un pacchetto intero è il modo più semplice per pagare 500 KB di icone. Con un bundler moderno, l’import nominato viene scosso dal tree-shaking, ma il risultato dipende dal formato esportato.

// Pesante: trascina l'intero set
import * as icons from "lucide-react";

// Leggero: entra solo l'icona usata
import { Search } from "lucide-react";

export function SearchIcon() {
  return ;
}

Accessibilità: due righe che nessuno scrive

Un’icona decorativa accanto a un testo va nascosta agli screen reader con `aria-hidden`. Un’icona che è l’unico contenuto di un bottone ha bisogno di un nome accessibile.


  

Come misurare la tua copertura

  • Elenca le icone usate nel prodotto e confrontale con la famiglia scelta.
  • Conta quante eccezioni stai importando da altre famiglie.
  • Se superano il 10%, il set non è coerente: scegli un’altra famiglia o accetta un compromesso esplicito.

Il browser completo è su /icons, con ricerca per nome e filtro per famiglia.

Domande frequenti

Quante icone servono a un prodotto tipico?

Tra 60 e 150. Oltre, spesso sono varianti dello stesso concetto o icone decorative che non servono.

Posso mescolare famiglie diverse?

Meglio di no. Se devi, limita le eccezioni ai loghi e mantieni taglia e tratto coerenti.

Quale famiglia ha la licenza più semplice?

MIT e ISC sono le più permissive. Apache 2.0 richiede di conservare l’avviso di licenza.

Le icone filled e outline si possono mischiare?

Solo con una regola: lo stato attivo può usare filled, quello inattivo outline. Senza regola, il set sembra incoerente.

Come evito icone duplicate nel progetto?

Un solo punto di import per le icone e un controllo periodico dei nomi usati. I duplicati nascono dalle import dirette sparse nei file.