Keep delete affordances neutral until the confirmation

Row delete buttons, overflow-menu delete items and per-row revoke
buttons painted red in lists, so a list of tokens or shares read as a
wall of alarms. They now sit in the muted tone (foreground on hover)
or as an outline button; the red is kept for the confirmation dialog
that every one of them opens, and for the danger zones, which are a
destructive card-wide action by design.
This commit is contained in:
Marc-André Bombeck committed 2026-10-08 18:45:02 +02:00
1 parent 142dfa9360
commit 793c19e179
25 files changed
+21 -29

No files matched your search

@@ -411,7 +411,7 @@ export function InviteTokensSection() {
type="button"
variant="ghost"
size="sm"
className="text-destructive hover:text-destructive"
className="text-muted-foreground hover:text-foreground"
aria-label={t("admin.invites.revokeAria")}
disabled={revoke.isPending}
onClick={() => setRevokeTarget(invite)}
@@ -479,7 +479,7 @@ export function InviteTokensSection() {
type="button"
variant="ghost"
size="sm"
className="text-destructive hover:text-destructive"
className="text-muted-foreground hover:text-foreground"
disabled={revoke.isPending}
onClick={() => setRevokeTarget(invite)}
>
@@ -254,7 +254,7 @@ export function UserManagementSection() {
<Button
variant="ghost"
size="sm"
className="text-destructive hover:text-destructive min-h-11 min-w-11 px-2 text-xs"
className="text-muted-foreground hover:text-foreground min-h-11 min-w-11 px-2 text-xs"
onClick={() => setLogoutTarget(u)}
disabled={u.id === currentUserId}
title={