docs(android): M12 phase 1 as landed #113
Reference in New Issue
Block a user
No description provided.
Delete Branch "docs/android-theming-nav-phase-1"
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?
What & why
The record for the colors phase. Code pair: Android-app#34.
Seven notes under a new "Phase 1 as landed", of which three are departures the build forced rather than choices it made:
ColorSchemedoes not implementequals. AC-1 asks for "the fullColorSchemeequality, not a spot check", and material3 1.3.0 declares noequals/hashCodeon it — checked against the artifact, not assumed. The proof became a field-by-field compare by reflection over everyColor-valued getter (36 roles in 1.3.0) against a verbatim copy of the pre-M12 scheme held in the test. That is stronger than what the AC asked for, not weaker: a role Material adds, or one the mapping forgets, cannot escape it, and the expected value is what the app used to do rather than what the new code does today.ShardPillFgis derived, not a sixteenth token. §5.1 lists it amongThemeComponents.kt's themable imports, but the token table has fifteen rows and none of them is it — its value isShardCta's, both--accent-bright. It followsctaunder the rule §5.1 already states forShardOnCta, so the neutral pill's text tracks the CTA fill instead of freezing at today's literal.RunicGatewayTheme(accent)"wrong twice over"; correcting it means a shard with aBRAND_ACCENT_COLORand notheme_visualrow no longer carries that color onprimary, so its filled CTA buttons go back to the light--accent-brightfill the M5 design specifies while links and highlights keep the brand color. Worth writing down because it is the one thing in this phase that moves for an instance nobody has touched from Admin → Appearance — and the answer for a shard that wants accented buttons is now to set the accent there.The other four are boundary decisions worth having on the record: the palette resolution and the scheme mapping are both pure (so AC-1 and AC-2 are plain JVM assertions with no Compose test rule), the §5.1 migration grep came out exactly as predicted — nine imports left, all semantic —
toneColorsbecame@Composablerather than growing a palette parameter on a public signature, and the test counts.PLAN.md§9's M12 entry records phase 1 landed beside phase 0.How it was tested
Documentation only — nothing to build or run. The notes were written from the merged-ready diff and the actual test run (373 green), not from the plan; §8's table row is ticked and the "as landed" section sits between phase 0's and the phase 7 cancellation note, matching the shape phase 0 established.
Checklist
AI-assisted contributions (required)
Claude Code (Opus 5). I have reviewed and understand every change, and take responsibility for it. AI-authored commits are marked with aCo-Authored-Bytrailer.License