name. Defaults are subtle and production-friendly.
Props by Category
Props are organized into logical groups to reduce cognitive load:- Core Props - Essential icon properties (name, size, color, weight)
- Animation Props - Control animations (animation, entrance, trigger)
- Timing Props - Fine-tune timing (animationDuration, animationDelay)
- Interaction Props - Handle user interaction (interactive, onClick, etc.)
- Accessibility Props - Screen reader support (aria-label, role, etc.)
Minimal Examples
Most use cases need only 1-2 props:Complete Example
Here’s every prop in one place (you rarely need all of these):Core Props
These control the basic appearance of your icon.name
string
required
The name of the Lucide icon to render. Must match exactly with a Lucide icon name.
- Icon names are case-sensitive (use “Heart”, not “heart”)
- Must match exact Lucide icon names (use “CheckCircle”, not “CheckCircle2”)
- Browse all available icons at lucide.dev/icons
size
number
default:"24"
The size of the icon in pixels. Applied to both width and height.
color
string
default:"currentColor"
The color of the icon. Accepts any valid CSS color value.
weight
'light' | 'regular' | 'bold'
default:"regular"
The stroke weight of the icon.
className
string
default:""
Additional CSS classes to apply to the icon element.
Animation Props
animation
AnimationType
default:"none"
The main animation to apply to the icon.
"none"- No animation"pulse"- Gentle pulsing effect"spin"- Continuous rotation"bounce"- Bouncing motion"ping"- Radar-like ping effect"wiggle"- Side-to-side wiggle"flip"- 3D flip animation"heartbeat"- Heart-like beating"shake"- Shake effect"swing"- Pendulum swing"tada"- Celebration animation"rubber"- Rubber band effect
entrance
EntranceAnimationType | null
default:"null"
The entrance animation to play when the component mounts.
"fadeIn"- Fade in from transparent"fadeInUp"- Fade in from bottom"fadeInDown"- Fade in from top"fadeInLeft"- Fade in from left"fadeInRight"- Fade in from right"scaleIn"- Scale up from center"slideInUp"- Slide in from bottom"slideInDown"- Slide in from top"rotateIn"- Rotate while fading in"zoomIn"- Zoom in with scale
trigger
'always' | 'hover' | 'click' | 'focus'
default:"always"
When the main animation should be triggered.
animationDuration
number
default:"1000"
The duration of the animation in milliseconds.
animationDelay
number
default:"0"
The delay before the animation starts in milliseconds.
Interaction Props
interactive
boolean
default:"false"
Whether the icon should be interactive (focusable and respond to keyboard events).
onClick
(event: MouseEvent) => void
Click event handler for the icon.
onMouseEnter
(event: MouseEvent) => void
Mouse enter event handler for the icon.
onMouseLeave
(event: MouseEvent) => void
Mouse leave event handler for the icon.
Accessibility Props
aria-label
string
Accessible label for screen readers.
aria-hidden
Whether the icon should be hidden from screen readers.
role
string
ARIA role for the icon element.
tabIndex
number
Tab index for keyboard navigation.