diff --git a/docs/plans/M54_CONTRACT_UI_MIGRATION.md b/docs/plans/M54_CONTRACT_UI_MIGRATION.md new file mode 100644 index 00000000..ae745f1f --- /dev/null +++ b/docs/plans/M54_CONTRACT_UI_MIGRATION.md @@ -0,0 +1,25 @@ +# M54 Contract UI Migration + +## Stopping point + +Contract Choice uses the shared M52/M53 chibi hand-drawn UI language with measured modules and verified screenshots. Gameplay, Save, routing and domain services remain unchanged. + +## Ordered steps + +1. Extract responsive canvas and `ContractHeader`. +2. Extract `ContractBoard` and difficulty choice slots. +3. Extract `ContractPartySummary`, action dock and navigation. +4. Add the same SubViewport visual matrix for 760×360, 844×390 and 1280×720 in zh_CN/en. +5. Inspect static, dynamic and final renders; fix earliest failing boundary. + +## Frozen scope + +No new content, battle rules, economy, Save schema, audio, packaging or device release work. + +## Acceptance + +- Existing Contract View contract marker passes exactly once. +- All six locale/viewport combinations render without clipping or overlap. +- Every visible region has one owner: static master, runtime content or hit area. +- Focused commit is pushed before the next step. +