Design System Problems

Vector Icons Mobile

January 15, 2026 • 5 min read

Vector Icons Mobile

Vector icons for mobile applications use mathematical path descriptions rather than pixel grids, enabling sharp rendering at any size and screen density. Mobile design systems leverage platform-specific vector formats including SF Symbols for iOS and VectorDrawable for Android, along with cross-platform solutions for frameworks like React Native and Flutter.

What Are Vector Icons for Mobile

Vector icons store graphical information as paths, shapes, and transformations that render at any resolution without quality loss. Unlike raster icons that require separate files for each screen density (1x, 2x, 3x), a single vector icon renders sharply on all devices.

Mobile platforms have adopted vector icons as preferred formats. iOS integrates SF Symbols, Apple’s vector icon system with thousands of symbols that adapt to font weight and size. Android provides VectorDrawable, an XML-based vector format integrated with the resource system.

Design systems benefit from vector icons through simplified asset management (single source versus multiple resolutions), smaller application sizes (vectors typically smaller than multiple PNGs), and runtime flexibility (color and size adjustments without new assets).

How Vector Icons Work on Mobile

iOS vector icon implementation uses SF Symbols and PDF assets. SF Symbols provide a comprehensive library of icons designed to work with San Francisco font, supporting automatic weight matching and animation. Custom icons can use PDF format in asset catalogs with “Preserve Vector Data” enabled.

iOS Vector Icon Approaches:

SF Symbols:
- 4,000+ system icons
- Automatic weight adjustment with text
- Multiple rendering modes (monochrome, hierarchical, palette, multicolor)
- Animation support
- Custom symbols can extend the library

PDF in Asset Catalogs:
- Custom vector icons
- Preserve Vector Data option required
- Single file, automatic scaling
- Limited runtime customization

Android VectorDrawable:

VectorDrawable (res/drawable):
- XML-based vector format
- Support for paths, groups, transforms
- Tinting support for color changes
- Animated vector drawable for animation
- Convert from SVG using Android Studio

Android vector icon implementation uses VectorDrawable format. Android Studio converts SVG files to VectorDrawable XML. These resources live in the drawable folder and scale automatically. AnimatedVectorDrawable extends the format with animation support.

Cross-platform frameworks have their own approaches. React Native uses react-native-svg for vector support. Flutter uses flutter_svg. These libraries enable SVG usage across platforms, though some SVG features may not be supported.

Icon fonts provide another vector approach. Icons are embedded in font files and rendered as text characters. This approach offers simple implementation but has accessibility and alignment limitations compared to native vector formats.

Key Considerations

Common Questions

Should design systems use platform icon systems or custom icons?

Platform icon systems (SF Symbols, Material Symbols) offer extensive libraries with automatic sizing, animation, and platform-native integration. These icons feel natural on their platforms and require minimal design effort.

Custom icons provide unique brand expression and ensure consistency across platforms. Custom icons avoid platform-specific variations that could create inconsistent cross-platform experiences.

Hybrid approaches work well for many applications. Standard functions (navigation, common actions) use platform icons. Brand-specific or unique feature icons use custom designs. This balances efficiency with brand expression.

How do design systems handle icon color across platforms?

Tinting support enables runtime color changes. Both iOS (tintColor) and Android (tint) support coloring vector icons programmatically. This enables theme support without separate colored assets.

Color tokens define icon colors systematically. Rather than hard-coded colors, icons reference tokens like icon-primary or icon-secondary. Theme changes update token values, and icons update automatically.

Multi-color icons require additional consideration. Some icons need multiple colors that cannot be achieved through single-color tinting. SF Symbols multicolor mode and VectorDrawable with multiple paths support multi-color icons.

Dark mode adaptation may require color adjustments beyond simple tinting. Icons that work well on light backgrounds may need different treatments for dark backgrounds. Design systems should specify dark mode icon color requirements.

What performance considerations apply to vector icons?

Vector rendering requires path calculation at display time. Simple icons with few paths render quickly. Complex icons with hundreds of paths may have noticeable rendering overhead.

Caching mitigates repeated calculation costs. Rendered vectors can be cached as bitmaps for reuse. Platform implementations typically cache automatically, but custom implementations should consider caching.

Icon complexity limits help maintain performance. Design guidelines can specify maximum path counts or complexity scores. Overly complex icons that cause performance issues should simplify or convert to optimized raster formats.

Testing on lower-end devices reveals performance issues that may not appear on flagship hardware. Design systems should verify icon performance across the device spectrum.

Summary

Vector icons provide resolution-independent graphics for mobile applications through platform-specific formats like SF Symbols and VectorDrawable. Design systems benefit from simplified asset management and runtime flexibility. Platform-native formats offer the best integration, while cross-platform frameworks enable SVG usage with some limitations. Icon implementation should consider color tinting, accessibility, and performance across the target device range.

Buoy scans your codebase for design system inconsistencies before they ship

Detect Design Drift Free
← Back to Cross Platform Consistency