Files
ystp/docs/ui.md

5.2 KiB
Raw Blame History

UI/UX 设计文档 - ImageForge

目标:做一个接近商用的体验(简单、可信、可解释),同时覆盖“网站压缩 + 开发者 API + 计费”三条主线。


1. 设计原则

  1. 一眼可用:首页即工具,不把用户“逼进登录”才能体验。
  2. 结果可信:清晰展示“压缩前后对比、节省多少、是否去除元数据、链接多久过期”。
  3. 开发者友好API Key、用量、示例代码和错误处理在控制台里一站式找到。
  4. 商用闭环:升级/取消/发票/支付状态明确,避免“扣费但不知道扣了什么”。

2. 信息架构(站点地图)

2.1 公共区域(无需登录)

  • / 首页(压缩工具)
  • /pricing 价格页套餐对比、FAQ
  • /docs 开发者文档入口API 概览、SDK、示例
  • /login /register
  • /terms /privacy

2.2 用户控制台(需要登录)

  • /dashboard 概览(当期用量、套餐、最近任务)
  • /dashboard/history 历史任务
  • /dashboard/api-keys API Key 管理 + 用量头说明
  • /dashboard/billing 订阅与发票
  • /dashboard/settings 账号设置(密码、删除账号等)

2.3 管理后台(管理员)

  • /admin 概览QPS、错误率、队列长度、订阅状态分布
  • /admin/users 用户管理(冻结、限流覆盖、赠送额度)
  • /admin/tasks 任务管理(取消/重试、失败原因)
  • /admin/billing 订阅/发票/支付事件Webhook排查
  • /admin/config 全局配置(开关、限流、文件限制、保留期默认)

3. 关键页面规格(线框级)

3.1 首页(压缩工具)

核心组件:

  • 顶栏Logo + /pricing /docs + 登录/注册(登录后显示头像菜单)
  • 上传区:拖拽 + 点击选择 + 限制提示(格式/大小/数量)
  • 参数区:压缩率(压缩后体积占比)、尺寸限制、元数据开关(输出格式保持原图)
  • 结果区:文件列表(缩略图、大小、节省%、状态、下载/重试)
  • 汇总区:总节省、下载 ZIP、清空
  • 信任区:隐私说明(默认去 EXIF、保留期说明、状态页/联系入口

交互要点:

  • 上传后立即生成本地缩略图与原始大小;压缩进度逐文件显示。
  • 默认提示“匿名试用:每日 10 次”,登录后提示“升级解锁更大额度/保留期”。

3.2 价格页Pricing

结构建议:

  • Hero一句话价值 + CTA开始压缩 / 查看 API
  • 套餐卡片Free / Pro / Business三列
  • 对比表:文件大小/批量上限/保留期/Webhook/团队
  • FAQ计量单位、超额策略、退款、隐私与保留

3.3 控制台概览Dashboard

上半区KPI 卡片):

  • 当期已用/剩余(进度条)
  • 节省流量累计(本周期/总计)
  • API 调用数(本周期)
  • 当前套餐与到期时间

下半区:

  • 最近任务列表(状态、文件数、节省、操作)
  • 升级提示(当剩余额度 < 20%

3.4 API Key 管理

列表字段:

  • 名称、前缀、权限、限流、最后使用时间/IP、状态启用/禁用)

创建/轮换:

  • 创建时弹窗展示一次完整 Key支持“一键复制”
  • 轮换说明:首期默认“立即轮换”(生成新 Key 并立即禁用旧 Key避免双 Key 过渡带来的复杂度

开发者引导:

  • 显示 curl 示例(调用 POST /compress/direct
  • 显示常见错误码(QUOTA_EXCEEDEDRATE_LIMITED与重试策略Idempotency-Key

3.5 订阅与发票Billing

模块:

  • 当前订阅套餐、周期、状态active/past_due、升级/取消按钮
  • 发票列表:编号、金额、状态、周期、下载/跳转支付provider
  • 支付方式入口:跳转客户 Portal如 Stripe portal

3.6 历史任务History

筛选:

  • 时间范围、状态、来源web/api、格式、压缩模式

列表:

  • 任务创建时间、文件数、节省、到期时间、下载 ZIP、删除隐私

4. 视觉与组件规范(建议)

4.1 设计风格

  • 清爽、留白、强调数据对比(节省% 是视觉重点)
  • 状态色:成功/警告/失败明确

4.2 主题变量(示例)

沿用 docs/frontend.md 的 CSS 变量,并补充:

  • --info--border--bg--text
  • 暗色模式V1+

4.3 组件清单(公共)

  • AppLayout / AuthLayout / AdminLayout
  • DropZoneFileCardOptionsPanel
  • UsageMeterPlanCardInvoiceTable
  • ToastModalSkeletonEmptyState

5. 关键文案(必须在 UI 中出现)

  • 元数据:默认提示“默认会移除 EXIF 等元数据(定位/设备信息)”
  • 保留期下载链接到期时间例如“24 小时后自动删除”)
  • 计量:说明“成功压缩 1 个文件计 1 次”
  • 错误:配额不足/限流时给出“如何解决”(登录/升级/稍后重试)

6. 可访问性与体验细节

  • 键盘可达:上传区、弹窗、按钮可 Tab 导航
  • 颜色对比:状态色满足可读性
  • 大文件/批量:明确“后台处理中,可关闭页面稍后回来”
  • 移动端:首页只保留必要参数,高级参数折叠