feat(jobs): rebuild the job card, five states on one silhouette #214
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!214
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/job-card"
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 #174.
One card shape at
min-height: 280px, growing only with the reader'stext-scale setting so a board stays level instead of reflowing. Five
states — pips, bar, waiting on others, plain, and up for grabs — sharing
the sheet's own progress block, so opening a card feels like it grew
rather than navigated.
Late is a modifier on any of the five, not a sixth state. It changes
one line: the merged due-and-points line goes amber with a glyph and the
word, and the accent rail keeps the owner's colour. Recolouring the rail
would give one element two meanings, and the up-for-grabs card's missing
rail is what makes it readable. Amber rather than red because red means
destruction here, and a late job is still a job you can finish in ten
seconds.
Done ✓is untouched and still celebrates in full — completinglate claims the points in full, so nothing may imply a docking.
The
2 steps leftbutton is gone, not restyled. It was a status in theshape of an action: it looked pressable, could not do what it said, and
repeated a count sitting two lines above — rendered as an
aria-disabledspan, which law 5 bans outright. The count belongs to the progress block.
Three things found while building it, none of them in the brief:
JobProgresstruncated instead of rounding, so 2 of 3 read 66%where web reads 67%. No fixture had ever used a non-exact fraction.
Today.tsx'snameOfreturned the reader's own name for every uid.Harmless while only your own mark showed; wrong the moment the waiting
panel began naming other people.
web's
text-transformdoes not, so those four strings sit in theper-surface expectation lists rather than a false shared one.
New golden cases ride here; the re-recorded ones follow in their own
commit.
🤖 Generated with Claude Code
Test report
Coverage: 27.0%
Updated by the check workflow · commit
cd6b793436Android test report
Coverage:
Updated by the android workflow · commit
cd6b79343625bbc089c5cd6b793436