Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
Kvitt UX directions (U1)
Three visual directions, each one self-contained HTML file with every screen of SPEC §13.3 in light and dark, plus PNG exports. Open index.html in a browser: the top of each page is the direction's spec (palette with live contrast ratios, typography, shapes, motion, icons, the balance header in its three states, Expressive components with fallbacks); below are the phone frames (411 × 891 dp, Galaxy S26), light and dark side by side.
| # | Direction | Page | PNGs |
|---|---|---|---|
| 1 | Skärgård — calm Material 3 Expressive, big balance hero | 1-skargard/index.html |
1-skargard/png/ (97) |
| 2 | Kvitto — till receipt and ledger, dense and list-first | 2-kvitto/index.html |
2-kvitto/png/ (99) |
| 3 | Kalas — playful cards, strong category colour | 3-kalas/index.html |
3-kalas/png/ (101) |
All three use the same household data (Jacob and Anna, Vardag / Huset / Japan 2027 / Gotland 2026, ICA, Willys, Systembolaget, SL, Vattenfall, Hyra), the same frame ids and the same Swedish copy, so a screen can be compared across directions by file name (png/S-4-home-light.png). One English Home frame (S-4-home-en) and two 200 % font-scale frames (S-4-home-200, S-7-editor-200) per direction. Extra frames beyond the common list: S-11-analytics-scrolled (all three; the three charts do not fit one screen), S-5-account-menu (Kvitto, Kalas), S-5-account-archived-menu (Kalas).
Re-export after a change: docs/ux/directions/export-png.sh docs/ux/directions/<n>-<slug> [frame-id …] (needs Google Chrome; fonts load from Google Fonts).
Comparison
| 1 Skärgård | 2 Kvitto | 3 Kalas | |
|---|---|---|---|
| Character | Archipelago on a calm day: sea blue, granite, sand; generous whitespace; few elements per screen | Till receipt and ledger book: paper, ink, one ink-blue accent, mono amounts, dashed rules | Crayfish party: cream and white cards, coral primary, every expense a solid colour tile |
| Home balance | Hero card, words first, huge narrow figure, cookie-shaped avatars, faint islet drawing | Compact receipt block with "Saldo · alla konton", amount in mono, Gör upp beside it; "Kvitt" rubber stamp when settled | Seesaw: whoever owes sits lower, plank in the debt colour; bunting and yellow card when settled |
| Accounts / ledger | Grouped rounded list; 72 dp rows | Ledger table, 60 dp rows, date column, dotted leaders to month totals — most rows per screen | Colourful cards; account colour on a clover tile matches the account chart |
| Add expense | Amount in display size, in-app keypad with Expressive key shapes, default chips above the keypad | Register-style amount on a till keypad (has "00"), one-tap key/value rows | Big amount, keypad, row of the six most used category tiles, chips; split shown as a two-colour bar |
| Expense detail | Card with facts and a timeline | Printed receipt with zig-zag edges and an "audit trail" printout | Colour-tile header card and timeline |
| Analytics | Calm cards, tonal charts | Chart-first, every number in mono | Colourful stacked bars and tile breakdowns |
| Type | Roboto Flex (OFL) | IBM Plex Sans + Plex Mono (OFL) | Nunito (OFL) |
| Shape | Large radii, MaterialShapes for avatars/FAB | Square, 4–8 dp, receipt edges | Very round, MaterialShapes for tiles and avatars |
| Owed / owing colours | sea-green / coral | green / brick + square marker | green / purple |
| Dynamic colour | Offered (off by default) | No (paper palette is the identity) | No (colours carry meaning) |
| Expressive dependence | Highest (ShortNavigationBar, ButtonGroup, MaterialShapes, LoadingIndicator, wavy progress, expressive motion) — all with stable fallbacks | Lowest (ShortNavigationBar only) | Medium (MaterialShapes, ButtonGroup, ShortNavigationBar, expressive motion) |
| Strengths | Most Android-native; balance readable at a glance; survives dynamic colour; least surprising for both users | Densest; amounts line up perfectly; very calm; the name "Kvitt" and the receipt metaphor reinforce each other; strong dark theme | Expenses recognisable before reading; most personality; strong ten-second add flow with category tiles |
| Risks | Can read as generic Material if the shapes and decoration are dropped; the hero takes ~35 % of Home; the 80 dp FAB covers list content until it collapses | Can feel austere, "accounting software"; mono amounts are wide (wrap at 200 %); custom keypad and receipt shapes | Seesaw may feel gimmicky over time; coral primary is close to error red (errors always carry an icon); less dense; dark yellow containers read olive |
| Compose cost | Medium: keypad, hero Canvas, MaterialShapes, Roboto Flex variations, KvittColors |
Medium: zig-zag GenericShape, dashed dividers, stamp, keypad, Canvas charts, print/roll motion |
Medium: RoundedPolygon.toShape(), seesaw layout with spring, keypad, stacked bars |
Recommendation
Skärgård, with one borrowing from Kalas: solid category-colour icon tiles in ledger rows (Skärgård's tinted 12 dp containers are the quieter fallback).
Why:
- The two jobs that matter most (§13.1) are done best. The ten-second add flow is equally good in all three, but Skärgård's Home answers "who owes whom" with the least to read: one sentence, one number, one button.
- Lowest long-term risk. It is the closest to stock Material 3, so Compose upgrades, M6's screenshot tests and future screens cost the least; every Expressive part has a stable fallback that still looks right.
- Works for both users. It is neither austere (Kvitto's risk for the spouse) nor novelty-driven (Kalas's seesaw), and it is the only direction that can follow the wallpaper colours if either of you wants that.
- Category recognition is Kalas's real advantage; it transplants cleanly into Skärgård's list rows without the rest of Kalas's playfulness.
Pick Kvitto if density and the receipt character matter more than warmth; pick Kalas if you both want the app to feel fun every day. Mixing is possible: tell me which parts of which direction you like (e.g. "Skärgård, but Kvitto's receipt detail screen").
Known gaps in the mocks (not design decisions)
S-4-homeshows no pending count although the Vardag ledger has one pending row; real Home shows the count wheneverpendingCount > 0(screens.mdS-4).S-11-analytics-weekuses a custom range (24 aug.–17 okt., v. 35–42) with invented weekly values; "Senaste 6 mån" by week would show ~26 bars.S-8-expense-deleteduses a different expense in each direction (no shared data for it).- Kalas lets the per-account settle-up amount be edited (AC-11.4 says "defaults to"); Skärgård shows the swap control there too (per-account settle-ups go either way, §9.4). Both are allowed by the spec and should become the rule in U2.