📌 项目地址:meta/astryx | ⭐ 14,541 颗星 | 🔧 TypeScript

meta/astryx 项目插图

先说清楚它是什么

Astryx 是 Meta 内部孵化的设计系统,八年时间养到了公司内最大、使用最广的规模,支撑 13000 多个应用,现在开源。技术栈是 React 19+ 和 StyleX,目前 Beta 阶段。

包的构成很简单:150 多个无障碍组件、品牌级主题、暗色模式、一套可以直接拿来用的模板,再加一个 CLI。消费方式也简单,导入预构建好的 CSS,然后用带类型的 React 组件就行。不需要装构建插件,也不需要把你的样式方案换掉。

它和别的组件库差在哪

我觉得有两条是真正拉开差距的,另外两条是顺手的加分。

第一条是开放内部结构。多数组件库把构建块藏在封闭的顶层 API 后面,Astryx 反着来:你组合界面时要用到的基础模块直接导出。如果这还不够,swizzle 可以把某个组件的完整源码弹出到你的项目里,之后这段代码就归你管了。碰到设计系统满足不了的需求,你有一条清晰的路走到最底层,不用 fork 整个仓库。

第二条是无样式锁定。Astryx 内部用 StyleX 写样式,但这件事对使用者完全透明。你照样用 className 加 Tailwind、CSS Modules 或普通 CSS 去覆盖,项目里用什么就继续用什么。

剩下两条:主题本质上是覆盖一组 CSS 自定义属性,设计师不用 fork、不用包一层组件,就能改出品牌专属的样子;另外它明确把 AI 编码助手当一等公民对待,API、文档和 CLI 是一起设计的,人和 AI 对着同一套参考干活。

为什么“为 AI 设计”不是一句空话

这条值得单独说。现在用 Copilot 或 Cursor 写前端,常见的问题是 AI 自己随手拼 Tailwind 类名,写出来的东西和团队组件库对不上,人还得推倒重来。

Astryx 的思路是把参考体系统一掉:AI 助手和开发者共享同一套组件 API 和文档。CLI 还支持全局安装,装一次之后 astryx 命令在任何目录都能用,README 的原话是“每个 coding agent 都知道 Astryx”。在具体项目里运行时,它仍然会用项目自己锁定的版本,不会乱。

上手步骤

前置要求:React 19 或更高版本(react 和 react-dom 是 @astryxdesign/core 的 peer 依赖)。

装核心包、主题和依赖:

# npm
npm install @astryxdesign/core @astryxdesign/theme-neutral @stylexjs/stylex
npm install -D @astryxdesign/cli

# pnpm
pnpm add @astryxdesign/core @astryxdesign/theme-neutral @stylexjs/stylex
pnpm add -D @astryxdesign/cli

# yarn
yarn add @astryxdesign/core @astryxdesign/theme-neutral @stylexjs/stylex
yarn add -D @astryxdesign/cli

想全局装 CLI 也行:

npm i -g @astryxdesign/cli

README 只展示了安装部分,CLI 的具体命令要看官方文档站点。

采用前想清楚两件事

一是兼容性。React 19 起步,旧项目和非 React 技术栈都用不了。二是它还在 Beta,API 可能变动,上生产之前自己掂量。

资源方面,文档、Storybook 和在线 Sandbox 都有公开站点。我的建议是先去 Storybook 把 150 多个组件过一遍,看看质量到底符不符合你的预期,再决定要不要引入。有 Discord 社区和贡献指南,协议类型以仓库 LICENSE 文件为准。

一句话总结:如果你的团队在用 AI 写前端,Astryx 值得认真评估一次;如果只是想找个普通组件库,市面上选择很多,它的差异化你未必用得上。

这篇文章对你有帮助吗?

发表回复