Documentation
Simple. Fast. Beautiful animated icons for Svelte 5.
551 Icons Svelte 5 TypeScript
1. Install
npm install svelte-animate-icons
2. 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