- Footer global fixé en bas (App.svelte), masqué par le contenu des slides
- margin-bottom sur .page-scrollable pour l'effet footer reveal (about, blog, article)
- About : champ intro remplacé par heading (text) + subtitle (writer), blueprint + API + vue mis à jour
- LanguageSwitcher : div → button avec hitbox élargie
- i18n : clé our_team (fr: NOTRE ÉQUIPE / en: OUR TEAM)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Même logique que les touches fléchées : navigation entre jeux,
aux limites passage à la slide précédente/suivante via slideTo.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- App.svelte : classe active sur la slide courante
- Portfolio : flèches PNG custom, <output> pour le compteur, transition gallery mobile avec délai à l'entrée seulement
- fonts.css : @font-face Danzza Light + classe .font-face-danzza-light corrigée
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Background fixe mobile (BG GAME MOBILE.png, position bottom)
- GalleryAnimation en plein écran sur mobile (position fixed, opacité 0.8)
- Arrows + compteur 01/05 ajoutés (desktop grid-area 18/16, mobile 18/15)
- Layout mobile : mockup centré, texte par-dessus, keywords masqués, nav horizontale 75px
- Séparation desktop-only / mobile-only pour la galerie
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Le footer était auto-placé par la CSS Grid golden-grid avant l'article.
Wrap article + footer dans .article-wrapper qui porte le grid-area.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Refonte complète du Footer (sémantique propre, données dynamiques depuis
le store site, bouton subscribe avec l'animation .button partagée).
Intégré dans About, Blog et Article. Scroll-to-top au départ de About et Blog.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Ajout d'un calque position:fixed avec BACKGROUND2 derrière toutes les slides.
About et Blog (transparents) le laissent apparaître naturellement.
Les autres slides (opaques) le recouvrent sans changement.
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>
- Handler enregistré en { capture: true } → s'exécute avant App.svelte
- stopImmediatePropagation quand navigation interne (pas aux limites)
→ empêche App de changer de slide en même temps
- Aux limites : aucune interception → App gère naturellement la slide adjacente
- Supprimé : slideTo import, prevSlidePath/nextSlidePath (inutiles)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- ArrowRight/Left : navigue entre les jeux
aux limites (premier/dernier), passe à la slide prev/next
- Ancres URL (#slug) : set à chaque changement de jeu,
restaurées au chargement, effacées quand on quitte la slide
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>