This section documents the sharedinbox.de mail client from the user’s point of
view. Every screen has a stable name — the same name is used in the app’s
AppBar, in the source code, and here in the docs. When you file a bug, using
that name (for example Combined Inbox or Email Detail) is the fastest way
for a human or a coding agent to find the right code.
Sections#
- Screens — one page per screen, with a screenshot
and links to the screens you can navigate to from there.
- Snooze — how the Snooze feature works and where
the data lives.
Screen naming convention#
Each screen has one canonical name (Title Case, with spaces). The name shows up
in three places:
| Where | Example |
|---|
| AppBar title in the app | Combined Inbox |
Source file under lib/ui/screens/ | combined_inbox_screen.dart |
| Widget class | CombinedInboxScreen |
The Screens index lists every screen with its
canonical name, its source file, and how you reach it in the app. Bottom-sheet
pickers and dialogs also get named surfaces where they matter for bug reports
(for example the Snooze Picker).
Screenshots#
Screenshots live under website/static/mail-user-agent/screenshots/ and are
referenced from the screen page with the same slug as the page URL, e.g.
combined-inbox.png for /mail-user-agent/screens/combined-inbox/. Adding a
new screenshot is a matter of dropping the image into that folder — the page
markup already points at the expected filename.
Recommended dimensions: 720 × 1440 (portrait phone at 2x) so the images look
sharp on both desktop and mobile without inflating page weight.
Snoozing hides a thread from your inbox until a chosen time, then puts it back. It works offline-first: the local state changes immediately, and the server is updated on the next sync.
User flow Open Email Detail — or long-press threads in Combined Inbox or Email List to enter selection mode. Choose Snooze. The Snooze Picker opens with quick options (This evening, Tomorrow morning, Next week) and a Pick date & time… fallback. The email is moved to the Snoozed folder immediately, and a snackbar shows “Snoozed until …” with an Undo action. When the chosen time passes, the next sync cycle moves the email back to the INBOX of the same account. The whole flow is offline-safe: if the device is disconnected when you snooze, the local move happens instantly and the server update is queued. Waking up also happens locally — the sync engine simply flushes the queued unsnooze whenever it reconnects.
...
Every screen in the app has one canonical name. Use that name when you file a bug or ask a coding agent to change something — it maps directly to a source file under lib/ui/screens/ and a widget class in that file.
Mail Screen Source file Reached from Combined Inbox combined_inbox_screen.dart Drawer → Combined Inbox (start screen) Email List email_list_screen.dart Mailbox List → tap a folder Thread Detail thread_detail_screen.dart Email List → tap a thread with more than one message Email Detail email_detail_screen.dart Email List → tap a single-message thread Compose compose_screen.dart Floating “edit” button on any inbox / Reply / Reply all Search search_screen.dart AppBar search icon on Combined Inbox or an account view Address Emails address_emails_screen.dart Tap a sender or recipient chip in Email Detail Pickers and dialogs These aren’t full screens — they’re bottom sheets — but they get their own name so bug reports can be specific.
...