Skip to content
Design

Icone SVG per il Design UI: La Guida Completa 2026

La guida definitiva alle icone SVG per il design di interfacce: griglia 24×24, consistenza del tratto, accessibilità, dark mode, sprite SVG e workflow di esportazione da Figma.

Robin Monteiro21 dicembre 202510 ottobre 202616 min
Use this article with an AI assistant:
.md
Icone SVG per il Design UI: La Guida Completa 2026
R
Robin Monteiro

Founder of VectoSolve

Self-taught developer, founder and sole developer of VectoSolve since 2024. He builds the conversion engine and the cutting, embroidery and 3D printing exports.

How this article was made: drafted with AI assistance, then edited and fact-checked before publication. About the author

Image vectorizationCutting machine filesEmbroidery filesSVG
Free previewNo signupFull-quality output

Key Takeaways

  • Progetta ogni icona SVG su una griglia di 24×24 pixel con un tratto di 2 px costante per garantire armonia ottica nella tua libreria di componenti.
  • I fogli sprite SVG e i componenti React wrapper superano gli icon font in scalabilità, accessibilità e tematizzazione.
  • L'uso corretto di aria-label, role="img" e <title> trasforma le icone in vocabolario d'interfaccia significativo per le tecnologie assistive.
  • Le proprietà CSS custom (--icon-color, --icon-size) rendono il dark mode e il multi-branding un singolo cambio di token.
  • Una pipeline di esportazione Figma-a-SVG abbinata all'ottimizzazione SVGO mantiene ogni icona sotto i 500 byte.
Guida visiva ai sistemi di icone SVG con allineamento alla griglia e consistenza del tratto
Icone SVG per il Design UI - La Guida 2026

Perché le icone SVG sono l'unica scelta seria per UI in produzione

Gli icon font hanno avuto il loro momento. Gli sprite PNG anche. Entrambi sono punti deboli in qualsiasi design system che deve scalare tra breakpoint, temi colore e requisiti di accessibilità. Le icone SVG sono l'unica scelta architetturalmente solida per team che consegnano interfacce in produzione.

Un'icona SVG è un nodo DOM di prima classe. Risponde alle proprietà CSS custom, partecipa all'albero di accessibilità, scala senza perdita di qualità e si anima con transizioni CSS standard.

"

Le icone sono il vocabolario di un'interfaccia utente. Se il vocabolario è sbagliato, ogni frase che il prodotto pronuncia diventa confusa.

— Wilson Miner

Principi di design delle icone: griglia, tratto e consistenza ottica

Lo standard della griglia 24×24

Ogni icona in un sistema coerente inizia sullo stesso canvas. La griglia di 24×24 pixel si divide uniformemente nelle dimensioni comuni (12, 16, 20, 48) e si allinea a una sotto-griglia di 1 px.

Pro Tip: Progetta ogni icona su una griglia 24×24 con uno spessore tratto di 2 px, 2 px di padding come zona sicura, e estremi/giunzioni arrotondati. Questo singolo vincolo elimina il 90% dei problemi di inconsistenza ottica che i team incontrano mescolando icone da fonti diverse.

Consistenza del tratto e peso visivo

Un tratto di 2 px a 24×24 scala in modo prevedibile: a 16 px diventa ~1,33 px (nitido su display 2x), a 48 px diventa 4 px.

  • Uno spessore di tratto per set. Scegli 1,5 px o 2 px e applicalo globalmente.
  • Stili di estremo e giunzione consistenti. Estremi arrotondati vanno con giunzioni arrotondate. Mai mescolare.
  • Correzione ottica per le curve. Un cerchio di 20 px sembra più piccolo di un quadrato di 20 px — regola a 20,5 px.

Warning: Stili di icone inconsistenti distruggeranno silenziosamente la rifinitura della tua UI. Mescolare icone outline e filled, variare gli spessori di tratto o combinare angoli arrotondati e spigolosi segnala agli utenti che il prodotto non è stato progettato con cura.


Architettura del sistema di icone SVG

CriterioIcon FontSprite SVGSVG InlineComponenti React
ScalabilitàBuonaPerfettaPerfettaPerfetta
Multi-coloreNoSìSìSì
Tematizzazione CSSLimitataCompletaCompletaCompleta
AccessibilitàScarsaBuonaEccellenteEccellente
Tree-shakingNoNoN/ASì
AnimazioneNessunaLimitataCompletaCompleta
Impatto bundle~50-200 KB~10-80 KB~0,3-1 KB ciascuno~0,5-1,5 KB ciascuno
Dark modeFragileRobustoRobustoRobusto

Pattern SVG Sprite

html
<svg xmlns="http://www.w3.org/2000/svg" style="display:none">
  <symbol id="icon-check" viewBox="0 0 24 24">
    <polyline points="20,6 9,17 4,12" fill="none"
      stroke="currentColor" stroke-width="2"/>
  </symbol>
</svg>

<svg width="24" height="24" aria-hidden="true">
  <use href="#icon-check"/>
</svg>

Pattern Componente React

tsx
interface IconProps extends React.SVGProps<SVGSVGElement> {
  size?: number;
  label?: string;
}

export function CheckIcon({ size = 24, label, ...props }: IconProps) {
  return (
    <svg width={size} height={size} viewBox="0 0 24 24"
      fill="none" stroke="currentColor" strokeWidth={2}
      role={label ? 'img' : undefined}
      aria-label={label} aria-hidden={label ? undefined : true}
      {...props}>
      <polyline points="20,6 9,17 4,12" />
    </svg>
  );
}

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Requisiti di accessibilità

