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.
pnpm i -D svelte-animated-icons
<script>
import { ArrowDown } from 'svelte-animated-icons';
</script>
<ArrowDown />
<script>
import { ArrowDown } from 'svelte-animated-icons';
</script>
<ArrowDown
size={32}
color="#ff0000"
strokeWidth={2}
event="onclick"
pauseDuration={300}
transitionParams={{
duration: 800,
delay: 0
}}
/>
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 |
<ArrowDown
title={{
id: 'ArrowDown-title',
title: 'ArrowDown Icon'
}}
desc={{
id: 'ArrowDown-desc',
desc: 'A ArrowDown icon that animates on hover'
}}
/>
All icons include proper ARIA attributes and support custom titles and descriptions. They are keyboard accessible when used with click events.
Works in all modern browsers that support SVG and CSS animations.
git clone [email protected]:shinokada/svelte-animated-icons.git
cd svelte-animated-icons
pnpm install
pnpm test:e2e
pnpm test
pnpm build
Contributions are welcome! Please read our contributing guidelines before submitting a pull request.
MIT License - see the LICENSE file for details.