Commit graph

249 commits

Author SHA1 Message Date
isUnknown
31f74fbecd about : navigate team carousel 4 slides at a time on desktop refs #58
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 08:35:34 +02:00
isUnknown
edc3e3db1d footer : remove immediate onScroll call on slide change refs #59
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
Calling onScroll() immediately after attaching the listener caused the
footer to appear on page load when content height exceeded clientHeight
by less than the threshold (0 >= smallOverflow - 100 = true at scrollTop=0).
Footer now starts hidden and only reveals on explicit user scroll.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 08:33:08 +02:00
isUnknown
719f6ced53 footer : fix data-template sync and atBottom overflow guard refs #59
- App.svelte: sync body[data-template] on every active template change.
  PHP only sets it on initial load; SPA navigation left it stale (e.g.
  stuck on "home"), breaking CSS selectors like [data-template="white-paper"].
- Footer.svelte: guard atBottom with an overflow check.
  When scrollHeight === clientHeight (no overflow), the old formula
  (0 >= 0 - threshold) was always true, showing the footer immediately
  on pages with no scrollable content (e.g. white-paper detail on load).

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 08:25:32 +02:00
isUnknown
689ec3b138 portfolio : fix gallery loading and optimize image sizes refs #59
All checks were successful
Deploy / Deploy to Production (push) Successful in 25s
- Remove GalleryAnimation preloading (was downloading full-size originals
  via new Image(), causing 5MB+ redundant downloads on top of WebP srcset)
- Gallery now shows immediately, images load lazily via DOM
- Force eager loading on mockup img when slide becomes active (fixes
  first-project gallery never showing — lazy img off-screen on bg slide)
