函式庫 / SDK
seek-oss/braid-design-system avatar
seek-oss/braid-design-system

Braid:以主题、Provider 和 Vanilla Extract 约束 SEEK 的 React 界面

SEEK Group 的主題設計系統。例如,如果要確保所有相關連結都是 React Router 連結: 本地開發 此專案使用 pnpm 進行開發依賴項。

1,571 個 Star98 個 ForkTypeScriptMIT

秒懂

它是什麼?
Braid 是面向 SEEK Group 的 TypeScript 设计系统,要求先导入 reset,再通過 `BraidProvider` 注入主题,并配合 sku 完成构建。
適合誰用?
适合已有 React 构建链、希望统一主题和组件行为的 SEEK 相关專案;不适合無法接入 Vanilla Extract 或 sku 的自定义打包環境。先在示例入口确认 reset 顺序、主题渲染和 `linkComponent` 行为,再处理生产构建中的断言剥离。
可以商用嗎?
可以。MIT 是寬鬆授權:你可以使用、修改並販售以它為基礎的軟體,只需保留著作權與授權聲明。
還在維護嗎?
有在維護。儲存庫最近一次提交在 1 天前。
用什麼語言寫的?
主要是 TypeScript(依據 GitHub 的語言統計)。

以上回答依據專案的 GitHub 資料(最近同步於 2026年9月15日)與我們的分析,不構成法律意見。

開源專案深度解析

面向 SEEK Group 的可主题化设计系统 · seek-oss-braid-design-system-deep-analysis

Braid 是用于 SEEK Group 的可主题化设计系统,以 TypeScript 编写,并以 MIT 许可發布。README 开篇将其描述为可主题化的设计系统,倉庫元資料确认了语言和授權。主页托管在 GitHub Pages 的 seek-oss.github.io/braid-design-system,但 README 本身并未列出可用的组件或主题,仅在示例中提到了 seekJobs 和 wireframe 主题。唯一明确说明的集成要求是 sku 构建工具,README 称其已設定为开箱即用地支持 Braid。自定义构建设置是可能的,但根据设置说明,需要專案贡献者提供额外指导。倉庫有 1571 个星标和 99 个分支,但 README 未讨论社区采用情况或維護状态。

本專案核對項目1請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目7請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

使用 sku 和 BraidProvider 进行设置 · seek-oss-braid-design-system-deep-analysis

README 记录的设置过程针对 sku 專案,并强调该指南是为 sku 优化的,因为 sku 开箱即用地支持 Braid。第一步是使用 npm install --save braid-design-system 安裝库。然后,在应用的非常顶部,必须先导入 reset 样式,README 警告 reset 必须放在最前面以避免 CSS 顺序问题。接着导入一个主题(如 seekJobs 或 wireframe)和 BraidProvider 组件。BraidProvider 接受 theme 属性和可选的 styleBody 属性;将 styleBody 设为 false 可在嵌入其他应用时取消 body 的背景颜色以及 margin 和 padding 重置。linkComponent 属性接受通過 makeLinkComponent 创建的自定义组件,可以将相对連結路由到 React Router 或其他库。README 展示了一个完整的 React Router 示例,包括 TypeScript 代码片段。

本專案核對項目2請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目8請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

使用 pnpm 进行本地開發 · seek-oss-braid-design-system-deep-analysis

開發依賴使用 pnpm 管理。README 指出,必须使用 pnpm 安裝以匹配 pnpm-lock.yaml,并列出了两个命令:pnpm install 和 pnpm start。要启动本地 Storybook 服务器,使用 pnpm storybook。README 沒有解释 pnpm start 除了作为启动命令之外的具体作用,也沒有提及任何替代的開發服务器或热重载设置。它也沒有描述如何執行測試或 lint。專案自身使用 pnpm 进行開發,但 README 未说明消费者是否需要 pnpm。

本專案核對項目3請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目9請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

使用 Vanilla Extract 进行样式编写 · seek-oss-braid-design-system-deep-analysis

Braid 的样式构建在 Vanilla Extract 之上,该工具允许在 TypeScript 中编写 CSS,并在构建时静态提取为可复用的原子 CSS 类。这需要一个打包器插件来收集提取的样式,可以注入到文档中或生成单独的样式表。README 指向 Vanilla Extract 的集成文档,并指出 SEEK 通過 sku 在构建过程中执行此提取。README 沒有提供独立的設定示例,因此自定义构建需要查阅連結的文档。它也沒有列出支持的 CSS 特性或主题的定义方式,仅提到导入主题对象。

本專案核對項目4請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目10請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

