Compare commits

..
4 Commits
Author SHA1 Message Date
subtrack d76c5e3a54 fix(v1.9.5): 大屏浅色主题配色修复(标签/KPI/热力/TOP/待打)
build / build-and-test (push) Successful in 3m53s
- 大屏原为纯深色设计,浅色主题下沿用深色文字变量导致浅字贴白底
- 为浅色主题补齐 .scr 的 --bg/--surface/--line/--muted/--ink 变量,并显式覆盖:标签页、热力格日期与计数、KPI 标签与单位、TOP 榜与今日待打、页脚与说明
- 选中标签保持墨绿渐变白字,其它标签白底深字带描边
- 仍为 v1.9.5,仅前端样式
2026-10-20 01:08:14 +08:00
subtrack 3eb7d32fa9 fix(v1.9.5): 大屏热力日历格子错位与数字反色
- 根因:重构时 --ink-2 由「文字色」变成「背景色」,热力格数字取到深色背景色;同时 aspect-ratio + 内容宽度导致列宽不均、右侧被裁
- 热力网格强制 repeat(7, minmax(0,1fr)),单元格 width:100%、min-width:0、min-height:34px,去掉 aspect-ratio
- 格子内日期/计数/说明统一高对比文字,计数用亮绿加粗
- 非本月日期透明度从 .28 提到 .45,历史日期 .66→.75,避免整格发黑
- 仍为 v1.9.5,仅前端样式
2026-10-20 01:03:40 +08:00
subtrack a89018c19b fix(v1.9.5): 表格操作列不再撑高行、去掉行间空隙
- .actions 改 inline-flex、去换行、垂直居中,按钮统一内边距与行高
- 表格单元格统一上下内边距,操作列 nowrap,避免按钮撑出多余高度
- 仍为 v1.9.5,仅前端样式
2026-10-20 01:01:15 +08:00
subtrack 36e702977f fix(v1.9.5): 修复 asg/ticket/summary 文字在暗色变深、亮色变浅
- 根因:v1.9.2 重构时新增的 --ink-2 等色板变量与旧样式里的同名文字变量冲突,导致打手条、票签、订阅摘要继承到背景色当作文字色
- 为 .asg / .ticket / .summary 及其子元素显式指定文字色:亮色用 --ink-ink,暗色用 #dff5ea
- 到期状态单独取值:正常绿、临期橙、逾期红,暗色下同步提亮
- 版本 1.9.4 → 1.9.5;仅前端样式
2026-10-20 00:58:57 +08:00
3 changed files with 127 additions and 3 deletions
+40 -1
View File
@@ -1402,4 +1402,43 @@ a:hover { color: var(--ink-green-3); }
[data-bs-theme="dark"] .table thead th, [data-theme="dark"] .table thead th { color: var(--ink-muted) !important; }
.task-meta, .task-sub, .task-note { color: #55705f !important; }
[data-bs-theme="dark"] .task-meta, [data-theme="dark"] .task-meta,
[data-bs-theme="dark"] .task-sub, [data-theme="dark"] .task-sub { color: #9dbbac !important; }
[data-bs-theme="dark"] .task-sub, [data-theme="dark"] .task-sub { color: #9dbbac !important; }
/* ---------- v1.9.5:修复 asg / ticket / summary 文字反色 ---------- */
.asg, .asg-name, .asg b, .asg span,
.ticket, .ticket b, .ticket span, .ticket em,
.summary, .summary b, .summary span, .summary em,
.summary .due, .summary .due-ok, .summary .due-soon {
color: var(--ink-ink) !important;
}
.asg i, .asg .dot { border-color: var(--ink-line) !important; }
.summary .due-ok { color: var(--bs-success) !important; font-weight: 700; }
.summary .due-soon { color: #b8792a !important; }
.summary .due-late { color: #c4453d !important; }
.ticket { background: var(--ink-grad-soft) !important; border: 1px solid var(--ink-line); }
[data-theme="dark"] .asg, [data-theme="dark"] .asg-name, [data-theme="dark"] .asg b, [data-theme="dark"] .asg span,
[data-theme="dark"] .ticket, [data-theme="dark"] .ticket b, [data-theme="dark"] .ticket span, [data-theme="dark"] .ticket em,
[data-theme="dark"] .summary, [data-theme="dark"] .summary b, [data-theme="dark"] .summary span, [data-theme="dark"] .summary em,
[data-bs-theme="dark"] .asg, [data-bs-theme="dark"] .asg-name, [data-bs-theme="dark"] .asg b, [data-bs-theme="dark"] .asg span,
[data-bs-theme="dark"] .ticket, [data-bs-theme="dark"] .ticket b, [data-bs-theme="dark"] .ticket span, [data-bs-theme="dark"] .ticket em,
[data-bs-theme="dark"] .summary, [data-bs-theme="dark"] .summary b, [data-bs-theme="dark"] .summary span, [data-bs-theme="dark"] .summary em {
color: #dff5ea !important;
}
[data-theme="dark"] .summary .due-ok, [data-bs-theme="dark"] .summary .due-ok { color: #63d6ad !important; }
/* ---------- v1.9.5:表格操作列高度与行高对齐 ---------- */
.table > tbody > tr > td { padding-block: .55rem; vertical-align: middle; }
.table td .actions, td .actions, .actions {
display: inline-flex !important;
align-items: center;
gap: 6px;
flex-wrap: nowrap;
vertical-align: middle;
line-height: 1;
}
.actions > * , .actions .btn, .actions a, .actions form { margin: 0 !important; }
.actions .btn, td .actions .btn {
padding: .18rem .55rem;
line-height: 1.35;
font-size: .8rem;
vertical-align: middle;
}
.table td:last-child { white-space: nowrap; }
+86 -1
View File
@@ -436,4 +436,89 @@ body::before {
.kpi b, .kpi strong { color: #eafff6 !important; }
.heat-cell.h1 { color: #dff5ea; }
/* v1.9.4:非本月日期再提亮一档 */
.heat-cell.out, .scr-cal .out { color: #a9c3b6 !important; opacity: .85; }
.heat-cell.out, .scr-cal .out { color: #a9c3b6 !important; opacity: .85; }
/* v1.9.5:热力日历对齐修复 + 文字反色 */
.panel-head { position: relative; z-index: 2; }
.heat-grid { overflow: hidden; min-width: 0; }
.heat-dow, .heat-row {
display: grid !important;
grid-template-columns: repeat(7, minmax(0, 1fr)) !important;
grid-auto-flow: row;
gap: 4px;
width: 100%;
min-width: 0;
}
.heat-row { align-items: stretch; }
.heat-cell {
width: 100% !important;
min-width: 0;
aspect-ratio: auto !important;
min-height: 34px;
padding: 2px 6px;
overflow: hidden;
}
.heat-cell span, .heat-cell b, .heat-cell em {
color: var(--ink-ink) !important;
font-family: "Bahnschrift", monospace;
white-space: nowrap;
}
.heat-cell b { color: #63d6ad !important; font-weight: 700; }
.heat-cell.out { opacity: .45 !important; }
.heat-cell.past { opacity: .75 !important; }
.heat-legend { margin-top: 6px; color: var(--muted); }
/* ---------- v1.9.5:大屏浅色主题配色修复 ---------- */
:root[data-theme="light"] .scr,
:root[data-bs-theme="light"] .scr {
--bg: #f2f7f4;
--surface: #ffffff;
--surface-2: #eaf1ed;
--line: #d7e3dc;
--line-2: #c6d8cf;
--muted: #55705f;
--ink: #0f241d;
--ink-2: #27453a;
--accent: #16543f;
--accent-2: #1d7a58;
color: #0f241d;
}
:root[data-theme="light"] .scr a,
:root[data-bs-theme="light"] .scr a { color: #16543f; }
:root[data-theme="light"] .scr em,
:root[data-theme="light"] .scr small,
:root[data-theme="light"] .scr .sub,
:root[data-theme="light"] .scr .meta,
:root[data-theme="light"] .scr .unit,
:root[data-theme="light"] .scr .panel-sub,
:root[data-theme="light"] .scr .scr-links,
:root[data-theme="light"] .scr .scr-foot { color: #55705f !important; }
:root[data-theme="light"] .scr-tags a,
:root[data-theme="light"] .scr-tabs a,
:root[data-theme="light"] .scr-switch,
:root[data-theme="light"] .scr-head .sub { color: #27453a !important; background: #ffffff; border: 1px solid #d7e3dc; }
:root[data-theme="light"] .scr-tags a.on,
:root[data-theme="light"] .scr-tabs a.on { color: #ffffff !important; background: linear-gradient(135deg,#16543f,#2fa37a); border-color: transparent; }
:root[data-theme="light"] .kpi,
:root[data-theme="light"] .kpi b,
:root[data-theme="light"] .kpi strong,
:root[data-theme="light"] .kpi small,
:root[data-theme="light"] .kpi .unit { color: #0f241d !important; }
:root[data-theme="light"] .kpi b,
:root[data-theme="light"] .kpi strong { color: #16543f !important; }
:root[data-theme="light"] .heat-cell,
:root[data-theme="light"] .heat-cell span,
:root[data-theme="light"] .heat-cell b { color: #0f241d !important; }
:root[data-theme="light"] .heat-cell b { color: #16543f !important; }
:root[data-theme="light"] .heat-cell.out { opacity: .55 !important; }
:root[data-theme="light"] .heat-cell .note,
:root[data-theme="light"] .heat-legend { color: #55705f !important; }
:root[data-theme="light"] .top-item,
:root[data-theme="light"] .top-item span,
:root[data-theme="light"] .top-item b,
:root[data-theme="light"] .due-item,
:root[data-theme="light"] .today-item { color: #0f241d !important; }
:root[data-theme="light"] .top-item .pkg-tag,
:root[data-theme="light"] .top-item em,
:root[data-theme="light"] .today-item em { color: #1d7a58 !important; }
:root[data-theme="light"] .panel-head h2 { color: #0f241d; }
:root[data-theme="light"] .heat-dow span { color: #55705f !important; }
:root[data-theme="light"] .scr-note { color: #55705f !important; }
+1 -1
View File
@@ -26,7 +26,7 @@ import (
"daili/internal/web"
)
const version = "1.9.4"
const version = "1.9.5"
func main() {
cfgFlag := flag.String("config", "", "配置文件路径(默认:exe 同级的 "+config.FileName+")")