Per-route transition-delay stagger and entrance evidence split header shell identity

Aperta
#5,688 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
55/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
php, wordpress
Ambito
backend, web-dev

Direzione di ricerca

Start at ShellExtraction::normalizeNestedChromeMarkup and trace how navigation anchor styles and data-blocks-engine-capture-viewport-entrance affect shell identity. Build the described three-route fixture with varied transition delays and entrance evidence, then check that it yields one shared header part and no inline headers in post content.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

Signature

  • Stage: WordPress materialization (shell extraction identity)
  • Check: block theme scorecard shared_shell: front-page, page, 404 and index carry no shared header part; 2 header variants
  • Code: ShellExtraction::normalizeNestedChromeMarkup

What happens

The source staggers header nav entrance animations with an inline transition-delay that depends on the page (the number of items it counts). The same header nav carries different delays on each route:

home     transition-delay: 0.0315789s / 0.0473684s / 0.0631579s
about    transition-delay: 0.0171429s / 0.0257143s / 0.0342857s
contact  transition-delay: 0.0333333s / 0.05s      / 0.0666667s

The delays survive into metadata.blocksEngineNavigationItems[].blocksEngineNavigationAnchor.style, which the normalizer does not strip, so every route's header gets its own identity. On this import, 15 of 18 page headers are unique and stay inline in post content. The data-blocks-engine-capture-viewport-entrance runtime attribute present on some routes splits shell identity the same way. That is the #5619 family; #5619 says viewport-entrance state is already ignored, but on this build it is not.

Seen on a Squarespace 7.1 site import. Found with SSI 1.33.540, BE php-transformer 0.45.521.

Reduced fixture (sketch)

Three routes with an identical <header><nav> of three links. Give the anchors style="transition:opacity .3s;transition-delay:0.01s" / 0.02s / 0.03s, with a different set per route, and add data-blocks-engine-capture-viewport-entrance to one route's header title only. Expected: one shared header part used by every route. Actual: per-route inline headers.

Expected

Motion timing (transition-delay, animation-delay) and capture-only entrance evidence do not affect shell identity. The shared part keeps one route's values, or drops the per-item stagger, so chrome is extracted once. Regression: the 3-route fixture; assert one header part and no inline header in post content.

AI assistance

Found by Claude (Anthropic) in the Pi coding agent during a Data Liberation import loop. A research subagent traced the normalizer path; I confirmed the delays with WP-CLI on the imported posts. A human requested the loop.

Lingua principale
PHP
Stelle
28
Fork
5
Merge medio
2h 30m
PR unite (30g)
933

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di Automattic/blocks-engine

Tutte le issue di Automattic/blocks-engine

Issue simili

Altre issue su PHP

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.