diff --git a/internal/web/static/app.css b/internal/web/static/app.css index 13244c2..03a8af5 100644 --- a/internal/web/static/app.css +++ b/internal/web/static/app.css @@ -1333,3 +1333,73 @@ a:hover { color: var(--ink-green-3); } .heat-cell.h2 { background: rgba(47,163,122,.26); } .heat-cell.h3 { background: rgba(47,163,122,.40); } .heat-cell.h4 { background: rgba(47,163,122,.58); } + + +/* ---------- v1.9.3 fixes:布局与对比度 ---------- */ + +/* 日历头部:左右两组垂直居中 */ +.cal-head, .cal-toolbar, .month-nav { + display: flex; align-items: center; gap: 10px; + flex-wrap: wrap; min-height: 40px; +} +.cal-head h1, .month-nav h1, .month-nav b { margin: 0; line-height: 1.2; display: inline-flex; align-items: center; } +.cal-head .btn, .month-nav .btn, .cal-toolbar .btn { align-self: center; } + +/* 任务卡:正文与操作按钮分两列,按钮横排、不换行 */ +.task { + display: flex !important; align-items: flex-start; gap: 10px; + flex-wrap: nowrap; padding-block: 10px; +} +.task-main { flex: 1 1 auto; min-width: 0; display: flex; flex-direction: column; gap: 3px; } +.task-actions { flex: 0 0 auto; display: flex; align-items: center; gap: 6px; margin-left: auto; } +.task-actions form { display: inline-flex; margin: 0; } +.task-actions .btn, .task .btn { white-space: nowrap; padding-block: .2rem; } +.task-title { + color: var(--ink-ink) !important; font-weight: 650; text-decoration: none; + overflow: hidden; text-overflow: ellipsis; white-space: nowrap; +} +.task-title:hover { color: var(--ink-green-3) !important; } +.task-meta, .task-sub, .task-note, .task .muted { + color: var(--ink-muted) !important; font-size: .78rem; +} +.task.urgent .task-title { color: #f08a82 !important; } + +/* 标签/徽记:浅底深字,任何主题都读得清 */ +.tagchip, .chip, .pkg-tag, .tag { + display: inline-flex; align-items: center; gap: 4px; + padding: 1px 8px; border-radius: 999px; + background: rgba(47,163,122,.16) !important; + border: 1px solid rgba(47,163,122,.38) !important; + color: var(--ink-ink) !important; + font-size: .72rem; font-weight: 600; line-height: 1.7; +} +[data-theme="dark"] .tagchip, [data-theme="dark"] .chip, +[data-bs-theme="dark"] .tagchip, [data-bs-theme="dark"] .chip { + background: rgba(99,214,173,.18) !important; + border-color: rgba(99,214,173,.42) !important; + color: #d8f5e9 !important; +} +[data-theme="dark"] .tagchip, [data-bs-theme="dark"] .tagchip { color: #bfe9d8 !important; } + +/* 套餐表格行操作按钮 */ +.actions, .row-actions, td .actions { + display: flex; align-items: center; gap: 8px; flex-wrap: nowrap; +} +.actions form, .row-actions form { display: inline-flex; margin: 0; } +.actions .btn, .row-actions .btn, td .btn { white-space: nowrap; padding-block: .2rem; } + +/* 订阅卡动作行 */ +.subcard-foot { display: flex; align-items: center; gap: 8px; flex-wrap: wrap; } +.subcard-foot form { display: inline-flex; margin: 0; } + +/* 表格正文对比度 */ +.table td, .table td a, .table td strong { color: var(--ink-ink); } +.table td .muted, .table td small { color: var(--ink-muted) !important; } + +/* v1.9.3 对比度补丁 */ +.badge.text-bg-success { background: #1d7a58 !important; color: #f2fffa !important; } +.table thead th { color: #4f6a5e !important; } +[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; } \ No newline at end of file diff --git a/main.go b/main.go index 1b4ad7e..4ccc6de 100644 --- a/main.go +++ b/main.go @@ -26,7 +26,7 @@ import ( "daili/internal/web" ) -const version = "1.9.2" +const version = "1.9.3" func main() { cfgFlag := flag.String("config", "", "配置文件路径(默认:exe 同级的 "+config.FileName+")")