- Nouveau layout desktop : flex row avec catch-area (label + titre) et form-area (formulaire)
- Mobile : height 100vh non-scrollable, overlay formulaire déclenché au clic
- Tablet : grid 2 colonnes
- Suppression des préfixes wp- sur toutes les classes (CSS scopé Svelte)
- white-paper.json.php : intro via ->inline() pour texte brut
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- Footer renommé page-scrollable-footer, positionné en dernier enfant
de .page-container dans About, Blog et Article
- Marges négatives pour aligner le footer pleine largeur (about / blog)
- Retrait du footer global fixe de App.svelte
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- 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>