Remove archive confirmation, rename color-accent to color-danger
The undo flash on the dashboard already covers accidental archives,
so the two-step confirmation adds friction without safety. Archive
is now a single red button.
--color-accent was only used for overdue, urgency, and destructive
states — renamed to --color-danger (with -hover and -bg variants)
to reflect actual usage.
Assisted-by: Claude Opus 4.6 via pi
diff --git a/lib/ketchup/snapshots.rb b/lib/ketchup/snapshots.rb
index bba6c1f..fe507b5 100644
--- a/lib/ketchup/snapshots.rb
+++ b/lib/ketchup/snapshots.rb
@@ -193,9 +193,7 @@ module Ketchup
wait_for(".section-edit-btn--cancel").click
entries << snap("series-archive-button", selector: ".main-column")
- @browser.execute("document.querySelector('form[action$=\"/archive\"] button').click()")
- wait_for(".archive-confirm")
- entries << snap("series-archive-confirm", selector: ".main-column")
+
# ── Series detail (with history) ──
diff --git a/lib/ketchup/views/series/show.rb b/lib/ketchup/views/series/show.rb
index 2e16e82..9e0b4a9 100644
--- a/lib/ketchup/views/series/show.rb
+++ b/lib/ketchup/views/series/show.rb
@@ -50,17 +50,9 @@ module Ketchup
plain "Save"
end
form(method: "post", action: @archive_path, class: "complete-form",
- "x-show": "!editing", "x-data": "{ confirming: false }") do
+ "x-show": "!editing") do
input(type: "hidden", name: "_csrf", value: @csrf.call(@archive_path))
- span("x-show": "!confirming") do
- button(type: "button", class: "section-edit-btn",
- "x-on:click": "confirming = true") { "Archive" }
- end
- span(class: "archive-confirm", "x-show": "confirming", "x-cloak": true) do
- button(type: "submit", class: "section-edit-btn") { "Archive" }
- button(type: "button", class: "section-edit-btn",
- "x-on:click": "confirming = false") { "Cancel" }
- end
+ button(type: "submit", class: "section-edit-btn section-edit-btn--destructive") { "Archive" }
end
end
diff --git a/public/css/app.css b/public/css/app.css
index ef1401a..0e2755e 100644
--- a/public/css/app.css
+++ b/public/css/app.css
@@ -77,7 +77,7 @@ h2 { font-size: var(--step-0); font-weight: 600; }
}
.header-action--active {
- color: var(--color-accent);
+ color: var(--color-danger);
font-weight: 600;
}
@@ -140,7 +140,7 @@ h2 { font-size: var(--step-0); font-weight: 600; }
.flash-undo-btn {
all: unset;
- color: var(--color-accent);
+ color: var(--color-danger);
cursor: pointer;
}
@@ -149,7 +149,7 @@ h2 { font-size: var(--step-0); font-weight: 600; }
}
.flash-undo-btn:focus-visible {
- outline: 2px solid var(--color-accent);
+ outline: 2px solid var(--color-danger);
outline-offset: 2px;
border-radius: 2px;
}
@@ -262,11 +262,11 @@ h2 { font-size: var(--step-0); font-weight: 600; }
}
.agenda-week-day--overdue .agenda-week-label {
- color: var(--color-accent);
+ color: var(--color-danger);
}
.agenda-week-day--overdue .agenda-week-count {
- color: var(--color-accent);
+ color: var(--color-danger);
}
.agenda-day {
@@ -370,20 +370,14 @@ h2 { font-size: var(--step-0); font-weight: 600; }
color: var(--color-text-secondary);
}
-.archive-confirm,
-form[action$="/archive"] > span {
- display: inline-flex;
- gap: 0.5em;
- order: 1;
+.section-edit-btn--destructive {
+ color: var(--color-danger);
}
-.archive-confirm [type="submit"] {
- color: #c04040;
+.section-edit-btn--destructive:hover {
+ color: var(--color-danger-hover);
}
-.archive-confirm [type="submit"]:hover {
- color: #a02020;
-}
.section-edit-btn:disabled {
color: #ccc;
@@ -438,7 +432,7 @@ form[action$="/archive"] > span {
}
.task-card--overdue:hover {
- background: var(--color-accent-bg);
+ background: var(--color-danger-bg);
}
.task-body {
@@ -458,7 +452,7 @@ form[action$="/archive"] > span {
}
.task-card--overdue .task-name {
- color: var(--color-accent);
+ color: var(--color-danger);
font-weight: 500;
}
@@ -472,7 +466,7 @@ form[action$="/archive"] > span {
.task-urgency {
font-size: var(--step--2);
font-weight: 500;
- color: var(--color-accent);
+ color: var(--color-danger);
white-space: nowrap;
font-variant-numeric: tabular-nums;
}
@@ -515,7 +509,7 @@ form[action$="/archive"] > span {
}
.task-card--overdue .complete-btn {
- border-color: var(--color-accent);
+ border-color: var(--color-danger);
}
.task-card--overdue .complete-btn:hover {
@@ -565,7 +559,7 @@ form[action$="/archive"] > span {
}
.detail-fields .detail-overdue {
- color: var(--color-accent);
+ color: var(--color-danger);
}
.detail-input {
diff --git a/public/css/utopia.css b/public/css/utopia.css
index f5d9f67..5749a02 100644
--- a/public/css/utopia.css
+++ b/public/css/utopia.css
@@ -76,8 +76,9 @@
--color-border-light: #eee;
--color-surface: #fcfcfc;
--color-surface-hover: #f0f0f0;
- --color-accent: #c00;
+ --color-danger: #c00;
+ --color-danger-hover: #a00;
+ --color-danger-bg: #ffe5e5;
--color-success: #27ae60;
--color-success-bg: #f0fff0;
- --color-accent-bg: #ffe5e5;
}