changelog
3.0.2 (2026-03-15)โ
Bug Fixesโ
- cache: support MMKV v4.x remove() method (replaces deprecated delete()) (739d913)
3.0.1 (2026-03-12)โ
Bug Fixesโ
- ci: ignore attw node10/esm rules for RN library (d3fdc69)
3.0.0 (2026-03-12)
- feat!: core engine rewrite, typed errors, accessibility, performance (d471692)
Bug Fixesโ
- ci: pin react and react-native dev deps for strict npm ci (4518430)
BREAKING CHANGESโ
- IconRenderer rewritten with useReducer state machine. SVG colorization regex removed for native SvgXml color prop. Rotate prop widened to number. Dev exports moved to rn-iconify/dev. onError receives IconLoadError instead of Error.
3.0.0 (2026-03-12)
BREAKING CHANGESโ
- IconRenderer rewrite โ
useReducerstate machine replaces 4 independentuseStatecalls. SVG colorization regex removed in favor ofSvgXmlnativecolorprop (multi-color icons now render correctly). - Rotate prop โ
IconRotationtype widened from0 | 90 | 180 | 270tonumber(any degree value). - Dev exports moved โ
IconExplorerandPerformanceMonitorruntime exports moved torn-iconify/dev. Type-only exports remain in main entry. - Typed errors โ
onErrorcallback now receivesIconLoadError(with.code: 'NOT_FOUND' | 'NETWORK' | 'TIMEOUT' | 'INVALID_SVG') instead of genericError.
Featuresโ
- React.memo + forwardRef โ All icon components (
createIconSet,createIconAliases) wrapped withReact.memoandReact.forwardReffor optimal re-render performance and ref access. - Auto accessibility โ
accessibilityRole="image"and auto-generated labels on all icons.shouldDisableAnimations()respects system reduce motion. Auto 44dp minimum touch target viahitSlop. - O(1) LRU cache โ
MemoryCacherewritten with Map insertion-order LRU. Eviction no longer requires O(n log n) sort. - Typed errors โ New
IconLoadErrorclass withcodeproperty for consumer-friendly error handling. - Deep imports โ
import { Mdi } from 'rn-iconify/icons/Mdi'for per-icon-set tree-shaking. - Dev entry point โ
rn-iconify/devforIconExplorerandPerformanceMonitor(keeps production bundle lean). - Fuzzy matching โ
__DEV__mode shows "Did you mean X?" for misspelled icon names via Levenshtein distance. - Shimmer gradient โ Placeholder shimmer effect upgraded from single solid bar to 3 staggered opacity bars.
- Accessibility โ
isInvertColorsEnabledreplaces incorrectisBoldTextEnabledproxy for high contrast detection.
Bug Fixesโ
- Theme infinite loop โ
useState+useEffectanti-pattern replaced withuseMemoapproach. Inline theme props no longer cause infinite re-renders. - Animation rotate โ Interpolation now uses
config.from/config.toinstead of hardcoded[0, 360]. - Animation sequence โ
__DEV__warning instead of silent null for unsupported sequence type. - CacheManager โ
loadBundle()wrapped intry/finallyto ensureisLoadingBundleflag is always reset. - Network abort โ Abort signal isolation for concurrent fetch deduplication.
- Babel plugin โ Stale build detection (>60s auto-reset) with
try/finallycleanup inpost()hook. - Scanner โ O(n) single-pass regex replaces nested iteration.
- CLI โ Version reads from
package.jsoninstead of hardcoded'1.0.0'. Parser uses full 200+ component prefix map.
Package Qualityโ
- 797 tests across 25 suites (was 523/20 in v2.2.1)
- 81% statement coverage with enforced thresholds
- 38.5 MB unpacked (source maps excluded)
- publint โ 1 warning (bob tooling limitation)
- size-limit โ Full bundle 687 kB, single icon set 36 kB
- ESM/CJS โ Proper dual package with
lib/module/package.json{"type":"module"} - Conditional exports โ Nested
import/requiretypes for correct module resolution
2.2.1 (2026-02-04)โ
Bug Fixesโ
- resolve project root, scanner validation, and multi-worker dedup (ddecd27)
2.2.0 (2026-02-03)
Featuresโ
- babel: add project scanner, incremental bundles, and auto-inject (d9d86f1)
- metro: add dev server plugin, warmup, fade-in, and package exports (e89eb4c)
2.1.1 (2026-01-07)โ
Bug Fixesโ
- add
CLAUDE.md, update test types, improve caching, CLI, and API handling (8505d7a) - bump dependencies and update version (2da32e2)
- bump dependencies and update version (90cde1d)
- enable trusted publishing for npm releases (cca7df5)
2.1.1 (2026-01-07)โ
Bug Fixesโ
- add
CLAUDE.md, update test types, improve caching, CLI, and API handling (8505d7a) - bump dependencies and update version (2da32e2)
- bump dependencies and update version (90cde1d)
Changelog
All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
[2.1.0] - 2025-12-05โ
Addedโ
- Pressable Icons - All icons now support
onPress,onLongPress,onPressIn,onPressOutprops - Press Feedback - New
pressedStyleprop for custom visual feedback when pressed - Disabled State - New
disabledprop to disable press interactions - NativeWind Support - New
classNameprop for Tailwind CSS styling with NativeWind - Icon Sets Reference - New documentation page with all icon set prefixes and usage examples
Changedโ
- Icons are automatically wrapped in
PressablewhenonPressoronLongPressis provided (no wrapper needed otherwise) - Updated
components.mdxdocumentation with new props and examples - Improved JSDoc documentation for
IconPropsinterface
Fixedโ
alias/Icon.tsxnow correctly passes animation and press props toIconRenderer
[2.0.1] - 2025-12-04โ
Changedโ
- Cache Location - Default cache output path changed to
node_modules/.cache/rn-iconify(no more.rn-iconify-cachein project root) - Improved documentation build workflow and test coverage
- Added Open Graph and Twitter meta tags for better social sharing
Fixedโ
- Logo image source in README
[2.0.0] - 2025-12-03โ
Addedโ
- Theme System -
IconThemeProvideranduseIconThemefor global icon styling - Icon Aliases -
createIconAliasesandIconAliasProviderfor custom icon name mappings - Animated Icons -
AnimatedIconcomponent with 6 presets (spin, pulse, bounce, shake, ping, wiggle) - React Navigation Integration -
createTabBarIcon,createDrawerIcon,createHeaderIconhelpers - Accessibility Support -
AccessibilityProvider,useAccessibleIcon, high contrast mode, reduced motion - Performance Monitoring -
PerformanceMonitor,getPerformanceReport, cache hit rate tracking - Icon Explorer - Interactive dev tool for browsing and testing 268,000+ icons
- Placeholder System - Built-in loading states (skeleton, pulse, shimmer)
- Babel Plugin - Build-time icon bundling for 0ms first render (
rn-iconify/babel) - CLI Tools -
npx rn-iconify bundleandnpx rn-iconify analyzecommands - Config Manager -
configure()for API, cache, and performance settings - Bundle System -
loadOfflineBundlefor offline icon support - Documentation Website - Full docs at rn-iconify.vercel.app
Changedโ
- Simplified README (detailed documentation moved to website)
- Enhanced
CacheManagerwith bundle support and improved cache layers - Improved
IconifyAPIwith better error handling, timeout, and retry logic - Updated example app with comprehensive feature demos
Compatibilityโ
- React Native 0.60+ (Old Architecture)
- React Native 0.72+ (New Architecture with TurboModules)
- iOS 13.0+
- Android API 21+
[1.0.0] - 2025-11-26โ
Addedโ
- Initial release with 200+ icon sets and 268,000+ icons
- Simple component API (
<Mdi name="home" />) - Full TypeScript autocomplete for all icon names
- MMKV-based disk caching (30x faster than AsyncStorage)
- Memory caching with LRU eviction
- Native module for background prefetching (iOS & Android)
- TurboModule support for React Native New Architecture
- Bridge module fallback for Old Architecture
- Icon transformations (rotate, flip)
- Loading states with fallback components
- Accessibility support
- Cache management utilities (prefetch, clear, stats)
Compatibilityโ
- React Native 0.60+ (Old Architecture)
- React Native 0.72+ (New Architecture with TurboModules)
- iOS 13.0+
- Android API 21+