Skip to content

feat: UI 重做迁移到 Tailwind v4 + shadcn(zinc+蓝)#17

Open
rrbe wants to merge 10 commits into
masterfrom
feat/ui-redesign-tailwind-shadcn
Open

feat: UI 重做迁移到 Tailwind v4 + shadcn(zinc+蓝)#17
rrbe wants to merge 10 commits into
masterfrom
feat/ui-redesign-tailwind-shadcn

Conversation

@rrbe

@rrbe rrbe commented Jun 18, 2026

Copy link
Copy Markdown
Owner

这是什么

把 AMDM 的 UI 从「纯手写 CSS + Slate 石墨」重做为 Tailwind v4 + shadcn 风原语(基于 @base-ui/react)+ Zinc/蓝设计令牌,对标 Outerbase Studio 的现代数据库工具观感。亮 / 暗平等;数据 / 代码字体改 JetBrains Mono(OFL,可商用)。

主要变更

  • 地基:Tailwind v4(CSS-first,@tailwindcss/vite,过渡期只引 theme+utilities 层、不带 preflight)+ clsx/tailwind-merge/cn + class-variance-authority + @/ 别名。
  • 设计令牌:zinc 中性表面 + 单一蓝强调(亮暗各一档),新增字重/行高/字距令牌;@theme inline 把 shadcn 色名映射到语义令牌(我们的 --accent=品牌蓝→shadcn primary;shadcn accent=hover 底→--bg-3)。
  • 字体:Source Code Pro → JetBrains Mono,同步 pineEditorTheme.ts
  • 原语 shadcn 化:Button(cva)/Input/Select/Checkbox/Tabs/Field/NumberField/Modal,门面 API 不变、业务零改动。
  • 连接弹窗:完全 Tailwind 重做 + 加宽(lg=760);所有弹窗加宽(默认 md=660)+ footer .spacer 兼容。
  • 侧栏:目录树 / 分组头圆角药丸 hover。
  • 修复:亮色「白底白字」(theme-polish 通用元素规则收进 @layer base,避免压过 Tailwind 工具类);SSH 诊断硬编码 hex → 主题令牌(亮暗都正确)。
  • 清理 + 文档:删 ~250 行被取代的死 CSS;CLAUDE.md 样式约定段与 DESIGN.md 重写为新体系。

有意保留(已被令牌上色、观感一致,Tailwind 化收益低)

  • 右键菜单 .ctx-*、Toast .toast*、work-area 标签条 / Shell 工具栏 —— 仍是手写 CSS。
  • 结果区数据网格 —— 保持虚线(设计选择)。

校验

  • pnpm typecheck(node + web)+ pnpm build 全程绿。
  • 不可妥协铁律均保住:ADR-0004 虚拟化/worker、数据区自管选择、--t-*ejson.ts/CodeMirror 同步、不全大写、忙态按钮不改宽度、i18n 三语、Base UI 弹层 z 分层。

后续可选

ContextMenu / Toast / 工具栏的 Tailwind 化、排版令牌微调——可另起 PR。

rrbe added 10 commits June 18, 2026 23:27
- 接入 Tailwind v4(@tailwindcss/vite,CSS-first,过渡期只引 theme+utilities 层、不带 preflight);新增 clsx/tailwind-merge/cn + class-variance-authority + @/ 别名
- 设计令牌重建为 zinc + 蓝强调(亮暗平等),新增字重/行高/字距令牌;index.css 用 @theme inline 把 shadcn 色名映射到语义令牌
- 数据/代码字体换 JetBrains Mono(替换 Source Code Pro),同步 CodeMirror 主题
- 共享原语 shadcn 化:Button(cva)/Input/Select/Checkbox/Tabs/Field/Modal,门面 API 不变
- 连接弹窗做大做舒展(lg=760)+ 所有弹窗加宽(默认 md=660)+ footer .spacer 兼容
- 侧栏目录树/分组头圆角药丸 hover
- 修复亮色白底白字:theme-polish 通用元素规则收进 @layer base,避免压过 Tailwind 工具类
- base-ui.css 重写:删 .ui-select-*/.ui-check*/.field-err,只留 Dialog 定位/Menu/NumberField/Tooltip + .form-grid 子元素 margin 规则
- modals-forms.css 删 .modal* 盒子/.tabs/.test-result*/.swatch*/.url-action*/.color-swatch*(保留 .modal-backdrop/.form-row/.url-popup*/.toast* 等仍在用的)
- theme-polish.css 删死 .modal/.modal-header(保留 .modal-backdrop)
- Dialog.tsx 注释更新(不再引用 .modal 类)
约 250 行死规则;grep 确认零组件引用
- CLAUDE.md 样式约定段重写:Tailwind 接入、@layer base 兜底层叠、@theme inline 命名坑、混合迁移态、何时 Tailwind/全局/Module
- DESIGN.md 整篇重写为 Zinc+Blue 体系(旧 Slate 已废),保留功能铁律(数据区自管选择、--t-* 同步、忙态按钮、不全大写、亮暗平等)
- NumberField 对齐 ui/Input 观感(h-9 zinc inset + 外框聚焦环 + −/+ 步进),删死 .ui-number*
- From/To URL 副弹窗全 Tailwind(卡片/标题/等宽 textarea/错误条/footer);去 url-popup 类后用 z-[1101]! 压过 .ui-dialog 的 z-1001
- 删死 .url-popup*(modals-forms)+ .ui-dialog.url-popup(base-ui)
- DiagnoseResult/DiagnoseControl 的 #4ade80/#f87171/#9ca3af → var(--ok)/var(--err)/var(--fg-3),亮暗都正确
- 诊断区与 SSH 密钥/Browse 行的内联 style 改 Tailwind
- 查询 tab 改现代圆角药丸(透明非激活、激活升到内容面+软阴影);关闭/新建按钮显式清掉 border+bg,不再漏出 @layer base 的原生按钮方框
- db-select 压到 30px(覆盖表单档 h-9),适配 38px work-header
- Button 新增 size 变体(default h-8 / sm h-7);work-header 的构建/Save/Explain/Run/Stop 改 size=sm
side-section-more / sq-del / result-copy 等原生 <button> 未重置 border+bg,会漏出 @layer base 的默认按钮方框;补上 border:none + background:transparent + hover 反馈
- 两条 strip 现共用完全相同的声明:透明非激活(fg-2)、hover bg-2、激活升到 --bg-1 表面 + 蓝色 inset 顶 rule(margin-bottom:-1px 与下方 header 衔接);关闭按钮统一为无边框图标按钮
- 统一尺寸/间距:strip 32px、padding 6/8、tab padding 0 6 0 11、gap 2、close 18px、max-width 200
- 去掉结果 tab 的加粗与 query tab 的圆角药丸/软阴影分歧
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant