Skip to content
Design

Iconos SVG para diseño UI: la guía completa 2026

La guía definitiva de iconos SVG para diseño de interfaces: cuadrícula 24×24, consistencia de trazo, accesibilidad, modo oscuro, sprites SVG y flujo de trabajo Figma.

Robin Monteiro21 de diciembre de 202510 de octubre de 202615 min
Use this article with an AI assistant:
.md
Iconos SVG para diseño UI: la guía 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

  • Diseña cada icono SVG en una cuadrícula de 24×24 píxeles con un trazo de 2 px consistente para garantizar la armonía óptica en tu biblioteca de componentes.
  • Los sprite sheets SVG y los componentes React wrapper superan a las icon fonts en escalabilidad, accesibilidad y tematización.
  • El uso correcto de aria-label, role="img" y <title> convierte los iconos en vocabulario de interfaz significativo para tecnologías de asistencia.
  • Las propiedades CSS custom (--icon-color, --icon-size) hacen que el modo oscuro y el multi-branding sean un cambio de un solo token.
  • Un pipeline de exportación Figma-a-SVG combinado con optimización SVGO mantiene cada icono por debajo de 500 bytes.
Guía visual de sistemas de iconos SVG mostrando alineación de cuadrícula y consistencia de trazo
Iconos SVG para diseño UI - La guía 2026

Por qué los iconos SVG son la única opción seria para UI en producción

Las icon fonts tuvieron su momento. Los sprites PNG también. Ambos son problemas en cualquier design system que necesite escalar entre breakpoints, temas de color y requisitos de accesibilidad. Los iconos SVG son la única opción arquitectónicamente sólida para equipos que lanzan interfaces en producción.

Un icono SVG es un nodo DOM de primera clase. Responde a propiedades CSS custom, participa en el árbol de accesibilidad, escala sin pérdida de calidad y se anima con transiciones CSS estándar. Las icon fonts secuestran el Área de Uso Privado de Unicode, fallan bajo políticas de bloqueo de fuentes y ofrecen exactamente un color por glifo.

"

Los iconos son el vocabulario de una interfaz de usuario. Si el vocabulario está mal, cada frase que el producto pronuncia se vuelve confusa.

— Wilson Miner

Principios de diseño de iconos: cuadrícula, trazo y consistencia óptica

El estándar de cuadrícula 24×24

Cada icono en un sistema coherente comienza en el mismo lienzo. La cuadrícula de 24×24 píxeles se divide uniformemente en tamaños comunes (12, 16, 20, 48) y se alinea a una sub-cuadrícula de 1 px, eliminando la desalineación óptica cuando los iconos están junto a texto o dentro de botones.

Pro Tip: Diseña cada icono en una cuadrícula 24×24 con un ancho de trazo de 2 px, 2 px de padding como zona segura, y extremos/uniones redondeados. Esta única restricción elimina el 90% de los problemas de inconsistencia óptica que encuentran los equipos al mezclar iconos de diferentes fuentes.

Consistencia de trazo y peso visual

Un trazo de 2 px a 24×24 escala de forma predecible: a 16 px se convierte en ~1,33 px (nítido en pantallas 2x), a 48 px se convierte en 4 px. El error que cometen los equipos es mezclar trazos de 1,5, 2 y 3 px en un mismo set.

  • Un solo ancho de trazo por set. Elige 1,5 px o 2 px y aplícalo globalmente.
  • Estilos de extremo y unión consistentes. Los extremos redondeados van con uniones redondeadas. Nunca mezclar.
  • Corrección óptica para curvas. Un círculo de 20 px parece más pequeño que un cuadrado de 20 px — ajusta a 20,5 px.

Warning: Estilos de iconos inconsistentes destruirán silenciosamente el acabado de tu UI. Mezclar iconos outline y filled, variar anchos de trazo o combinar esquinas redondeadas y angulosas señala a los usuarios que el producto no fue diseñado con cuidado — aunque todos los demás componentes sean pixel-perfect.


Arquitectura de un sistema de iconos SVG

Existen cuatro patrones dominantes para entregar iconos SVG al navegador. Cada uno tiene compromisos según tu framework, presupuesto de peso y estrategia de caché.

Comparación de métodos de entrega de iconos SVG en aplicaciones web modernas
Métodos de entrega de iconos SVG para aplicaciones web
CriterioIcon FontsSprites SVGSVG InlineComponentes React
EscalabilidadBuenaPerfectaPerfectaPerfecta
Multi-colorNoSíSíSí
Tematización CSSLimitadaCompletaCompletaCompleta
AccesibilidadPobreBuenaExcelenteExcelente
Tree-shakingNoNoN/ASí
AnimaciónNingunaLimitadaCompletaCompleta
Impacto bundle~50-200 KB~10-80 KB~0,3-1 KB c/u~0,5-1,5 KB c/u
Modo oscuroFrágilRobustoRobustoRobusto

