kaintuck: move in-port secondary actions into a bottom sheet
kaintuck: move in-port secondary actions into a bottom sheet
#48 in Riparion/riparion-retro — merged 2026-06-14
What
The in-port hub screens (Town, Pittsburgh, Natchez) had grown busy — market/landing info plus a growing pile of action buttons crammed into one action bar. This moves each port's secondary actions into a new reusable bottom Sheet, keeping only the primary depart action (CAST OFF / "Set out on the Trace") and a MORE ▲ trigger on the bar.
Changes
- retro-kit
Sheetcomponent (crates/retro-kit/src/components/sheet.rs): a slide-up drawer over a dimming scrim. CSS lives incrt.css— z-index below the z-50 scanline overlay, safe-area bottom padding,prefers-reduced-motionaware, and the closed state is both translated off-screen andpointer-events: none. - Town / Pittsburgh (load phase) / Natchez: secondary actions (trade, moneylender, repair, convoy, buy cargo, sell/gamble/horse) move into the sheet; the primary stays on the bar.
SetPieceMenuShow {All, Primary, Secondary}filter so Natchez keeps "Set out on the Trace ▸" on the bar while the rest render in the sheet, both sharing one dispatch closure.tailwind.cssregen: drops now-unusedcol-span-2/grid-cols-4and addsgrid-cols-5— used bystatus_bar.rssince 885c2ed but never compiled in, so the StatusBar's 5-column grid had no rule (latent layout bug, now fixed).
Verification
cargo test -p kaintuck— 61 passed, golden trace stable (UI-only).- Drove the release bundle with playwright: sheet opens/closes (scrim tap + slide transform), navigation from inside the sheet works, Town@Memphis shows all secondary actions with scaled repair cost, Natchez keeps the primary off the sheet, Pittsburgh action bar is now
position: sticky, and the StatusBar renders five equal columns.
🤖 Generated with Claude Code
Last updated 2026-06-14
Links to this note
Credits
Merged pull requests, newest first.