Skip to content
Design

SVG-iconen voor UI-design: De Complete Gids 2026

De ultieme gids voor SVG-iconen in UI-design: 24×24 grid, streekconsistentie, toegankelijkheid, dark mode, SVG-sprites en Figma-exportworkflow.

Robin Monteiro21 december 202510 oktober 202616 min
Use this article with an AI assistant:
.md
SVG-iconen voor UI-design: De Complete Gids 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

  • Ontwerp elk SVG-icoon op een 24×24 pixel grid met een consistente 2 px streekbreedte om optische harmonie in je componentbibliotheek te garanderen.
  • SVG sprite sheets en React wrapper-componenten overtreffen icon fonts in schaalbaarheid, toegankelijkheid en theming.
  • Correct gebruik van aria-label, role="img" en <title> maakt iconen tot betekenisvol interfacevocabulaire voor hulptechnologie.
  • CSS custom properties (--icon-color, --icon-size) maken dark mode en multi-brand theming tot een enkele tokenwijziging.
  • Een Figma-naar-SVG exportpipeline gecombineerd met SVGO-optimalisatie houdt elk icoon onder 500 bytes.
Visuele gids voor SVG-icoon design systemen met gridalignment en streekconsistentie
SVG-iconen voor UI-design - De Gids 2026

Waarom SVG-iconen de enige serieuze keuze zijn voor productie-UI

Icon fonts hadden hun moment. PNG sprites ook. Beide zijn zwakke punten in elk design system dat moet schalen over breakpoints, kleurthema's en toegankelijkheidsvereisten. SVG-iconen zijn de enige architecturaal solide keuze voor teams die productie-interfaces uitleveren.

Een SVG-icoon is een eersteklas DOM-node. Het reageert op CSS custom properties, neemt deel aan de accessibility tree, schaalt zonder kwaliteitsverlies en animeert met standaard CSS-transities.

"

Iconen zijn het vocabulaire van een gebruikersinterface. Als het vocabulaire niet klopt, wordt elke zin die het product uitspreekt verwarrend.

— Wilson Miner

Icoon-designprincipes: grid, streek en optische consistentie

De 24×24 grid-standaard

Elk icoon in een samenhangend systeem begint op hetzelfde canvas. Het 24×24 pixel grid verdeelt gelijkmatig in gangbare formaten (12, 16, 20, 48) en lijn uit op een 1 px sub-grid.

Pro Tip: Ontwerp elk icoon op een 24×24 grid met 2 px streekbreedte, 2 px padding als veilige zone, en afgeronde lijnuiteinden/-verbindingen. Deze enkele beperking elimineert 90% van de optische inconsistentieproblemen die teams tegenkomen bij het mixen van iconen uit verschillende bronnen.

Streekconsistentie en visueel gewicht

Een 2 px streek op 24×24 schaalt voorspelbaar: op 16 px wordt het ~1,33 px (scherp op 2x displays), op 48 px wordt het 4 px.

  • Eén streekbreedte per set. Kies 1,5 px of 2 px en handhaaf het globaal.
  • Consistente uiteinde- en verbindingsstijlen. Afgeronde uiteinden passen bij afgeronde verbindingen. Nooit mixen.
  • Optische correctie voor curves. Een 20 px cirkel lijkt kleiner dan een 20 px vierkant — pas aan naar 20,5 px.

Warning: Inconsistente icoonstijlen zullen stilletjes de afwerking van je UI vernietigen. Het mixen van outline en filled iconen, variërende streekbreedtes of het combineren van afgeronde en scherpe hoeken signaleert gebruikers dat het product niet met zorg is ontworpen.


SVG-icoon systeemarchitectuur

CriteriumIcon FontsSVG SpritesInline SVGReact-componenten
SchaalbaarheidGoedPerfectPerfectPerfect
MulticolorNeeJaJaJa
CSS-themingBeperktVolledigVolledigVolledig
ToegankelijkheidSlechtGoedUitstekendUitstekend
Tree-shakingNeeNeeN/AJa
AnimatieGeenBeperktVolledigVolledig
Bundle-impact~50-200 KB~10-80 KB~0,3-1 KB elk~0,5-1,5 KB elk
Dark modeFragielRobuustRobuustRobuust

