ogBlocks
扫码查看

基于 Next.js、TypeScript、Motion 和 Tailwind CSS 构建的动画 React UI 组件库。

ogBlocks

综合介绍

ogBlocks 是一个专门为 React 开发者准备的动画 UI 组件库。它基于 Next.js、TypeScript、Motion 和 Tailwind CSS 构建,把常用的界面元素(比如按钮、卡片、弹窗、导航菜单)都做成了开箱即用的组件。开发者不需要从头编写动画逻辑,直接引入组件就能获得流畅的交互效果。

这个组件库的核心思路很简单:把复杂动画封装好,让使用者专注于业务功能。它内置了多种预设动画效果,同时支持通过属性调整动画参数,适合快速搭建现代化界面。ogBlocks 的代码完全用 TypeScript 编写,类型提示完整,在编辑器里就能看到组件支持的配置项。

对于需要快速交付产品原型或正式项目的团队来说,ogBlocks 可以显著减少 UI 开发时间。它不要求使用者精通动画原理,只要了解基础的 React 知识就能上手。

功能列表

  1. 预构建动画组件:提供超过 60 种常用 UI 组件,每个组件都内置了入场、离场和交互动画效果。
  2. Motion 动画引擎:基于 Motion(原 Framer Motion)实现动画逻辑,支持弹簧物理效果、关键帧动画和手势交互。
  3. 主题定制系统:通过 Tailwind CSS 类名覆盖样式,支持自定义颜色、字体、圆角和阴影变量。
  4. TypeScript 类型支持:所有组件都附带完整的类型定义,开发时能获得准确的属性提示和自动补全。
  5. 响应式布局:组件默认适配不同屏幕尺寸,在移动端和桌面端都能保持一致的显示效果。
  6. 可访问性优化:组件遵循 WAI-ARIA 规范,支持键盘导航和屏幕阅读器。
  7. 按需引入:支持 ES Module 按需加载,打包时只包含实际使用的组件代码。
  8. 暗色模式支持:内置暗色模式样式,可以通过切换 class 快速适配深色主题。

使用帮助

安装 ogBlocks

ogBlocks 要求项目使用 React 18 或更高版本,并且已经配置好 Tailwind CSS。如果你的项目还没有这些依赖,先创建一个 Next.js 项目:

npx create-next-app@latest my-app
cd my-app

然后在项目目录中安装 ogBlocks 以及它依赖的动画库:

npm install ogblocks motion

安装完成后,需要在全局样式文件(通常是 app/globals.css)中引入 ogBlocks 的基础样式:

@import 'ogblocks/dist/styles.css';

确认 Tailwind CSS 的配置文件中包含了组件库的内容路径,这样 Tailwind 才能扫描到 ogBlocks 的类名:

module.exports = {
  content: [
    './app/**/*.{js,ts,jsx,tsx}',
    './node_modules/ogblocks/dist/**/*.{js,mjs}',
  ],
  // ...其他配置
}

重启开发服务器,ogBlocks 就可以正常使用了。

使用动画组件

ogBlocks 的组件用法和普通 React 组件没有区别。比如要创建一个带动画效果的卡片,先从组件库中引入:

import { AnimatedCard } from 'ogblocks';

export default function Example() {
  return (
    <AnimatedCard
      title="示例卡片"
      description="鼠标悬停时会有缩放和阴影动画"
      animationType="hover"
    />
  );
}

每个组件都接受 animationType 属性,用来切换不同的动画效果。常见的选项包括 hover(悬停动画)、enter(入场动画)、click(点击反馈)。

调整动画参数

如果你觉得默认动画太快或太慢,可以通过 transition 属性微调。这个属性直接透传给 Motion 的过渡配置:

import { MotionButton } from 'ogblocks';

<MotionButton
  whileHover={{ scale: 1.05 }}
  transition={{ duration: 0.3, ease: 'easeOut' }}
>
  保存更改
</MotionButton>

ogBlocks 的组件暴露了 Motion 的底层属性,比如 whileHoverwhileTapinitialanimate。熟悉 Motion 的开发者可以直接控制动画细节。

自定义主题

ogBlocks 使用 CSS 变量来控制颜色和圆角。你可以在项目的全局样式中覆盖这些变量:

:root {
  --ogb-primary-color: #4f46e5;
  --ogb-border-radius: 12px;
  --ogb-font-family: 'Inter', sans-serif;
}

修改这些变量后,所有 ogBlocks 组件都会自动应用新样式,不需要逐个调整。

暗色模式切换

html 标签上添加 dark class,组件就会切换为暗色样式:

// 在布局组件中
<html class="dark">
  <body>{children}</body>
</html>

你也可以用 JavaScript 动态切换这个 class,实现主题切换功能。

按需引入减少打包体积

ogBlocks 支持 tree-shaking。在引入组件时使用具名导入,打包工具会自动移除未使用的代码:

import { Modal, Tooltip } from 'ogblocks';

避免使用 import * as ogblocks 这种全量导入方式,否则会把整个组件库打进包中。

产品特色

一套基于现代前端技术栈、内置丰富动画效果且支持深度定制的 React 组件库,让开发者快速构建有生命力的界面。

适用人群

  • React 前端开发者:需要快速搭建项目界面,不想花大量时间手写动画效果,希望直接使用现成的高质量组件。
  • UI/UX 设计师:想要在代码中还原设计稿的动效细节,通过调整动画参数实现设计意图。
  • 产品原型团队:需要快速制作可交互的产品演示,验证交互流程和视觉效果。
  • 独立开发者:个人项目需要美观且专业的界面,但没有足够精力从零开发组件库。

应用场景

  • 后台管理面板:表格、表单、弹窗等基础组件自带过渡动画,让后台界面不再生硬。
  • 营销落地页:使用入场动画和滚动触发效果,提升页面浏览体验和品牌质感。
  • 数据可视化仪表盘:图表切换、筛选器交互都带有平滑动画,帮助用户理解数据变化。
  • SaaS 产品前端:统一的组件风格和交互反馈,让整个产品保持一致的体验。

常见问题

  • ogBlocks 是免费使用的吗?
    ogBlocks 采用 MIT 开源协议,可以免费用于个人和商业项目。
  • 组件库支持 Vue 吗?
    不支持,ogBlocks 只面向 React 生态,基于 React 和 Next.js 构建。
  • 能和其他 UI 库一起使用吗?
    可以。ogBlocks 的组件不依赖特定全局样式,可以和 Ant Design、MUI 等库混用,但需要注意样式冲突。
  • 动画效果会很消耗性能吗?
    ogBlocks 使用 Motion 的动画引擎,动画运行在 GPU 上,性能表现良好。大量组件同时动画时,建议开启 reducedMotion 属性来降低动画幅度。
  • 如何反馈 bug 或提出新组件需求?
    可以在 ogBlocks 的 GitHub 仓库提交 Issue,维护者通常会在几个工作日内回复。
微信微博邮箱复制链接