From 4eae12448a49c59bb43e385c7a9d387ee5b46d2d Mon Sep 17 00:00:00 2001 From: wtclaude Date: Mon, 20 Jul 2026 01:56:27 -0500 Subject: [PATCH] docs(android): record M5 (design pass) landed MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Mark the M5 shard-website design pass complete in docs/android/PLAN.md, matching RunicGateway/Android-app#10: dark-only theme (deep blue-black surfaces, slate accent, Cinzel display face), reusable pill/label/card/meter components, and retained per-shard brand-accent seeding — restyling the working M1–M4 screens with no architecture, data-flow, endpoint, or DTO change. Updates the status header, the §9 build-progress record, and the milestone list (M0–M5 landed; M6 release hardening next). Co-Authored-By: Claude Co-Authored-By: Claude Opus 4.8 Claude-Session: https://claude.ai/code/session_01NgyHnrNa8WwG3doxvxjuCr --- android/PLAN.md | 35 +++++++++++++++++++++++++++-------- 1 file changed, 27 insertions(+), 8 deletions(-) diff --git a/android/PLAN.md b/android/PLAN.md index 6bb3991..d865609 100644 --- a/android/PLAN.md +++ b/android/PLAN.md @@ -1,6 +1,6 @@ # Android App — Plan -Status: **M0–M4 landed; M5 (design pass) next.** This document is the +Status: **M0–M5 landed; the functional build + design pass are complete (M6 release hardening next).** This document is the design contract for the `RunicGateway/Android-app` repo. It was written before implementation so the API changes it depends on could be landed in `website/` and `docs/` first. The authoritative API reference is the committed OpenAPI spec at `website/server/swagger/swagger-output.json` (regenerated @@ -98,7 +98,24 @@ spec-aligned (as recorded for M1); 17 new JVM unit tests cover the account + pla **No backend/API change** — the `/auth/me/*` and `/player/shard/*` surfaces the app consumes were the §8 prerequisites, already landed. -**M5 (design pass) remains.** +✅ **M5 — design pass** (2026-07-20, `RunicGateway/Android-app#10`): the shard-website theme applied +across every screen, restyling the working M1–M4 UI with **no architecture, data-flow, endpoint, or DTO +change** (§2.1). The design was produced in Claude Design (`Runic Gateway Screens.dc.html`) and +implemented in Compose. Because the functional screens already draw their color/type/shape from +`MaterialTheme` tokens (§2), the restyle lives mostly in the **theme layer** and propagates: a deep +blue-black surface stack (page `#0b0f14` / screen `#0e1318` / elevated `#11161d`), a slate-blue accent +(`#7f99bd`) with a light CTA fill (`#cdd9e8`), parchment serif body copy, and the engraved **Cinzel** +serif display face (bundled weight-axis variable font, SIL OFL) for headings and the top bar. The app is +now **dark-only** — the shard-website look is a single dark theme, so the light scheme is dropped and the +system light/dark setting is ignored; **per-shard brand-accent seeding is retained** (a site's published +accent still tints the primary/secondary roles, §3). A small set of reusable components — semantic status +pills, section labels, a gradient "feature" card, and slim stat meters — carries the motifs the design +repeats (home status, shard-online banner, champ/character/house status, character vitals & skills). The +launch theme and system bars are darkened so the first frame matches (no white flash). Verified by +`:app:assembleDebug` + `:app:testDebugUnitTest` (green); an on-device visual pass against the mockup is +the one open QA item noted on the PR. + +**The functional build (M0–M4) and design pass (M5) are complete; M6 (release hardening) is next.** **Prerequisite progress (§8):** all v1 prerequisites are **done** (2026-07-19) — ✅ password reset (item 2; website#75 + docs#8), ✅ role-agnostic `/auth/me/*` self surface (item 1; website#76 + docs#10), @@ -436,11 +453,11 @@ No `link/` or `servuo-plugins/` changes are expected — the app is downstream o ## 9. Milestones -**Two passes (§2.1).** M0–M4 are the **functional Kotlin pass** — every screen wired to its endpoints -and working end-to-end with placeholder/functional Compose UI, no design investment yet. **M5 is the -design pass**: once the functional Kotlin is done, Claude Design produces the front-end design and -Claude Code implements the final UI to it. Polish/release, push, and Play (M6–M8) follow the designed -app. +**Two passes (§2.1).** M0–M4 were the **functional Kotlin pass** — every screen wired to its endpoints +and working end-to-end with placeholder/functional Compose UI, no design investment yet. **M5 was the +design pass**: with the functional Kotlin done, Claude Design produced the front-end design and Claude +Code implemented the final UI to it. **Both passes are now complete** (M0–M5 landed); polish/release, +push, and Play (M6–M8) follow the designed app. 1. **M0 — Repo scaffold**: Gradle + Compose + Hilt skeleton, CI (build + lint + unit test), license headers (GPL-3.0-or-later), CONTRIBUTING/AI-disclosure parity with the other repos. @@ -462,7 +479,9 @@ app. UI to it** — Compose screens, Material 3 theming from the per-shard branding (§3), reusable components, loading/error/empty states, the designed access-level menu. Restyles the existing screens only; no changes to architecture, data flow, or endpoint contracts. Text-only game data - (§6.3) still holds — this is visual design of the data screens, not paperdoll art. + (§6.3) still holds — this is visual design of the data screens, not paperdoll art. **Landed** + 2026-07-20 (`RunicGateway/Android-app#10`): dark-only shard-website theme, Cinzel display face, + reusable pill/label/card/meter components; brand-accent seeding retained (see §9 build progress). 7. **M6 — Polish & first release**: settings (server switch = hard reset), version-mismatch guard, release build hardening (HTTPS-only, no token logging). No offline cache in v1 (§7). **Ship v1 as a signed APK attached to a Gitea release** (see §10). -- 2.49.1