feat(web): SVG 图标集替换 Unicode —— tsk_3uhHOGU0qzj0

用 design/assets/icons/ 的 15 个双色 SVG 图标替换现网纯 Unicode 图标:

• 拷贝 design/assets/icons/*.svg → web/assets/icons/(15 个)
• app.js 顶部新增 ICONS 对象 + icon() 内联 helper
• index.html:徽章组(gate/ready/running/deps)、配置按钮(config)、
  同步按钮(sync)、搜索输入框(search + filter-search-wrap 包装)、
  清除筛选按钮(close)、「新建」/「新建任务」按钮(add)
  各区块头加语义图标:project/task/gate/running/flow
• app.js 模板字符串:⛓→deps、✕→close(任务行取消/预览关闭/归档关闭)、
  依赖等待标签、ap-reason→reason SVG、分支显示→git、事件项 ev-type→event
• style.css:新增 svg.icon 基础尺寸规则、filter-search-wrap 布局、
  各语义上下文 --icon-accent 注入(暗/浅主题均用 CSS 变量自动适配)、
  .ap-reason::before 移除 content:'↳' 改用 SVG
• 品牌字符保留不动:▍▮→·— 及状态 CSS 圆点

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
wangjia
2026-06-13 15:08:53 +08:00
parent f020e15137
commit 1c4a81b3f3
18 changed files with 100 additions and 30 deletions
+34 -3
View File
@@ -631,8 +631,8 @@ button.cplx-btn:hover { box-shadow: 0 0 8px rgba(216,228,212,.18); }
.ap-act-reject { color: var(--red); font-weight: 700; }
.ap-gate { color: var(--muted); }
.ap-time { color: var(--faint); font-size: 11px; margin-left: auto; }
.ap-reason { width: 100%; color: var(--amber); font-size: 12px; padding-left: 14px; }
.ap-reason::before { content: '↳ '; color: var(--faint); }
.ap-reason { width: 100%; color: var(--amber); font-size: 12px; display: flex; align-items: flex-start; gap: 5px; }
.ap-reason svg.icon { color: var(--faint); flex-shrink: 0; margin-top: 1px; }
.result-kv { font-size: 12px; display: grid; grid-template-columns: auto 1fr; gap: 3px 12px; }
.result-kv dt { color: var(--muted); }
@@ -657,7 +657,7 @@ button.cplx-btn:hover { box-shadow: 0 0 8px rgba(216,228,212,.18); }
border-radius: 1.5px;
}
.ev-head { display: flex; gap: 8px; align-items: baseline; }
.ev-type { font-weight: 600; color: var(--ev, var(--ink)); letter-spacing: .04em; }
.ev-type { font-weight: 600; color: var(--ev, var(--ink)); letter-spacing: .04em; display: inline-flex; align-items: center; gap: 4px; }
.ev-time { color: var(--faint); font-size: 10.5px; margin-left: auto; flex: none; }
.ev-detail { color: var(--muted); margin-top: 1px; word-break: break-word; }
.ev-empty { padding: 30px 0; color: var(--faint); text-align: center; border: none !important; }
@@ -827,6 +827,37 @@ li.ev-updated { --ev: var(--muted); }
.bdg-run:not(.zero) .bdg-ico { animation: pulse .9s infinite; }
.bdg.zero { color: var(--faint); border-color: var(--line-soft); animation: none; }
/* ── SVG 图标集(v1.1 双色调) ── */
svg.icon {
display: inline-block;
width: 1em;
height: 1em;
vertical-align: -0.15em;
flex-shrink: 0;
overflow: visible;
}
.sec-head svg.icon,
.side-head svg.icon { width: 14px; height: 14px; vertical-align: -3px; }
/* 搜索输入框带图标包装 */
.filter-search-wrap {
position: relative; display: inline-flex; align-items: center;
}
.filter-search-wrap svg.icon {
position: absolute; left: 8px; width: 12px; height: 12px;
color: var(--muted); pointer-events: none; vertical-align: 0;
}
.filter-search-wrap input { padding-left: 28px; }
/* ── 图标语义色(--icon-accent 注入,暗/浅主题自动继承 CSS 变量) ── */
/* gate 紫 */
#bdgGate, .gate-section, .gate-card { --icon-accent: var(--violet); }
/* ready / task / add / sync / config / search / git 绿 */
#bdgReady, #topActions, .cfg-sync-row, .filter-search-wrap,
.dep-item.ok, #taskSection .sec-head, .side-head { --icon-accent: var(--green); }
/* running / event / flow 青 */
#bdgRun, .agent-section, #eventPanel { --icon-accent: var(--cyan); }
/* deps / reason 琥珀 */
#bdgBlocked, .dep-item.wait, .t-deps-wait, .ap-reason { --icon-accent: var(--amber); }
/* ── 依赖可视化 ── */
.t-deps-wait {
flex: none; font-size: 10.5px; letter-spacing: .06em;