From 71fb499dee2fcfd32320063925895dd5b91563da Mon Sep 17 00:00:00 2001
From: Hongming Wang
Date: Sun, 3 May 2026 17:53:29 -0700
Subject: [PATCH] canvas/DeleteCascadeConfirmDialog: fix Cancel no-op hover +
Delete light hover + focus rings
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
Four fixes for the cascade-delete confirmation modal:
1. Cancel button hover was a no-op: bg-surface-card on top of the
same base — clicking did something but the button looked dead.
Lifted to surface-elevated, matching the ConfirmDialog Cancel
pattern.
2. Delete button hovered LIGHTER (bg-red-500 over bg-red-600). On
white text that drops contrast below AA — same trap fixed in
ConfirmDialog and ApprovalBanner. Flipped to bg-red-700 so hover
stays readable in both themes.
3. Checkbox ring-offset color was zinc-900 — but the dialog actually
sits on bg-surface-sunken, so the offset showed the wrong color
through the ring gap. Corrected to ring-offset-surface-sunken.
Also moved focus → focus-visible so the ring only shows on
keyboard nav, not mouse clicks.
4. Cancel + Delete had no focus-visible rings. Added accent ring
on Cancel, danger ring on Delete, both with the correct
ring-offset-surface-sunken.
Co-Authored-By: Claude Opus 4.7 (1M context)
---
.../components/DeleteCascadeConfirmDialog.tsx | 20 ++++++++++++++-----
1 file changed, 15 insertions(+), 5 deletions(-)
diff --git a/canvas/src/components/DeleteCascadeConfirmDialog.tsx b/canvas/src/components/DeleteCascadeConfirmDialog.tsx
index 949437c3..ba68bb83 100644
--- a/canvas/src/components/DeleteCascadeConfirmDialog.tsx
+++ b/canvas/src/components/DeleteCascadeConfirmDialog.tsx
@@ -127,13 +127,16 @@ export function DeleteCascadeConfirmDialog({
- {/* Checkbox guard */}
+ {/* Checkbox guard. Ring-offset color was zinc-900 — the dialog
+ actually sits on bg-surface-sunken, so the offset showed
+ the wrong color through the ring gap. Switched to the
+ real bg + a danger-tinted ring. */}