From 6d43b191c972786d274ce837a9cf62838f9d57c8 Mon Sep 17 00:00:00 2001 From: stash Date: Thu, 29 Oct 2026 20:28:11 +0800 Subject: [PATCH] =?UTF-8?q?fix(admin):=20=E5=88=A0=E9=99=A4=E6=8C=89?= =?UTF-8?q?=E9=92=AE=E6=8C=89=E5=8F=AF=E5=88=A0=E6=80=A7=E5=8C=BA=E5=88=86?= =?UTF-8?q?=E9=A2=9C=E8=89=B2=EF=BC=88=E5=8D=B1=E9=99=A9=E8=89=B2=20/=20?= =?UTF-8?q?=E5=BC=B1=E5=8C=96=E8=89=B2=EF=BC=8C=E5=9D=87=E7=94=A8=E4=B8=BB?= =?UTF-8?q?=E9=A2=98=E4=BB=A4=E7=89=8C=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 可删:var(--su-color-danger);hover 用 danger 10% 背景 - 不可删(本地服务):disabled + var(--su-text-muted)、opacity .45 - 侧栏与首页卡片两处共用同一个按钮组 --- stash-web/src/App.css | 16 ++++++++++++++++ stash-web/src/components/admin/AdminPage.tsx | 19 +++++++++++++++++-- 2 files changed, 33 insertions(+), 2 deletions(-) diff --git a/stash-web/src/App.css b/stash-web/src/App.css index a912f5f..6e4602f 100644 --- a/stash-web/src/App.css +++ b/stash-web/src/App.css @@ -963,3 +963,19 @@ gap: var(--su-space-2); align-items: center; } + +/* 删除按钮:可删的用危险色,不可删的用弱化色(都取主题令牌) */ +.admin-item-actions .admin-remove { + color: var(--su-color-danger); +} + +.admin-item-actions .admin-remove:not(:disabled):hover { + color: var(--su-color-danger); + background-color: color-mix(in srgb, var(--su-color-danger) 10%, transparent); +} + +.admin-item-actions .admin-remove:disabled { + color: var(--su-text-muted); + cursor: not-allowed; + opacity: 0.45; +} diff --git a/stash-web/src/components/admin/AdminPage.tsx b/stash-web/src/components/admin/AdminPage.tsx index 9b5af85..4421a78 100644 --- a/stash-web/src/components/admin/AdminPage.tsx +++ b/stash-web/src/components/admin/AdminPage.tsx @@ -504,6 +504,7 @@ function SectionForm({ onUp={() => move(index, -1)} onDown={() => move(index, 1)} onRemove={card.id === 'local' ? undefined : () => onDelete(card)} + disabledRemove={card.id === 'local'} /> ))} @@ -710,24 +711,38 @@ function IconButtonGroup({ onUp, onDown, onRemove, + disabledRemove = false, }: { onUp: () => void onDown: () => void onRemove?: (() => void) | undefined + /** 显示一个不可点的删除按钮(灰色),用于「本地服务」这类受保护项 */ + disabledRemove?: boolean }) { return (