feat: migrate frontend React 18 → Svelte 5 + SvelteKit
All checks were successful
CI/CD — Build & Deploy / Build & Deploy (push) Successful in 22s

Core logic portable (economy, balance, cosmetics, migrateSave) — zero rewrite.
136 tests green, identiques. Backend inchangé.

- Svelte 5 runes stores (game, auth, toast) remplacent Zustand
- SvelteKit adapter-static SPA (dist/ output, fallback index.html)
- Tailwind v4 conservé, design system .gp-* porté
- Transitions natives : slide, fly, scale, fade sur toute l'UI
- Sidebar tabbée (Production/Evolution/Collection) + CollapsiblePanel
- Mobile bottom sheet avec FAB toggle + backdrop blur
- Click particles réactifs Svelte (plus de DOM impératif)
- TadpoleSprite bounce + glow ring au clic
- Guide refait en accordéon, Achievements avec filtres
- a11y : focus-visible, Escape modals, aria-current, aria-labels
- CI/CD adapté (tests + build + rsync)
- Build 504K (vs ~1.2MB React)
This commit is contained in:
2026-03-28 20:03:21 +01:00
parent 3de0492631
commit f6bff6e389
125 changed files with 5323 additions and 10373 deletions

View File

@@ -0,0 +1,15 @@
<svg width="39" height="39" viewBox="0 0 39 39" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- Bubbles OFF — inactive state, dashed border -->
<rect x="1" y="1" width="37" height="37" rx="7" stroke="#202020" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" stroke-dasharray="20 20"/>
<!-- Big bubble -->
<circle cx="19" cy="16" r="8" stroke="#202020" stroke-width="2" fill="none"/>
<circle cx="16" cy="13" r="2" fill="#202020" opacity="0.3"/>
<!-- Medium bubble -->
<circle cx="12" cy="28" r="5" stroke="#202020" stroke-width="1.8" fill="none"/>
<circle cx="10.5" cy="26.5" r="1.2" fill="#202020" opacity="0.25"/>
<!-- Small bubble -->
<circle cx="28" cy="26" r="3.5" stroke="#202020" stroke-width="1.5" fill="none"/>
<circle cx="27" cy="24.8" r="0.9" fill="#202020" opacity="0.25"/>
<!-- Tiny bubble -->
<circle cx="30" cy="14" r="2" stroke="#202020" stroke-width="1.2" fill="none"/>
</svg>

After

Width:  |  Height:  |  Size: 915 B

View File

@@ -0,0 +1,15 @@
<svg width="39" height="39" viewBox="0 0 39 39" fill="none" xmlns="http://www.w3.org/2000/svg">
<!-- Bubbles ON — active state, filled background -->
<rect width="39" height="39" rx="8" fill="#202020"/>
<!-- Big bubble -->
<circle cx="19" cy="16" r="8" stroke="#8ecae6" stroke-width="2" fill="none"/>
<circle cx="16" cy="13" r="2" fill="#8ecae6" opacity="0.6"/>
<!-- Medium bubble -->
<circle cx="12" cy="28" r="5" stroke="#8ecae6" stroke-width="1.8" fill="none"/>
<circle cx="10.5" cy="26.5" r="1.2" fill="#8ecae6" opacity="0.5"/>
<!-- Small bubble -->
<circle cx="28" cy="26" r="3.5" stroke="#8ecae6" stroke-width="1.5" fill="none"/>
<circle cx="27" cy="24.8" r="0.9" fill="#8ecae6" opacity="0.5"/>
<!-- Tiny bubble -->
<circle cx="30" cy="14" r="2" stroke="#8ecae6" stroke-width="1.2" fill="none"/>
</svg>

After

Width:  |  Height:  |  Size: 811 B