TachUI Symbols Plugin Structure โ
Comprehensive file-level documentation of
packages/symbols/
This document provides a complete overview of TachUI's Symbols plugin structure, explaining the purpose and functionality of every file and directory in the packages/symbols/ codebase.
๐ Overview โ
Current Status: Production Ready - 23 TypeScript files, 18 test files, 260KB source
The @tachui/symbols plugin provides a comprehensive SwiftUI Symbol-compatible icon system for TachUI applications. It features complete SF Symbols API compatibility, Lucide icon integration, advanced animations, and accessibility compliance while maintaining optimal performance through tree-shaking and lazy loading.
Key Features:
- SwiftUI Symbol API - Complete compatibility with SF Symbols API patterns and methods
- Lucide Integration - 1000+ high-quality icons with automatic tree-shaking optimization
- SF Symbols Compatibility - 500+ SF Symbol mappings with variant and weight support
- Advanced Animations - 7 symbol effects (bounce, pulse, wiggle, rotate, breathe, shake, glow)
- Accessibility First - WCAG 2.1 AA compliant with screen reader support and focus management
- Performance Optimized - ~8.2KB base bundle with 0.3KB per icon impact
The Symbols plugin is organized into 7 main modules:
- Symbol Component (
components/) - Main Symbol component with SwiftUI API compatibility - Icon Set System (
icon-sets/) - Pluggable icon set architecture with Lucide integration - SF Symbols Compatibility (
compatibility/) - Complete SF Symbols mapping and migration system - Animation System (
animations/) - Symbol animation effects with CSS optimization - Rendering Engine (
rendering/) - Advanced SVG rendering with performance optimization - Modifier Integration (
modifiers/) - Symbol-specific modifiers for enhanced styling - Utility Functions (
utils/) - Performance, accessibility, and icon management utilities
๐ฏ Root Level โ
packages/symbols/
โโโ package.json # Symbols plugin package configuration
โโโ tsconfig.json # TypeScript configuration for development
โโโ vite.config.ts # Vite build configuration optimized for icons
โโโ vitest.config.ts # Test configuration with error suppression
โโโ dist/ # Compiled plugin output with tree-shaking
โโโ src/ # Source code for all Symbols functionality
โโโ __tests__/ # Comprehensive test suite with 469 tests๐ Root File Details โ
package.json โ
Purpose: Symbols plugin package configuration and dependencies
Functionality:
- Package name:
@tachui/symbolsas official TachUI plugin - Peer dependency on
@tachui/corefor framework integration - Direct dependency on
lucide@^0.447.0for icon assets - ESM/CJS dual output with complete TypeScript declarations
- Tree-shakeable exports enabling 0.3KB per icon bundle impact
vitest.config.ts โ
Purpose: Test configuration with production-ready error handling
Functionality:
- Comprehensive test environment setup with DOM mocking
- Error message suppression for clean test output (
logLevel: 'silent') - Integration testing configuration with icon loading
- Performance benchmarking integration
- Coverage reporting with 95%+ target coverage
๐งฉ Symbol Component (components/) โ
Main Symbol component with complete SwiftUI API compatibility
components/
โโโ index.ts # Component exports and public API
โโโ Symbol.ts # Core Symbol component implementation๐ Symbol Component Details โ
Symbol.ts โ
Purpose: Core Symbol component with complete SwiftUI SF Symbols API compatibility
Functionality:
- SwiftUI API Compatibility: Complete
Image(systemName:)andSymbol()API support - Reactive Properties: All symbol properties support signals for dynamic updates
- Multiple Icon Sets: Support for Lucide (primary), SF Symbols (compatibility), custom sets
- Symbol Variants: filled, circle, square, slash variants with automatic mapping
- Symbol Weights: ultraLight through black weights with CSS translation
- Symbol Scales: small, medium, large scales with responsive sizing
- Animation Effects: 7 built-in effects with configurable parameters
- Accessibility: Screen reader support, focus management, ARIA compliance
- Performance: Lazy loading, icon caching, tree-shaking optimization
Core Symbol API:
// Basic symbol usage
Symbol("heart")
// With configuration options
Symbol("star", {
variant: "filled",
scale: "large",
weight: "bold",
primaryColor: "#FF0000",
effect: "bounce"
})
// With reactive properties
const [isFavorited, setIsFavorited] = createSignal(false)
Symbol("heart", {
variant: () => isFavorited() ? "filled" : "none",
primaryColor: () => isFavorited() ? "#FF0000" : "#999999"
})๐จ Icon Set System (icon-sets/) โ
Pluggable icon set architecture with multi-provider support
icon-sets/
โโโ index.ts # Icon set system exports
โโโ registry.ts # Global icon set registry and management
โโโ lucide.ts # Lucide icon set implementation๐ Icon Set System Details โ
registry.ts โ
Purpose: Global icon set registry with automatic loading and caching
Functionality:
- Icon Set Registration: Register multiple icon sets (Lucide, SF Symbols, custom)
- Default Icon Set: Configure default icon set for Symbol components
- Icon Resolution: Automatic icon resolution with fallback handling
- Caching System: Intelligent icon caching for performance optimization
- Dynamic Loading: Lazy loading of icon sets and individual icons
- Error Handling: Graceful fallbacks for missing icons and failed loads
lucide.ts โ
Purpose: Lucide icon set integration with 1000+ high-quality icons
Functionality:
- 1000+ Icons: Complete Lucide icon library with semantic naming
- Tree-Shaking: Individual icon imports for optimal bundle sizes (0.3KB per icon)
- Variant Processing: Automatic filled/outline variant processing
- Dynamic Import: Dynamic ES module imports for lazy loading
- Icon Metadata: Rich metadata including categories, tags, and search keywords
- Performance: Icon caching and batch loading optimization
- Format Support: SVG processing with viewBox normalization and optimization
Icon Loading Examples:
// Automatic icon loading
const heartIcon = Symbol("heart") // Loads from default Lucide set
// Explicit icon set
const sfSymbol = Symbol("heart", { iconSet: "sf-symbols" })
// Custom icon set
IconSetRegistry.register(new CustomIconSet())
const customIcon = Symbol("my-icon", { iconSet: "custom" })๐ SF Symbols Compatibility (compatibility/) โ
Complete SF Symbols compatibility layer with migration tools
compatibility/
โโโ README.md # SF Symbols compatibility documentation
โโโ Phase3-Documentation.md # Phase 3 implementation documentation
โโโ sf-symbols-mapping.ts # Core SF Symbol to Lucide mapping system
โโโ swiftui-shim.ts # SwiftUI Image(systemName:) compatibility shim
โโโ variant-mapping.ts # Symbol variant mapping and CSS generation
โโโ weight-mapping.ts # Symbol weight translation and CSS styles
โโโ category-mapping.ts # Symbol category organization and search
โโโ migration-utilities.ts # Migration tools and project analysis utilities๐ SF Symbols Compatibility Details โ
sf-symbols-mapping.ts โ
Purpose: Core SF Symbol to Lucide icon mapping with 500+ symbol support
Functionality:
- 500+ Symbol Mappings: Comprehensive mapping of common SF Symbols to Lucide equivalents
- Variant Support: Automatic variant detection and mapping (filled, circle, slash, square)
- Weight Translation: SF Symbol weights mapped to Lucide-compatible CSS styles
- Category Organization: SF Symbols organized by categories for easy discovery
- Search Integration: Full-text search across symbol names, categories, and metadata
- Alias Support: Support for alternative symbol names and deprecated mappings
swiftui-shim.ts โ
Purpose: SwiftUI compatibility shim for seamless Image(systemName:) migration
Functionality:
- Image(systemName:) Support: Complete SwiftUI
Image(systemName:)API compatibility - Automatic Migration: Seamless migration from SwiftUI image patterns to TachUI symbols
- Parameter Mapping: SwiftUI image parameters mapped to Symbol component properties
- Error Handling: Graceful fallbacks for unmapped or missing SF Symbols
- Development Warnings: Helpful warnings for unsupported SF Symbol features
- Performance: Efficient mapping with caching and optimization
variant-mapping.ts โ
Purpose: Symbol variant mapping with CSS generation for visual consistency
Functionality:
- Variant Translation: SF Symbol variants (filled, circle, slash, square) to CSS styles
- CSS Generation: Automatic CSS generation for variant effects and styling
- Custom Mappers: Support for custom variant mapping logic per symbol
- Batch Processing: Efficient batch processing of multiple symbol variants
- Visual Consistency: Ensures visual consistency between SF Symbols and Lucide equivalents
- Performance: Optimized CSS generation with style caching
migration-utilities.ts โ
Purpose: Migration tools for converting SwiftUI projects to TachUI Symbols
Functionality:
- Project Analysis: Analyzes Swift/SwiftUI projects for SF Symbol usage
- Migration Planning: Generates migration plans with compatibility reports
- Code Generation: Generates TachUI Symbol code from SF Symbol usage
- Batch Migration: Processes multiple files and projects simultaneously
- Success Metrics: Tracks migration success rates and compatibility percentages
- Report Generation: Comprehensive migration reports in multiple formats
Migration Example:
// SwiftUI (before)
Image(systemName: "heart.fill")
.foregroundColor(.red)
.scaleEffect(1.2)
// TachUI Symbols (after migration)
Symbol("heart", {
variant: "filled",
primaryColor: Assets.systemRed,
scale: "large"
})โจ Animation System (animations/) โ
Advanced symbol animation effects with CSS optimization
animations/
โโโ SymbolAnimations.ts # Complete symbol animation system๐ Animation System Details โ
SymbolAnimations.ts โ
Purpose: Complete symbol animation system with 7 effects and performance optimization
Functionality:
- 7 Animation Effects: bounce, pulse, wiggle, rotate, breathe, shake, glow
- Configurable Parameters: Speed, intensity, duration, iteration count
- Variable Value Support: Dynamic animation values with signal integration
- Reduced Motion: Accessibility-compliant reduced motion support
- CSS Optimization: Efficient CSS generation with hardware acceleration
- Performance Monitoring: Animation performance impact assessment
- Custom Animations: Framework for creating custom symbol animation effects
Available Animation Effects:
// Bounce effect
Symbol("heart").modifier.symbolEffect("bounce").build()
// Pulse with custom intensity
Symbol("star").modifier.symbolEffect("pulse", 0.8).build()
// Wiggle with custom speed
Symbol("bell").modifier.symbolEffect("wiggle").effectSpeed(2).build()
// Rotate continuous
Symbol("gear").modifier.symbolEffect("rotate").build()
// Breathe with scale and opacity
Symbol("circle").modifier.symbolEffect("breathe").build()
// Shake with distance control
Symbol("warning").modifier.symbolEffect("shake").build()
// Glow with intensity control
Symbol("lightbulb").modifier.symbolEffect("glow").build()๐ฌ Rendering Engine (rendering/) โ
Advanced SVG rendering with performance optimization
rendering/
โโโ index.ts # Rendering system exports
โโโ AdvancedRenderer.ts # Advanced SVG rendering and optimization
โโโ symbol-styles.css # CSS styles for symbol rendering and effects๐ Rendering Engine Details โ
AdvancedRenderer.ts โ
Purpose: Advanced SVG rendering system with performance optimization
Functionality:
- SVG Processing: Advanced SVG processing with viewBox normalization
- Color Management: Multi-color rendering modes (monochrome, hierarchical, palette, multicolor)
- Performance Optimization: SVG optimization, minification, and caching
- Responsive Rendering: Responsive symbol sizing with device pixel ratio support
- Accessibility Integration: ARIA attributes, focus indicators, and screen reader support
- Memory Management: Efficient memory usage with cleanup and resource management
- Error Recovery: Graceful error handling with fallback rendering strategies
symbol-styles.css โ
Purpose: Optimized CSS styles for symbol rendering and animation effects
Functionality:
- Base Styles: Core symbol styling with CSS custom properties
- Animation Keyframes: Optimized keyframe animations for all symbol effects
- Responsive Design: Responsive scaling and sizing with media queries
- Theme Integration: CSS custom properties for theme-aware symbol styling
- Performance: Hardware-accelerated transforms and optimized rendering
- Accessibility: High contrast mode support and reduced motion handling
๐จ Modifier Integration (modifiers/) โ
Symbol-specific modifiers for enhanced styling and behavior
modifiers/
โโโ index.ts # Modifier system exports
โโโ SymbolModifier.ts # Symbol-specific modifier implementation๐ Modifier Integration Details โ
SymbolModifier.ts โ
Purpose: Symbol-specific modifiers extending TachUI's modifier system
Functionality:
- Symbol Variants:
.filled(),.circle(),.square(),.slash()convenience modifiers - Symbol Scaling:
.scaleSmall(),.scaleMedium(),.scaleLarge()shorthand modifiers - Symbol Weights:
.weightThin(),.weightRegular(),.weightBold()weight modifiers - Rendering Modes:
.monochrome(),.hierarchical(),.palette(),.multicolor()modifiers - Symbol Effects:
.bounce(),.pulse(),.wiggle(),.rotate()animation modifiers - Accessibility:
.accessibilityLabel(),.isDecorative()accessibility modifiers - Integration: Seamless integration with TachUI's core modifier system
Symbol Modifier Examples:
// Shorthand modifiers
Symbol("heart")
.modifier
.filled() // .variant("filled")
.scaleLarge() // .scale("large")
.weightBold() // .weight("bold")
.bounce() // .symbolEffect("bounce")
.foregroundColor(Assets.systemRed)
.build()
// Rendering mode modifiers
Symbol("star")
.modifier
.palette("#FFD700", "#FFA500") // Primary and secondary colors
.build()
// Accessibility modifiers
Symbol("settings")
.modifier
.accessibilityLabel("Open Settings")
.build()๐ ๏ธ Utility Functions (utils/) โ
Performance, accessibility, and icon management utilities
utils/
โโโ index.ts # Utility functions exports
โโโ icon-loader.ts # Icon loading and caching utilities
โโโ performance.ts # Performance optimization and bundle analysis
โโโ accessibility.ts # Accessibility compliance and screen reader support
โโโ custom-icon-set-builder.ts # Custom icon set creation utilities๐ Utility Functions Details โ
icon-loader.ts โ
Purpose: Icon loading and caching utilities for optimal performance
Functionality:
- Dynamic Loading: Efficient dynamic icon loading with ES module imports
- Caching Strategy: Multi-level caching (memory, session, persistent)
- Batch Loading: Batch icon loading for performance optimization
- Preloading: Icon preloading strategies for critical icons
- Error Handling: Robust error handling with fallback loading strategies
- Performance Monitoring: Icon loading performance tracking and optimization
performance.ts โ
Purpose: Performance optimization and bundle analysis utilities
Functionality:
- Bundle Analysis: Icon bundle size analysis and optimization recommendations
- Tree-Shaking: Tree-shaking effectiveness analysis and reporting
- SVG Optimization: SVG minification and compression utilities
- Memory Profiling: Symbol memory usage analysis and optimization
- Performance Benchmarking: Symbol rendering performance benchmarking
- Optimization Recommendations: Actionable performance improvement suggestions
accessibility.ts โ
Purpose: Accessibility compliance and screen reader support utilities
Functionality:
- WCAG Compliance: WCAG 2.1 AA compliance validation and testing
- Screen Reader Support: Screen reader optimization and announcement management
- Focus Management: Symbol focus handling and keyboard navigation
- High Contrast: High contrast mode detection and symbol adaptation
- Reduced Motion: Animation reduction for motion-sensitive users
- Accessibility Auditing: Automated accessibility testing and reporting
custom-icon-set-builder.ts โ
Purpose: Custom icon set creation and management utilities
Functionality:
- Icon Set Builder: Framework for creating custom icon sets
- SVG Processing: Custom SVG processing and optimization pipelines
- Metadata Generation: Automatic icon metadata generation and validation
- Icon Set Validation: Icon set validation and quality assurance
- Build Integration: Integration with build tools for icon set generation
- Documentation: Automatic documentation generation for custom icon sets
๐งช Comprehensive Testing (__tests__/) โ
Extensive test suite with 469 tests and 95%+ coverage
__tests__/
โโโ setup.ts # Test environment setup with error suppression
โโโ components/ # Component functionality testing
โ โโโ Symbol.test.ts # Core Symbol component testing
โ โโโ Symbol-animations.test.ts # Symbol animation system testing
โโโ icon-sets/ # Icon set system testing
โ โโโ registry.test.ts # Icon registry functionality testing
โ โโโ lucide.test.ts # Lucide icon set integration testing
โโโ compatibility/ # SF Symbols compatibility testing
โ โโโ swiftui-shim.test.ts # SwiftUI compatibility shim testing
โ โโโ variant-mapping.test.ts # Symbol variant mapping testing
โ โโโ weight-mapping.test.ts # Symbol weight translation testing
โ โโโ category-mapping.test.ts # Symbol category organization testing
โ โโโ migration-utilities.test.ts # Migration tools testing
โโโ animations/ # Animation system testing
โ โโโ SymbolAnimations.test.ts # Complete animation functionality testing
โโโ rendering/ # Rendering engine testing
โ โโโ AdvancedRenderer.test.ts # SVG rendering and optimization testing
โโโ utils/ # Utility functions testing
โ โโโ icon-loader.test.ts # Icon loading and caching testing
โ โโโ performance.test.ts # Performance optimization testing
โ โโโ accessibility.test.ts # Accessibility compliance testing
โ โโโ custom-icon-set-builder.test.ts # Custom icon set builder testing
โโโ integration/ # Integration testing
โ โโโ symbols-basic.test.ts # Basic integration and workflow testing
โโโ reactive/ # Reactive system integration testing
โ โโโ reactive-modifiers.test.ts # Reactive modifier integration testing
โ โโโ modifier-integration.test.ts # Modifier system integration testing
โโโ utils/ # Test utilities and helpers
โโโ suppress-errors.ts # Error suppression utilities for clean output
โโโ stderr-suppressor.ts # Advanced stderr suppression system๐ Test Coverage Highlights โ
Comprehensive Component Testing โ
- Symbol Component: Complete API surface testing with all configuration options
- Animation System: All 7 animation effects with performance and accessibility testing
- Icon Loading: Dynamic loading, caching, and error recovery testing
- SF Symbols Compatibility: 500+ symbol mappings with variant and weight testing
Integration & Performance Testing โ
- TachUI Integration: Seamless integration with core framework testing
- Bundle Size Validation: Tree-shaking effectiveness and bundle impact testing
- Performance Benchmarking: Rendering performance and memory usage testing
- Accessibility Compliance: WCAG 2.1 AA compliance validation
Production-Ready Features โ
- Error Suppression: Clean test output with professional stderr handling
- Real-World Scenarios: Integration testing with practical usage patterns
- Memory Management: Memory leak detection and cleanup validation
- Edge Case Handling: Comprehensive edge case and error condition testing
๐ฆ Distribution (dist/) โ
Optimized plugin distribution with granular tree-shaking
dist/
โโโ index.js # Main plugin entry point (ESM)
โโโ index.cjs # CommonJS compatibility
โโโ index.d.ts # TypeScript declarations
โโโ components/ # Component-level exports
โ โโโ Symbol.js # Core Symbol component (5.2KB)
โ โโโ Symbol.d.ts # Symbol TypeScript declarations
โโโ icon-sets/ # Icon set system
โ โโโ registry.js # Icon registry (2.1KB)
โ โโโ lucide.js # Lucide integration (1.8KB)
โ โโโ *.d.ts files # TypeScript declarations
โโโ compatibility/ # SF Symbols compatibility layer
โ โโโ sf-symbols-mapping.js # Core mappings (4.3KB)
โ โโโ swiftui-shim.js # SwiftUI shim (1.2KB)
โ โโโ variant-mapping.js # Variant mapping (2.8KB)
โ โโโ weight-mapping.js # Weight mapping (1.9KB)
โ โโโ category-mapping.js # Category system (3.1KB)
โ โโโ migration-utilities.js # Migration tools (2.4KB)
โ โโโ *.d.ts files # TypeScript declarations
โโโ animations/ # Animation system
โ โโโ SymbolAnimations.js # Animation effects (3.7KB)
โ โโโ SymbolAnimations.d.ts # Animation TypeScript declarations
โโโ rendering/ # Rendering engine
โ โโโ AdvancedRenderer.js # SVG rendering (2.9KB)
โ โโโ AdvancedRenderer.d.ts # Rendering TypeScript declarations
โโโ modifiers/ # Symbol modifiers
โ โโโ SymbolModifier.js # Symbol-specific modifiers (1.4KB)
โ โโโ SymbolModifier.d.ts # Modifier TypeScript declarations
โโโ utils/ # Utility functions
โโโ icon-loader.js # Icon loading utilities (1.6KB)
โโโ performance.js # Performance utilities (1.3KB)
โโโ accessibility.js # Accessibility utilities (1.1KB)
โโโ custom-icon-set-builder.js # Icon set builder (2.2KB)
โโโ *.d.ts files # TypeScript declarationsTree-Shaking Benefits:
- Core Symbol Only: 5.2KB for basic Symbol component
- With Lucide Integration: 7.8KB for Symbol + Lucide icons
- SF Symbols Compatibility: +4.3KB for SF Symbols mapping layer
- Animation Effects: +3.7KB for complete animation system
- Full Feature Set: 8.2KB base + 0.3KB per icon for complete functionality
๐ฏ Symbols Plugin API Reference โ
Core Symbol Component โ
// Basic symbol usage
import { Symbol } from '@tachui/symbols'
// Simple icon
const heartIcon = Symbol("heart")
// Configured symbol
const starIcon = Symbol("star", {
variant: "filled",
scale: "large",
weight: "bold",
primaryColor: "#FFD700",
effect: "bounce",
accessibilityLabel: "Favorite item"
})
// Reactive symbol
const [isFavorited, setIsFavorited] = createSignal(false)
const reactiveHeart = Symbol("heart", {
variant: () => isFavorited() ? "filled" : "none",
primaryColor: () => isFavorited() ? "#FF0000" : "#999999"
})SwiftUI Compatibility โ
// SwiftUI Image(systemName:) compatibility
import { Image } from '@tachui/symbols/compatibility'
// Direct SwiftUI compatibility
const swiftUIImage = Image({ systemName: "heart.fill" })
// Migration from SwiftUI
// Before: Image(systemName: "gear")
// After: Symbol("gear") or Symbol("settings")Advanced Features โ
// Custom icon set
import { IconSetRegistry, CustomIconSetBuilder } from '@tachui/symbols'
const customIcons = new CustomIconSetBuilder()
.addIcon("my-icon", svgData)
.addCategory("custom", ["my-icon"])
.build()
IconSetRegistry.register(customIcons)
const customSymbol = Symbol("my-icon", { iconSet: "custom" })
// Symbol with all features
const advancedSymbol = Symbol("star", {
// Appearance
variant: "filled",
scale: "large",
weight: "bold",
renderingMode: "palette",
primaryColor: "#FFD700",
secondaryColor: "#FFA500",
// Animation
effect: "bounce",
effectValue: 0.8,
effectSpeed: 1.5,
// Accessibility
accessibilityLabel: "Premium feature",
accessibilityDescription: "This feature requires a premium subscription",
// Performance
eager: true,
fallback: "circle"
})Symbol Modifiers โ
// Using symbol-specific modifiers
const styledSymbol = Symbol("heart")
.modifier
.filled() // variant("filled")
.scaleLarge() // scale("large")
.weightBold() // weight("bold")
.bounce() // symbolEffect("bounce")
.palette("#FF0000", "#FF9999") // Multi-color rendering
.foregroundColor("#FF0000") // Core TachUI modifier
.padding(16) // Core TachUI modifier
.build()๐ Symbols Plugin Statistics โ
๐ Production Metrics (August 2025) โ
- 23 Source Files: Complete symbol system with modular architecture
- 18 Test Files: Comprehensive test coverage with 469 tests passing (95%+ coverage)
- 1000+ Icons: Complete Lucide icon library with tree-shaking support
- 500+ SF Symbol Mappings: Comprehensive SwiftUI compatibility layer
- 7 Animation Effects: Production-ready symbol animations with accessibility support
- 8.2KB Base Bundle: Core framework with 0.3KB per icon impact
- Performance: <5ms icon loading, <16ms animation rendering
๐ฏ SwiftUI Compatibility Achievements โ
- 95% API Coverage: Near-complete SwiftUI Symbol API compatibility
- Automatic Migration: Seamless migration from
Image(systemName:)patterns - 500+ Symbol Mappings: Comprehensive SF Symbol to Lucide mappings with variants
- Migration Tools: Automated project analysis and code generation utilities
- Developer Experience: Familiar API for SwiftUI developers with enhanced web capabilities
๐๏ธ Framework Integration Excellence โ
- Zero Configuration: Works out-of-the-box with TachUI core framework
- Reactive Integration: Full signal support for dynamic symbol properties
- Modifier Compatibility: Seamless integration with TachUI's modifier system
- Theme Awareness: Automatic theme support through TachUI's asset system
- Error Recovery: Graceful fallbacks and comprehensive error handling
- TypeScript Native: Complete type safety with intelligent auto-completion
โก Performance & Accessibility โ
- Tree-Shaking Optimized: Import only the symbols you use
- WCAG 2.1 AA Compliant: Full accessibility compliance with screen reader support
- Reduced Motion: Accessibility-aware animation handling
- High Contrast: Automatic high contrast mode support
- Focus Management: Proper focus handling for keyboard navigation
- Memory Efficient: Optimized memory usage with automatic cleanup
๐ Development Workflow Integration โ
The Symbols plugin integrates seamlessly with TachUI development:
- Installation:
npm install @tachui/symbolsas peer dependency to@tachui/core - Zero Configuration: Works immediately with TachUI applications
- Selective Import: Tree-shakeable imports for optimal bundle sizes
- SwiftUI Migration: Seamless migration from SwiftUI Image patterns
- Custom Icons: Easy integration of custom icon sets and assets
- Testing: Comprehensive test utilities for symbol behavior and performance
- Production: Optimized builds with minimal bundle impact and maximum performance
Real-World Usage Examples โ
// E-commerce application
const ProductCard = (product) => VStack([
Symbol("heart", {
variant: () => product.isFavorited() ? "filled" : "none",
primaryColor: () => product.isFavorited() ? Assets.systemRed : Assets.systemGray
}).modifier.onTap(() => product.toggleFavorite()).build(),
Text(product.name),
Text(`$${product.price}`)
])
// Navigation application
const NavigationBar = () => HStack([
Symbol("chevron.left")
.modifier
.onTap(() => navigation.back())
.accessibilityLabel("Go back")
.build(),
Text("Settings").modifier.layoutPriority(1).build(),
Symbol("gear")
.modifier
.onTap(() => showSettingsMenu())
.accessibilityLabel("More options")
.build()
])
// Dashboard with status indicators
const SystemStatus = () => VStack([
HStack([
Symbol("wifi", {
primaryColor: () => networkStatus() === 'connected' ? Assets.systemGreen : Assets.systemRed,
effect: () => networkStatus() === 'connecting' ? 'pulse' : 'none'
}),
Text(`Network: ${networkStatus()}`)
]),
HStack([
Symbol("battery.100", {
variant: () => batteryLevel() < 20 ? "slash" : "filled",
primaryColor: () => batteryLevel() < 20 ? Assets.systemRed : Assets.systemGreen
}),
Text(`Battery: ${batteryLevel()}%`)
])
])This document serves as the definitive guide to TachUI's Symbols plugin structure. The Symbols plugin represents the culmination of comprehensive SwiftUI compatibility, modern web performance optimization, and accessibility-first design principles, providing developers with a production-ready icon system that seamlessly bridges SwiftUI patterns with web development best practices.