Codync
免费开源的 1:1 Grok Bot 与 Muse 替代方案。可在 iPhone、Mac 或 Linux 桌面上将 Claude 代码、Codex、Cursor 以及 40 多个编码代理作为持久机器人使用。支持群组聊天、线程、应用。
AI 翻译
尚未收集仓库信息。
尚未检测到更新。GitHub 发布版本后会显示在这里。
制作者的介绍仅有上面的一句话。 更多详情请阅读仓库 README。 仓库 README ↗
正在加载完整 README。
查看完整 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.