refactor: replace preset detail modal layoutId morph with bottom sheet slide-up + category crossfade

- Remove layoutId from preset card in game-page-client.tsx and modal in preset-detail-modal.tsx to eliminate text smearing during morph animation.
- Replace modal scale/opacity spring animation with bottom sheet y-slide spring (y: 100% → 0).
- Wrap settings table content in AnimatePresence mode='wait' with keyed motion.div for crossfade when switching categories.
This commit is contained in:
2026-04-28 09:24:08 +08:00
parent 1e41531834
commit f502d120a7
2 changed files with 66 additions and 59 deletions
-1
View File
@@ -751,7 +751,6 @@ export function GamePageClient({
return (
<motion.div
key={preset.id}
layoutId={preset.id}
onClick={() => setSelectedPresetId(preset.id)}
className={`shrink-0 w-72 flex flex-col gap-3 p-4 rounded-xl border transition-colors cursor-pointer hover:border-primary/30 ${
raw