UNPKG

svelte-animated-icons

Version:

A collection of animated SVG icons for Svelte with customizable draw transitions, events, and accessibility features. Each icon supports hover/click animations, customizable colors, sizes, and stroke widths.

117 lines (86 loc) 3.19 kB
# Svelte Animated Icons A collection of animated SVG icons for Svelte with customizable draw transitions, events, and accessibility features. Each icon supports hover/click animations, customizable colors, sizes, and stroke widths. ## Features - 🎨 Customizable colors, sizes, and stroke widths - ✨ Animated draw transitions on hover or click - ♿ Built-in accessibility features - 🎯 TypeScript support - 🔄 Configurable animation timing - 🎮 Multiple event trigger options ## Installation ```bash pnpm i -D svelte-animated-icons ``` ## Usage ```svelte <script> import { ArrowDown } from 'svelte-animated-icons'; </script> <ArrowDown /> ``` ### With Custom Properties ```svelte <script> import { ArrowDown } from 'svelte-animated-icons'; </script> <ArrowDown size={32} color="#ff0000" strokeWidth={2} event="onclick" pauseDuration={300} transitionParams={{ duration: 800, delay: 0 }} /> ``` ## Props | Prop | Type | Default | Description | | ---------------- | --------------------------- | --------------------------- | -------------------------------------- | | size | number | 24 | Icon size in pixels | | color | string | 'currentColor' | Icon color (any valid CSS color) | | strokeWidth | number | 1.5 | Width of the icon strokes | | event | 'onmouseenter' \| 'onclick' | 'onmouseenter' | Event that triggers the animation | | pauseDuration | number | 300 | Pause duration between animations (ms) | | transitionParams | object | { duration: 800, delay: 0 } | Svelte transition parameters | | title | object | - | SVG title for accessibility | | desc | object | - | SVG description for accessibility | | ariaLabel | string | - | Aria label for the icon | ### Title and Description Props ```svelte <ArrowDown title={{ id: 'ArrowDown-title', title: 'ArrowDown Icon' }} desc={{ id: 'ArrowDown-desc', desc: 'A ArrowDown icon that animates on hover' }} /> ``` ## Accessibility All icons include proper ARIA attributes and support custom titles and descriptions. They are keyboard accessible when used with click events. ## Browser Support Works in all modern browsers that support SVG and CSS animations. ## Development ### Setup ```bash git clone git@github.com:shinokada/svelte-animated-icons.git cd svelte-animated-icons pnpm install ``` ### Running Tests ```bash pnpm test:e2e pnpm test ``` ### Building ```bash pnpm build ``` ## Contributing Contributions are welcome! Please read our contributing guidelines before submitting a pull request. ## License MIT License - see the [LICENSE](LICENSE) file for details.