用途:在 packages/web 中开发或修改 CDS Web React 组件时使用,提供组件实现规范。
主要能力与规范:
- 组件配置:在 packages/web/src/core/componentConfig.ts 中用 *BaseProps 注册组件,组件内使用 useComponentConfig 合并默认值;Provider 只提供默认值,本地 props 优先,不改变组件行为。
- 样式:使用 Linaria 零运行时 CSS,颜色、间距、字体等一律使用 CDS 主题 CSS 变量(如 --color-bgPrimary、--space-2、--borderRadius-400),以保证明暗与品牌主题切换生效。
- classNames 合并顺序:基础样式 → 条件样式 → 用户 className → classNames.root 覆盖。
- 响应式:断点为 phone 0-767px、tablet 768-1279px、desktop 1280px+,可用 Box 的响应式 prop。
- 覆盖能力:组件暴露 classNames、style、styles 对象 prop;style/styles 不应放在 *BaseProps 上,需用 useMemo 按默认样式 → style → styles[元素名] 顺序合并。
- 状态样式用 data-* 属性;复杂动画用 Framer Motion,简单过渡用 CSS transition。
- 无障碍:使用 ARIA 属性、键盘导航、描述性标签、aria-describedby、语义化 HTML,并遵循 WCAG 2.1 AA 对比度。
参考组件:Carousel(复合组件、命令式 handle、context)、Select(泛型、受控/非受控)、RollingNumber(动画配置、测量)。
限制:资料未提供安装命令、版本要求、测试与发布流程等细节。