Commit graph

15 commits

Author SHA1 Message Date
isUnknown
fcca068868 Fix: navigation sous-pages blog/white-papers + singleSlug
All checks were successful
Deploy / Deploy to Production (push) Successful in 25s
- App.svelte : flèches clavier bloquées sur sous-page (ArrowLeft → history.back())
- Blog/WhitePapers : reset de articleData/itemData après 1100ms (post-transition)
  pour éviter le flash pendant l'animation de changement de slide
- WhitePapers : singleSlug jamais resetté (pré-affiché à l'arrivée sur la slide)
- WhitePapers : $effect sur isActive pour replaceState + openItem si itemData null
- WhitePapers/Blog : handlePopState ignore les popstate hors de la page courante

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-19 07:36:43 +01:00
isUnknown
d4f05d6157 Feat: Livres blancs — nouveau template collection + livre blanc individuel
- Blueprints white-papers / white-paper (intro, cover, PDF, date)
- Templates PHP + JSON API (liste avec singleSlug, détail avec fileUrl)
- Route POST (:any)/(:any)/download pour le téléchargement gated
- Panel : entrée white-papers ajoutée au menu après blog
- collection.css : styles partagés extraits de Blog (collection-*)
- Blog.svelte : classes renommées blog-* → collection-*
- WhitePapers.svelte : vue liste, URLs dynamiques via data.uri
- WhitePaper.svelte : vue détail deux colonnes + formulaire de téléchargement
- i18n : clés white paper (label, form, consentement, statuts)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-18 17:37:22 +01:00
isUnknown
c6fa61c77b Feat: footer reveal — page-scrollable-footer intégré aux vues
All checks were successful
Deploy / Deploy to Production (push) Successful in 25s
- 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>
2026-03-18 12:14:59 +01:00
isUnknown
b3b0580ab1 Feat: footer reveal + refactor page About
All checks were successful
Deploy / Deploy to Production (push) Successful in 24s
- 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>
2026-03-17 10:00:53 +01:00
isUnknown
517143fe60 Feat: intégration multilingue FR/EN (i18n)
All checks were successful
Deploy / Deploy to Production (push) Successful in 18s
- Ajout de src/i18n/index.js : dictionnaire centralisé + fonction t(key, vars)
- Ajout de LanguageSwitcher.svelte : toggle FR/EN avec persistance localStorage
- Router : normalizePath strip /en/, apiPrefix() pour les fetches, détection langue (URL > localStorage > navigator)
- Tous les composants (Header, Menu, Footer, Article, Blog, Play) migrent vers t() depuis @i18n
- Blog : navigation interne (fetch, history, getSlugFromUrl) locale-aware

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 11:57:59 +01:00
isUnknown
3bd410cc02 Fix: footer repositionné sous l'article via article-wrapper
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>
2026-03-12 11:38:01 +01:00
isUnknown
0233a6a4a4 Feat: footer sémantique dans Blog, About et Article
All checks were successful
Deploy / Deploy to Production (push) Successful in 19s
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>
2026-03-11 10:57:52 +01:00
isUnknown
eef95f10d6 Feat: background fixe partagé entre About et Blog
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
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>
2026-03-11 10:33:03 +01:00
isUnknown
3c5b4f76dd Feat: header article avec date + boutons de partage, share section bas de page, golden-grid conditionnel
All checks were successful
Deploy / Deploy to Production (push) Successful in 18s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 19:19:05 +01:00
isUnknown
b9631b8c53 Fix: remplacer custom media queries par valeurs en dur, retirer postcss-custom-media
All checks were successful
Deploy / Deploy to Production (push) Successful in 5m23s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 18:55:37 +01:00
isUnknown
93308bbb65 Fix: blog — date published, intro sans excerpt, styles card affinés
All checks were successful
Deploy / Deploy to Production (push) Successful in 19s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 17:45:11 +01:00
isUnknown
0505cc7b8e Feat: pages Article + navigation blog/article interne
All checks were successful
Deploy / Deploy to Production (push) Successful in 19s
- 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>
2026-03-10 16:55:34 +01:00
isUnknown
3ab4b21e8c Feat: implémentation front page Blog
- 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>
2026-03-10 16:47:49 +01:00
isUnknown
9ab6344835 Renommer lib/ en state/ pour plus de clarté
All checks were successful
Deploy / Deploy to Production (push) Successful in 13s
- Renommage du dossier src/lib/ en src/state/
- Mise à jour de l'alias @lib vers @state dans vite.config.js
- Suppression de l'alias @stores devenu obsolète
- Mise à jour de tous les imports dans les composants et vues

Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
2026-02-07 08:26:28 +01:00
isUnknown
cbe89acb21 Migration vers architecture Svelte + Kirby inspirée de design-to-pack
- 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>
2026-02-06 16:30:15 +01:00