在快速发展的前端生态中,开发者们一直在寻找既能提高开发效率,又能保证代码质量和用户体验的解决方案。今天,我们很兴奋地向大家介绍 Metis UI 一个基于 Tailwind CSS 构建,继承 Ant Design 交互逻辑的现代 React 组件库。
在众多组件库中,Metis UI 独树一帜,它不是简单的重复造轮子,而是在继承优秀设计理念的基础上,带来了全新的开发体验:
Metis UI 基于 Ant Design 久经考验的组件逻辑构建,确保了交互模式的一致性和可靠性。同时,我们抛弃了传统的 CSS-in-JS 方案,全面拥抱 Tailwind CSS ,为开发者带来了前所未有的样式自由度。
import { Button, Input, Form } from 'metis-ui'; // 简洁的 API ,强大的功能 <Button type="primary" className="hover:scale-105 transition-transform" > 自定义样式,轻而易举 </Button>
无需学习复杂的主题配置,直接使用 Tailwind 类名即可实现个性化定制。
interface ButtonProps { type?: 'primary' | 'default' | 'dashed'; size?: 'small' | 'middle' | 'large'; loading?: boolean; ... }
每个组件都提供完整的类型定义,让你的开发过程更加安全和高效。
<Button className="bg-gradient-to-r from-blue-500 to-purple-600 hover:from-blue-600 hover:to-purple-700"> 渐变按钮 </Button>
利用 Tailwind 的强大功能,轻松实现复杂的样式效果。
# npm npm install metis-ui # pnpm (推荐) pnpm add metis-ui # yarn yarn add metis-ui
向你的入口 CSS 文件添加一个 @plugin
以导入 Metis UI 。
@import 'tailwindcss'; @source './node_modules/metis-ui/es'; @plugin 'metis-ui/plugin';
import { Alert } from 'metis-ui'; const App = () => ( <div className="h-screen w-screen"> <Alert type="info" banner message="Hello" description="Welcome to metis-ui" /> </div> ); export default App;
Metis UI 只针对颜色进行主题定制,默认提供了两套主题:light
和 dark
。您还可以创建自己的自定义主题或修改内置主题。
您可以在 CSS 文件中的 @plugin "metis-ui/plugin"
后添加括号来管理主题,详细介绍。
我们提供了一套开箱即用的企业中后台系统模板,基于 React、react-router、TypeScript、Vite、TailwindCSS、Zustand、faker-js、MSW 等技术栈构建。它内置了开箱即用的数据流、国际化、菜单、模拟数据、权限管理、主题切换等功能,助力企业快速搭建高质量的中后台应用。
├── .husky # Husky 钩子配置目录 ├── public # 公共静态资源目录 ├── src # 源码目录 │ ├── apis # 服务端接口请求相关 │ ├── assets # 静态资源(图片、SVG 等) │ ├── components # 通用组件 │ ├── hooks # 自定义 hooks │ ├── layouts # 页面布局组件 │ ├── locale # 国际化资源 │ ├── mocks # Mock 数据与服务 │ ├── pages # 页面组件 │ ├── store # Zustand 状态管理 │ ├── types # TypeScript 类型定义 │ ├── utils # 工具函数与工具类 │ ├── loading.tsx # 全局 Loading 组件 │ ├── main.tsx # 应用入口文件 │ ├── routes.tsx # 路由和菜单配置 │ └── vite-env.d.ts # Vite 环境类型声明 ├── .env # 环境变量配置文件 ├── .lintstagedrc # lint-staged 配置文件 ├── .prettierignore # Prettier 忽略文件配置 ├── .prettierrc # Prettier 代码格式化配置 ├── commitlint.config.js # 提交规范校验配置 ├── eslint.config.js # ESLint 代码规范配置 ├── index.html # 项目入口 HTML ├── package.json # 项目依赖与脚本配置 ├── tailwind.css # TailwindCSS 全局样式入口 ├── tsconfig.app.json # TS 应用配置 ├── tsconfig.json # TS 根配置 ├── tsconfig.node.json # TS Node 配
tips: 网站匀部属在 Github Pages, 访问可能需要梯子
1 dnslint 95 天前 前端就是无数个轮子 |
![]() | 2 aladdinding 95 天前 我要下下一代 |
3 icy37785 95 天前 via iPhone ![]() 我现在选型的唯一原则就是 ai 擅不擅长 |
4 Cheez PRO 我想问问,这个 UI 具体的好处是什么? |
5 chanderbing 95 天前 这个 disable 之后的对比度是认真的吗,我都快看不清了 |
![]() | 6 MrYELiex 95 天前 ![]() antd 这种适合后台复杂应用、组件功能多、样式层级多的组件库,并不适合自身使用 tailwind 实现。 在 ant 的适合场景下大部分情况只需要修改颜色(主题)、布局。如果自定义太多样式,会指数级增加维护成本;如果按大部分使用 ant 的场景,不自定义样式,那用 tailwind 也没有太多价值了。 tailwind+react 原子化组件更多还是适合前端落地页以及面向 C 端的后台,或者设计比较好的管理后台:样式和交互优先级高,同时业务组件的复杂度没有那么高。在当前国内大部分 B/C 后台都停留在把数据库按表格展示给客户+使用大表单创建数据这种设计思路下面,其实并不合适。 |
![]() | 7 MrYELiex 95 天前 #6 指非原子化组件库自身使用 tailwind 实现,使用上通过 tailwind 维护布局配合全局颜色主题还是比较高效的 |
![]() | 8 NewYear 95 天前 别在 React 里卷啦,太多 UI 库了。 可以看看 VUE 这边啊,这边还很贫瘠,有轮子可以往这个方向造啊。。。。。 |
9 red13 95 天前 我只知道 Material UI ,Metis UI 又是个什么? |
![]() | 10 importmeta 95 天前 Tailwind CSS 这种歪门邪道, 我看它哪天. |
11 justdoit123 95 天前 @MrYELiex #6 #7 非常同意你的看法。 |
12 ruaRobot 95 天前 和 antd 相比优势在哪儿 |
![]() | 13 zzzzhan 95 天前 怎么动不动就重新定义啊 |
14 azhong123 95 天前 继续造轮子 |
![]() | 15 TonyG 95 天前 我的老天爷,你一个人干了整个 arco design 的 UI 麽(′`) 我也在自己做(其实是抄) UI 库,所以我知道有多难,这组件的质感与 arco design 很像,收藏,作为抄袭对象了,谢谢楼主! |
![]() | 16 googlehub 95 天前 这种库其实没太大必要继续了,市面上已经有非常标准的库,AI 的时代,后面的组件全部都是 prompt ,一个 prompt 对应一个组件,这种完全是另外一个层面的体验,而且效果还出奇的优秀。比如: https://21st.dev/s/sign-in ,可以参考下。 |
![]() | 17 dufu1991 95 天前 非常支持,我都已经在计划将 antd 复刻之后按照 Tailwind 写一套,Tailwind 写起来太爽了。后续我有新项目会用你这个,遇到问题和需求也会参与维护。感谢你的付出。 |
![]() | 18 cutchop &nsp; 95 天前 claude 收录你了吗 |
![]() | 19 dwu8555 95 天前 现在都直接用 AI 了 |
![]() | 20 hugozach 95 天前 这有啥意义 都是拿别人的改一下 我看最早的提交记录里面有 ant-design |
![]() | 21 Gilfoyle26 95 天前 @MrYELiex #6 tailwind 本身有局限性,tailwind 不是银弹。 |
![]() | 22 wxxxcxx 95 天前 习惯了 shadcn |
![]() | 24 CuteGirl 94 天前 看起来组件还是蛮好看的 收藏了 下一次就用这个试试看 |
![]() | 25 llsquaer 94 天前 之前学习,选了那么久,最后还是觉得 element pro 好。 因为 AI 基本不得理解是错。 |
26 zhengfan2016 94 天前 @MrYELiex #6 反正我是爱用 tailwind 类的 ui 的,无他,因为设计稿不还原会挨设计的骂。 antd 和 mui 之类根本不适合根据设计稿样式快速做 ui 上的魔改,去最大程度贴合设计稿的样式。我 leader 推崇 mui ,我本人是极力推崇 shadcn ui 和 redix 的,好改出活快 ![]() |
27 vcmt 94 天前 用 ant design 主要是用它的免费的 ProTable,ProForm 等数据组件。其他的什么 button 之流的,大把可选的 UI 组件库。 |
29 thisrabbit 94 天前 @MrYELiex #6 请教一下相较于目前的表格展示/大表单创建数据,更新和用户体验友好的 B/C 后台形式是怎样的感觉? |
32 hoythan 94 天前 tailwind 这类原子化是前端最佳解决方案 |
![]() | 33 EmptyDX 94 天前 #为什么要选择 Metis UI ? |
34 MrYELiex 94 天前 #29 @thisrabbit 试试国外的 sass 服务后台 |
![]() | 35 MrYELiex 94 天前 #26 @zhengfan2016 antd mui 都不适合做视觉、交互要求高的页面 只适合做中后台。早期生态没有类似的组件库,但是现在有大把可选了,shadcn/ui radix specturm 都是面向这种场景的 |
![]() | 36 qq976739120 94 天前 你被 ai 选择的几率太低了 .... |