SF Symbols personalizados: la plantilla variable y los tres diseños fuente obligatorios
Apple incluye más de 6.900 SF Symbols y la app SF Symbols es gratuita, pero tarde o temprano casi todas las apps necesitan un ícono que Apple no tiene: una marca, un glifo específico del dominio o una acción personalizada que no encaja en el vocabulario del sistema. El camino correcto es crear un SF Symbol personalizado en lugar de insertar un SVG estático, porque los SF Symbols personalizados heredan gratis la maquinaria del sistema: escalan con Dynamic Type, participan en las animaciones de Symbol Effects, se renderizan en los cuatro modos de renderizado, se alinean con la tipografía SF Pro y respetan la configuración de accesibilidad sin código específico por app. Los SVG estáticos no participan en nada de eso.
Este artículo recorre el flujo de trabajo con la plantilla variable de la app SF Symbols, presentada en SF Symbols 3 durante WWDC 20211. El enfoque es “cuáles son los tres diseños fuente obligatorios y por qué”, porque el formato de la plantilla es la parte estructural del flujo que la mayoría de diseñadores e ingenieros pasa por alto la primera vez. Las versiones posteriores de SF Symbols (4, 5, 6, 7) ampliaron el formato de plantilla con color variable, transiciones magic replace, soporte para degradados y efectos de animación, pero la estructura central de tres fuentes de la plantilla variable se ha mantenido estable desde SF Symbols 3.
TL;DR
- Los SF Symbols personalizados parten de una plantilla exportada desde la app SF Symbols (
File > Export Template, o⌘E)2. La plantilla es un SVG con guías de tamaño definidas por el sistema y un diseño de símbolo de marcador que debes reemplazar. - La plantilla variable solo requiere tres diseños fuente: Ultralight-Small, Regular-Small y Black-Small. La app SF Symbols interpola automáticamente las 24 variaciones restantes (3 escalas × 9 pesos)3.
- La compatibilidad de rutas es el requisito estructural: cada ruta debe tener el mismo número de puntos de ancla, el mismo punto inicial y la misma dirección en las tres fuentes. Sin eso, la interpolación produce glifos deformes.
- Los símbolos personalizados admiten los cuatro modos de renderizado (monochrome, hierarchical, palette, multicolor) y la estructura por capas (primary, secondary, tertiary). El panel de inspección de renderizado del Symbol Editor asigna las subrutas a capas.
- Entrega final: agrega el archivo del símbolo a Xcode como Symbol Image Set en el catálogo de assets. SwiftUI lo referencia mediante
Image(_:)con el nombre del símbolo; el sistema se encarga del resto.
La plantilla variable
SF Symbols 3 (WWDC 2021) introdujo la plantilla variable3, un único archivo SVG que captura tres diseños fuente y a partir del cual la app SF Symbols genera la cuadrícula completa de 27 variaciones. Las tres fuentes son:
- Ultralight-Small. El peso más ligero, en la escala más pequeña.
- Regular-Small. El peso intermedio, en la escala más pequeña.
- Black-Small. El peso más pesado, en la escala más pequeña.
La app usa esas tres fuentes para interpolar las otras 24 celdas (Ultralight-Medium, Regular-Medium, Black-Medium, Ultralight-Large, Regular-Large, Black-Large, además de los pesos intermedios en cada escala). La interpolación es automática siempre que las rutas fuente tengan una estructura compatible.
Antes de que SF Symbols 3 introdujera la plantilla variable, los símbolos personalizados exigían dibujar manualmente las 27 variaciones. La plantilla variable redujo el trabajo a 3 + interpolación, que es la diferencia entre un esfuerzo de diseño manejable y uno capaz de hundir el proyecto.
El requisito de datos compatibles
La interpolación de rutas exige que las tres rutas fuente describan la misma forma en el mismo orden2:
- Mismo número de puntos de ancla. Un cuadrado en peso Regular con 4 anclas debe tener 4 anclas en Ultralight y en Black, aunque la curvatura visible cambie.
- Mismo punto inicial. La primera ancla de la ruta debe estar en la misma posición conceptual (por ejemplo, siempre la esquina superior izquierda) en los tres pesos.
- Misma dirección. Las tres rutas recorren la forma en el mismo orden (en sentido horario o antihorario).
Si cualquiera de estas condiciones falla, aparecen artefactos de interpolación: quiebres, superposiciones incorrectas, trazos faltantes. La app SF Symbols muestra algunos de estos problemas (la vista previa de variantes enseña el resultado de la interpolación), pero los errores sutiles a veces solo aparecen en el asset exportado final.
El flujo pragmático es diseñar primero Regular-Small y luego derivar Ultralight reduciendo el grosor del trazo y Black aumentándolo sobre el mismo esqueleto de ruta. Así, cada derivación preserva por construcción el número de anclas, el punto inicial y la dirección. Diseñar cada peso de forma independiente suele crear problemas de compatibilidad que tardan más en depurarse que rehacer la construcción.
El flujo de trabajo
Cinco pasos desde el concepto hasta un asset funcional:
1. Encuentra un símbolo existente parecido
La biblioteca de la app SF Symbols tiene más de 6.900 símbolos. Busca uno estructuralmente parecido a tu concepto (un círculo con contenido, un cuadrado con una superposición, una línea con decoración). La ruta de exportar plantilla usa la geometría de un símbolo existente como punto de partida.
2. Exporta la plantilla
File > Export Template… o ⌘E. Elige “Variable” como tipo de plantilla. El resultado es un archivo SVG con los tres pesos fuente del símbolo ya dispuestos, más geometría de referencia que muestra la altura de mayúsculas, la línea base y los márgenes visuales que SF Symbols usa para alinearse con texto en SF Pro.
3. Reemplaza las rutas de la plantilla
Abre el SVG en un editor vectorial (Sketch, Figma, Illustrator, Affinity Designer, Inkscape). Las capas con nombre de la plantilla contienen los tres diseños fuente. Reemplaza cada uno por tu diseño personalizado, conservando los nombres de las capas y la alineación con la altura de mayúsculas y la línea base.
Aquí importa el requisito de compatibilidad de rutas: diseña cada peso desde el mismo esqueleto de ruta, variando el grosor del trazo o el peso del relleno en lugar de redibujar. El flujo de “duplicar y modificar” de las herramientas vectoriales es el camino de menor resistencia.
4. Vuelve a importar y verifica
Arrastra el SVG modificado de vuelta a la app SF Symbols. La app genera las 27 variaciones y las muestra en la cuadrícula de variantes. Revisa cada combinación de peso y escala en varios niveles de zoom; los artefactos de interpolación suelen aparecer en pesos intermedios que no saltan a la vista al principio.
En símbolos con varios elementos visuales (un cuerpo más una insignia, un círculo más una forma interior), abre el panel de inspección de renderizado y asigna las subrutas a capas (primary, secondary, tertiary). Esas asignaciones determinan cómo se renderiza el símbolo en los modos hierarchical, palette y multicolor.
5. Agrégalo a Xcode
Arrastra el archivo del símbolo (.svg exportado desde SF Symbols) al catálogo de assets de Xcode. Xcode lo trata como un Symbol Image Set. Referéncialo desde el código:
Image("MyCustomSymbol")
.symbolRenderingMode(.hierarchical)
.foregroundStyle(.tint)
Image(_:) (sin el parámetro systemName:) carga desde el catálogo de assets. Los mismos comportamientos de .symbolRenderingMode, .foregroundStyle, .symbolEffect y Dynamic Type que funcionan con símbolos del sistema funcionan con símbolos personalizados, siempre que el símbolo esté bien construido.
Modos de renderizado y estructura por capas
Los cuatro modos de renderizado que expone SF Symbols funcionan igual en símbolos personalizados que en los del sistema4:
- Monochrome. Un solo color (
foregroundStyle). Es el modo más simple y el más común. - Hierarchical. Un solo color, con opacidad variable por capa. Las capas definidas en el panel de inspección de renderizado reciben opacidades preestablecidas; el desarrollador aplica un tinte y obtiene jerarquía visual automáticamente.
- Palette. Color explícito por capa. El desarrollador pasa varios argumentos de
foregroundStyle; cada capa recibe el suyo. - Multicolor. Colores fijos definidos por Apple por capa. En los símbolos personalizados, los colores son los que el diseñador asigna en la configuración Multicolor del Symbol Editor.
La estructura por capas es lo que hace funcionar hierarchical, palette y multicolor. Un símbolo personalizado sin asignaciones de capas colapsa todas las rutas en la capa primary; el símbolo todavía se renderiza en monochrome, pero no produce jerarquía visual en los demás modos. Tómate el tiempo de asignar capas en el panel de inspección de renderizado para cualquier símbolo que se beneficie de profundidad.
Fallas comunes
Tres patrones que aparecen en los registros de fallas de símbolos personalizados:
Violaciones de compatibilidad de rutas. Es el problema más común. Un símbolo que “se ve bien en peso Regular” pero produce pesos intermedios defectuosos casi siempre tiene un problema de compatibilidad de rutas. Diagnóstico: abre la cuadrícula de variantes de la app SF Symbols y observa las variantes de peso medio; si muestran quiebres o trazos que no coinciden con la interpolación esperada, una de las tres rutas fuente viola la compatibilidad.
Línea base o altura de mayúsculas desalineadas. Los símbolos diseñados sin respetar la guía de línea base de la plantilla quedan incómodos junto al texto. El síntoma visual: el símbolo parece demasiado alto o demasiado bajo cuando se coloca en línea con un Text con estilo .body. Corrección: usa la geometría de referencia de la plantilla; coloca el centro óptico del símbolo en el punto medio de la altura de mayúsculas.
Sin asignaciones de capas. Un símbolo con una estructura interna rica (varios elementos visuales) pero sin asignaciones de capas solo se renderiza correctamente en monochrome. Las apps que seleccionan el modo hierarchical o palette ven una salida plana. Corrección: abre el panel de inspección de renderizado y asigna cada subruta a una capa (primary para la forma principal, secondary para acentos, tertiary para detalle terciario).
Qué significa este patrón para apps iOS 26+
Tres conclusiones.
-
Usa SF Symbols personalizados, no SVGs sin procesar, para íconos dentro de la app. El flujo de símbolos personalizados exige trabajo real de ingeniería, pero la integración con el sistema (Dynamic Type, Symbol Effects, modos de renderizado, accesibilidad) hace que el costo valga la pena para cualquier ícono que vivirá en la UI a largo plazo. Los SVG estáticos tienen sentido para assets puntuales de marketing, no para la UI central.
-
Diseña desde un único esqueleto; varía el grosor del trazo, no la estructura de la ruta. Las violaciones de compatibilidad de rutas son el modo de falla decisivo. El proceso defensivo consiste en empezar con un peso (Regular-Small), derivar Ultralight reduciendo el trazo y Black aumentándolo desde la misma geometría de ruta. La compatibilidad queda garantizada por construcción.
-
Asigna capas explícitamente a cualquier símbolo que se beneficie de los modos de renderizado. Un símbolo que solo se renderiza en monochrome renuncia a la mitad del sistema SF Symbols. El panel de inspección de renderizado toma minutos; el resultado son símbolos que participan en los modos hierarchical, palette y multicolor junto con los símbolos del sistema.
El clúster completo del ecosistema Apple: App Intents tipados; servidores MCP; la pregunta de enrutamiento; Foundation Models; la distinción entre entorno de ejecución y herramientas LLM; tres superficies; el patrón de fuente única de verdad; dos servidores MCP; hooks para desarrollo Apple; Live Activities; el entorno de ejecución de watchOS; componentes internos de SwiftUI; el modelo mental espacial de RealityKit; disciplina de esquemas en SwiftData; patrones de Liquid Glass; publicación multiplataforma; la matriz de plataformas; Vision framework; Symbol Effects; inferencia con Core ML; API de Writing Tools; Swift Testing; Privacy Manifest; accesibilidad como plataforma; tipografía SF Pro; patrones espaciales de visionOS; Speech framework; migraciones de SwiftData; motor de foco de tvOS; componentes internos de @Observable; protocolo Layout de SwiftUI; sobre lo que me niego a escribir. El hub está en la serie del ecosistema Apple. Para un contexto más amplio sobre iOS con agentes de IA, consulta la guía de desarrollo de agentes para iOS.
FAQ
¿Necesito la app SF Symbols o puedo crear símbolos personalizados de otra forma?
La app SF Symbols es la herramienta oficial y la única que produce símbolos personalizados validados y compatibles con App Store. Existen herramientas de terceros y convertidores en línea, pero producen SVGs que pueden cumplir o no con los requisitos del formato de plantilla. Para apps de producción, usa la app SF Symbols.
¿Puedo crear símbolos personalizados en Windows?
La app SF Symbols solo está disponible para macOS. Puedes editar la plantilla SVG exportada en cualquier plataforma con un editor vectorial, pero los pasos de exportación y reimportación requieren macOS. La mayoría de los equipos tiene al menos un diseñador en macOS que puede encargarse de esos pasos; los flujos de equipos remotos pasan el archivo SVG por control de versiones o almacenamiento compartido.
¿Cómo doy soporte a .symbolEffect en un símbolo personalizado?
La mayoría de los efectos de símbolo funcionan automáticamente si la estructura del símbolo está bien formada: bounce, pulse, scale y los demás se aplican al símbolo sin importar su origen. La transición de contenido .replace necesita que el símbolo de origen y el de destino tengan estructuras compatibles (conteos de capas similares, forma general parecida). El artículo sobre Symbol Effects del clúster cubre el vocabulario de efectos en detalle.
¿Cuál es la diferencia entre un Symbol Image Set y un Image Set normal en Xcode?
Un Symbol Image Set importa la plantilla completa del símbolo (las 27 variaciones) y la expone mediante la canalización de renderizado de SF Symbols. El símbolo escala con Dynamic Type, participa en los modos de renderizado y funciona con .symbolEffect. Un Image Set normal es un recurso raster o SVG estático que no participa en nada de eso. Usa Symbol Image Set para SF Symbols personalizados.
¿Cómo manejan visionOS y watchOS los símbolos personalizados?
De la misma manera que los símbolos del sistema: se renderizan en los tamaños esperados por la plataforma (small para watchOS, large para visionOS), participan en las funciones de accesibilidad de la plataforma y respetan sus convenciones de color y efectos. La creación del símbolo personalizado se hace una sola vez; el comportamiento multiplataforma es automático. Los artículos del clúster sobre la matriz de plataformas Apple y los patrones espaciales de visionOS cubren las consideraciones por plataforma.
¿Qué impacto tiene en la revisión de App Store?
Ninguno. Los SF Symbols personalizados se revisan igual que otros assets del Asset Catalog. Las pautas de estilo visual (no imitar patrones de UI de Apple, no infringir marcas registradas) aplican a los símbolos personalizados igual que a cualquier arte personalizado; fuera de eso, el proceso de revisión los trata como assets de imagen estándar.
Referencias
-
Apple Developer: SF Symbols. Descarga de la aplicación, navegador de la biblioteca de símbolos y hub de documentación para crear símbolos personalizados. ↩
-
Apple Developer Documentation: Creating custom symbol images for your app. Guía autorizada de Apple sobre exportación de plantillas, estructura SVG, requisitos de compatibilidad de rutas e importación al catálogo de assets de Xcode. ↩↩
-
Apple Developer: Create custom symbols (sesión 10250 de WWDC 2021). Presentación del formato de plantilla variable y del flujo de trabajo con tres diseños fuente. ↩↩
-
Apple Developer Documentation:
SymbolRenderingMode. Los cuatro modos de renderizado (.monochrome,.hierarchical,.palette,.multicolor) y sus interacciones con la estructura por capas. ↩