Svelte Animated Icons #

A collection of animated SVG icons for Svelte with enhanced customization, flexible event handling, and improved state management. Each icon supports sophisticated animation transitions, accessibility features, and granular control.

Features #

  • 🚀 1164 icons
  • 🎨 Advanced customization (colors, sizes, stroke widths)
  • ✨ Draw transition animations
  • 🎯 Full TypeScript support
  • 🔄 Flexible event handling
  • ♿ Enhanced accessibility features
  • 🎮 Multiple animation trigger options

Installation #

Usage #

With Custom Properties

Props #

PropTypeDefaultDescription
sizenumber24Icon size in pixels
colorstringcurrentColorIcon color (any valid CSS color)
strokeWidth (flowbite/hero)number1.5/2.0Width of the icon strokes
event'hover'|'click'|'none''hover'Event that triggers the animation
pauseDurationnumber300 Duration of the animation (ms)
transitionParamsobjectduration: 500, delay: 0Svelte transition parameters
title{ id?: string, title?: string }-SVG title for accessibility
desc{ id?: string, desc?: string }-SVG description for accessibility
ariaLabelstring-Aria label for the icon
focusable'true' | 'false' | 'auto'falseWhether the icon is keyboard-focusable

Types #

Accessibility #

Decorative Icons #

By default, icons have no aria-label. This is intentional - when icons are used next to text or as decorative elements, they don't need labels as screen readers will ignore them.

Standalone Icons #

When icons are used without accompanying text (e.g., icon-only buttons), you should provide an accessible label using the ariaLabel prop:

Rich Descriptions #

For complex icons that need detailed descriptions, use title and desc props. The title provides a short label, while desc offers a longer description:

App storeThe shape of a red app store

Note: When using title, you don't need ariaLabel as the title will be used automatically via aria-labelledby.

Focusable #

Icons are not keyboard-focusable by default (focusable="false"). If you need to change this behavior, use the focusable prop:

Browser Support #

Works in all modern browsers that support SVG and CSS animations.

Contributing #

Contributions are welcome! Please read our contributing guidelines before submitting a pull request. Create a new icons in `src/lib/custom` directory.

License #

MIT License - see the LICENSE file for details.