From 7ea14bc9192d2b0fb8a0d06f3dfdf2b8f379073e Mon Sep 17 00:00:00 2001 From: jxxghp Date: Fri, 7 Aug 2026 17:33:02 +0800 Subject: [PATCH] fix confirm dialog button text color --- src/@core/components/ConfirmDialog.vue | 2 +- src/styles/__tests__/glassOverlayMaterial.spec.ts | 11 +++++++++++ src/styles/themes/glass.scss | 6 ++++++ 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/src/@core/components/ConfirmDialog.vue b/src/@core/components/ConfirmDialog.vue index fdb6af90..63d9f353 100644 --- a/src/@core/components/ConfirmDialog.vue +++ b/src/@core/components/ConfirmDialog.vue @@ -72,7 +72,7 @@ function handleCancel() { - + {{ cancelText }} diff --git a/src/styles/__tests__/glassOverlayMaterial.spec.ts b/src/styles/__tests__/glassOverlayMaterial.spec.ts index 2f7faa20..826047ac 100644 --- a/src/styles/__tests__/glassOverlayMaterial.spec.ts +++ b/src/styles/__tests__/glassOverlayMaterial.spec.ts @@ -86,6 +86,17 @@ describe('glass overlay material styles', () => { ) }) + it('uses the shared theme foreground token for confirm dialog actions', () => { + const styles = readFileSync(resolve(cwd(), 'src/styles/themes/glass.scss'), 'utf8') + const dialog = readFileSync(resolve(cwd(), 'src/@core/components/ConfirmDialog.vue'), 'utf8') + + expect(dialog).toContain('app-confirm-dialog-actions') + expect(styles).toContain('--app-confirm-dialog-action-color: rgb(var(--v-theme-on-primary))') + expect(styles).toMatch( + /\.app-confirm-dialog-actions \.v-btn\s*\{[\s\S]*?color:\s*var\(--app-confirm-dialog-action-color\)\s*!important;/, + ) + }) + it('keeps Chromium frosted fixed shells on the stable wallpaper backplate', () => { const styles = readFileSync(resolve(cwd(), 'src/styles/themes/glass.scss'), 'utf8') const backplate = readFileSync(resolve(cwd(), 'src/components/theme/GlassFixedShellBackplate.vue'), 'utf8') diff --git a/src/styles/themes/glass.scss b/src/styles/themes/glass.scss index b862d0ea..b16fefcd 100644 --- a/src/styles/themes/glass.scss +++ b/src/styles/themes/glass.scss @@ -106,6 +106,7 @@ html[data-theme='glass'] { --app-card-light-border-opacity: 0.15; --app-card-light-border: 1px solid var(--glass-border); --app-overlay-border: 1px solid var(--glass-border); + --app-confirm-dialog-action-color: rgb(var(--v-theme-on-primary)); --app-grouped-list-background: var(--glass-surface); --app-grouped-list-backdrop-filter: var(--glass-surface-backdrop-filter); --app-grouped-list-border: 1px solid var(--glass-border); @@ -808,6 +809,11 @@ html[data-theme='glass'] { box-shadow var(--glass-motion); } + // 语义色按钮在半透明玻璃表面上统一使用主题的高对比前景色,避免继承深色 on-color。 + .app-confirm-dialog-actions .v-btn { + color: var(--app-confirm-dialog-action-color) !important; + } + .v-btn:not(.v-btn--variant-text, .v-btn--variant-plain) { border: 1px solid var(--glass-border); -webkit-backdrop-filter: var(--glass-control-backdrop-filter);