Ogni icona SVG è decorativa o significativa. Ciascuna ha un'implementazione non negoziabile.

Decorativa (accanto a testo visibile — nascondere dai lettori di schermo):

html
<button>
  <svg aria-hidden="true" focusable="false"><!-- icona --></svg>
  Salva documento
</button>

Significativa (unico elemento interattivo — deve annunciarsi):

html
<button aria-label="Chiudi finestra di dialogo">
  <svg role="img" aria-labelledby="close-title" focusable="false">
    <title id="close-title">Chiudi</title>
    <path d="M18 6L6 18M6 6l12 12" stroke="currentColor" stroke-width="2"/>
  </svg>
</button>

L'attributo role="img" indica alle tecnologie assistive di trattare l'SVG come un'immagine singola anziché attraversare i nodi figli. Combinalo con aria-labelledby che punta a un elemento <title> per la massima compatibilità. Aggiungi sempre focusable="false" per evitare tab stop fantasma nei browser legacy.


Dark mode e tematizzazione con proprietà CSS custom

css
:root {
  --icon-color-primary: #1a1a2e;
  --icon-color-success: #059669;
  --icon-size-md: 24px;
  --icon-stroke: 2px;
}

@media (prefers-color-scheme: dark) {
  :root {
    --icon-color-primary: #e5e7eb;
    --icon-color-success: #34d399;
  }
}

.icon {
  width: var(--icon-size-md);
  height: var(--icon-size-md);
  stroke: var(--icon-color-primary);
  stroke-width: var(--icon-stroke);
  transition: stroke 0.2s ease;
}

Passare al dark mode è un cambio zero codice icone. I token si aggiornano e ogni icona segue.


Ottimizzazione delle prestazioni

Passa ogni icona nell'ottimizzatore SVG di VectoSolve o SVGO prima di fare commit. Un'icona 24×24 tipica dovrebbe pesare tra 200 e 500 byte dopo l'ottimizzazione.

  • SVG inline per icone critiche above-the-fold. Zero overhead di rete.
  • Sprite sheet esterno per icone below-the-fold. Una richiesta, cache lungo.
  • import() dinamico per icone raramente viste.

Imposta sempre width e height espliciti sugli elementi SVG per evitare il Cumulative Layout Shift (CLS).


Free SVG Tools for Crafters

Design Checker · Color Separator · Mat Preview · Offset Generator · Text to SVG

Check Your SVG Free

Workflow di esportazione Figma-a-SVG

  1. Organizzare in Figma. Pagina dedicata alle icone con frame 24×24 nominati icon/check, icon/alert-triangle, ecc.
  2. Appiattire e vettorializzare. Appiattisci i gruppi booleani e vettorializza i tratti prima dell'esportazione.
  3. Esportare come SVG. Usa l'esportazione nativa di Figma con "Outline text" attivo e "Include id" disattivato.
  4. Ottimizzare. Passa nell'ottimizzatore VectoSolve per rimuovere metadati e ridurre la precisione.
  5. Validare. Conferma che i tracciati si renderizzano correttamente a 16, 24 e 48 px.
  6. Generare componenti. Usa SVGR o uno script custom per convertire SVG in componenti framework.

Animazione delle icone e micro-interazioni

Animazione di tracciamento

css
.icon-check polyline {
  stroke-dasharray: 24;
  stroke-dashoffset: 24;
  transition: stroke-dashoffset 0.25s cubic-bezier(0.65, 0, 0.35, 1);
}
.checkbox:checked + .icon-check polyline {
  stroke-dashoffset: 0;
}

Rotazione e morphing

css
.icon-loading { animation: spin 0.8s linear infinite; }
@keyframes spin { to { transform: rotate(360deg); } }

Pro Tip: Mantieni le animazioni delle icone sotto 300 ms e limitale ai momenti di cambio stato. Avvolgi sempre le animazioni in una media query prefers-reduced-motion per rispettare gli utenti con disturbi vestibolari.


Costruisci il tuo sistema di icone oggi

VectoSolve fornisce strumenti per convertire, ottimizzare e modificare icone SVG in ogni fase — dalla conversione raster a vettore all'ottimizzazione SVG e all'editing SVG in tempo reale. Il tuo sistema di icone è il vocabolario che il tuo prodotto usa per comunicare.


Metodo di integrazioneProContro
SVG inlineControllo CSS/JS totale, nessuna richiesta extraAppesantisce HTML se usato troppo
Sprite sheet SVGUna richiesta HTTP, cacheableNessuno stile CSS esterno in alcuni casi
Componente React (SVGR)Tree-shakeable, props tipizzateStep di build richiesto
Icon fontSemplice da usare, supporto ampioScarsa accessibilità, nessun multicolore
Tag <img>Semplice, cacheableNessun controllo CSS/JS, nessuna animazione

A Full Year of Conversions for $49

Starter Annual: 25 conversions every month, $49 for the whole year. That is about $4.08 a month · Cancel anytime

Get the Annual Deal

Fonti e approfondimenti

Tags:
icone SVG
design UI
design system
accessibilità
dark mode
sprite SVG
Figma
Share:

Try VectoSolve Now

Convert your images to high-quality SVG vectors with AI

AI-Powered Vectorization

Ready to vectorize your images?

Convert your PNG, JPG, and other images to high-quality, scalable SVG vectors in seconds.