Patrón SVG Sprite

Arquitectura de sprite sheet SVG mostrando definiciones de símbolos y referencias use
Sistema de iconos basado en sprites SVG
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>

<!-- Referencia en cualquier parte -->
<svg width="24" height="24" aria-hidden="true">
  <use href="#icon-check"/>
</svg>

Patrón 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

Requisitos de accesibilidad

Cada icono SVG es decorativo o significativo. Cada uno tiene una implementación no negociable.

Decorativo (junto a texto visible — ocultar de lectores de pantalla):

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

Significativo (único elemento interactivo — debe anunciarse):

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

El atributo role="img" indica a las tecnologías de asistencia que traten el SVG como una imagen única en lugar de recorrer los nodos hijos. Combínalo con aria-labelledby apuntando a un elemento <title> para máxima compatibilidad. Añade siempre focusable="false" para evitar tabulaciones fantasma en navegadores antiguos.


Modo oscuro y tematización con propiedades CSS custom

Un sistema de iconos bien arquitectado se tematiza automáticamente. El mecanismo es currentColor combinado con propiedades 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;
}

Cambiar a modo oscuro es un cambio cero código de iconos. Los tokens se actualizan y cada icono sigue. Para multi-branding, añade una clase .theme-brand-b que sobreescriba las mismas propiedades.


Optimización de rendimiento

Pasa cada icono por el optimizador SVG de VectoSolve o SVGO antes de hacer commit. Un icono 24×24 típico debería pesar entre 200 y 500 bytes después de la optimización.

  • SVG inline para iconos críticos above-the-fold (navegación, CTAs hero). Cero overhead de red.
  • Sprite sheet externo para iconos below-the-fold. Una petición, caché largo.
  • import() dinámico para iconos raramente vistos (paneles admin, estados de error).

Establece siempre width y height explícitos en elementos SVG para evitar el Cumulative Layout Shift (CLS) — una penalización de Core Web Vitals.


Free SVG Tools for Crafters

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

Check Your SVG Free

Flujo de trabajo de exportación Figma-a-SVG

  1. Organizar en Figma. Página dedicada a iconos. Cada icono en un frame 24×24 nombrado icon/check, icon/alert-triangle, etc.
  2. Aplanar y vectorizar. Aplana grupos booleanos y vectoriza trazos antes de exportar para evitar diferencias de renderizado.
  3. Exportar como SVG. Usa la exportación nativa de Figma con "Outline text" activado e "Include id" desactivado.
  4. Optimizar. Pasa por el optimizador de VectoSolve para eliminar metadatos y reducir la precisión.
  5. Validar. Confirma que los trazados se renderizan correctamente a 16, 24 y 48 px.
  6. Generar componentes. Usa SVGR o un script custom para convertir SVGs en componentes de framework. Commitea tanto archivos .svg como componentes generados.

Animación de iconos y micro-interacciones

La animación sutil convierte iconos estáticos en feedback reactivo. Las mejores animaciones de iconos duran menos de 300 ms y comunican un cambio de estado claro.

Animación de trazo

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

Rotación y morphing

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

Pro Tip: Mantén las animaciones de iconos bajo 300 ms y limítalas a momentos de cambio de estado. Los iconos animados continuamente fuera de estados de carga aumentan la carga cognitiva. Envuelve siempre las animaciones en una media query prefers-reduced-motion para respetar a los usuarios con trastornos vestibulares.


Construye tu sistema de iconos hoy

Un sistema de iconos SVG de calidad producción es una inversión en cada interfaz que tu equipo entrega. Empieza con la cuadrícula. Impón el trazo. Automatiza el pipeline.

VectoSolve proporciona herramientas para convertir, optimizar y editar iconos SVG en cada etapa — desde la conversión raster a vector hasta la optimización SVG y la edición SVG en vivo. Tu sistema de iconos es el vocabulario que tu producto usa para comunicar. Haz que cada glifo cuente.


Método de integraciónProsContras
SVG inlineControl total CSS/JS, sin peticiones extraEngrosa el HTML si se abusa
Sprite sheet SVGUna petición HTTP, cacheableSin estilado CSS externo en algunos casos
Componente React (SVGR)Tree-shakeable, props tipadasRequiere paso de build
Icon fontSimple de usar, amplio soportePobre accesibilidad, sin multicolor
Etiqueta <img>Simple, cacheableSin control CSS/JS, sin animación

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

Fuentes y lecturas adicionales

Tags:
iconos SVG
diseño UI
design system
accesibilidad
modo oscuro
sprites 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.