# DCalc UI 统一迁移与实现标准 本文档用于在其他 Vue 项目中复用当前 `frontend-ui` 的组件库迁移方法。目标不是机械复制页面,而是在保持业务功能的前提下,统一交互底座、视觉语言、主题能力、响应式策略和验收流程。 ## 1. 标准目标 - 以现有业务实现为功能基线,允许调整业务代码以适配新的组件组合方式。 - 以 `design` 的组件结构、状态、动效、素材和交互为视觉事实来源。 - 使用 Reka UI 承担无障碍、键盘、焦点、受控状态和 Portal 等交互语义。 - 使用 Tailwind CSS 处理通用布局,关闭 Preflight,避免迁移期全局样式突变。 - 使用 CSS Variables 建立 DCalc Token 和语义 Token,组件只消费语义 Token。 - 使用 CSS/SCSS 实现游戏质感、像素素材、复杂渐变、边框和状态效果。 - 参考 shadcn-vue 的目录、组合、表单和 variants 规范,不要求引入整套默认视觉。 - 使用 Oxc 统一格式化和静态检查。 ## 2. 事实来源与优先级 发生冲突时按以下顺序判断: 1. 业务功能、数据边界和用户可完成的操作不能丢失。 2. `design` 中的组件结构、状态矩阵、动效和真实素材决定视觉结果。 3. Reka UI 的可访问性与交互语义决定组件的基础 DOM 和状态模型。 4. 组件 API、目录和组合方式遵循本标准。 5. 仅在不影响以上约束时使用通用 Tailwind 工具类简化布局。 不要以静态截图代替业务与交互核对。设计中未展示的状态仍需覆盖 hover、pressed、focus-visible、disabled、open/closed、checked/unchecked 和 reduced-motion。 ## 3. 推荐技术栈 | 层级 | 标准职责 | | ------------------------ | ----------------------------------------------------------- | | Vue 3 + TypeScript | 使用 Composition API、`