Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

841 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

瑚琏 Hulian —— 颜值 + 好用的 React 设计系统

瑚琏 Hulian

颜值 + 好用的 React 设计系统 —— 385 个组件,OKLCH 主题 · Tailwind v4 · 暗色零闪烁 · 运行时换肤。

npm version npm downloads license MIT CI stars

📖 文档站 · 🏗️ 在线 Demo · English


名出《论语·公冶长》"瑚琏也"——宗庙盛黍稷的玉器,至贵至美又确有大用。 颜值审美 + 好用 = 软件商业化第一生产力。人不该油头满面地对着丑/烂软件干活。

瑚琏是一套可直接 import 的 React 组件库,配套一个真实数据驱动、可调参的 showcase 文档站。基于 Base UI 的无障碍行为层 + Tailwind v4 的 OKLCH 双层 token 皮肤,明暗切换 0 闪烁、支持运行时换肤。

✨ 特性

  • 🧩 385 个组件 —— 基础控件 / 表单 / 数据展示 / 反馈 / 导航 / overlay / 图表 / 特效背景 / AI 智能体 / 直播 / 节点画布 …
  • 🎨 OKLCH 双层 token —— 原始层 + 语义层,切 [data-theme] 明暗 0 闪烁,运行时即可换肤
  • 无障碍优先 —— 行为层基于 Base UI,键盘 / 焦点 / ARIA 开箱即用
  • 🌗 暗色零闪烁 —— ThemeProvider + 入口 inline script,SSR 首屏不白闪
  • 📦 零 token 公开安装 —— 发布在公共 npmjs,pnpm add @hulianui/ui 一行装上
  • 🔧 源码分发 —— 发 TSX 源码,样式可被你的 Tailwind 完整接管,无黑盒 CSS
  • 📚 AI-first 文档 —— 每个组件含 Props/Events/Slots + 活示例 + playground,并生成 llms.txt
  • 🤖 受约束生成可用 —— llms-props.json 逐 prop 给出 kind / 枚举取值 / 默认值 + 导出名反查表,消费方不必解析 markdown
  • 🏗️ 19 个真实 demo —— CRM / 商城 / 数据大屏 / AI 工作流 / 直播 … 全部 dogfood 自家组件

📦 快速开始

1. 安装(公共 npmjs,零配置零 token)

pnpm add @hulianui/ui @hulianui/tokens
# peer:react · react-dom · tailwindcss · @base-ui/react · motion

2. 引入 token + preset,并把组件源码加入 Tailwind 扫描(全局 CSS)

@import "@hulianui/tokens/tokens.css";
@import "@hulianui/tokens/preset.css";
@source "../node_modules/@hulianui/ui/src/**/*.{ts,tsx}";

3. 包一层 ThemeProvider 即可用

import { ThemeProvider, Button } from "@hulianui/ui";

export default function App() {
  return (
    <ThemeProvider defaultSetting="system">
      <Button>瑚琏</Button>
    </ThemeProvider>
  );
}

发布形态是源码包(发 src/,不编译 dist),消费方需能转译 TSX:Next.jstranspilePackages: ["@hulianui/ui"] —— 跑 webpack dev(Next 15 及以下)时还须成对加上 experimental.optimizePackageImports: ["@hulianui/ui"],否则冷编译会慢数倍(Next 16 的 Turbopack 实测无差异,为什么);Vite 一般免配。防首屏白闪的 inline script 由各应用入口注入(参考 apps/www/app/theme-script.tsx)。

完整接入说明见 文档站 · 快速开始

⚠️ 接进自己的仓库前先读 docs/consuming.md:源码分发会让消费方的 Vitest 容易解析出第二份 React(可直接 import { withHulian } from "@hulianui/ui/vitest-preset" 一行解决)。 另一条是模块图:源码分发下根 barrel 会把整棵 src/ 拖进 dev 编译。只用少数几个组件时改子路径 @hulianui/ui/tag,Next 消费方则加 experimental.optimizePackageImports(见 consuming.md §3)。

还有一条是类型:0.28.0 起 exportstypes 条件指向随包发的预编译 .d.ts, 你的 tsc 读声明、打包器仍读源码 —— 实测引十二个组件的 tsc 内存从 699 MB 降到 88 MB、 耗时快 5.6 倍,noUncheckedIndexedAccess 也随之进入承诺矩阵。官方承诺的组合 (TS 5.x/7.x × strict × noImplicitOverride × noUnusedLocals × noUncheckedIndexedAccess × skipLibCheck × moduleResolution: Bundler)每次 CI 都以 pnpm pack 产物在仓库外实跑, 见 consuming.md §6。 自 0.15.0 起没有 optional peer、没有必须挂的第三方 Provider;日期族也回到了根 barrel(./date-pickers 子路径已移除)。

🧩 组件与示例

  • 组件库:385 个组件,覆盖中后台、营销站、电商、AI 应用、移动端等场景 —— 浏览全部
  • 区块 / 页面 / 示例:从真实 demo 抽离的整段区块与整页模板,复制即用
  • 19 个内置 demo:CRM · 商城 · 客服 · 数据大屏 · 知识库 · 直播 · AI 工作流 · API 网关 · 智能体调度 · 部署平台 · 项目协同 · LMS · 个人站 · 官网 · 订阅结算 · 代码审查 · 排期 · 移动端 · AI 对话 —— 在线体验

🛠️ 技术地基

  • Base UI@base-ui/react,headless 行为 / a11y)
  • Tailwind v4 + 两层 OKLCH CSS 变量 token(原始层 + 语义层)
  • class-variance-authority 管变体 · lucide-react 图标 · motion 动效
  • monorepo:pnpm + Turborepo · 文档站 Next.js 16 + React 19
packages/
  ui/      @hulianui/ui      组件库本体(Base UI + Tailwind 皮肤)
  tokens/  @hulianui/tokens  设计 token(明暗主题唯一源头)
  mocks/   @hulianui/mocks   faker 数据工厂 + MSW handlers(喂给 showcase · 私有)
apps/
  www/     Next.js 文档站(首个 dogfood 消费者)

🤝 参与贡献

欢迎 issue 与 PR!本地开发:

pnpm install
pnpm --filter www dev   # 文档站 http://localhost:5512
pnpm test               # 全量测试(vitest 双 project:jsdom 单测 + 真实 chromium)
pnpm typecheck

详见 CONTRIBUTING.md · 行为准则 · 安全问题请走 SECURITY.md · 发布流程见 docs/publishing.md

📄 许可证

MIT © hulianui

About

瑚琏 Hulian — 383 个组件的 React 设计系统(OKLCH 主题 + Tailwind v4 · 暗色零闪烁 · 运行时换肤 · 源码分发 · AI-first 机器可读 props)

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

6 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages