Files
kvitt/docs/ux
jacobh2 a8f91ee6ea K2: card purchases on Android (Room 2, card cycle, :feature:cards S-23 to S-27)
- :core:model model/Cards.kt per SPEC §14.2.4 "Changes in v0.35"; ContractTest covers the card wire values.
- :domain matchCardPurchase (§14.5.8), passing match_card_purchase.json (17 cases) in VectorTest.
- :data Room version 2 (card_connections, card_purchases, card_sync_state, MIGRATION_1_2 with its test,
  2.json exported); DTOs for E-36 to E-44 round-tripping K1's examples; the card cycle (E-44 push of
  pending link changes, E-40 pull) after each household cycle and after refresh; CardRepositoryImpl with
  CP-9 prefill, CP-10 matches, offline-first link/unlink/ignore; a local expense delete unlinks.
- :core:fakes FakeCardRepository and fakes/cards scenarios for every state of S-23 to S-27.
- :feature:cards S-23 (sheet and "Välj en annan utgift"), S-24, S-25 (Custom Tab, E-38 every 2 s while
  resumed, return link), S-26 (disconnect dialog), S-27, CardArt with the SJ Prio picture and the drawn
  fallback; 135 goldens and state-holder tests.
- :feature:expense S-7 cardPurchaseId prefill and link on save, S-8 "Från kortköp" line;
  :feature:account S-5 "Från kortköp"; :feature:settings S-13 "Anslut kort".
- :core:design KvittDestination.Cards with credit_card and nav_cards (four destinations, D-172); the
  bar's labels shrink to fit at large font scales. :app routes, kvitt://cards/connected, bindings.
- docs/ux/strings.csv: the card keys of §13.3 plus K2's additions.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01TQd3pEP9UeN2uifbHknQ7B
2026-10-24 16:51:12 +02:00
..

Kvitt UX

The UX deliverables for Kvitt v1 (SPEC §13). Phase 1 (U1, 2026-10-17) proposed three visual directions; the owner picked 3 "Kalas", muted on 2026-10-18. Phase 2 (U2, SPEC §13.4) is the binding design for M6 (:core:design) and M7a–M7f (the feature screens).

Binding files (U2)

File What it is Used by
design-spec.md The design spec: tokens (colour roles light and dark, 14 category colours with containers and contrast, chart and avatar colours, type scale, spacing, shapes, elevation, motion, icons, the 14 default categories, Compose mapping), the component inventory with anatomy, sizes, states and semantics, every screen S-1 to S-22 and the notifications with layout, the binding list of states, interactions, TalkBack and 200 %, the add-expense flow in detail, open points M6, M7a–M7f, screenshot tests
strings.csv Every user-visible string, key,en,sv,notes, keys prefixed per D-017 (feature modules) or unprefixed (:core:design); placeholders %1$s, plurals as <key>:one / <key>:other M6, M7 (values/strings.xml, values-sv/strings.xml)
screens/ The screen catalogue: screens/index.html and one PNG per frame and theme, screens/<frame-id>-light.png / -dark.png (200 % and English frames light only), Swedish. Every state that design-spec.md §4 lists has a frame M7 (look), the owner
ia.md Bottom navigation, screen inventory with modules and state sources, session routing, navigation map, data ownership, admin vs member M7, M8
flows.md F-1 … F-11 step by step M7, M8
category-suggestion.md The category suggestion rule CS-1 … CS-7 and the evidence from the household's Splitwise export M5/M7c, the spec change UX-3
category-keywords.csv The built-in keyword table of CS-6 (draft of contracts/category-keywords.csv) :domain, UX-3
proposed-decisions.md The owner's answers and decisions UX-1 … UX-8, with the spec text a docs agent records on main (numbers assigned then) orchestrator, docs agent

Precedence: SPEC rules › design-spec.md › PNGs; words from strings.csv. design-spec.md §1 lists where the design depends on a decision that is not in SPEC.md yet (UX-n).

U1 record (not maintained)

directions/ holds the three U1 directions as they were shown to the owner: 1-skargard/, 2-kvitto/, 3-kalas/ (each an index.html review page with every frame), README.md (comparison and recommendation) and export-png.sh. Token values in design-spec.md were copied from 3-kalas/index.html; later changes are made in design-spec.md and screens/ only. U1's direction-independent screens.md, components.md and tokens.md were folded into design-spec.md and removed.