[1.0.9] - November 2025
Critical Bug Fix: Entrance Animations
This release fixes a critical issue where entrance animations were not working properly in the npm package despite functioning correctly in the website playground.Problem Identified
Entrance animations were either too fast, invisible, or not playing at all in applications using the npm package:- Animations appeared to skip or play too quickly
- Icons were visible immediately instead of animating in
- Animation timing didn’t match the specified duration
- The same code worked perfectly in the website playground
Root Cause
Three separate issues were preventing entrance animations from working:- Timer Logic Error: The
setHasEntered(true)was being called after onlyanimationDelayinstead ofanimationDuration + animationDelay, causing the animation class to be removed prematurely - Missing Initial Opacity: Elements weren’t starting with
opacity: 0, making them visible before the animation began - Conditional Animation Duration: The
animationDurationstyle was only applied conditionally, preventing proper override of CSS defaults
Changes Made
1. Fixed Timer Duration
Before:2. Added Initial Opacity for Entrance Animations
Before:opacity: 0) before the animation begins. The CSS keyframes animate from opacity: 0 to opacity: 1, but without the initial opacity, the element appears immediately.
3. Always Apply Animation Duration
Before:animationDuration prop properly overrides these defaults.
Testing Results
Before v1.0.9:- ❌ Entrance animations not visible or too fast
- ❌ Icons appear immediately instead of animating
- ❌ Custom timing not respected
- ✅ Works in website playground
- ✅ Entrance animations work properly
- ✅ Icons start invisible and animate in
- ✅ Custom duration and delay respected
- ✅ Matches website playground behavior
- ✅ Works in React, Next.js, and Vite
Migration Guide
If you’re upgrading from v1.0.8 or earlier:-
Update the package:
-
Clear build cache:
-
Hard refresh browser:
- Windows/Linux: Ctrl + Shift + R
- Mac: Cmd + Shift + R
Example
Files Changed
npm-motion-icons/src/components/MotionIcon.tsx- Fixed entrance animation logic
[1.0.3] - October 2025
Critical Bug Fix: Next.js Animation Support
This release fixes a critical issue where animations were not working in Next.js applications despite working perfectly in regular React apps.Problem Identified
Animations appeared static in Next.js applications even though:- CSS was loaded correctly
- Classes were applied to elements
- DevTools showed
animation: running - No console errors were present
Root Cause
Tailwind CSS utility classes were conflicting with CSS animation transforms. The component was using Tailwind classes likeinline-flex items-center justify-center which set CSS properties that interfered with the animation’s transform property.
Changes Made
1. Removed Conflicting Tailwind Classes
Before:2. Fixed SSR Hydration Issue
Before:3. Improved Trigger Logic
Before:trigger="always" now applies animation immediately without waiting for state update, making continuous animations more reliable.
4. Removed Inline Animation Duration Override
Before:infinite, but inline style was overriding this. Now only applies duration for entrance animations where needed.
Testing Results
Before v1.0.3:- Works in React
- Static in Next.js
- Static in Next.js + Tailwind
- Works in React
- Works in Next.js
- Works in Next.js + Tailwind
- Works with Turbopack
- Works with SSR
Migration Guide
If you’re upgrading from v1.0.2:-
Update the package:
-
Clear Next.js cache (recommended):
-
Hard refresh browser:
- Windows/Linux: Ctrl + Shift + R
- Mac: Cmd + Shift + R
Technical Details
The problem was a CSS specificity conflict where Tailwind utility classes interfered with animation transforms. By moving non-animation styles to inline styles (which have highest specificity), we ensure:- Layout styles don’t interfere with animations
- Animation classes work consistently
- No conflicts with Tailwind or other CSS frameworks
Files Changed
src/components/MotionIcon.tsx- Main component fixsrc/animations/animations.css- Enhanced animation keyframespackage.json- Version bump to 1.0.3
[1.0.2] - October 2025
Bug Fixes
- Minor performance improvements
- Documentation updates
- TypeScript type refinements
[1.0.0] - October 2025
Initial Stable Release
The first production-ready release of Motion Icons React. This release brings smooth, accessible animations to Lucide React icons with zero configuration.New Features
Core Animations
- 11 Built-in Animations: Complete animation library including:
pulse- Gentle pulsing scale effectspin- Continuous 360° rotationbounce- Vertical bouncing with elastic easingping- Radar-like expanding effectwiggle- Side-to-side shakingflip- 3D flip animationheartbeat- Double-pulse effectshake- Horizontal shaking motionswing- Pendulum-like rotationtada- Attention-grabbing celebrationrubber- Rubber band elastic effect
Entrance Animations
- 10 Entrance Effects: Make icons appear with style
fadeIn,fadeInUp,fadeInDown,fadeInLeft,fadeInRightscaleIn,slideInUp,slideInDownrotateIn,zoomIn
Animation Control
- 4 Trigger Types: Control when animations play
always- Continuous animation (default)hover- Animate on mouse hoverclick- Animate on clickfocus- Animate on keyboard focus
- Customizable Timing: Full control over duration and delay
- Interactive Mode: Built-in hover effects for clickable icons
Developer Experience
- TypeScript First: Complete type definitions with IntelliSense
- Zero Configuration: Works immediately after installation
- Framework Agnostic: Compatible with Next.js, Vite, CRA, and more
- Tree Shakeable: Only bundle what you use
Accessibility
- Motion Preferences: Automatic respect for
prefers-reduced-motion - Keyboard Navigation: Full keyboard accessibility support
- Screen Reader Friendly: Proper ARIA attributes
- Focus Management: Visible focus indicators
Package Details
- Package Name:
motion-icons-react - Peer Dependencies:
lucide-react(for icon shapes) - Bundle Size: ~15KB gzipped (core) + ~8KB (CSS)
- Browser Support: Chrome 60+, Firefox 55+, Safari 12+, Edge 79+
Documentation
- Comprehensive Guides: Step-by-step setup for Next.js and Vite
- API Reference: Complete props documentation with examples
- Real-World Examples: 20+ practical use cases
- Accessibility Guide: Best practices for inclusive design
- Interactive Demos: Live examples for all animations
Customization Options
Roadmap
Planned for v1.1.0
- Custom Animations: Define your own keyframe animations
- Animation Sequences: Chain multiple animations together
- More Entrance Effects: 5+ additional entrance animations
- Animation Presets: Pre-configured combinations for common patterns
- Performance Mode: Reduced animation complexity for low-end devices
Future Considerations
- Animation Builder: Visual tool for creating custom animations
- React Native Support: Bring animations to mobile apps
- Animation Timeline: Control animation playback programmatically
- Gesture Support: Touch and swipe gesture triggers
- Sound Effects: Optional audio feedback for animations
Migration Guides
From Beta to v1.0.0
No breaking changes! The API is fully backward compatible. Recommended updates:Contributing
We welcome contributions from the community!How to Contribute
- Report Bugs: Open an issue
- Request Features: Start a discussion
- Submit PRs: Contribution guidelines
- Improve Docs: Help us make documentation better
Contributors
Thank you to everyone who contributed to this release! 🎉Support
- Documentation: motion-icons.dev
- GitHub Issues: Report bugs
- Discussions: Ask questions
- Email: garvitjoshi543@gmail.com