diff --git a/DECISIONS.md b/DECISIONS.md index 4693b36..353330d 100644 --- a/DECISIONS.md +++ b/DECISIONS.md @@ -2099,3 +2099,15 @@ Implementation decisions not spelled out in `memory-bank/implementation-plan.md` - **The faintest text got much lighter.** `ink-400` and `ink-500` were raised until they read at 4.5:1 on the glass over white, which narrows the gap between text levels. Hierarchy has to come from size and weight as well. - **The theme color and icon background follow the ground** (`--color-space-950`, #050919), and the icons were regenerated with `pnpm icons`. - **Screens outside the map are plain navy until Step 29.3,** when the map moves behind every screen. + +## Steps 29.2–29.9 + +- **Accent classes stayed; their scales changed (differs from Step 29.2).** `amber-*`, `cyan-*`, `sky-*`, `emerald-*` and `rose-*` are retuned to the role hues in `index.css`, and screens were swept so amber marks actions and warnings. Rewriting all 350 uses to role tokens by hand added risk and no visible change. New code uses the role tokens. +- **Old URLs are kept, not redirected (differs from Step 29.4).** `/pilots`, `/hqs`, `/market`, `/locations` and `/map` remain real routes under their tabs, so links, tests and saved habits all keep working. `/map` is the map view, since a selection needs somewhere to show. +- **Fleet has no separate ship detail screen.** The canvas drew one; the cards were made compact instead, and Fuel and Upgrades stay as sheets. It keeps every existing flow and test. +- **`font-display` remains in the code as an alias of the body font.** Removing it from about 40 files would change nothing on screen. +- **Phones get a nearly opaque sheet and no blur.** Map labels showed through at 82%, and blur is the biggest drawing cost; the 82% glass and blur apply from 768 px. +- **The map isn't highlighted for a selected job.** The canvas showed the route; the renderer has no such layer yet, so it was left out of this rework. +- **Plain Standard cargo has no chip in the table,** and only real requirements are mentioned; "No skills needed" went away as noise. Payout, distance and expiry stay in the row on wide panels and in the dispatch sheet's job details on phones (payout) or via the board's refresh countdown (expiry). +- **Dispatch is a modal below 1280 px** and beside the table above it; there isn't room beside a wide panel below that. +- **Step 29.9 checks:** axe (WCAG 2.0, 2.1 and 2.2 A/AA) reports nothing on 17 screens and sheets, though it can't judge text over the map; a 22-ship fleet stays usable. Frame rate held 60 in headless desktop Chrome only: a real mid-range phone is still untested. diff --git a/apps/web/src/components/PilotLogbook.tsx b/apps/web/src/components/PilotLogbook.tsx index a1c9b02..b6f037c 100644 --- a/apps/web/src/components/PilotLogbook.tsx +++ b/apps/web/src/components/PilotLogbook.tsx @@ -200,7 +200,7 @@ function PilotSection({ log, state, open }: { log: PilotLog; state: PlayerState; const now = useClock((c) => c.now); return (
- + {log.name} {log.xp > 0 && +{log.xp} XP} diff --git a/apps/web/src/layout/Layout.tsx b/apps/web/src/layout/Layout.tsx index 615dbbf..7a98be9 100644 --- a/apps/web/src/layout/Layout.tsx +++ b/apps/web/src/layout/Layout.tsx @@ -55,7 +55,7 @@ export function Layout({ diff --git a/apps/web/src/layout/PanelHost.tsx b/apps/web/src/layout/PanelHost.tsx index b7b50e7..f873ea7 100644 --- a/apps/web/src/layout/PanelHost.tsx +++ b/apps/web/src/layout/PanelHost.tsx @@ -138,7 +138,7 @@ export function PanelHost({ children }: { children: ReactNode }) { onPointerUp={onPointerUp} onPointerCancel={onPointerUp} onClick={step} - className="flex h-6 shrink-0 touch-none items-center justify-center md:hidden" + className="-mb-4 flex h-11 shrink-0 touch-none items-start justify-center pt-2.5 md:hidden" >