Skip to content

Refactor icon system to synchronous-first rendering

Choose a tag to compare

@Mariusthvdb Mariusthvdb released this 01 Jun 12:43
· 52 commits to main since this release
dd70c59

Full Changelog: 1.0.1...1.1.0

🎨 Custom Local Icons – Major stability and rendering update
This release introduces a significant improvement to the icon rendering model, making custom SVG icons behave consistently with Home Assistant’s native Material Design Icons (MDI) system.

✨ Improvements
⚡ MDI-like synchronous rendering model
Icons now resolve deterministically during render time, matching the behavior of built-in HA icons
Eliminates first-load inconsistencies in dashboards and UI frameworks

🔄 Background icon hydration
Icons are preloaded and cached in the background after initial discovery
Improves perceived performance while maintaining instant rendering behavior

🧠 Improved caching strategy
In-memory caching ensures icons are reused without repeated parsing or network requests
Reduces UI latency and improves dashboard responsiveness

🔒 Enhanced reliability across browsers
Improved consistency in Safari, Chrome, and other frontend environments
Fixes edge cases where icons could fail to render on first load but appear after reload

🌐 Stable UI integration
Better compatibility with Home Assistant frontend rendering and UI styling systems
Improved behavior in dynamic and templated dashboard environments

🛠️ Internal changes
Refactored icon resolution to avoid asynchronous rendering during UI evaluation
Introduced synchronous fallback rendering model with async background hydration
Improved SVG parsing stability and sanitization consistency

⚠️ Notes
This update changes the internal rendering strategy to ensure icons are always available at render time. No configuration changes are required.