From fd4753905e9d85a646fa2ecb9574df74bf857c19 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Tue, 21 Apr 2026 09:15:24 +0200 Subject: [PATCH] refactor(ui): drop redundant page headers, rework measure profile UX MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Removes decorative route-label h1s across fitness, recipe and cospend pages — replaced with sr-only h1s for assistive tech and a shared .sr-only utility in app.css. On the measure page, the tucked-away profile chip becomes a dismissible setup banner that only appears when sex/height/birth year are missing, with a permanent "Edit profile" link at the foot of the page. --- package.json | 2 +- src/app.css | 13 ++ src/lib/js/fitnessI18n.ts | 7 + .../dash/+page.svelte | 9 +- .../list/+page.svelte | 9 +- .../payments/+page.svelte | 9 +- .../payments/add/+page.svelte | 8 +- .../payments/edit/[id]/+page.svelte | 8 +- .../recurring/+page.svelte | 8 +- .../recurring/edit/[id]/+page.svelte | 7 +- .../settle/+page.svelte | 14 +- .../category/+page.svelte | 8 +- .../favorites/+page.svelte | 7 +- .../[recipeLang=recipeLang]/tag/+page.svelte | 6 +- .../[exercises=fitnessExercises]/+page.svelte | 7 +- .../[[month=fitnessMonth]]/+page.svelte | 6 +- .../[measure=fitnessMeasure]/+page.svelte | 211 +++++++++++++----- .../fitness/[stats=fitnessStats]/+page.svelte | 7 +- 18 files changed, 192 insertions(+), 154 deletions(-) diff --git a/package.json b/package.json index a38f9f8d..a7a904aa 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homepage", - "version": "1.38.2", + "version": "1.39.0", "private": true, "type": "module", "scripts": { diff --git a/src/app.css b/src/app.css index 858499b6..580a1e19 100644 --- a/src/app.css +++ b/src/app.css @@ -366,6 +366,19 @@ a:focus-visible { transition: var(--transition-fast); } +/* Visually hidden but accessible to screen readers */ +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border: 0; +} + /* Interactive hover/focus effects */ .g-interactive { transition: var(--transition-fast); diff --git a/src/lib/js/fitnessI18n.ts b/src/lib/js/fitnessI18n.ts index 0dc0484c..07378df4 100644 --- a/src/lib/js/fitnessI18n.ts +++ b/src/lib/js/fitnessI18n.ts @@ -195,6 +195,13 @@ const translations: Translations = { // Measure page measure_title: { en: 'Measure', de: 'Messen' }, profile: { en: 'Profile', de: 'Profil' }, + profile_setup_cta: { + en: 'Add height & birth year to unlock BMI, TDEE and calorie balance stats.', + de: 'Größe & Geburtsjahr eintragen, um BMI, TDEE und Kalorienbilanz freizuschalten.' + }, + set_up_profile: { en: 'Set up', de: 'Einrichten' }, + edit_profile: { en: 'Edit profile', de: 'Profil bearbeiten' }, + dismiss: { en: 'Dismiss', de: 'Verwerfen' }, new_measurement: { en: 'New Measurement', de: 'Neue Messung' }, edit_measurement: { en: 'Edit Measurement', de: 'Messung bearbeiten' }, weight_kg: { en: 'Weight (kg)', de: 'Gewicht (kg)' }, diff --git a/src/routes/[cospendRoot=cospendRoot]/dash/+page.svelte b/src/routes/[cospendRoot=cospendRoot]/dash/+page.svelte index f1f9ef98..48e4e2cb 100644 --- a/src/routes/[cospendRoot=cospendRoot]/dash/+page.svelte +++ b/src/routes/[cospendRoot=cospendRoot]/dash/+page.svelte @@ -128,7 +128,7 @@
-

{t('cospend', lang)}

+

{t('cospend', lang)}

@@ -272,13 +272,6 @@ overflow-x: hidden; } - h1 { - text-align: center; - font-size: 2.5rem; - margin-block: 0.5rem 1.5rem; - color: var(--color-text-primary); - } - .loading, .error { text-align: center; padding: 2rem; diff --git a/src/routes/[cospendRoot=cospendRoot]/list/+page.svelte b/src/routes/[cospendRoot=cospendRoot]/list/+page.svelte index 9e5d46ec..2de7ec7c 100644 --- a/src/routes/[cospendRoot=cospendRoot]/list/+page.svelte +++ b/src/routes/[cospendRoot=cospendRoot]/list/+page.svelte @@ -373,7 +373,8 @@