not_static_icons
Flutter용 아름답게 제작된 애니메이션 아이콘. Lucide로 제작—Rive나 Lottie 필요 없음.
Rive 또는 Lottie 없이 Flutter용으로 아름답게 제작된 애니메이션 아이콘
{"sdk":"flutter"}{"sdk":"flutter"}^6.0.0^1.9.1아래는 영문 원문 스냅샷입니다. 최신 내용은 GitHub에서 확인하세요.
not_static_icons | animated icons for FlutterSeamlessly animated Flutter icons — no Rive or Lottie required. Made with Lucide icons inspired by pqoqubbw/icons.
https://github.com/khlebobul/not_static_icons/raw/main/screenshots/web_demo.png// Simple icon
AirplayIcon()
// Customized icon
AArrowDownIcon(
size: 45,
color: Colors.blue,
animationDuration: Duration(milliseconds: 800),
strokeWidth: 3.0,
hoverColor: Colors.red,
enableTouchInteraction: true,
infiniteLoop: false,
reverseOnExit: false,
)
Use onTap instead of wrapping the icon in GestureDetector:
CheckIcon(
size: 40,
color: Colors.green,
onTap: () {
print('Icon tapped!');
},
)
Use interactive: false and AnimatedIconController for IconButton integration:
class MyWidget extends StatefulWidget {
@override
State<MyWidget> createState() => _MyWidgetState();
}
class _MyWidgetState extends State<MyWidget> {
final _iconController = AnimatedIconController();
@override
Widget build(BuildContext context) {
return IconButton(
onPressed: () {
_iconController.animate(); // Trigger animation
// Your action here
},
icon: HeartIcon(
size: 32,
color: Colors.red,
interactive: false, // Disable internal gesture handlers
controller: _iconController,
),
);
}
}
final _iconController = AnimatedIconController();
InkWell(
onTap: () {
_iconController.animate();
// Your action here
},
child: Padding(
padding: EdgeInsets.all(8),
child: CopyIcon(
size: 24,
interactive: false,
controller: _iconController,
),
),
)
ActivityIcon(
size: 48.0, // Icon size
color: Colors.black87, // Default color
hoverColor: Colors.blue, // Hover color
animationDuration: Duration(milliseconds: 600), // Animation duration
strokeWidth: 2.0, // Stroke width
reverseOnExit: true, // Reverse animation on exit
enableTouchInteraction: true, // Enable touch interaction
infiniteLoop: false, // Enable infinite loop
resetToStartOnComplete: false, // Reset after animation completes
onTap: () {}, // Tap callback
interactive: true, // Enable/disable internal gestures
controller: AnimatedIconController(), // External animation controller
)
| Method | Description |
|---|---|
animate() |
Triggers the animation to play forward |
stop() |
Stops the current animation |
reset() |
Resets the animation to its initial state |
Each icon has its own unique animation:
Contributions are welcome! Please feel free to submit a Pull Request.
CONTRIBUTING.md CODE_OF_CONDUCT.md ICON_CHECKLIST.md
@khlebobul [Email - khlebobul@gmail.com](mailto:khlebobul@gmail.com) @khlebobul Personal - Website
Icons based on Lucide Icons inspired by pqoqubbw/icons