facebook/astryx
GitHub: facebook/astryx
Astryx 是 Meta 开源的、高度可定制且面向 AI 协作的设计系统,提供 150 余个无障碍 React 组件和多套主题,解决大规模产品界面统一性与深度定制之间的矛盾。
Stars: 9012 | Forks: 748
# Astryx
一个完全可定制的开源设计系统,专为当下的开发方式而构建 —— 由人类及与他们并肩工作的 agent 共同驱动。
## 概述
Astryx 是一个开源设计系统,在过去八年中于 Meta 内部孕育成长,并已成为该公司内使用最广泛、规模最大的设计系统 —— 支持 13,000 多个应用,并由每天依赖它的工程师、设计师和产品团队共同塑造。
它作为一个完整的系统,提供了 150 多个无障碍组件、品牌级主题、深色模式、即用模板和 CLI。你可以导入预构建的 CSS 并使用带有类型定义的 React 组件 —— 无需 build 插件,也无需引入样式库 —— 人类和 AI 助手可以使用同一套工具进行构建。
**Astryx 的独特之处:**
- **开放的内部实现。** 组件在各个层级都可组合,而不是被锁定在封闭的顶层 API 之后。你会用到的基础构建块被直接导出,当你需要深入时,swizzle 会将组件的完整源码提取到你的项目中,交由你完全掌控。
- **无样式锁定。** Astryx 使用 StyleX 编写样式,但这对于使用者是透明的。你可以使用 Tailwind、CSS modules 或原生 CSS 通过 `className` 进行覆盖 —— 无论你的项目已经在使用什么。
- **无需包装即可自定义。** 主题本质上是一组 CSS 自定义属性的覆盖集合,因此设计师可以打造出极具辨识度的专属 Astryx,而无需 fork 或包装组件源码。
- **专为人类和 agent 打造。** API、文档和 CLI 是一体化设计的,因此人类和 AI 助手能够基于相同的参考标准,以同样的方式进行构建。
## 快速开始
安装 Astryx 和主题:
```
# npm
npm install @astryxdesign/core @astryxdesign/theme-neutral
npm install -D @astryxdesign/cli
# pnpm
pnpm add @astryxdesign/core @astryxdesign/theme-neutral
pnpm add -D @astryxdesign/cli
# yarn
yarn add @astryxdesign/core @astryxdesign/theme-neutral
yarn add -D @astryxdesign/cli
```
最简单的设置只需几行 CSS 导入加上一个 theme provider —— 不需要 build 插件,也不需要 PostCSS 或 Babel 配置。请参阅 **[@astryxdesign/core README](packages/core/README.md#quick-start)** 获取完整指南(涵盖 Next.js、Tailwind、Vite 和 CDN)。
为了确保可靠地访问 CLI,请在你的 `package.json` 中添加一个脚本:
```
"scripts": {
"astryx": "node node_modules/@astryxdesign/cli/bin/astryx.mjs"
}
```
然后使用 `npm run astryx -- component --list` 来运行。这可以避免 AI 助手或新开发者直接调用 CLI 时出现路径错误。
## 包
| 包 | 描述 | README |
| ------------------------------------------ | ---------------------------------------------------------------------------------------------------- | ---------------------------------- |
| [`@astryxdesign/core`](packages/core) | 组件、主题系统和实用工具 | [README](packages/core/README.md) |
| [`@astryxdesign/cli`](packages/cli) | CLI 工具:组件文档、模板、脚手架、主题和 codemods | [README](packages/cli/README.md) |
| [`@astryxdesign/build`](packages/build) | 用于 StyleX 源码构建的 build 插件 | [README](packages/build/README.md) |
| [`@astryxdesign/theme-*`](packages/themes) | 七款即用型、完全可定制的主题 (neutral, butter, chocolate, matcha, stone, gothic, y2k) | [README](packages/themes) |
## 设计原则
这些是 Astryx 向基于它进行构建的人们作出的承诺。
- **引导而非强制。** 组件为你提供的是能力,而不是束缚你的护栏。设计主张存在于文档和示例中 —— 只要你传入一个值,组件就会渲染它。
- **强大且有据可查的规范。** 每个组件都遵循相同的命名、prop 和组合规则,并且每一个都有详尽的文档说明 —— 因此,一旦你了解了其中几个,其余的也会让你感到熟悉;无论是人还是 AI,都能预测未知组件的行为。
- **服务于人类和 AI 的统一系统。** API、规范、文档和 CLI 是一体化设计的,因此人类和 AI 助手可以使用相同的方式进行构建。每一次让 Astryx 更易于 AI 使用的改进,也同样让人类受益。
- **基于实测验证。** 我们对规范进行测试而非凭空断言,不拘泥于既定结果,并在新场景证明其有误时重新审视。
## 架构
### 基础
用于构建视觉统一且无障碍界面的基础构建块:排版、颜色、布局和无障碍支持。
### 组件
包含 150 多个可复用 UI 构建块的库,提供完整的 TypeScript 支持。
### 模式
针对常见交互和工作流久经考验的设计解决方案:表格页面、详情页布局、表单向导、导航模式以及数据录入流程。
## 项目结构
| 目录 | 用途 |
| ----------- | ----------------------------------------------------------- |
| `apps/` | 示例应用、文档站点和 Storybook |
| `packages/` | 发布的包:core、cli、build、themes |
| `internal/` | 内部工具:测试实用程序、eslint 插件、vibe 测试 |
## 许可证
MIT
标签:AI辅助开发, CSS样式, MITM代理, React组件, UI组件库, 文档结构分析, 自动化攻击, 设计系统