diff --git a/01_content/src/client/styles.ts b/01_content/src/client/styles.ts index eb24cf1..d8c8992 100644 --- a/01_content/src/client/styles.ts +++ b/01_content/src/client/styles.ts @@ -213,13 +213,14 @@ export const css = [ '.dsh-wt_selectPh{color:var(--dsw-alias-label-tertiary,#6e7683)}', '.dsh-wt_selectCaret{flex:none;color:var(--dsw-alias-label-tertiary,#6e7683);font-size:10px;line-height:1}', '.dsh-wt_selectList{margin-top:4px;max-height:180px;overflow:auto;border:1px solid var(--dsw-alias-border-l2,#3a4150);border-radius:8px;background:var(--dsw-alias-bg-base,#0b0e14);padding:4px;box-shadow:var(--dsw-shadow-lv2,0 8px 24px rgba(0,0,0,.4))}', - '.dsh-wt_selectItem{display:flex;align-items:center;gap:6px;width:100%;padding:5px 8px;border:none;border-radius:5px;background:transparent;color:var(--dsw-alias-label-primary,#e6e8eb);font:inherit;font-size:12px;line-height:17px;cursor:pointer;text-align:left}', + '.dsh-wt_selectItem{display:flex;align-items:center;gap:6px;width:100%;padding:6px 8px;border:none;border-radius:5px;background:transparent;color:var(--dsw-alias-label-primary,#e6e8eb);font:inherit;font-size:12px;line-height:17px;cursor:pointer;text-align:left}', '.dsh-wt_selectItem:hover{background:var(--dsw-alias-fill-l1,rgba(255,255,255,.05))}', '.dsh-wt_selectItemOn{background:var(--dsw-alias-fill-l1,rgba(255,255,255,.06));color:var(--dsw-alias-state-accent-primary,#4f8ef7)}', '.dsh-wt_selectItemTitle{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}', '.dsh-wt_selectCurrent{flex:none;font-size:10px;color:var(--dsw-alias-label-tertiary,#6e7683)}', - '.dsh-wt_selectDivider{height:1px;background:var(--dsw-alias-border-l1,#262b36);margin:4px 2px}', - '.dsh-wt_selectGroup{display:flex;align-items:center;gap:5px;padding:2px 8px 1px;font-size:10px;letter-spacing:.04em;color:var(--dsw-alias-label-tertiary,#6e7683);user-select:none}', + '.dsh-wt_selectDivider{height:1px;background:var(--dsw-alias-border-l1,#262b36);margin:6px 2px}', + // 文件夹分组标题:与选项同字号、加粗、左侧蓝色竖条 + 微底色,明显区别于下方对话 + '.dsh-wt_selectGroup{display:flex;align-items:center;gap:6px;margin:2px 0 2px;padding:6px 8px;border-left:2px solid var(--dsw-alias-state-accent-primary,#4f8ef7);border-radius:4px;background:var(--dsw-alias-fill-l1,rgba(255,255,255,.04));font-size:12px;font-weight:600;letter-spacing:.02em;color:var(--dsw-alias-label-secondary,#9aa4b2);user-select:none}', '.dsh-wt_customSend{align-self:flex-end;padding:6px 14px;border:none;border-radius:6px;background:var(--dsw-alias-state-accent-primary,#4f8ef7);color:#fff;font:inherit;font-size:12px;cursor:pointer}', '.dsh-wt_customSend:disabled{opacity:.55;cursor:default}', '.dsh-wt_customFail{font-size:11px;color:var(--dsw-alias-state-danger,#e5484d);margin:0}', diff --git a/02_process/worklogs/2026-08-16_worktable-v2.md b/02_process/worklogs/2026-08-16_worktable-v2.md index 2f363a6..ca71d63 100644 --- a/02_process/worklogs/2026-08-16_worktable-v2.md +++ b/02_process/worklogs/2026-08-16_worktable-v2.md @@ -639,14 +639,11 @@ 原生视图内部是浏览器扩展页,插件注入不了按钮、拦不到鼠标,也驱动不了内部滚动—— 向用户如实说明后按指示回退);② 视图选项改名「设置」,点开直接内嵌「排序方式 + 管理项目 展开列表」,不再二次点击;③ 管理项目里给现有项目加「变更视图」:换预设拓扑, -## 补记(自制下拉列表:文件夹分组标题 + 细分隔线) +## 补记(文件夹分组标题视觉区分加强) -- 用户反馈:① 工作区文件夹名(Projects/DeepSeek Harness)在原生 optgroup 里看起来像对话项, - 需要明确区分是分组名;② 分隔符是白色大横线太丑,要很细的一条。 -- 处理:弃用原生 select/optgroup(无法美化),新写 SelectPop 自制下拉: - 组标题 = 📁 图标 + 小号暗色大写文字(不可点击、明显是文件夹名);组间 1px 细分隔线; - 选项可点选、当前会话带「(当前)」角标、选中项蓝色高亮;列表 max-height 内滚动。 - 项目下拉同样换用(顺带根治原生 option 配色问题)。修复过程中两次测试脚本语法损坏已恢复。 -- 验证(STEP20 重写断言):selectBtnCount=2、listOpen、groupHeaders=2、dividers=2、 - itemCount=13(子代理/archived 已排除)、currentBadge=1;全 20 STEP ERROR_COUNT: 0。 +- 用户反馈:文件夹名与下方对话区分度不够。 +- 处理:分组标题与选项同字号(12px)、加粗(600)、左侧 2px 蓝色竖条 + 微底色背景块, + 文字用次级灰(不用全蓝,避免怪感);行间距拉开(选项 padding 6px、分隔线 margin 6px)。 +- 验证(STEP20 断言):groupFontSize=12px、groupWeight=600、groupBorderLeft=2px; + 全 20 STEP ERROR_COUNT: 0。 - 备注:纯客户端改动,F5 即生效。 diff --git a/04_test/functional-diag.cjs b/04_test/functional-diag.cjs index c223252..0ca2be3 100644 --- a/04_test/functional-diag.cjs +++ b/04_test/functional-diag.cjs @@ -668,6 +668,10 @@ const sleep = (ms) => new Promise((r) => setTimeout(r, ms)); var list=[].slice.call(document.querySelectorAll('.dsh-wt_selectList')).find(function(el){return (getComputedStyle(el).visibility!=='hidden');}); out.listOpen=!!list; out.groupHeaders=list?list.querySelectorAll('.dsh-wt_selectGroup').length:0; + var gh=list?list.querySelector('.dsh-wt_selectGroup'):null; + out.groupFontSize=gh?getComputedStyle(gh).fontSize:null; + out.groupWeight=gh?getComputedStyle(gh).fontWeight:null; + out.groupBorderLeft=gh?getComputedStyle(gh).borderLeftWidth:null; out.dividers=list?list.querySelectorAll('.dsh-wt_selectDivider').length:0; out.itemCount=list?list.querySelectorAll('.dsh-wt_selectItem').length:0; out.currentBadge=list?list.querySelectorAll('.dsh-wt_selectCurrent').length:0;