fix(navegacao): foco em âncora de outra página, vitrine acessível e 3D mais leve

Foco cai no destino ao chegar de outra página; âncoras ignoram ?tipo=; movimento reduzido salta em todos os cliques; cronômetro da janela ampliada; degradê no topo de Projetos e legendas do mergulho com intervalos testados; vitrine acima da barra de cookies e com 2 paradas por projeto; reel-list.css no global; 3D montado em tarefas curtas, limitado a ~30 qps e estático com WebGL por software; pôsteres da vitrine de 330 para 158 KB; SC Plus regravado; scripts sem funções acima de complexidade 10.
This commit is contained in:
Evandro Fonseca Junior committed 2026-10-14 19:14:48 -03:00
1 parent 9e2d65a926
commit 204ebd5fa5
49 files changed
+2197 -606

No files matched your search

+17 -6
View File
@@ -129,14 +129,25 @@ describe("samePageHashTarget (rules shared with the arrival code)", () => {
).toBeNull();
});
it("refuses a link to the same path with another query string", () => {
window.history.replaceState(null, "", "/?a=1");
it("ignores the query string: the page is the same, so the header anchors keep scrolling with ?tipo= in the URL", () => {
window.history.replaceState(null, "", "/?tipo=site");
// O link do cabeçalho não repete a busca; um link com outra busca ainda é a mesma página.
expect(samePageHashTarget(clickOn(`<a href="/#alvo">x</a>`))?.hash).toBe(
"#alvo",
);
expect(
samePageHashTarget(clickOn(`<a href="/?a=2#alvo">x</a>`)),
).toBeNull();
expect(
samePageHashTarget(clickOn(`<a href="/?a=1#alvo">x</a>`))?.hash,
samePageHashTarget(clickOn(`<a href="/?tipo=app#alvo">x</a>`))?.hash,
).toBe("#alvo");
expect(
samePageHashTarget(clickOn(`<a href="/?tipo=site#alvo">x</a>`))?.hash,
).toBe("#alvo");
});
it("still refuses a link to another path, with or without a query string", () => {
window.history.replaceState(null, "", "/?tipo=site");
expect(
samePageHashTarget(clickOn(`<a href="/outra?tipo=site#alvo">x</a>`)),
).toBeNull();
});
});