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

+5 -14
View File
@@ -6,7 +6,6 @@ import {
chapterIndexAt,
desktopFractionAt,
getOgImagePath,
getProjectVideo,
getScrubSource,
getShowcaseAssets,
MAX_CHAPTERS,
@@ -99,21 +98,13 @@ describe("showcase chapters", () => {
});
describe("showcase assets", () => {
it("returns undefined for projects without a recorded video", () => {
expect(getProjectVideo("reddit-explorer")).toBeUndefined();
expect(getProjectVideo("reddit-explorer", "mobile")).toBeUndefined();
});
it("picks the version for the device, desktop by default", () => {
expect(getProjectVideo("nutriscan")?.poster).toBe(
it("picks the version for the device", () => {
expect(getShowcaseAssets("nutriscan", "desktop").poster).toBe(
"/videos/nutriscan/desktop.webp",
);
expect(getProjectVideo("nutriscan", "desktop")).toEqual(
getShowcaseAssets("nutriscan", "desktop"),
);
const mobile = getProjectVideo("nutriscan", "mobile");
expect(mobile?.poster).toBe("/videos/nutriscan/mobile.webp");
expect(mobile?.sources.map((source) => source.src)).toEqual([
const mobile = getShowcaseAssets("nutriscan", "mobile");
expect(mobile.poster).toBe("/videos/nutriscan/mobile.webp");
expect(mobile.sources.map((source) => source.src)).toEqual([
"/videos/nutriscan/mobile.webm",
"/videos/nutriscan/mobile.mp4",
]);