- Router: findSlideIndex() avec fallback parent path
(/blog/slug → /blog) pour sub-pages
- article.json.php: réécriture — date, intro, cover, body (blocks→HTML),
related articles (fallback siblings si vide)
- Article.svelte: sous-composant — topbar date+retour, titre Terminal,
intro, cover, body rich text (styles :global pour blocks Kirby),
related articles grid, responsive
- Blog.svelte: gère deux modes (liste + article) —
intercepte les clics article via stopPropagation (avant le router),
fetch article data, pushState pour URL, popstate pour back/forward,
direct navigation /blog/slug sur mount
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- blog.json.php : réécriture — intro (writer), featured (pages field),
articles triés par date desc (featured exclu de la liste)
- layout.css : .page-scrollable + .page-container (styles génériques
pour pages scrollables type blog/article)
- Blog.svelte : page scrollable avec header intro, article featured
(image large + excerpt), liste articles avec dividers, responsive
mobile/tablet via @custom-media
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- Ajout image query/cover/ratio sur la section articles
(même config que la section featured)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- playLink renommé et translate: false sur playLink + backgroundColor
- button { border: none } dans buttons.css
- Largeur vignettes via :global(img) sur l'élément image
(découple la taille du bouton de celle de l'image)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Phase exiting (300ms) : featured + game-preview glissent/fondent dans slideDir
- Phase entering (350ms) : nouvel contenu entre depuis la direction opposée
- Swap currentIndex à 300ms : carousel grossit + bg crossfade simultanés
- Ajout game-preview (image preview côté droit, grid-area 3/13)
- Ajout preview dans le template JSON PHP
- Masqué sur mobile
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Renommage dossier content 3_play → 3_jouer (slug /jouer)
- Champ backgroundColor (code-editor) dans game.yml + exposé en API
- playLinks simplifié en champ url simple → playLink dans l'API
- Variable CSS --background-color sur la section .play
- Bouton "Jouer" avec icône play-icon (SVG data URI dans buttons.css)
- Plugin sylvainjule/code-editor ajouté via composer
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Blueprints : renommage des champs (member_name, related_articles,
background_video, play_links, images_gallery, external_links) et
des noms de sections
- Templates JSON PHP : clés de sortie et appels ->method() en camelCase
- Vues Svelte (Play, Portfolio) : accès aux données alignés
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Mise à jour de Svelte vers 5.53.7 pour supporter la syntaxe tableau/objet sur l'attribut class
- Cursor.svelte : class={[...]} avec états onTarget et onClick
- blueprints : catchphrase → catchPhrase
- buttons.css : suppression cursor: pointer
- Portfolio.svelte : scale hover nav item
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Renommage jouer → play (blueprint, template, txt, vue)
API play.json.php : title, lettering, description, thumbnail,
background_image, play_links par jeu enfant listed()
Vue Play.svelte :
- Fond image avec crossfade (transition opacity sur .play-bg)
- Section principale (.play-featured) : glissé/fondu au changement de jeu
via --slide-dir CSS var + classes is-out
- Carrousel nav (ul > li > button) : thumbnail + titre, active bordure verte
- Jeu sans play_links → bouton "Coming soon" désactivé
- Layout golden-grid, mobile adapté
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Nouveau store slides.svelte.js : gestion de l'état des slides (activeIndex, pendingPath, chargement progressif)
- Réécriture du router : remplace navaid par une logique custom avec chargement de la slide initiale puis des autres en arrière-plan
- App.svelte : layout slides-wrapper avec translateX, transition 1000ms
- Header.svelte : menu 100% dynamique depuis slides.all (ordre et titres multilingues depuis Kirby)
- site/controllers/site.php : navigation exposée via site->pages()->listed() avec titres par langue, home prependue
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Renommage des champs blueprint : cta_text → ctaText, cta_link → ctaLink
- Template home.json.php : expose ctaText et ctaPath (id de page Kirby)
- Home.svelte : suppression des traductions en dur, lecture de data.hero
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- Mise en place de Svelte 4 avec Vite pour le frontend (SPA)
- Simplification des templates PHP (header/footer minimalistes)
- Création de templates JSON pour API (home, about, expertise, portfolio, jouer, game, blog, article, project)
- Ajout d'un controller de site pour définir genericData globalement
- Structure des stores Svelte (page, navigation, locale, site)
- Router avec navaid pour navigation SPA et interception des liens
- Composants layout (Header, Footer, Cursor) et vues de base
- Build Vite vers assets/dist/ (index.js/css)
- Header PHP détecte assets/dist pour basculer dev/prod
Architecture fonctionnelle de base établie, à améliorer et compléter.
Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>