Skip to content
Technical

Guida per sviluppatori web: Best practice per l'integrazione SVG

Padroneggia l'integrazione SVG per lo sviluppo web moderno. Impara i metodi di incorporamento, ottimizzazione, animazione e accessibilità per siti web in produzione.

Robin Monteiro4 febbraio 202610 ottobre 202612 min
Use this article with an AI assistant:
.md
Guida per sviluppatori web: Best practice per l'integrazione SVG
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

  • Scegli il metodo di incorporamento SVG giusto: inline per stile/animazione, tag img per visualizzazione semplice, sfondo CSS per uso decorativo
  • Gli sprite SVG consolidano più icone in una singola richiesta HTTP, migliorando drasticamente le prestazioni di caricamento
  • I componenti React e Vue rendono gli SVG riutilizzabili con props dinamiche size, color e className
  • Aggiungi sempre role="img" e aria-labelledby per SVG significativi, o aria-hidden="true" per quelli decorativi
  • Strumenti di build come SVGR (Webpack/Vite) permettono di importare SVG direttamente come componenti di framework
Metodi di integrazione SVG per sviluppatori web
Guida completa all'incorporamento di SVG in progetti web moderni — inline, tag img, sfondo CSS e sistemi di componenti

SVG nello sviluppo web moderno

SVG è il formato di riferimento per la grafica web. Comprendere l'integrazione corretta garantisce prestazioni ottimali, accessibilità e qualità visiva su tutti i dispositivi.


Perché SVG per il web

Vantaggi SVG

Benefici SVG:
- Indipendente dalla risoluzione
- Dimensione file ridotta
- Stilizzabile con CSS
- Animabile
- Accessibile
- SEO-friendly

Quando usare SVG

Ideale per:
- Loghi e icone
- Illustrazioni
- Grafici e diagrammi
- Elementi UI
- Grafiche animate

Metodi di integrazione

Confronto dei metodi

html
<!-- 1. SVG inline -->
<svg viewBox="0 0 100 100">
  <circle cx="50" cy="50" r="40"/>
</svg>

<!-- 2. Tag immagine -->
<img src="icon.svg" alt="Icona">

<!-- 3. Sfondo CSS -->
<div style="background-image: url('icon.svg')"></div>

<!-- 4. Object/embed -->
<object data="graphic.svg" type="image/svg+xml"></object>

Selezione del metodo

Scegli in base a:
Inline: Serve controllo CSS/JS
Image: Visualizzazione semplice
Background: Decorativo
Object: Interattivo/complesso

Pro Tip: Per la maggior parte dei progetti moderni, l'SVG inline è la scelta predefinita migliore. Ti dà il pieno controllo CSS e JavaScript, permette l'animazione e evita richieste HTTP aggiuntive. Riserva i tag <img> per SVG grandi e statici dove vuoi il caching del browser.


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

Best practice SVG inline

Quando usare inline

javascript
// Inline per:
// - Stile CSS necessario
// - Interazione JS necessaria
// - Animazione richiesta
// - Piccoli, usati frequentemente

Ottimizzazione

html
<!-- SVG inline ottimizzato -->
<svg
  viewBox="0 0 24 24"
  width="24"
  height="24"
  aria-hidden="true"
  focusable="false"
>
  <path d="M12 2L2 22h20z"/>
</svg>

Uso del tag immagine

Implementazione base

html
<img
  src="/icons/logo.svg"
  alt="Logo aziendale"
  width="200"
  height="60"
  loading="lazy"
>

Immagini responsive

html
<picture>
  <source
    media="(min-width: 1024px)"
    srcset="logo-large.svg"
  >
  <img src="logo.svg" alt="Logo">
</picture>

Uso come sfondo CSS

Implementazione

css
.icon {
  width: 24px;
  height: 24px;
  background: url('icon.svg') no-repeat center;
  background-size: contain;
}

Approccio Data URI

css
.icon {
  background-image: url("data:image/svg+xml,%3Csvg...");
}

Free SVG Tools for Crafters

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

Check Your SVG Free

Sistemi di componenti

Componenti React

jsx
// SVG come componente React
const Icon = ({ name, size = 24, color = 'currentColor' }) => (
  <svg
    width={size}
    height={size}
    viewBox="0 0 24 24"
    fill={color}
  >
    <use href={`#icon-${name}`} />
  </svg>
);

Componenti Vue

vue
<template>
  <svg
    :width="size"
    :height="size"
    :class="iconClass"
  >
    <use :href="iconHref" />
  </svg>
