UX sprint U2: design-spec.md, screen catalogue, strings.csv (owner approved)
Kalas (muted) design spec with final tokens, components and every screen S-1 to S-22 in all states; 80-frame screen catalogue with 155 PNGs in docs/ux/screens/; strings.csv with D-017 module prefixes (558 rows, en and sv); colour tokens renamed to the landed contract names slate and amber; fixed category ids; proposed-decisions.md with the final §9.7 hex values and UX-9. Supersedes tokens.md, components.md, screens.md and the U1 Kalas PNGs. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01U2TeboHB8AtnzTrt3bWFzY
This commit is contained in:
+7
-7
@@ -1,10 +1,10 @@
|
||||
# Kvitt: information architecture
|
||||
|
||||
Status: U1 proposal (2026-10-17). Binding inputs: SPEC §13.2 (navigation model), §13.3 (screens S-1 to S-22), §14.2.4 (UI contract), §6.2 (module ownership). Screen ids are the spec's (`S-1` … `S-22`), not renumbered.
|
||||
Status: U1 (2026-10-17), updated in U2 (2026-10-18) for the owner's decisions (`proposed-decisions.md`: three tabs kept, UX-2; category suggestion, UX-3; 14 default categories, UX-8). Look and states of each screen: `design-spec.md`. Binding inputs: SPEC §13.2 (navigation model), §13.3 (screens S-1 to S-22), §14.2.4 (UI contract), §6.2 (module ownership). Screen ids are the spec's (`S-1` … `S-22`), not renumbered.
|
||||
|
||||
## 1. Bottom navigation
|
||||
|
||||
**Recommendation: keep the spec's three destinations.**
|
||||
**Decided (owner, 2026-10-18, UX-2): the spec's three destinations.**
|
||||
|
||||
| Destination | sv | en | Icon (Material Symbols) | Start screen |
|
||||
|---|---|---|---|---|
|
||||
@@ -18,10 +18,10 @@ Why three and not four:
|
||||
|
||||
1. **Home already is the account list.** The second most important question ("who owes whom", §13.1) is answered per account on Home (AC-10.2). A separate "Accounts" destination would split the global balance from its breakdown and add a tap to the most common path (Home → account → expense).
|
||||
2. **The add flow is the FAB, not a tab.** A tab "Add" would be a navigation item that is really an action; Material 3 discourages that, and the FAB is reachable with the thumb on both phones.
|
||||
3. **No fourth destination exists in the spec.** The only candidate that would earn the slot is an **Activity** feed (the other person's latest changes across all accounts, i.e. the audit log as a list). It would be useful together with push notifications (US-13), but it is a new feature, out of scope for the UX sprint (§13.5). It is listed as an owner question in the report, not designed.
|
||||
3. **No fourth destination exists in the spec.** The only candidate that would earn the slot is an **Activity** feed (the other person's latest changes across all accounts, i.e. the audit log as a list). It would be useful together with push notifications (US-13), but it is a new feature, out of scope for the UX sprint (§13.5). The owner did not take it for v1 (UX-2).
|
||||
4. Three items keep Swedish labels whole: "Inställningar" (13 characters) fits at 200 % font scale in a three-item bar but not in a four- or five-item bar of 411 dp.
|
||||
|
||||
Navigation bar style per direction (Expressive "short navigation bar" 64 dp or classic `NavigationBar` 80 dp) is stated on each direction's review page.
|
||||
Navigation bar style: Expressive `ShortNavigationBar` (64 dp; fallback `NavigationBar`), `design-spec.md` §3.11.
|
||||
|
||||
## 2. Screen inventory
|
||||
|
||||
@@ -35,7 +35,7 @@ Kind: **top** = bottom-nav destination; **pushed** = full screen with top app ba
|
||||
| S-4 | Översikt / Home | top | `:feature:home` | bottom nav; notification for deletions and `sync_batch` | `HomeRepository` → `HomeState` |
|
||||
| S-5 | Konto (account detail) | pushed | `:feature:account` | S-4 account row | `AccountRepository.detail` → `AccountDetailState` |
|
||||
| S-6 | Nytt konto / Ändra konto | pushed | `:feature:account` | S-4 "Nytt konto"; S-5 overflow "Ändra konto" | `AccountRepository` |
|
||||
| S-7 | Ny utgift / Ändra utgift | pushed, full screen (§13.2) | `:feature:expense` | FAB on S-4 or S-5; S-8 "Ändra"; S-19 editor reuses its fields | `ExpenseRepository.editorOptions`, `preview`, `save` |
|
||||
| S-7 | Ny utgift / Ändra utgift | pushed, full screen (§13.2) | `:feature:expense` | FAB on S-4 or S-5; S-8 "Ändra"; S-19 editor reuses its fields | `ExpenseRepository.editorOptions`, `preview`, `save`, `suggestCategory` (UX-3) |
|
||||
| S-8 | Utgift (expense detail) | pushed | `:feature:expense` | ledger rows (S-5, S-12, S-16); notification | `ExpenseRepository.detail` → `ExpenseDetailState` |
|
||||
| S-9 | Gör upp / Settle up | pushed | `:feature:settle` | S-4 "Gör upp" (global); S-5 "Gör upp det här kontot" (per account); S-10 "Ändra" | `SettlementRepository.start`, `recompute`, `save` → `SettleState` |
|
||||
| S-10 | Betalning (settlement detail) | pushed | `:feature:settle` | settlement rows; notification | `SettlementRepository.detail` |
|
||||
@@ -43,7 +43,7 @@ Kind: **top** = bottom-nav destination; **pushed** = full screen with top app ba
|
||||
| S-12 | Statistik, urval (drill-down) | pushed | `:feature:analytics` | tap on a bar or a breakdown row in S-11 (AC-14.8) | `AnalyticsRepository.drillDown` |
|
||||
| S-13 | Inställningar / Settings | top | `:feature:settings` | bottom nav | `ProfileRepository.household`, `SessionRepository` (role) |
|
||||
| S-14 | Profil | pushed | `:feature:settings` | S-13 | `ProfileRepository` |
|
||||
| S-15 | Kategorier (list + editor) | pushed (editor pushed from list) | `:feature:settings` | S-13 | `CategoryRepository` |
|
||||
| S-15 | Kategorier (list + editor; 14 default categories, UX-8) | pushed (editor pushed from list) | `:feature:settings` | S-13 | `CategoryRepository` |
|
||||
| S-16 | Synkstatus / Sync status | pushed | `:feature:home` | S-4 sync line; S-13 "Synkstatus" | `SyncRepository.status` |
|
||||
| S-17 | Uppdatering (banner + dialogs) | banner on S-4, dialogs | `:feature:home` | S-4 when `UpdateState != None`; S-22 "Sök efter uppdatering" | `UpdateRepository` |
|
||||
| S-18 | Telefonen har tagits bort / Device removed | flow, start when `Revoked` | `:feature:onboarding` | any 401 `device_revoked` (AC-3.3) | `SessionRepository.acknowledgeRevoked` |
|
||||
@@ -101,7 +101,7 @@ After saving in S-7 the app returns to where the editor was opened from (S-4 or
|
||||
| Own display name and picture | S-14 (and S-2 once for the partner) | S-4 hero, S-13, all avatars, timelines | no ("Kräver anslutning") |
|
||||
| Partner's name and picture | partner's own S-14 | everywhere | — |
|
||||
| Accounts (name, default ratio, archived, deleted) | S-6 (create, edit), S-5 overflow (archive, unarchive, delete) | S-4, S-7 picker (active only), S-9 rows and "Lägg till konto" (all), S-11/S-12, S-19 picker | no |
|
||||
| Categories | S-15 | S-7 grid (active only), S-8, ledger rows, S-11/S-12, S-19 | no |
|
||||
| Categories | S-15 | S-7 quick row and "Alla" sheet (active only; selected by the suggestion of UX-3 for new expenses), S-8, ledger rows, S-11/S-12, S-19 | no |
|
||||
| Recurring templates | S-19 | S-8 ("Återkommande: Hyra") | no |
|
||||
| Expenses | S-7 (create, edit), S-8 (delete) | S-4 (counts, balances), S-5, S-11/S-12, S-16 (pending) | **yes** |
|
||||
| Settlements | S-9 (create, edit), S-10 (delete) | S-4/S-5 balances and rows, S-16 (pending) | **yes** |
|
||||
|
||||
Reference in New Issue
Block a user