Commit Graph

3 Commits

Author SHA1 Message Date
d78f19fe9a fix(webui): 日历页面补上圆角(圆角要给到「有底色的那一层」)
用户(2026-09-14):「日历页面还没有添加圆角」。

根因不是「忘了写 border-radius」—— 外壳那条 `.app-shell > *` 是生效的,
它给日历**根节点**加了 14px 圆角。问题是根节点写着
`flex-1 min-w-0 flex min-h-0`、**自己完全没有底色**:
真正白底的是里面那两块面板(网格栏、右栏),它们的直角从透明外壳里戳出来。
所以 `getComputedStyle(根).borderRadius` 一直是 14px,看上去却全是方角。

两处不能照搬收件箱做法的地方:

① 网格栏与右栏**不是两张卡**(中间只有 1px 分隔线,没有外壳间距)
   ⇒ 只能给**外沿**:左边那块给左两角、右边那块给右两角。
   内侧也给会露出底色缺口。
② 右栏外面还套了一层容器(管 `lg:w-[400px]` 与 `border-l`,自己不上色),
   真正上色的是它里面的 DayAgendaPane / CalendarEventEditor
   ⇒ 圆角要**再往下给一层**,只加在容器上会被内层直角原地盖掉。
   (左栏本身就是白底面板,不能再往下给:它的第一个子元素是工具条。)

实测(1280×800,真浏览器读渲染像素):
  改前 左栏 radius=0px、右栏 radius=0px,四个外角都是白像素(方角)
  改后 左栏 `14px 0px 0px 14px`、右栏内层 `0px 14px 14px 0px`,
       四个外角像素都等于页面底色(被切掉);上边缘内缩 8px,
       与收件箱详情栏(对照)完全一致;内侧分隔线两侧保持直角。

判据:narrow-layout 新增 4 条 —— 钉的是「规则与 JSX 接没接上」「给的是哪几条边」
「右栏有没有再往下给一层」「左栏有没有多给一层」,不是那条 14px。
wide-regression 新增一条**渲染层**判据:从 `elementFromPoint` 沿祖先链找第一个
自带底色的元素,四个外角都必须正是那个圆角面板(光看 computed style 区分不了,
因为被盖掉的形态 computed 也照样是 14px)。

顺手修掉 wide-regression 里一条**假失败**:`#root > div` 现在指向壁纸幕布
(`app-backdrop` 后来挂成了 `#root` 的第一个子节点),于是「仍是三栏并排」
一直报「栏数=0」,而三栏好好的。假失败比没有判据更贵 —— 看的人会去查一个
本来没坏的东西。
2026-09-14 16:05:15 +08:00
7ef3ea7306 fix(webui): 宽屏也同步折叠策略 —— 头部与回复框默认收起(正文 48% → 90%)
用户(2026-09-14):「我发现宽屏布局也有邮件内容显示区域过小的问题,
宽屏也同步窄屏的折叠策略吧」。

上一版是「窄屏默认收起 / 宽屏恒展开」,理由是「宽屏横向空间够、不该引入多余
点击」。那条理由只看了**横向**:实测 1280x800 下详情栏里头部 139px(17%)、
回复框 246px(31%),留给正文的只剩 385px(48%)—— 竖向一样不够用。

改法:两种宽度用同一套默认值(收起),点标题行 / 悬浮球展开。
- CollapsibleHeader:useState(false),toggle 不再以 narrow 为条件,展开箭头常显;
- ReplyBar:收起态恒为悬浮球(原来只有窄屏才收),「收起」按钮宽窄都有,
  autoFocus 不再以 narrow 为条件;
- MailView 两个根节点补 relative —— 否则宽屏下 `absolute` 会一路找到视口,
  悬浮球会挂到窗口右下角而不是这块详情栏里。

实测(真浏览器量盒子,1280x800,同一封正文撑满的长信):
  头部 139 → 48px,回复框 246 → 0(收起为球),正文 385 → 722px(占视口 48% → 90%);
  点标题展开 / 点球开输入框(带焦点)/「收起」收回,三条都通。
窄屏 390x844 同项通过,横向溢出 0。

判据:narrow-layout 里三条旧判据钉的是「窄屏专属」,已改成钉「宽窄同一套」,
并新增两条(折叠分支里不得再有 `narrow &&`;悬浮球必须锚在详情栏内)。
wide-regression 补 6 条宽屏实测 —— 此前宽屏的折叠行为**一条判据都没有**,
这正是它坏掉而没人发现的原因。

已知遗留(另行报告,本次未改):窄屏上回复框展开后,第一次点它上面的按钮
(抄送 / 回复全部 / 收起)会被吞掉 —— 焦点离开 textarea 会让 .form-editing
失效、底部导航重新占位 71px,按钮在 mousedown 与 mouseup 之间从指针下移走,
click 目标退化成公共祖先。HEAD 上已存在,与本次改动无关。
2026-09-14 15:38:49 +08:00
f9d757b5e5 chore: directory migration - gateway→server, web→client/electron 2026-09-08 19:16:35 +08:00