> starmerx/engineering
[github]
← cd ../open-source
[开源] · · TypeScript · Apache-2.0

fe-stylekit

公司内部前端组件库的精简开源版。Headless、无样式、可复制粘贴。

我们要的不是组件库,是一组可复制的模式

这是什么

一组 headless 组件 / hooks / utilities。从我们内部业务代码里抽出来的、和业务完全无关的部分。

不是 Material UI,不是 Ant Design。没有样式,没有主题——只有行为和 a11y。

包含什么

  • <Combobox> / <Autocomplete> —— WAI-ARIA 1.2 combobox pattern
  • <Dialog> / <Sheet> —— modal with focus trap
  • useDebouncedValue / useThrottledCallback
  • fetchJSON —— 带 retry / timeout / 类型推断
  • cn(...) —— className 合并

我们为什么开源这版

内部组件库和我们业务耦合太深(用的设计 token 全部是内部的)。这版是剥掉业务依赖后的最小组件集,对其他公司也有用。

不包含什么

  • 任何视觉样式
  • 表单校验(用 zod / yup 各取所需)
  • 路由(不在这一层)

设计原则

  1. Headless first。不绑定样式系统
  2. A11y 默认正确。键盘 + 屏幕阅读器可用
  3. 可单独 import。tree-shakable
  4. 零运行时依赖(除了 React 本身)