執行时断言与開發时警告 · seek-oss-braid-design-system-deep-analysis

Braid 使用 assert 库在執行时执行前置条件和不变性检查,以确保组件的正确使用。为避免这些检查出现在生产构建中,README 建议使用 unassert 在构建时剥离 assert 调用。SEEK 通過 sku 完成此操作,sku 使用 Babel 和 babel-plugin-unassert。Braid 还会根据 process.env.NODE_ENV 记录開發时和构建时警告,用于弃用等软性消息。README 建议将这些检查从生产包中剥离,并说明 sku 通過 webpack optimization 将 NODE_ENV 替换为字符串,从而使打包器在压缩过程中有机会移除死代码。README 沒有具体说明执行哪些断言或存在哪些警告,只描述了机制。

本專案核對項目5請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目11請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

授權与贡献路径 · seek-oss-braid-design-system-deep-analysis

该專案使用 MIT 许可,版权声明为 2018 SEEK。授權授予使用、复制、修改、合并、發布、分发、再许可和出售副本的权利,前提是保留版权声明。它按"原样"提供软件,不提供任何担保,并免除责任。对于贡献者,README 指向 CONTRIBUTING.md,但未提供该文档的任何细节。它还感谢 Chromatic 提供由 Storybook 驱动的组件截图測試。README 沒有提及行为准则、问题模板或除連結之外的贡献指南。授權本身不涉及安全支持、維護或贡献期望。

Braid 的整合測試應在 sku 專案中執行 npm install --save braid-design-system,並在應用程式最頂端先匯入 braid-design-system/reset。接著載入 seekJobs theme 和 BraidProvider,確認 Text 的樣式及 body reset;嵌入既有應用程式時,再測試 styleBody={false}。若自訂 React Router 連結,依 README 使用 makeLinkComponent,最後檢查 Vanilla Extract 的 CSS 萃取,以及 production 建置是否移除 assert 和 NODE_ENV 警告。

這個判斷必須落在專案本身的可觀察行為。請保留 README 使用的命令、檔案名稱、設定鍵與版本標籤,建立只包含必要輸入的測試目錄,逐項記錄標準輸出、錯誤輸出、產物位置和退出狀態。再改變一個明確條件,觀察結果是否符合文件描述。README 沒有明列的效能、相容性、備份或安全承諾,應以未知處理。升級時對照 release tag 和 lock 檔,重新執行相同測試。本篇第6節專屬核對記錄。

本專案核對項目6請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

本專案核對項目12請依 README 的命令、檔案路徑與版本標籤保存輸出,並以專案名稱標記差異;文件未說明的行為仍視為未知。

編輯結論

适合已有 React 构建链、希望统一主题和组件行为的 SEEK 相关專案;不适合無法接入 Vanilla Extract 或 sku 的自定义打包環境。先在示例入口确认 reset 顺序、主题渲染和 `linkComponent` 行为,再处理生产构建中的断言剥离。 Braid 的整合測試應在 sku 專案中執行 npm install --save braid-design-system,並在應用程式最頂端先匯入 braid-design-system/reset。接著載入 seekJobs theme 和 BraidProvider,確認 Text 的樣式及 body reset;嵌入既有應用程式時,再測試 styleBody={false}。若自訂 React Router 連結,依 README 使用 makeLinkComponent,最後檢查 Vanilla Extract 的 CSS 萃取,以及 production 建置是否移除 assert 和 NODE_ENV 警告。 這個判斷必須落在專案本身的可觀察行為。請保留 README 使用的命令、檔案名稱、設定鍵與版本標籤,建立只包含必要輸入的測試目錄,逐項記錄標準輸出、錯誤輸出、產物位置和退出狀態。再改變一個明確條件,例如輸入格式、裝置版本、主題或依賴版本,觀察結果是否符合文件描述。這能分開文件已承諾的功能與尚未說明的邊界。若測試涉及個人資料、網路服務或真實帳務,先替換成假資料,並確認暫存檔和日誌是否留下敏感內容。README 沒有明列的效能、相容性、備份或安全承諾,應以未知處理,不能用社群熱度或一次成功結果補足。升級時對照 release tag 和 lock 檔,重新執行相同測試,將差異交給維護者或 issue 追蹤。 本專案專屬核對項目1請依 README 的命令與檔案路徑保存輸出,並以版本標籤記錄差異,未說明的行為仍視為未知。 本專案專屬核對項目2請依 README 的命令與檔案路徑保存輸出,並以版本標籤記錄差異,未說明的行為仍視為未知。

官方來源

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
社群筆記

社群筆記