Documentation
Simple. Fast. Beautiful animated icons for Svelte 5.
551 Icons Svelte 5 TypeScript
1. Install
npm install svelte-animate-icons2. Basic Usage
<script>
import { ActivityIcon } from '$lib';
</script>
<!-- Default hover animation -->
<ActivityIcon size={24} />Try it - Hover the icon
3. Custom Control
<script>
import { ActivityIcon } from '$lib';
let iconRef;
</script>
<!-- Custom trigger control -->
<ActivityIcon bind:this={iconRef} triggers={{ custom: true }} />
<button onclick={() => iconRef?.start()}>Start Animation</button>Try it - Click the button
4. State-Based Animation
<script>
let appState = 'idle'; // 'idle' | 'loading' | 'success'
</script>
<!-- Animation follows state -->
<ActivityIcon animationState={appState} />
<button onclick={() => appState = 'loading'}>Start Loading</button>Try it - Simulate loading
idle
5. Parent Element Integration
<script>
let cardIcon;
</script>
<!-- Button controls icon animation -->
<button
onmouseenter={() => cardIcon?.start()}
onmouseleave={() => cardIcon?.stop()}
>
<ActivityIcon bind:this={cardIcon} triggers={{ custom: true }} />
Loading Data...
</button>Try it - Hover the button
6. Props Reference
size=24 Icon size in pixelstriggers=[object Object] Animation triggers: hover, click, focus, customanimationState="idle" State-based animation: idle, loading, success, errorclass="text-blue-500" CSS classes for stylingduration=2000 Animation duration in millisecondsloop=true Loop animation infinitelyMethods (when using bind:this)
iconRef.start() Start animationiconRef.stop() Stop animationiconRef.toggle() Toggle animation stateLightning Fast
Web Animations API for 60fps performance
Svelte 5 Ready
Built with modern runes and reactivity
Tiny Bundle
Tree-shakeable, import only what you need
Easy Styling
CSS-friendly, no complex configurations