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

meta/astryx 项目插图

Meta 开源了 Astryx,一万四千多 star(截至发稿)。这不是又一个新造的组件库:它在 Meta 内部长了八年,是公司内部使用最广、规模最大的设计系统,支撑着 13000 多个应用,由每天依赖它的工程师、设计师和产品团队共同打磨出来的。

现在处于 Beta 阶段,基于 React 19+ 和 StyleX。

先说它给了你什么

150 多个无障碍组件、品牌级主题、暗色模式、能直接上线的模板,外加一个 CLI,打包成一个整体。消费方式很直接:导入预构建好的 CSS,用带类型的 React 组件写界面。不需要装构建插件,也不需要换掉你现有的样式方案。

React 19 起步是硬性要求,react 和 react-dom 是 @astryxdesign/core 的 peer 依赖。

四个设计决策,两个真拉开差距

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

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

这两条是我认为真正拉开差距的地方。另外两条是加分项:

不包装也能定制。 主题本质上是覆盖一组 CSS 自定义属性。设计师不用 fork、不用包一层组件,就能改出品牌专属的样子。

人和 AI 用同一套工具。 API、文档和 CLI 是一起设计的,AI 助手和开发者对着同一套参考干活。

“为 AI 设计”具体指什么

这条值得单独拆开讲。用 Cursor 或 Copilot 写前端的人多半遇到过:AI 自己随手拼 Tailwind 类名,写出来的东西和团队组件库对不上,只能推倒重来。

Astryx 的做法是把参考体系统一掉。CLI 支持全局安装,装一次之后 astryx 命令在任何目录都能用,README 的原话是“每个 coding agent 都知道 Astryx”。进了具体项目,它还是跑项目自己锁定的版本,不会乱。

上手

装核心包、主题和依赖:

# 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 的具体命令得去官方文档站查。好在文档、Storybook 和在线 Sandbox 都有公开站点。

采用前想清楚两点

一是兼容性:React 19 起步,旧项目和非 React 技术栈直接出局。二是还在 Beta,API 可能变动,上生产之前自己掂量。

我的建议:先去 Storybook 把 150 多个组件过一遍,看质量符不符合预期,再决定要不要引入。有 Discord 社区和贡献指南,协议看仓库的 LICENSE 文件。

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

这篇文章对你有帮助吗?

发表回复