Skip to main content
All props are optional except 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.
Important notes:
  • 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
Common mistakes:

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.
Available animation types:
  • "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.
Available entrance animations:
  • "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

boolean
Whether the icon should be hidden from screen readers.

role

string
ARIA role for the icon element.

tabIndex

number
Tab index for keyboard navigation.

Complete Example

Here’s an example using multiple props together:

TypeScript Support

All props are fully typed for TypeScript users:

Default Values Summary