Files
sankey/FRONTEND_GUIDELINES.md
2026-02-13 08:42:56 +08:00

3.1 KiB
Raw Blame History

FRONTEND_GUIDELINES.md

1. 目的

定义 Web 与小程序端 UI 的统一视觉与交互规范,避免样式漂移。

关联文档:

  • PRD.md
  • APP_FLOW.md

2. 设计基线

  • 设计来源Figma 对应节点Web 与小程序骨架)
  • 风格关键词:工具化、轻量、高密度信息、低装饰
  • 基础布局:顶部工具栏 + 左侧映射面板 + 右侧预览面板

3. 设计令牌Web

3.1 颜色变量(src/styles.css

  • --primary-7: #8552A1
  • --primary-6: #9B6BC2
  • --fill-1: #F7F8FA
  • --fill-3: #E5E6EB
  • --fill-4: #C9CDD4
  • --text-1: #FFFFFF
  • --text-3: #86909C
  • --text-4: #4E5969
  • --danger-3: #FBACA3

3.2 字体

  • 主字体变量:--font-pingfang
  • 字体栈:PingFang SC, Hiragino Sans GB, Microsoft YaHei, sans-serif
  • 默认字号12 / 14 / 16 / 18 / 20 / 24 / 28

3.3 圆角

  • 工具类组件:4px6px8px
  • 主卡片:16px
  • 主题弹窗:24px 24px 0 0
  • 胶囊控件:999px

3.4 间距尺度

建议仅使用以下值(已在现有样式大量出现):

  • 2, 4, 6, 8, 10, 12, 16, 18, 24

4. 主题系统

  • 主题源:src/theme-presets.ts
  • 每个主题包含:id + name + 10色数组
  • 默认主题:figma-violet
  • 主题应用范围Sankey 节点颜色轮换

5. 组件规范Web

5.1 顶部工具栏

  • 包含Logo、主题选择、上传入口、导出入口
  • 上传区需支持点击与拖拽
  • 导出区固定显示 SVG/PNG 两个动作按钮

5.2 左侧映射面板

  • 分组:源数据目标数据
  • 子块:
    • 源数据-数据列(单选)
    • 源数据-描述列(多选)
    • 目标数据-描述列(多选)
    • 目标总和显示开关(复选)
  • 每个子块支持展开/折叠
  • 行高基线:32px

5.3 预览面板

  • 标题:桑基图预览
  • 控件:gappadding 滑块 + 方向开关
  • 图表容器最小高度:
    • 桌面:480px
    • 中屏:360px
  • 告警与错误文本必须显示在图表区域外,避免遮挡图

5.4 主题弹窗

  • 定位:fixed
  • 需要视口边界钳制
  • 点击外部自动关闭
  • 选中项透明度 100%,非选中项按距离降低

6. 响应式规则

  • 断点 Amax-width: 1024px
    • 顶栏竖排
    • 主区从双栏改为单栏
    • 左侧卡片支持换行
  • 断点 Bmax-width: 640px
    • 页面内边距缩小
    • Logo、标题、标题文字按移动端尺寸缩放

7. 图表视觉规则

  • 背景色:#f7f8fa
  • 节点宽度:14
  • 连线:color='source', curveness=0.45, opacity=0.45
  • 标签字体大小:12

8. 图标与资源

  • 图标目录:assets/icons/
  • Web 与 miniapp 共用同一套图标资源命名
  • 禁止在组件中硬编码新的图标路径

9. 可访问性与可读性

  • 关键图标必须有 alt 文本
  • 错误文本颜色与普通文本明显区分
  • 文本截断区域需保留可读主体(列名优先显示前缀)

10. 小程序样式约束(当前)

  • 仅用于骨架视觉对齐,不作为完整功能规范
  • 维持与 Web 一致的色板、图标命名和信息分区

11. 变更规则

任何新增组件或样式改动,必须同步更新本文件对应条目。