Codync
A free, open-source 1:1 alternative to Grok Bot and Muse. Message Claude Code, Codex, Cursor and 40+ coding agents as persistent bots from your iPhone, Mac or Linux desktop. Group chats, threads, appr
Tiny, but Powerful Declarative Animation Library.
Translation pending
Developer toolsGitHub @freestylejsOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
Repository information has not been collected yet.
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗Ani is a declarative animation library. You describe an animation once as an immutable tree, and a timeline plays it on any element, in plain TypeScript or with the React, Vue, Solid and Svelte bindings.
| Package | Purpose |
|---|---|
@freestylejs/ani-core | The engine: animation nodes, timelines, clock. |
@freestylejs/ani-react | React hooks. |
@freestylejs/ani-vue | Vue composables. |
@freestylejs/ani-solid | Solid primitives. |
@freestylejs/ani-svelte | Svelte actions and stores. |
@freestylejs/ani-codemod | Migrates ANI 1.x code to ANI 2. |
npm install @freestylejs/ani-core
import * as a from '@freestylejs/ani-core'
// 1. Describe the animation. Every duration is in seconds.
const reveal = a.parallel([
a.ani({ to: { opacity: 1 }, duration: 0.3 }),
a.ani({ to: { translateY: 0 }, duration: 0.4 }),
])
// 2. Create a timeline and bind it to an element.
const timeline = a.rafTimeline(reveal)
const card = document.createElement('div')
const unbind = timeline.bind(card)
// 3. Play it. The promise never rejects.
timeline.play({ from: { opacity: 0, translateY: 16 } }).then((result) => {
// result is 'ended', 'interrupted', 'skipped', 'reset' or 'disposed'
unbind()
timeline.dispose()
})
Animations honor prefers-reduced-motion by default: the timeline jumps to its end state. Pass { reducedMotion: 'ignore' } to rafTimeline for essential motion.
Visit ani to read the documentation.
ANI 2.0 removes the 1.x API and measures every delay in seconds. Run the codemod once on your 1.x code (commit before you do), read every warning it prints, then follow the migration guide.
npx @freestylejs/ani-codemod src
Please read contributing guide.
Licensed under the MIT License.