- Resize all direct ->url() calls to appropriate display dimensions:
  gallery src 600px, mockup src 960px, backgrounds 1920px,
  play lettering 500px, play preview 1000px, team photos 400px

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-15 08:12:55 +02:00
isUnknown
3d8d709165 footer : inert when hidden #57
All checks were successful
Deploy / Deploy to Production (push) Successful in 20s
2026-04-14 10:00:10 +02:00
isUnknown
5c2c015850 footer : disable pointer events when hidden #57
All checks were successful
Deploy / Deploy to Production (push) Successful in 28s
2026-04-14 09:58:23 +02:00
isUnknown
4dc937addd portfolio : decouple animation direction from mockup position
All checks were successful
Deploy / Deploy to Production (push) Successful in 27s
refs #44

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-05 10:00:19 +02:00
isUnknown
fc1fa42e67 footer : hide on white paper page
All checks were successful
Deploy / Deploy to Production (push) Successful in 23s
2026-04-04 10:27:10 +02:00
isUnknown
0148d5a9c3 mobile > expertise : force reverse video preload for mobile playback
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 10:25:16 +02:00
isUnknown
35b3869e97 white paper : hide footer
All checks were successful
Deploy / Deploy to Production (push) Successful in 20s
2026-04-04 10:22:40 +02:00
isUnknown
7241e75023 mobile > footer : disable pointer events
All checks were successful
Deploy / Deploy to Production (push) Successful in 23s
2026-04-04 10:19:32 +02:00
isUnknown
ffeedcdaed mobile : fix home video autoplay + adjust expertise text offset
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-04-04 10:18:01 +02:00
isUnknown
342b6322fb desktop > portfolio : improve horizontal mockup layout
All checks were successful
Deploy / Deploy to Production (push) Successful in 27s
2026-04-04 10:12:03 +02:00
isUnknown
cc61a83139 gallery animation : reveal only once all images are loaded. related to #55
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
Preload unique image URLs via new Image(). Container stays at opacity:0
until all are ready, then reveals at once. Cached images show instantly
(no fade transition). Fixes broken progressive reveal in scrolling gallery.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:28:31 +02:00
isUnknown
9d7fca4d91 global : preload bg-fixed background image before showing. related to #55
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:20:40 +02:00
isUnknown
c6c7ad3fca portfolio : load mockup before gallery animation images. related to #55
Defer GalleryAnimation rendering until mockup image is fully loaded.
Ensures mockup has bandwidth priority over gallery images.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:13:26 +02:00
isUnknown
701c5d1f56 global : reveal images only once fully loaded, prevent printer effect. related to #55
All checks were successful
Deploy / Deploy to Production (push) Successful in 5m25s
Images start at opacity:0 and fade in on load event. MutationObserver
catches cached images before first paint to show them instantly.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 12:09:26 +02:00
isUnknown
e2939da0ee portfolio : optimize thumbnail weight
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
2026-04-03 12:04:52 +02:00
isUnknown
3c92903518 portfolio : remove preloadAll, use {#key} for clean project transitions. related to #55
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
preloadAll caused slow loading by fetching all projects' images at once
(and 404s from srcset strings used as img src). {#key currentIndex}
destroys/recreates DOM on project switch, eliminating stale images.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:58:06 +02:00
isUnknown
947275544d perf : deferred slide rendering + sequential loading by proximity. related to #55
All checks were successful
Deploy / Deploy to Production (push) Successful in 5m26s
Only render the active slide initially. After its critical media (videos)
fires canplaythrough, progressively render remaining slides by distance.
JSON loading is now sequential by proximity instead of all-parallel.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:31:40 +02:00
isUnknown
f3ce36b99c portfolio : preload all project media on slide activation. related to #55
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 11:07:11 +02:00
isUnknown
fe348f1e48 expertise : active text a bit upper - related to #52
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
2026-04-03 11:03:49 +02:00
isUnknown
6a41be334e expertise : fix title responsiveness - related to #54
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
2026-04-03 10:59:13 +02:00
isUnknown
4b946d4cf0 expertise : fix active text centering - related to #52
All checks were successful
Deploy / Deploy to Production (push) Successful in 28s
2026-04-03 10:54:40 +02:00
isUnknown
6e0b0bd551 improve carousel mobile. related to #53
All checks were successful
Deploy / Deploy to Production (push) Successful in 32s
2026-04-02 16:23:16 +02:00
isUnknown
65f6bf459b hide footer on white paper. closes #52
All checks were successful
Deploy / Deploy to Production (push) Successful in 42s
2026-04-02 15:38:47 +02:00
isUnknown
4ccbad9663 about : extract team carousel into TeamCarousel component (swiper)
Replace inline carousel logic with a dedicated TeamCarousel.svelte component.
Uses SwiperJS for mobile peek (1.4 slides), tablet (2) and desktop (4) layouts,
with touch swipe, pagination dots and prev/next buttons.

related to #53

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 14:52:15 +02:00
isUnknown
6ec32dd82a expertise : simplify video + text scroll logic. related to #52
All checks were successful
Deploy / Deploy to Production (push) Successful in 25s
Replace complex segment-based video control with a simpler model:
- Scroll down → advance one text item (650ms lock) + play video forward
- Scroll up → go back one text item + play video in reverse
- Video plays continuously in chosen direction, decoupled from text items
- Remove useScrollNav, segmentEnds, offsetY, computeOffset, fwdTarget/revTarget

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-02 08:41:29 +02:00
isUnknown
0afbcf4088 footer : fix show/hide logic, transition and scroll throttle. related to #51
All checks were successful
Deploy / Deploy to Production (push) Successful in 23s
- Fix scroll listener (cleanup, local querySelector, scrollHeight calc)
- Fix media query syntax in variables.css (missing space in `and (`)
- Use transform: translateY instead of bottom for GPU-accelerated transition
- Throttle scroll handler with requestAnimationFrame
- Move Footer to App.svelte (global), remove per-view imports

refs #51

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-01 19:18:02 +02:00
isUnknown
77a1c58573 portfolio > mockup-horizontal : adjust position. related to #45
All checks were successful
Deploy / Deploy to Production (push) Successful in 5m25s
2026-03-31 18:42:36 +02:00
isUnknown
ff3005024f fix page-scrollable footer overflow. related to #51
All checks were successful
Deploy / Deploy to Production (push) Successful in 20s
2026-03-31 17:53:14 +02:00
isUnknown
23a6195e65 article : move block styles to src/styles/blocks/
All checks were successful
Deploy / Deploy to Production (push) Successful in 24s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:37:35 +02:00
isUnknown
8387843da0 article : extract ShareButtons and ArticleRelated components
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-31 15:32:23 +02:00
isUnknown
65ce77b5b1 button : fix vertical line. closes #35
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
2026-03-31 14:32:12 +02:00
isUnknown
16df036649 play : add play-icon. closes #50
All checks were successful
Deploy / Deploy to Production (push) Successful in 23s
2026-03-31 14:29:24 +02:00
isUnknown
8481dc5f90 add white-paper block type for articles
- Kirby block blueprint with page reference + editable bg/text colors
- PHP snippet renders the card with accessible markup (article, h3, button)
- WhitePaperDialog.svelte: native dialog with download form (a11y: labels, fieldset, autocomplete, focus management)
- Article.svelte: click detection on .wp-block__btn + dialog mount

refs #49

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 19:51:21 +02:00
isUnknown
d218bc47d7 fix footer position. closes #8
All checks were successful
Deploy / Deploy to Production (push) Successful in 5m25s
2026-03-30 19:13:42 +02:00
isUnknown
aa4c8cefdc #45
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
2026-03-30 19:01:14 +02:00
isUnknown
e5ae2ac64e portfolio : mockup translate down
All checks were successful
Deploy / Deploy to Production (push) Successful in 19s
2026-03-30 18:58:49 +02:00
isUnknown
8375a098c9 add privacy page. closes #16
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
2026-03-30 18:48:58 +02:00
isUnknown
44af8a9b4e add privacy page as standalone SPA view outside slide navigation
- New Kirby template/blueprint/JSON for privacy page (confidentialite slug)
- Standalone page state in slides store + router handling for non-nav pages
- Privacy.svelte view with background image, text blocks, footer
- Centralize vertical lines in App.svelte as fixed elements with per-slide visibility
- Footer privacy link language-aware (FR/EN)
- Portfolio mockup fix: read from default language for consistent EN display
- menu.php: add privacy page to Kirby panel navigation

refs #44

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 18:43:35 +02:00
isUnknown
b12b839f1b header > nav item responsive font size. closes #38
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
2026-03-30 18:18:51 +02:00
isUnknown
f815374030 white-paper(s) + panel : ajustements visuels. closes #41
All checks were successful
Deploy / Deploy to Production (push) Successful in 22s
- WhitePaper : cover en absolute bottom-left, overflow hidden sur mobile
- WhitePapers : position relative sur le conteneur
- Panel : fix couleur du tick des checkboxes/radios cochés

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 18:12:47 +02:00
isUnknown
8f43819f1a blueprints : ajouter l'onglet fichiers sur toutes les pages
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 18:00:57 +02:00
isUnknown
532eb5cfa6 header : ajouter le backdrop sur la page livres blancs. closes #40
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:34:51 +02:00
isUnknown
e643d0a233 portfolio : forcer la lecture du mockup depuis la langue par défaut. closes #47
All checks were successful
Deploy / Deploy to Production (push) Successful in 26s
Le champ mockup (translate: false) retournait null en version anglaise
car Kirby lisait le fichier de contenu EN vide. On lit maintenant
explicitement via defaultLanguage pour toutes les langues.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:33:08 +02:00
isUnknown
a043a8c281 vertical lines : centraliser en fixed dans App.svelte
- Retirer les lignes des views (Home, Expertise, About, Portfolio)
- Centraliser dans App.svelte en position:fixed, visibilité par slide
  via transition de hauteur 0→100vh selon slides.active.template
- Positions calculées depuis la golden-grid (1/6, 1/3, 1/2, 2/3, 5/6)
- Nettoyer layout.css (garder seulement les classes pour Menu.svelte)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 14:13:41 +02:00
isUnknown
9b548ecc12 article > game bloc : always show close button. closes #42
All checks were successful
Deploy / Deploy to Production (push) Successful in 5m23s
2026-03-26 15:44:25 +01:00
isUnknown
0bda4f8c21 blog > article > game bloc : add scroll into view on game launch. closes #43
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
2026-03-26 15:42:06 +01:00
isUnknown
1cce398ee4 play page : replace backgroundColor with backgroundImage, remove curves. closes #37
All checks were successful
Deploy / Deploy to Production (push) Successful in 21s
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-26 15:07:30 +01:00