# 开发日志

- Issue：#157
- 里程碑：M14 编辑体验与亮点表达重构
- 分支：`fys-dev/feat-m14-issue-156-158-web-theme-drag-sort`
- 日期：2026-04-06

## 背景

公开简历页已经完成左侧侧栏与经历模块的主体重构，但技术栈、兴趣项、姓名权重和联系信息 hover 动效还有几处细节不够统一。用户希望这一轮把这些“已经可用，但还不够顺眼”的点继续收口。

## 本次目标

- 将工作经历与代表项目中的技术栈统一切到 HeroUI `Tag`。
- 优化兴趣项、姓名区与联系信息 hover 动效，让侧栏更轻、更聚焦。
- 修正饼图中心区的多余视觉元素，避免干扰技能图表阅读。

## 非目标

- 不改共享 schema，也不新增后台字段。
- 不调整项目链接的展示语义，仍保持 link / pill 风格。
- 不重做技能区三视图的信息架构。

## TDD / 测试设计

- 更新 `published-resume-shell` 相关测试，确认技术栈已按 `Tag` 渲染。
- 补兴趣项无 icon 时的渲染断言，确保不再出现占位圆圈。
- 保持技能图表与侧栏已有测试继续通过，避免细节收口引入结构回退。

## 实际改动

- 在工作经历与代表项目中引入 HeroUI `TagGroup` 组合，将 `technologies` 统一收成更轻的小号标签。
- 调整 `published-resume-hero`：
  - 姓名字号下调并保持居中；
  - 兴趣项无 icon 时改为 12px 的纯文字表现；
  - 联系信息 hover 改为从左到右的渐变扫过动画。
- 更新 `published-resume-skills-utils`，去掉饼图中心多余的小圆，仅保留更干净的中心文案区。
- 在 `apps/web/app/globals.css` 中同步补充 `item-tag`、纯文字兴趣项与联系信息过渡样式。

## Review 记录

- 改动只触达 web 展示层，没有影响 admin 编辑、发布接口和导出契约。
- 技术栈标签与项目链接继续分离处理，避免把“技术标签”和“外部链接”混成同一种交互组件。

## 自测结果

- `pnpm --filter @my-resume/web test` ✅
- `pnpm --filter @my-resume/web typecheck` ✅

## 遇到的问题

- HeroUI `Tag` 不是单个组件直接用的模式，需要配合 `TagGroup.Root / List / Tag.Root` 才能拿到完整样式与语义。
- 联系信息 hover 若直接上整块渐变，文字可读性会下降，最终改为偏克制的左到右扫光层。

## 可沉淀为教程/博客的点

- 在简历站里如何判断哪些信息适合 `Tag`，哪些应该保留为链接或正文。
- 侧栏 hover 动效如何做“有记忆点但不喧宾夺主”的轻量表达。

## 后续待办

- 继续收主题响应链路和后台删除按钮的视觉回归问题。
- 在 admin 侧补条目级拖拽排序，让发布顺序真正可控。
