Efek animasi "papan berporos satu baut" yang hidup dan interaktif menggunakan GSAP untuk Svelte 5. Berikan sentuhan fisika yang unik pada UI Anda hanya dengan satu baris kode!
â Coba Demo Interaktif - Eksperimen dengan semua parameter secara real-time!
use:pendulum dan langsung jalannpm add svelte-gsap-pendulum gsap
atau dengan package manager lain:
# pnpm
pnpm add svelte-gsap-pendulum gsap
# yarn
yarn add svelte-gsap-pendulum gsap
# bun
bun add svelte-gsap-pendulum gsap
<script>
import { pendulum } from 'svelte-gsap-pendulum';
</script>
<div use:pendulum>
Gerakkan saya!
</div>
<script>
import { pendulum } from 'svelte-gsap-pendulum';
</script>
<a class="flex items-center gap-2 text-5xl font-bold">
Purwakarta
<span
use:pendulum={{ angle: -30, stiffness: 0.45, duration: 1.5 }}
class="text-teal-500"
>
Tanggap
</span>
</a>
| Parameter | Tipe | Default | Deskripsi |
|---|---|---|---|
angle |
number |
-25 |
Sudut rotasi maksimum dalam derajat (negatif = jatuh ke kiri, positif = jatuh ke kanan) |
duration |
number |
1.2 |
Durasi animasi jatuh awal dalam detik |
stiffness |
number |
0.5 |
Elastisitas saat hover (0 = sangat elastis, 1 = sangat kaku) |
origin |
string |
'bottom right' |
Titik poros rotasi CSS transform-origin (contoh: 'top left', 'center center') |
<!-- Jatuh ke kanan dengan efek lebih elastis -->
<div use:pendulum={{ angle: 30, stiffness: 0.2 }}>
Elastis
</div>
<!-- Jatuh lambat dengan poros di tengah -->
<div use:pendulum={{ angle: -45, duration: 2.5, origin: 'center center' }}>
Lambat
</div>
<!-- Efek kaku dengan poros kiri atas -->
<div use:pendulum={{ angle: -60, stiffness: 0.9, origin: 'top left' }}>
Kaku
</div>
Action ini mensimulasikan sebuah papan yang hanya tersisa satu baut di salah satu ujungnya.
Perilaku:
Efek ini sempurna untuk:
Clone repository ini dan jalankan demo lokal untuk bereksperimen dengan berbagai konfigurasi:
git clone https://github.com/mikeu-dev/svelte-gsap-pendulum.git
cd svelte-gsap-pendulum
npm install
npm run dev
Demo akan tersedia di http://localhost:5173 dengan kontrol interaktif untuk semua parameter.
# Install dependencies
npm install
# Start dev server dengan demo
npm run dev
# Build library
npm run build
# Run tests
npm test
# Lint & format
npm run lint
npm run format
Library ini menggunakan @sveltejs/package untuk packaging:
# Build package
npm run build
# Package akan tersedia di folder /dist
Kontribusi sangat diterima! Silakan buat issue atau pull request di GitHub repository.
MIT ÂĐ Mikeu Dev