SVG im Webdesign: Vorteile, Einsatz und Optimierung
Logos, Icons und Grafiken, die auf jedem Bildschirm gestochen scharf bleiben: wann SVG das richtige Format ist und wie Sie es schlank einbinden.
SVG (Scalable Vector Graphics) ist ein Vektorformat, das Grafiken als Text beschreibt: Linien, Kurven, Flächen und Farben statt einzelner Pixel. Deshalb bleiben SVG-Grafiken bei jeder Größe und auf jedem Bildschirm scharf, sind für einfache Motive meist sehr klein und lassen sich mit CSS einfärben oder animieren. SVG ist das richtige Format für Logos, Icons, Diagramme und Illustrationen, nicht aber für Fotos.
Wie sich Raster- und Vektorgrafik grundsätzlich unterscheiden, erklärt der Ratgeber Pixel, Auflösung und Bildformate. Hier geht es um die Praxis: wann SVG passt, wie es eingebunden wird und wie Sie die Dateien schlank halten.
So sieht SVG von innen aus
Eine SVG-Datei ist ein XML-Dokument, das sich mit jedem Texteditor öffnen lässt. Ein violetter Kreis mit weißem Quadrat in der Mitte besteht nur aus wenigen Zeilen:
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 100 100">
<circle cx="50" cy="50" r="48" fill="#5b21b6"/>
<rect x="35" y="35" width="30" height="30" fill="#ffffff"/>
</svg>
Das Attribut viewBox legt das interne Koordinatensystem fest, hier 100 mal 100 Einheiten. Wie groß die Grafik am Ende angezeigt wird, entscheidet die Website. Der Browser rechnet die Formen bei jeder Größe neu, auch auf hochauflösenden Displays.
Wann SVG die richtige Wahl ist
| Motiv | SVG geeignet? | Begründung |
|---|---|---|
| Logo, Bildzeichen | ja | scharf in jeder Größe, klein, einfärbbar |
| Icons | ja | ideal für wiederkehrende Symbole in einem einheitlichen Stil |
| Diagramme, Karten, Infografiken | ja | Text bleibt auswählbar, Linien bleiben fein |
| Illustrationen mit flächigen Farben | meist ja | abhängig von der Zahl der Formen |
| Komplexe Illustrationen mit Tausenden Formen | eher nein | Datei wird groß, Darstellung kann langsam werden |
| Fotos | nein | Rasterformate wie WebP, AVIF oder JPG sind hier überlegen |
Ein in SVG „eingepacktes“ Foto bleibt ein Rasterbild und bringt keinen Vorteil. Welches Rasterformat für Fotos am besten passt, vergleicht der Artikel WebP, AVIF, JPG oder PNG.
Vier Wege, SVG einzubinden
Als Bild mit img
<img src="/logo.svg" alt="PlanetPixel" width="160" height="40">
Der einfachste und sicherste Weg. Der Browser kann die Datei zwischenspeichern, sie wird wie ein normales Bild behandelt und eventuell enthaltene Skripte werden nicht ausgeführt. Externe Ressourcen wie nachgeladene Schriften lädt der Browser in diesem Modus ebenfalls nicht, Schriftzüge in Logos sollten deshalb vorher in Pfade umgewandelt werden. Der Nachteil: Mit dem CSS der Website lässt sich die Grafik nicht einfärben.
Inline im HTML
Der SVG-Code steht direkt im HTML der Seite. Damit ist jedes Element per CSS erreichbar, etwa für Hover-Effekte oder Farben, die mit dem Dunkelmodus wechseln. Mit fill="currentColor" übernimmt ein Icon automatisch die Textfarbe seiner Umgebung. Inline-SVG verursacht keine zusätzliche Anfrage an den Server, wird aber auch nicht separat zwischengespeichert. Für große Grafiken, die auf vielen Seiten erscheinen, ist das ein Nachteil.
Als Sprite mit use
Für Icon-Sets werden viele Symbole in einer Datei gesammelt und einzeln abgerufen:
<svg width="24" height="24" aria-hidden="true">
<use href="/icons.svg#suche"></use>
</svg>
So wird die Datei einmal geladen und zwischengespeichert, die Icons bleiben trotzdem über currentColor einfärbbar. Wie ein einheitliches Icon-System aufgebaut wird, beschreibt Icons im Webdesign.
Über CSS
Als background-image eignet sich SVG für dekorative Muster, Trennlinien oder Hintergrundformen. Mit der Eigenschaft mask lässt sich ein SVG zudem als Form verwenden, die mit einer beliebigen CSS-Farbe gefüllt wird. Für Inhalte, die eine Bedeutung tragen, ist CSS ungeeignet, weil Screenreader Hintergrundbilder nicht erfassen.
SVG-Dateien optimieren
Grafikprogramme exportieren SVG oft mit viel überflüssigem Code: Metadaten des Programms, Kommentare, versteckte Ebenen, unnötig viele Nachkommastellen und leere Gruppen. Optimierungswerkzeuge wie das quelloffene SVGO, das es als Kommandozeilenprogramm und mit grafischen Oberflächen gibt, entfernen diesen Ballast. Bei typischen Exporten schrumpft die Datei dadurch oft deutlich, ohne dass sich das Aussehen ändert.
Darauf sollten Sie beim Optimieren achten:
- viewBox behalten. Ohne viewBox skaliert die Grafik nicht mehr richtig.
- Nachkommastellen begrenzen. Ein bis zwei Stellen reichen für die meisten Motive.
- IDs prüfen. Werden IDs für CSS, Animationen oder Sprites gebraucht, dürfen sie nicht umbenannt oder entfernt werden.
- Text in Pfade umwandeln, wenn die Schrift nicht garantiert verfügbar ist, etwa bei Logos.
- Ergebnis vergleichen. Optimierte und originale Grafik nebeneinander öffnen, bevor Sie die alte Datei ersetzen.
Da SVG Text ist, lässt sich die Datei auf dem Server zusätzlich mit Gzip oder Brotli komprimieren. Bei den meisten Hostern geschieht das automatisch.
Beim Export aus dem Grafikprogramm
Viele Probleme entstehen schon beim Speichern. Die Bezeichnungen unterscheiden sich je nach Programm, die Grundsätze sind gleich:
- Stile als Attribute oder inline exportieren, nicht als eingebettetes Stylesheet mit allgemeinen Klassennamen. Mehrere SVGs mit gleichen Klassennamen auf einer Seite können sich sonst gegenseitig umfärben.
- Zeichenfläche passend zuschneiden, damit die viewBox keinen leeren Rand enthält und sich die Grafik exakt ausrichten lässt.
- Rasterbilder nicht einbetten. Ein eingebettetes Foto macht aus einer kleinen Vektordatei eine große, meist schlecht komprimierte Datei.
- Ebenen und Elemente sinnvoll benennen, wenn einzelne Teile später per CSS oder Animation angesprochen werden sollen.
Schon beim Zeichnen lässt sich Dateigröße sparen: wenige, saubere Pfade statt vieler übereinanderliegender Formen, keine eingebetteten Rasterbilder und keine Effekte, die das Programm nur als Pixel exportieren kann.
Größe angeben und Layoutsprünge vermeiden
Wie bei Rasterbildern sollte die Website wissen, wie viel Platz ein SVG einnimmt, bevor es geladen ist. Geben Sie width und height am img-Element an oder legen Sie die Größe per CSS fest. Fehlen alle Angaben, kann ein inline eingebundenes SVG ohne Breite die volle Containerbreite einnehmen. Ein riesiges Icon beim ersten Laden ist die Folge. Ladezeit und Layoutstabilität vertieft der Artikel Ladezeit von Bildern und Schriften.
Barrierefreiheit
SVG-Grafiken, die eine Information tragen, brauchen eine Textalternative:
- Mit img: ein aussagekräftiges
alt-Attribut, bei Logos meist der Name. - Inline:
role="img"am svg-Element, dazu ein<title>als erstes Kindelement undaria-labelledby, das auf die ID dieses Titels verweist. Für längere Beschreibungen, etwa bei Diagrammen, kann zusätzlich ein<desc>genutzt oder der Inhalt im umgebenden Text erklärt werden. - Dekorativ:
aria-hidden="true"am svg-Element oder ein leeresalt=""am img-Element, damit Screenreader die Grafik überspringen. - Icons in Buttons: Steht neben dem Icon kein sichtbarer Text, braucht der Button selbst einen zugänglichen Namen, etwa über
aria-label.
Achten Sie auch auf Farbkontraste: Linien und Flächen, die eine Bedeutung tragen, müssen sich ausreichend vom Hintergrund abheben, auch im Dunkelmodus.
Sicherheit
SVG kann Skripte, Ereignis-Attribute und Verweise auf fremde Ressourcen enthalten. Für eigene Grafiken ist das unkritisch. Erlaubt eine Website Uploads durch Nutzer, sollten SVG-Dateien entweder nicht angenommen, vor der Speicherung bereinigt oder ausschließlich über das img-Element ausgeliefert werden. Ungeprüft inline ins HTML eingefügte Fremd-SVGs sind ein bekannter Weg für Cross-Site-Scripting.
SVG als Favicon
Moderne Browser akzeptieren SVG auch als Favicon. Der Vorteil: Eine einzige Datei passt für alle Größen, und über eine Media Query im SVG kann das Symbol im Dunkelmodus die Farbe wechseln. Für ältere Browser und Apple-Geräte bleiben zusätzliche Rasterdateien nötig. Welche das sind, steht im Artikel Favicon erstellen.
Checkliste SVG
- Nur für Vektormotive eingesetzt, nicht für Fotos
- Datei optimiert, viewBox erhalten, benötigte IDs geschützt
- Schriften in Logos in Pfade umgewandelt
- Einbindungsart passend gewählt: img für Bilder, inline oder Sprite für einfärbbare Icons
- Breite und Höhe angegeben
- Textalternative oder aria-hidden gesetzt
- Server liefert
image/svg+xmlund komprimiert die Datei - Fremde SVG-Uploads bereinigt oder nur als img ausgeliefert
Fragen und Antworten
Ist SVG besser als PNG?
Für Logos, Icons, Diagramme und einfache Illustrationen meist ja, weil SVG in jeder Größe scharf bleibt und oft kleiner ist. Für Fotos und Grafiken mit vielen feinen Farbverläufen ist ein Rasterformat wie WebP, AVIF oder JPG besser geeignet.
Warum wird meine SVG-Datei nicht angezeigt?
Häufige Ursachen sind ein fehlendes viewBox-Attribut, fehlende Breiten- und Höhenangaben, ein falscher MIME-Typ auf dem Server oder eine Datei, die beim Export unvollständig gespeichert wurde. Öffnen Sie die Datei direkt im Browser und prüfen Sie, ob der Server sie als image/svg+xml ausliefert.
Kann eine SVG-Datei gefährlich sein?
SVG kann Skripte und Verweise auf externe Dateien enthalten. Über das img-Element eingebunden, führt der Browser keine Skripte aus. Kritisch ist es, SVG-Dateien von Fremden ungeprüft hochladen zu lassen und direkt im HTML auszugeben. Solche Dateien sollten bereinigt oder nur als Bild ausgeliefert werden.
Wie mache ich ein SVG barrierefrei?
Über das img-Element genügt ein aussagekräftiger alt-Text. Inline eingebundene SVGs erhalten role="img" und einen title, auf den aria-labelledby verweist. Rein dekorative Grafiken bekommen aria-hidden="true" oder bei img ein leeres alt-Attribut.
Weiterlesen
- Bildformate und Auflösung
Was ein Pixel ist, warum dpi im Web kaum zählt, welche Bildgröße wirklich nötig ist und welches Format zu Foto, Logo, Screenshot oder Icon passt.
- Icons im Webdesign
Welcher Icon-Stil zu welcher Website passt, warum SVG Icon-Fonts abgelöst hat, wie Icons zugänglich werden und welche Lizenzen freie Icon-Sets haben.
- WebP, AVIF, JPG oder PNG
Fotos, Screenshots, Grafiken mit Transparenz: welches Bildformat für welches Motiv die beste Wahl ist und wie Sie mehrere Formate mit Rückfall ausliefern.
- Favicon erstellen
Vom Logo zum kleinen Symbol im Browser-Tab: welche Favicon-Dateien heute genügen, wie Sie sie gestalten und mit wenigen Zeilen HTML einbinden.