Skip to content

Phase D1: design foundations (green scheme, record gold, shared formatter) - #22

Merged
prithvimk merged 2 commits into
mainfrom
claude/tender-noether-3tnyk0
Oct 31, 2026
Merged

prithvimk merged 2 commits into
mainfrom
claude/tender-noether-3tnyk0

Conversation

@prithvimk

Copy link
Copy Markdown
Owner

The first phase of the design pass (D1 in docs/IMPLEMENTATION_PLAN.md): the whole app in one green scheme, records in gold, and numbers that read unambiguously.

What changed

  • Colour schemes: full light and dark schemes generated from #2E6B30 using the Theme Builder's tonal mapping, with primary pinned to the brand colour. Every role is set, surface containers included, so nothing falls back to Material's purple baseline. dynamicColor now defaults to off (F01). The window background matches the new scheme.
  • Record gold: an extended colour family (MaterialTheme.recordColors: record, onRecord, recordContainer, onRecordContainer), provided beside MaterialTheme so it stays gold once dynamic colour can be turned back on. The logger's PR badge, History cards, exercise detail trophies and the finish summary's records card all moved off tertiary (F02). The calendar's selected-day ring was also tertiary, so it moved to a neutral onSurface ring.
  • One formatter (ui/format/Formats.kt) (F03):
    • formatClock is used only for live timers and rest settings.
    • Finished durations read "58 min", "1 h 11 min", or "2 h" on the hour, rounded to the nearest minute.
    • Every displayed weight and volume goes through weightText / volumeText / weightNumberText, with the unit in one string. Decimal marks follow the locale.
    • The set fields still edit raw kg; converting them belongs to Phase 5's unit setting.
  • Tabular figures for timers, set fields, the Last column, set numbers and totals (F03).
  • Shared components (ui/components/RecordMarks.kt): RecordChip, RecordDisc and StatTile. History cards already use the chip for their PR count.
  • formatElapsed and formatVolume moved out of WorkoutViewModel.kt. Their tests moved to ui/format, and new tests cover durations and weights.

Testing

  • ./gradlew testDebugUnitTest ktlintCheck lintDebug assembleDebug passes locally.
  • I compared screenshots (not committed) of the logger, History list and calendar, exercise detail and records card, in light and dark, before and after. None of them has lavender, purple or pink left.

Note

app/build.gradle.kts sets lint's textOutput = file("stdout"), which writes a file named stdout into app/ on every lint run instead of printing to the console. One got committed here and is removed in the second commit. The setting is left as it was.


Generated by Claude Code

…tter)

- Full light and dark colour schemes from #2E6B30 with every role set,
  surface containers included; dynamic colour is now off by default.
- Record gold as an extended colour family (MaterialTheme.recordColors)
  beside the scheme; the logger's PR badge, History cards, exercise detail
  trophies and the finish summary's records card move off tertiary.
- One formatter in ui/format: live timers keep the clock format, finished
  durations read "58 min" / "1 h 11 min", and every displayed weight and
  volume goes through it with its unit.
- Tabular figures for timers, set fields, the Last column and totals.
- Shared RecordChip, RecordDisc and StatTile components; History cards
  use the chip for their PR count.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014thT5DHYQ5GxporYx5N4XW
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_014thT5DHYQ5GxporYx5N4XW
@prithvimk
prithvimk merged commit b2e5888 into main Oct 31, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants