跟随您的配色
图标使用 currentColor,自动继承文字颜色、悬停状态和深色模式。也可以通过属性、类名或普通 CSS 覆盖。
让图标动起来
useAnimations 提供 300 个手工制作的微动画图标,每个图标都内置悬停、点击或循环微交互。您可以把它们作为 React 组件使用,通过 shadcn 一条命令添加到项目中,或者直接下载 SVG 和 Lottie JSON 文件。采用 MIT 许可证。
在图标阵列上移动指针试试。
交互内置
每个图标都自带为它设计的交互,放进页面即可使用,也可以用一个属性换成其他交互。动手试试:
图标库
悬停或点击即可播放。打开图标可查看代码,并下载 Lottie JSON、SVG 和 ZIP。
300 个图标
import UseAnimations from 'react-useanimations';
import menu from 'react-useanimations/lib/menu';
export function MenuButton({ open, onToggle }) {
return (
<UseAnimations
animation={menu}
active={open}
onClick={onToggle}
size={28}
/>
);
}npx shadcn@latest add https://useanimations.com/r/menu.json
# 然后: <AnimatedMenu size={24} /># 每个图标都提供 SVG、动画(Lottie JSON)以及包含两者的 ZIP
https://useanimations.com/icons/menu/menu.svg
https://useanimations.com/icons/menu.json # Lottie JSON
https://useanimations.com/icons/menu.zip # Lottie JSON + static SVGsconst { icons } = await fetch('https://useanimations.com/icons.json').then((r) => r.json());
const icon = icons.find((i) => i.keywords.includes('hamburger'));
icon.react.import; // "import menu from 'react-useanimations/lib/menu';"图标使用 currentColor,自动继承文字颜色、悬停状态和深色模式。也可以通过属性、类名或普通 CSS 覆盖。
8 kB
内置播放器,零依赖。每个图标都是约 2 kB 的独立模块。
尊重系统的“减少动态效果”设置,键盘聚焦时同样播放悬停动画,并且在您添加标签之前不会干扰屏幕阅读器。
客户端组件,可以在 Next.js、Remix 和 Astro 中安全渲染。图标本身是普通数据,在任何地方都能导入。
带类型定义的图标目录为每个图标列出关键词,另有 icons.json、llms.txt 和 Markdown 文档。
微动画是响应用户操作的简短动效,每个只表达一件事,例如菜单图标变成关闭按钮、点赞时爱心被填满、有新消息时铃铛摇动。动态图标是最常见的微动画,它让界面反馈更及时,不需要额外的文字就能表达状态变化。
Lottie JSON 文件包含完整的动画,可以在任何 Lottie 播放器中播放,包括 react-useanimations 内置的播放器。SVG 文件是图标静止时的图片,每个状态一张(例如 eye 和 eye-off),适合不需要动效的场景:邮件、文档、设计工具,或不运行 JavaScript 时的备用方案。
可以。组件标记为 'use client',只在浏览器中绘制动画,因此可以在服务端组件以及 Next.js、Remix、Astro 等 SSR 框架中直接渲染,无需动态导入。图标模块是普通数据,服务端组件可以直接导入并作为属性传递。 Next.js 与服务端渲染 →
可以。图标和 react-useanimations 软件包都采用 MIT 许可证,可以在个人和商业作品中使用、修改和再分发。署名不是必需的,但我们很欢迎。 许可与条款 →
可以。每个图标都是标准的 Lottie JSON 文件,可以通过 lottie-web 在原生 JavaScript、Vue、Svelte、Angular 或 CMS 中播放,也可以在 iOS、Android 和 Flutter 的 Lottie 播放器中使用。Lottie 图标页面列出了文件网址,并为每种交互提供了现成的 lottie-web 代码片段。 Lottie 图标 →
react-useanimations 3.1.1 的播放器压缩后约 8 kB,没有依赖;每个图标是 1 到 15 kB 的独立模块(中位数 2 kB),最终只打包您导入的图标。