SVG Sprite Pattern

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>

React Component Pattern

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

Toegankelijkheidsvereisten

Elk SVG-icoon is decoratief of betekenisvol. Elk heeft een niet-onderhandelbare implementatie.

Decoratief (naast zichtbare tekst — verbergen voor schermlezers):

html
<button>
  <svg aria-hidden="true" focusable="false"><!-- icoon --></svg>
  Document opslaan
</button>

Betekenisvol (enige interactieve element — moet zichzelf aankondigen):

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

Het role="img" attribuut vertelt hulptechnologie om het SVG als één enkel beeld te behandelen in plaats van child-nodes te doorlopen. Combineer met aria-labelledby dat naar een <title> element wijst voor maximale compatibiliteit. Voeg altijd focusable="false" toe om phantom tab-stops in legacy browsers te voorkomen.


Dark mode en theming met CSS custom properties

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;
}

Overschakelen naar dark mode is een nul-icooncode-wijziging. De tokens updaten en elk icoon volgt.


Prestatieoptimalisatie

Laat elk icoon door de VectoSolve SVG-optimizer of SVGO lopen vóór het committen. Een typisch 24×24 icoon zou na optimalisatie tussen 200 en 500 bytes moeten zijn.

  • Inline SVG voor kritieke above-the-fold iconen. Nul netwerk-overhead.
  • Extern sprite sheet voor below-the-fold iconen. Eén request, lange cache.
  • Dynamisch import() voor zelden geziene iconen.

Stel altijd expliciete width en height in op SVG-elementen om Cumulative Layout Shift (CLS) te voorkomen.


Free SVG Tools for Crafters

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

Check Your SVG Free

Figma-naar-SVG exportworkflow

  1. Organiseer in Figma. Dedicated Iconen-pagina met 24×24 frames genaamd icon/check, icon/alert-triangle, etc.
  2. Afvlakken en omlijnen. Boolean-groepen afvlakken en streken omlijnen vóór export.
  3. Exporteer als SVG. Gebruik Figma's native export met "Outline text" aan en "Include id" uit.
  4. Optimaliseer. Door de VectoSolve-optimizer halen om metadata te verwijderen en precisie te verminderen.
  5. Valideer. Bevestig dat paden correct renderen op 16, 24 en 48 px.
  6. Genereer componenten. Gebruik SVGR of een custom script om SVG's om te zetten in framework-componenten.

Icoonanimatie en micro-interacties

Streek-teken-animatie

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;
}

Rotatie en morphing

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

Pro Tip: Houd icoonanimaties onder 300 ms en beperk ze tot toestandsveranderingsmomenten. Wikkel animaties altijd in een prefers-reduced-motion media query om gebruikers met vestibulaire stoornissen te respecteren.


Bouw vandaag je icoonsysteem

VectoSolve biedt tools om SVG-iconen te converteren, optimaliseren en bewerken in elke fase — van raster-naar-vector conversie tot SVG-optimalisatie en live SVG-editing. Je icoonsysteem is het vocabulaire dat je product gebruikt om te communiceren. Laat elke glyph tellen.


IntegratiemethodeVoordelenNadelen
Inline SVGVolledige CSS/JS-controle, geen extra requestsMaakt HTML zwaarder bij overmatig gebruik
SVG sprite sheetEén HTTP-request, cacheableGeen externe CSS-styling in sommige gevallen
React-component (SVGR)Tree-shakeable, getypte propsBuild-stap vereist
Icon fontEenvoudig te gebruiken, breed ondersteundSlechte toegankelijkheid, geen multicolor
<img> tagEenvoudig, cacheableGeen CSS/JS-controle, geen animatie

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

Bronnen en verdere lectuur

Tags:
SVG-iconen
UI-design
design system
toegankelijkheid
dark mode
SVG-sprites
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.