From 737b533089b4c0999ed4ac385b108ca1e605854a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marc-Andr=C3=A9=20Bombeck?= Date: Sun, 10 May 2026 13:09:00 +0200 Subject: [PATCH] style(settings): uniform vertical spacing across all sections MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Pre-fix the per-card vertical rhythm was either `space-y-3` (AI provider config forms), `space-y-5` (dashboard layout card) or `space-y-4` (Account → Profile form). Three competing strides for forms that visually live in the same shell, so the eye picks up the discontinuity even though the section-level `space-y-6` outer rhythm was already consistent. Standardize on `space-y-4` between fields inside any single Settings card: - Dashboard "Customize layout" card: `space-y-5` -> `space-y-4` - AI Codex / OpenAI / Anthropic / Local provider forms: `space-y-3` -> `space-y-4` Account, Notifications and Export already used `space-y-4`. Section roots and the AI parent card keep their `space-y-6` so distinct cards still read as distinct surfaces. Co-Authored-By: Claude Opus 4.7 (1M context) --- .planning/STATE.md | 24 +++++++++++++++++++ src/components/settings/ai-section.tsx | 8 +++---- .../settings/dashboard-layout-section.tsx | 2 +- 3 files changed, 29 insertions(+), 5 deletions(-) diff --git a/.planning/STATE.md b/.planning/STATE.md index fa11cee58..25870ddc3 100644 --- a/.planning/STATE.md +++ b/.planning/STATE.md @@ -198,6 +198,30 @@ medications.csv,mood.csv}/`) left in place — same call as v1.4.16 / shared-cwd race documented across earlier marathons; A3's edits are correct on `origin/main`. +- 2026-05-10T13:05+02:00 — Wave A / A5 complete. Settings → + Integrations status UI consolidated. New + `` (`src/components/settings/integration-status-pill.tsx`) + is the single canonical surface — Dracula-tokenized chip top-right + of every integration card, "Connected · 12 min ago" pattern with + locale-aware relative-time bucketing (`just now` / `min` / `h` / + `d`), three states (`connected` / `error` / `disconnected`), + mobile-safe `whitespace-nowrap`. Withings + Mood Log cards + refactored: redundant v1.4.15 status banner ("connected / last + successful / last attempt" trio) is gone, Mood Log's bottom-of- + card "letzter Sync" line is gone, both cards now show a `
` + visual divider between header and body for consistency (Marc + flagged the asymmetry). Actionable error text preserved as a + compact inline alert above the action row when a sync attempt + failed. New i18n keys under `settings.integrationPill.*` (EN + + DE). Three commits: `ba0d6b8` (pill component + i18n + 6 vitest + tests), `0dcc91a` (refactor + 5 section vitest tests), `47a8fc7` + (Pixel-5 e2e spec). Tests: 1646/1646 vitest pass; e2e spec added + but not run in this session. Reusable for v1.4.20 Apple Health + card on iOS. Detailed report: `.planning/phase-A5-report.md`. + Cross-agent race: commit `ba0d6b8` accidentally bundled A4's + `.planning/STATE.md` and `phase-A4-report.md` edits — same shared- + cwd race across earlier marathons, no information lost. + --- ## Previous milestone — v1.4.18 (completed 2026-05-10T11:45+02:00) diff --git a/src/components/settings/ai-section.tsx b/src/components/settings/ai-section.tsx index 4d5f1eba0..6f8c0adb6 100644 --- a/src/components/settings/ai-section.tsx +++ b/src/components/settings/ai-section.tsx @@ -579,7 +579,7 @@ function CodexProviderForm({ const isConnected = status === "connected"; return ( -
+
{t("settings.ai.codex.modelSlugLabel")} @@ -794,7 +794,7 @@ function OpenAIProviderForm({ }); return ( -
+