Skip to content

UI Critique: New Features (Auth, Chat, Admin, Contact)

2026-04-10 — 针对新增的聊天系统、认证页面、Admin 后台、Contact 页面的设计审查

Design Health Score: 23/40

#HeuristicScoreKey Issue
1Visibility of System Status2聊天展开/收起无过渡动画,状态切换突兀
2Match System / Real World3
3User Control and Freedom3
4Consistency and Standards1Admin 全部硬编码颜色,与设计系统断裂
5Error Prevention2暗色模式下 form label 几乎不可见
6Recognition Rather Than Recall3
7Flexibility and Efficiency3
8Aesthetic and Minimalist Design1Contact 布局严重失衡,Admin 缺乏设计
9Error Recovery2无全局 toast 通知机制
10Help and Documentation3

What's Working

  1. 聊天气泡样式 — 圆角、时间戳、visitor/agent 颜色区分清晰,符合品牌温暖调性
  2. ChatSidebar 信息架构 — Profile → Saved Preferences → Send Profile 按钮层次清晰
  3. SaveButton — 与 CompareButton 风格一致,toggle 状态直观

Priority Issues

[P0] 暗色模式 form label 对比度严重不足

Contact、Login、Signup、Account 页面的 form label 使用 text-[var(--color-neutral-700)],暗色模式下映射到极暗的颜色,在深色背景上几乎不可见。

Fix:

  • 检查 globals.css--color-neutral-700 暗色映射值
  • label 统一改用 text-[var(--color-neutral-600)] 或确保暗色映射有足够亮度
  • 影响文件: contact/page.tsx, LoginForm.tsx, SignupForm.tsx, AccountForm.tsx, ForgotPasswordForm.tsx, UpdatePasswordForm.tsx

[P1] Contact 页面布局严重失衡

Live Chat 卡片内容极少(标题+描述+按钮),高度远小于右侧表单卡片。两栏等高排列导致左侧 3/4 空白。

Fix 方案:

  • 方案 A: 改为上下布局 — Live Chat 作为顶部醒目 banner(单行 CTA),表单在下方
  • 方案 B: 左侧填充更多内容 — 添加聊天优势列表(实时回复、多语言支持等)、在线状态指示、最近平均响应时间
  • 方案 C: 左侧卡片内容垂直居中 + 底部对齐按钮,不强制等高

影响文件: src/app/contact/page.tsx, src/app/contact/ChatLauncher.tsx

[P1] Admin 页面零设计系统适配

Admin layout 和 Admin chat 页面 100% 使用硬编码 Tailwind 颜色(bg-white, border-gray-200, bg-blue-600, text-gray-900),导致:

  • 暗色模式完全失效(永远白底)
  • 品牌色断裂(用蓝色而非 teal-navy)
  • 无衬线标题(缺少 font-serif
  • 像不同产品的后台

Fix:

bg-white            → bg-[var(--color-surface)]
border-gray-200     → border-[var(--color-neutral-200)]
text-gray-900       → text-[var(--color-neutral-900)]
text-gray-700       → text-[var(--color-neutral-700)]
text-gray-500       → text-[var(--color-neutral-500)]
text-gray-400       → text-[var(--color-neutral-400)]
hover:bg-gray-100   → hover:bg-[var(--color-neutral-100)]
hover:bg-gray-50    → hover:bg-[var(--color-neutral-50)]
bg-gray-50          → bg-[var(--color-neutral-50)]
bg-blue-50          → bg-[var(--color-primary)]/5
bg-blue-600         → bg-[var(--color-primary)]
hover:bg-blue-700   → hover:bg-[var(--color-primary-dark)]
focus:border-blue-400 → focus:border-[var(--color-primary-light)]
focus:ring-blue-400   → focus:ring-[var(--color-primary-light)]
bg-amber-100 text-amber-700 → bg-[var(--color-warning-bg)] text-[var(--color-warning)]
bg-green-100 text-green-700 → bg-[var(--color-success-bg)] text-[var(--color-success)]

影响文件: src/app/admin/(dashboard)/layout.tsx, src/app/admin/(dashboard)/chat/page.tsx

[P2] 聊天框展开/收起无动画

从 400x500 小窗口瞬间跳到全屏,视觉突兀。

Fix:

  • 使用 Framer Motion layout 动画或 CSS transition-[width,height,inset] duration-300 ease-out
  • 仅用 compositor 属性(transform, opacity)确保 60fps
  • 尊重 prefers-reduced-motion
  • 影响文件: src/components/chat/ChatWidget.tsx

[P2] Chat Sidebar Profile 区域高度问题

全屏聊天时 sidebar 高度应填满可用空间,但视觉上 profile 区域与页面不一致。

Fix:

  • 确保外层容器 flex flex-1 overflow-hidden 正确传递高度
  • Sidebar 使用 h-full 而非依赖内容撑开
  • 影响文件: src/components/chat/ChatSidebar.tsx, src/components/chat/ChatWidget.tsx

Minor Issues

  • Login/Signup 页面的标题用了 font-serif(正确),但 "Welcome back" 等文案可以更有温度
  • ChatHeader rounded-t-xl 展开时移除但无过渡
  • Account 页面新增 age/email 字段的 placeholder 风格不完全一致
  • Admin login 页面(/admin/login)也使用了硬编码颜色,需一并修复

Execution Order

  1. 暗色模式对比度 — 最紧急,影响可用性
  2. Contact 页面布局 — 用户第一印象
  3. Admin 设计系统适配 — 硬编码颜色全面替换
  4. 聊天动画 — 提升体感品质
  5. 最终 polish — 字体、间距、placeholder 一致性

WellChina 内部文档 · 基于 VitePress