diff --git a/webui/src/components/ab-container.vue b/webui/src/components/ab-container.vue index 68c89c14..0b369c3c 100644 --- a/webui/src/components/ab-container.vue +++ b/webui/src/components/ab-container.vue @@ -46,6 +46,8 @@ withDefaults( .container-title { font-size: 15px; font-weight: 600; + // 卡片标题不应比正文更浅(层级倒挂),用主文本色,靠字重区分 + color: var(--color-text); } .container-body { diff --git a/webui/src/components/calendar/calendar-card.vue b/webui/src/components/calendar/calendar-card.vue index c252d25e..d44b4b85 100644 --- a/webui/src/components/calendar/calendar-card.vue +++ b/webui/src/components/calendar/calendar-card.vue @@ -41,6 +41,9 @@ const posterSrc = computed(() => />
+ + {{ group.primary.official_title }} +
@@ -141,13 +144,29 @@ const posterSrc = computed(() => width: 100%; height: 100%; display: flex; + flex-direction: column; align-items: center; justify-content: center; + gap: 6px; + padding: 8px; background: var(--color-surface-hover); color: var(--color-text-muted); transition: background-color var(--transition-normal); } +// 无海报时在卡片上直接显示标题,否则卡片只剩一个灰色占位块 +.calendar-card-placeholder-title { + font-size: 11px; + font-weight: 500; + line-height: 1.35; + color: var(--color-text-secondary); + text-align: center; + overflow: hidden; + display: -webkit-box; + -webkit-box-orient: vertical; + -webkit-line-clamp: 4; +} + .calendar-card-overlay { position: absolute; inset: 0; diff --git a/webui/src/components/setup/wizard-container.vue b/webui/src/components/setup/wizard-container.vue index 995ea7cb..6a321cc4 100644 --- a/webui/src/components/setup/wizard-container.vue +++ b/webui/src/components/setup/wizard-container.vue @@ -11,9 +11,10 @@ const { t } = useMyI18n();
+
@@ -51,10 +52,16 @@ const { t } = useMyI18n(); } .wizard-progress-fill { + width: 100%; height: 100%; background: var(--color-primary); border-radius: 2px; - transition: width 0.3s ease; + transform-origin: left; + transition: transform 0.3s ease-out; + + @media (prefers-reduced-motion: reduce) { + transition: none; + } } .wizard-step-indicator { diff --git a/webui/src/components/setup/wizard-step-welcome.vue b/webui/src/components/setup/wizard-step-welcome.vue index e848d1ec..b4495ed7 100644 --- a/webui/src/components/setup/wizard-step-welcome.vue +++ b/webui/src/components/setup/wizard-step-welcome.vue @@ -39,8 +39,10 @@ const setupStore = useSetupStore(); } .welcome-description { - font-size: 12px; - color: var(--color-text-muted); + font-size: 13px; + line-height: 1.6; + // muted (#94A3B8) 在白底上不足 AA 对比度,正文用 secondary + color: var(--color-text-secondary); margin: 0; } diff --git a/webui/src/pages/index/downloader.vue b/webui/src/pages/index/downloader.vue index 471f6b73..6d144a47 100644 --- a/webui/src/pages/index/downloader.vue +++ b/webui/src/pages/index/downloader.vue @@ -128,7 +128,6 @@ const tableColumnsValue = computed>(() => [ ); @@ -179,7 +178,7 @@ const tableColumnsValue = computed>(() => [ { title: t('downloader.torrent.peers'), key: 'peers', - width: 90, + width: 110, render(row: QbTorrentInfo) { return `${row.num_seeds} / ${row.num_leechs}`; }, diff --git a/webui/src/pages/index/rss.vue b/webui/src/pages/index/rss.vue index 92c234e9..c36b91e0 100644 --- a/webui/src/pages/index/rss.vue +++ b/webui/src/pages/index/rss.vue @@ -130,11 +130,15 @@ const rssRowKey = (row: RSS) => row.id; :disabled="isRefreshingAll" @click="refreshAllRSS" > -
+ {{ $t('rss.refresh_all') }}