diff --git a/public/locales/de.json b/public/locales/de.json index 8a345a1..66c73cc 100644 --- a/public/locales/de.json +++ b/public/locales/de.json @@ -892,6 +892,17 @@ "offline": { "banner": "Offline – Verbindung wird wiederhergestellt…" }, + "emptyHint": { + "tasks": "Tippe auf + um deine erste Aufgabe zu erstellen. Wische eine Karte nach links zum Löschen.", + "calendar": "Verbinde Google Kalender unter Einstellungen → Integrationen für automatische Synchronisation.", + "shopping": "Füge Artikel hinzu und wische zum Abhaken oder Löschen.", + "notes": "Tippe auf + für eine neue Notiz. Notizen werden im Volltext durchsucht.", + "contacts": "Lege wichtige Kontakte an — Arzt, Schule, Notfall — für Schnellzugriff.", + "budget": "Erstelle Kategorien und trage Einnahmen und Ausgaben ein.", + "meals": "Plane Mahlzeiten für die Woche und verknüpfe Rezepte.", + "birthdays": "Trage Geburtstage ein — du erhältst eine Erinnerung rechtzeitig.", + "recipes": "Lege Rezepte an und verknüpfe sie mit deiner Mahlzeitenplanung." + }, "shortcuts": { "search": "Suche öffnen", "new": "Neuen Eintrag erstellen", diff --git a/public/locales/en.json b/public/locales/en.json index 1dbf656..76c18b2 100644 --- a/public/locales/en.json +++ b/public/locales/en.json @@ -882,5 +882,16 @@ "goCal": "Calendar", "goShop": "Shopping list", "goNotes": "Notes" + }, + "emptyHint": { + "tasks": "Tap + to create your first task. Swipe a card left to delete.", + "calendar": "Connect Google Calendar under Settings → Integrations for automatic sync.", + "shopping": "Add items and swipe to check off or delete.", + "notes": "Tap + for a new note. Notes are full-text searchable.", + "contacts": "Add important contacts — doctor, school, emergency — for quick access.", + "budget": "Create categories and track income and expenses.", + "meals": "Plan meals for the week and link recipes.", + "birthdays": "Add birthdays — you will receive a reminder in time.", + "recipes": "Create recipes and link them to your meal planner." } } \ No newline at end of file diff --git a/public/pages/birthdays.js b/public/pages/birthdays.js index 852415f..47a92ba 100644 --- a/public/pages/birthdays.js +++ b/public/pages/birthdays.js @@ -121,6 +121,7 @@ function renderList() { host.insertAdjacentHTML('beforeend', `
${t('emptyHint.birthdays')}
${t('emptyHint.budget')}
`; } diff --git a/public/pages/contacts.js b/public/pages/contacts.js index 79f50b9..a788954 100644 --- a/public/pages/contacts.js +++ b/public/pages/contacts.js @@ -180,6 +180,7 @@ function renderList() {${t('emptyHint.contacts')}
`; if (window.lucide) lucide.createIcons(); diff --git a/public/pages/notes.js b/public/pages/notes.js index da552f2..2d395da 100644 --- a/public/pages/notes.js +++ b/public/pages/notes.js @@ -146,6 +146,7 @@ function renderGrid() {${t('emptyHint.notes')}
` : ''} `; if (window.lucide) lucide.createIcons(); diff --git a/public/pages/recipes.js b/public/pages/recipes.js index 04b2a8f..f53bf96 100644 --- a/public/pages/recipes.js +++ b/public/pages/recipes.js @@ -126,7 +126,10 @@ function renderRecipeList() { emptyDesc.className = 'empty-state__description'; emptyDesc.textContent = t('recipes.emptyDescription'); - empty.append(emptyTitle, emptyDesc); + const emptyHint = document.createElement('p'); + emptyHint.className = 'empty-state__hint'; + emptyHint.textContent = t('emptyHint.recipes'); + empty.append(emptyTitle, emptyDesc, emptyHint); list.appendChild(empty); return; } diff --git a/public/pages/shopping.js b/public/pages/shopping.js index 5f05255..195cc4f 100644 --- a/public/pages/shopping.js +++ b/public/pages/shopping.js @@ -170,6 +170,7 @@ function renderItems() {${t('emptyHint.shopping')}
`; } diff --git a/public/pages/tasks.js b/public/pages/tasks.js index dd8abe7..c1de5ac 100644 --- a/public/pages/tasks.js +++ b/public/pages/tasks.js @@ -261,6 +261,7 @@ function renderTaskGroups(tasks, groupMode) {${t('emptyHint.tasks')}
`; } diff --git a/public/styles/layout.css b/public/styles/layout.css index dfb712e..4913ced 100755 --- a/public/styles/layout.css +++ b/public/styles/layout.css @@ -1370,6 +1370,18 @@ line-height: var(--line-height-base); } +.empty-state__hint { + font-size: var(--text-xs); + color: var(--color-text-tertiary); + max-width: 280px; + line-height: var(--line-height-relaxed); + padding: var(--space-2) var(--space-3); + background-color: var(--color-surface-2); + border-radius: var(--radius-sm); + border: 1px solid var(--color-border-subtle); + text-align: center; +} + .empty-state--compact { padding: var(--space-4) var(--space-3); gap: var(--space-2);