Part of the Sep-2026 designer's-eye QA of the 138 "Artistant iOS Light" screens (theme T16, category token; epic #161). Full report with evidence and per-screen coverage: docs/DESIGN_QA_2026-09.md; the per-section appendices under docs/design-qa/ carry the code excerpts.
Why it matters. The capsule paints ink with a 12 dp shadow where the palette names dark and the design is flat; the press kit mounts its own host that fires under the tab bar; the root host pads for a tab bar that pushed screens do not show.
Fix direction. One host, dark fill, no shadow, bottom padding driven by whether a bar is actually visible.
Findings (3: P1 ×2, P3 ×1)
Acceptance
Part of the Sep-2026 designer's-eye QA of the 138 "Artistant iOS Light" screens (theme T16, category token; epic #161). Full report with evidence and per-screen coverage: docs/DESIGN_QA_2026-09.md; the per-section appendices under
docs/design-qa/carry the code excerpts.Why it matters. The capsule paints
inkwith a 12 dp shadow where the palette namesdarkand the design is flat; the press kit mounts its own host that fires under the tab bar; the root host pads for a tab bar that pushed screens do not show.Fix direction. One host,
darkfill, no shadow, bottom padding driven by whether a bar is actually visible.Findings (3: P1 ×2, P3 ×1)
background(colors.dark), drop the shadow (a hairline inlineStrongif separation is needed).showBottomBarboolean) and feed the host that, not the gate; and usebottom =rather thanvertical =.statusNotethrough the rootToastVmand delete the in-package host (the migration CLAUDE.md already calls outstanding).Acceptance
./gradlew :app:assembleDebug,:app:testDebugUnitTestand:app:lintDevDebuggreen.artistantAVD with the debug harness (RELEASE.md §10) and the fix confirmed visually — this audit was code-grounded, not device-walked.