fix(android): visual polish from the web design canon (#128) #159
No reviewers
Labels
No labels
adr
android
area/calendar
area/design-system
area/i18n
area/jobs
area/offline
area/server
area/testing
bug
ci
duplicate
enhancement
help wanted
invalid
notifications
question
reliability
security
severity/low
severity/medium
tracking
web
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
eagraiclainne/app!159
Loading…
Reference in a new issue
No description provided.
Delete branch "fix/android-visual-polish"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Closes #128. The Android visual divergences from the parity report's section 4, in three commits, stacked on #158.
The save arc (form grammar rule 10).
AppSaveButtonnow carries the webSaveButtonarc: the spinner joins the unchanged label while saving, success shows the tick inside a celebrate ring for a beat before the sheet closes (SaveArcStatemirrorsuseSaveArc, 650 ms hold). Adopted at the form primaries (profile save, job sheet Save changes, reward edit, meal day plan, list rename, Take this job, Claim it). Every label-swapping busy button ("Saving…", "Deleting…", "Taking…", "Claiming…", "Unlinking…") keeps its name now and simply disables while busy. Under reduced motion the spinner holds still; the arc still reads.Loading skeletons and the themed status line.
BoardSkeletonis the webLoadingBoard— the page's fetching line over grey pulsing shapes — shown only while the first cache fill runs and the cache is empty, so a genuinely empty board keeps its invitation. Adopted on Jobs ("Fetching the chore list…"), Lists and the list detail. The menu board's rawandroid.widget.Toastis gone: a themed in-appToastLayer(card dress, accent edge, pinned above the navigation, 4 s hold) carries "Added N to the list" in both shells.Dress details. Page headings rise to
headlineLarge(the web's 34px h1, Today's greeting included); the error banner's detail line goes quiet — small, monospace, ink-soft — while the headline alone keeps the danger voice (the web'sErrorDetail); cards throw a deeper shadow in dark mode; the mark fitting room's Cancel wears the.btn-quietdress (newAppQuietButton, 2dp line border); the theme picker groups its families under the web's three group headings with one accent dot per chip; and the system-bar icon polarity follows the in-app mode, not the OS.Deliberately not taken (rule 1, recorded here and in the commit): sheets stay bottom sheets on every width — the native idiom on this surface — rather than becoming the web's centred ≥700px card; the splash keeps the Hearth default because it draws before any preference can load; the remaining minor metrics (header date size, card padding, mark disc, stamp shadow, tab label size) stay native.
Verified on the emulator against the live deploy: theme picker shows all three group headings with single-dot chips; the ingredients push lands as an in-app themed toast (
TextViewinside the app's own hierarchy, not a system toast window); profile rename saved through the arc and closed after the hold; offline meal edit still queues and flushes.make checkgreen; Android unit tests green.🤖 Generated with Claude Code
Test report
Coverage: 27.2%
Updated by the check workflow · commit
5f491804f6Android test report
Coverage: 2.4% of lines
Updated by the android workflow · commit
5f491804f6