• Mahmoud Aglan's avatar
    fix(website): stop the partner carousel scrolling the page, and turn the hero... · 737b1fdb
    Mahmoud Aglan authored
    fix(website): stop the partner carousel scrolling the page, and turn the hero showcase into a real flipping carousel
    
    Three faults, all found by watching the built site rather than reading it.
    
    The partner carousel dragged the whole page down to itself. Its timer called
    `el.scrollIntoView()` every few seconds, and scrollIntoView walks up and scrolls
    *every* scrollable ancestor including the document — so a reader anywhere on the
    page was hauled to the partners section on a loop. It now sets `scrollLeft` on
    its own track, which cannot move anything but itself. Verified: twelve seconds
    on the homepage, `window.scrollY` never leaves 0, while the track's own
    scrollLeft still advances.
    
    The hero showcase was manual when it should play itself. The reference plays
    each design for a beat, turns it on its Y axis to show the back, holds again,
    then hands over to the next — an Embla autoplay at `delay: 2500` with a
    `duration-700` `rotateY(180deg)` flip and `backfaceVisibility`, read out of
    their own bundle rather than guessed. Ours sat still until someone clicked a
    swatch. It now runs that cycle: a genuine 3D flip of one object, not a crossfade
    between two pictures, with both faces backface-hidden so they never show through
    one another mid-turn. Hovering pauses it; reduced-motion skips it entirely.
    
    The colour swatches were large filled circles under the garment, which read as
    loud page furniture rather than a control. They are gone by default. A site that
    wants them gets `showcase_controls`, and they render as the same discreet
    progress dashes the other carousels use.
    
    New fields: `showcase_autoplay` (default on), `showcase_interval` (default
    2500ms, matching the reference), `showcase_controls` (default off).
    
    Verified on a local replica carrying the full 11-page site: sampling the hero
    across a cycle shows active=1 front → active=1 flipped → active=2 front, so the
    flip and the hand-over both really happen; 22 page/locale combinations answer
    200 with no logged block failures; 137 block/variant combinations render; suite
    passes.
    Co-Authored-By: 's avatarClaude Opus 5 (1M context) <noreply@anthropic.com>
    737b1fdb
Name
Last commit
Last update
Screenshots Loading commit data...
app Loading commit data...
bootstrap Loading commit data...
config Loading commit data...
database Loading commit data...
docker Loading commit data...
docs Loading commit data...
docs-site Loading commit data...
flutter_shell Loading commit data...
gap-filling-plans Loading commit data...
lang Loading commit data...
marketing-site Loading commit data...
plans Loading commit data...
public Loading commit data...
reference/oc-sport Loading commit data...
resources Loading commit data...
routes Loading commit data...
scripts Loading commit data...
storage Loading commit data...
tests Loading commit data...
.dockerignore Loading commit data...
.editorconfig Loading commit data...
.env.example Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.npmrc Loading commit data...
Beanding Guide.txt Loading commit data...
CLAUDE.md Loading commit data...
Dockerfile Loading commit data...
README.md Loading commit data...
artisan Loading commit data...
captain-definition Loading commit data...
composer.json Loading commit data...
composer.lock Loading commit data...
deploy.sh Loading commit data...
elcaptain-sportsonly-db.md Loading commit data...
one-click-app.yml Loading commit data...
package-lock.json Loading commit data...
package.json Loading commit data...
phpunit.xml Loading commit data...
system info.txt Loading commit data...
vite.config.js Loading commit data...
نادى الشيخ زايد كشف بيانات اللاعبين (2).html Loading commit data...