From a0bc8d41cb81c709b80bb7cfb814b6b80da3716b Mon Sep 17 00:00:00 2001 From: boban Date: Sun, 14 Jun 2026 10:09:17 +0200 Subject: [PATCH] docs(spec): server-details UX + hardening polish design Design for seven reported fixes: unified bordered button kit (retire ghost/ghost-danger, add danger-soft), firewall+fail2ban panels in an installed-only responsive grid, auto-updates reframed as a neutral operator preference (never an insecure verdict), create-server SSH verification with atomic rollback, a new "Initialisierung" (pending) server status, and an SSH key-only hint on the checklist. Includes file map, TDD + R12 plan. Co-Authored-By: Claude Opus 4.8 (1M context) --- ...-server-details-hardening-polish-design.md | 194 ++++++++++++++++++ 1 file changed, 194 insertions(+) create mode 100644 docs/superpowers/specs/2026-06-14-server-details-hardening-polish-design.md diff --git a/docs/superpowers/specs/2026-06-14-server-details-hardening-polish-design.md b/docs/superpowers/specs/2026-06-14-server-details-hardening-polish-design.md new file mode 100644 index 0000000..018097e --- /dev/null +++ b/docs/superpowers/specs/2026-06-14-server-details-hardening-polish-design.md @@ -0,0 +1,194 @@ +# Server-Details UX + Hardening Polish — Design + +**Date:** 2026-06-14 · **Branch:** `feat/v1-foundation` · **Status:** approved (design), pending spec review + +Fixes seven issues reported against the Server-Details page (`servers.show`), the button +system, and the create-server flow. All UI copy stays bilingual (DE default + EN, R16); all +visible colors come from `@theme` tokens (R3); buttons go through the single `x-btn` component +(R10). + +--- + +## 1. Unified button system (issues 6 + 7) + +**Problem:** `x-btn` is the single source of truth, but two variants are *borderless* — +`ghost` (no border/bg) and `ghost-danger` (no border/bg, turns red only on hover). Used for +"Entsperren", config gears, and "Löschen"/trash, they read as inconsistent next to the bordered +`secondary`/`accent` buttons. The delete button's hover-only red is jarring. + +**Change** — `resources/views/components/btn.blade.php`: +- Every variant carries a **persistent** `border` + `bg`. No borderless variants in visible use. +- Variant map becomes: + - `primary` — `bg-accent text-void hover:bg-accent-bright` (filled CTA, unchanged). + - `accent` — `border border-accent/25 bg-accent/10 text-accent-text hover:bg-accent/15` (primary panel action, unchanged). + - `secondary` — `border border-line bg-inset text-ink-2 hover:bg-raised hover:text-ink` (default row/toolbar **and** icon-only buttons, unchanged). + - `danger` — `bg-offline text-void hover:bg-offline/90` (filled; modal-confirm only, unchanged). + - **`danger-soft` (new)** — `border border-offline/25 bg-offline/10 text-offline hover:bg-offline/15`. Persistent red-tint border+bg for destructive row/toolbar actions (Löschen, trash, whitelist-remove). Mirrors the `accent` structure so the kit stays uniform. + - Remove `ghost` and `ghost-danger` from the map. +- The icon-only `size=sm` button stays `h-8 w-8` (≥ touch target handled by `lg`, R7) — unchanged. + +**Usage migration** (grep `variant="ghost"` / `variant="ghost-danger"` across `resources/views`): +- `ghost` → `secondary` (config gear, Entsperren, unban). +- `ghost-danger` → `danger-soft` (Löschen credential, trash rule, trash SSH key). +- The whitelist chip's raw `