import Image from "next/image"; import { getShowcaseAssets } from "@/lib/project-showcase"; import HoverPrefetchLink from "./HoverPrefetchLink"; /** O cartão mostra o site da SEV e leva ao case. */ const SMALL_SCREEN_PROJECT = "sev-modaintima"; const SMALL_SCREEN_TITLE = "SEV Moda Íntima"; const SMALL_SCREEN_HREF = `/cases/${SMALL_SCREEN_PROJECT}`; /** * Altura da imagem do cartão de celular (px): a largura é a da coluna (cerca de 342 px num celular de 390 px). Com 72 px * a área da imagem (cerca de 25 mil px²) fica abaixo da do H1 (cerca de 29 mil px² a 390 px): com 96 px ela era maior, e * numa rede lenta a imagem, que chega depois, passava a ser o LCP no lugar do título (medido com rede e CPU limitadas). */ const SMALL_CARD_IMAGE_HEIGHT = 72; /** * Faixa de 72 px de altura: o pôster do computador (16:10) cortado nela mostrava só uma fatia do topo, e o título * "Nova Coleção" saía pela metade. O pôster do celular (390x844, o mesmo site) tem o título em letras maiores: o * `object-position` leva a faixa até a linha "Nova Coleção", que cabe inteira nela. */ const SMALL_CARD_IMAGE_POSITION = "object-[50%_57%]"; /** * Trabalho real do hero, só abaixo de 1024 px: um cartão largo e clicável (a largura da coluna, cerca de 350 px num * celular) com o pôster do site da SEV, abaixo dos botões, que leva ao case da SEV; antes era uma moldura de celular * de 65 por 160 px, pequena demais para ver o que era. Em telas largas a coluna da direita é da peça 3D, e o trabalho * real começa na seção Projetos. * O pôster vai pelo next/image com `sizes` do tamanho em que aparece, em `loading="lazy"` e prioridade baixa: o título * segue como o maior elemento da dobra (LCP; ver SMALL_CARD_IMAGE_HEIGHT), e em tela larga, onde o cartão fica * escondido pelo breakpoint (display: none), a imagem nem é baixada. */ export default function HeroWork() { const smallCard = getShowcaseAssets(SMALL_SCREEN_PROJECT, "mobile"); return ( Site da {SMALL_SCREEN_TITLE}{" "} Ver case ); }