</template>
Usare SVG in applicazioni React e Next.js
Pattern di componenti SVG React e Next.js — da SVG inline a import SVGR
"

La migliore integrazione SVG è quella che i tuoi utenti non notano mai — funziona e basta, carica veloce e appare nitida su ogni schermo.

— Sara Soueidan, Esperta SVG

Sprite SVG

Creazione dello sprite

html
<!-- Definizione dello sprite SVG -->
<svg style="display: none">
  <symbol id="icon-home" viewBox="0 0 24 24">
    <path d="M10 20v-6h4v6h5v-8h3L12 3 2 12h3v8z"/>
  </symbol>
  <symbol id="icon-menu" viewBox="0 0 24 24">
    <path d="M3 18h18v-2H3v2zm0-5h18v-2H3v2zm0-7v2h18V6H3z"/>
  </symbol>
</svg>

<!-- Uso -->
<svg><use href="#icon-home"/></svg>

Sprite esterni

html
<!-- File sprite esterno -->
<svg>
  <use href="/sprites.svg#icon-home"/>
</svg>

Ottimizzazione delle prestazioni

Ottimizzazione dei file

Passi di ottimizzazione:
1. Rimuovere metadati
2. Semplificare i path
3. Minimizzare i decimali
4. Rimuovere elementi inutilizzati
5. Comprimere/minificare

Strumenti consigliati

Strumenti di ottimizzazione:
SVGO: Ottimizzatore CLI
SVGOMG: Interfaccia web
svgo-loader: Webpack
@svgr/webpack: React

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

Accessibilità

Supporto screen reader

html
<!-- SVG accessibile -->
<svg
  role="img"
  aria-labelledby="title desc"
>
  <title id="title">Carrello</title>
  <desc id="desc">Clicca per vedere il carrello</desc>
  <path d="..."/>
</svg>

SVG decorativi

html
<!-- Decorativo (nessuna a11y necessaria) -->
<svg aria-hidden="true" focusable="false">
  <path d="..."/>
</svg>

Non dimenticare focusable="false" sugli SVG decorativi in Internet Explorer e nelle vecchie versioni di Edge. Senza di esso, gli utenti della tastiera potrebbero accidentalmente navigare in elementi SVG vuoti, creando un'esperienza di navigazione confusa.


Stile CSS

Opzioni di stile

css
/* Fill e stroke */
svg {
  fill: currentColor;
  stroke: none;
}

/* Stati hover */
svg:hover {
  fill: #007bff;
}

/* Transizioni */
svg {
  transition: fill 0.2s ease;
}

Proprietà personalizzate CSS

css
:root {
  --icon-size: 24px;
  --icon-color: currentColor;
}

.icon {
  width: var(--icon-size);
  height: var(--icon-size);
  fill: var(--icon-color);
}

Animazione

Animazione CSS

css
/* Animazione di rotazione */
@keyframes spin {
  to { transform: rotate(360deg); }
}

.loading-icon {
  animation: spin 1s linear infinite;
}

Animazione SMIL

html
<svg>
  <circle cx="50" cy="50" r="20">
    <animate
      attributeName="r"
      values="20;35;20"
      dur="1s"
      repeatCount="indefinite"
    />
  </circle>
</svg>

Free SVG Tools for Crafters

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

Check Your SVG Free

Integrazione nel build

Configurazione Webpack

javascript
// webpack.config.js
module.exports = {
  module: {
    rules: [
      {
        test: /\.svg$/,
        use: ['@svgr/webpack'],
      },
    ],
  },
};

Configurazione Vite

javascript
// vite.config.js
import svgr from 'vite-plugin-svgr';

export default {
  plugins: [svgr()],
};

Ottenere asset pronti per SVG

Da raster a SVG

Workflow di conversione:
1. Esportare raster alla massima qualità
2. Convertire con VectoSolve
3. Ottimizzare l'output SVG
4. Integrare nel progetto

Considerazioni sulla qualità

Preparazione SVG:
- Path puliti
- Nodi minimi
- viewBox corretto
- Nessun raster incorporato

Conclusione

Un'integrazione SVG corretta è essenziale per lo sviluppo web moderno. Dalla scelta del metodo di incorporamento giusto all'ottimizzazione e accessibilità, padroneggiare l'uso degli SVG migliora sia le prestazioni che l'esperienza utente. Usa VectoSolve per creare SVG puliti da grafiche esistenti.

Crea SVG pronti per il web

Tags:
sviluppo web
SVG
JavaScript
CSS
prestazioni
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.