feat(home): posicionamento com prova, menu sem recarregar e WhatsApp em todo o site

H1 'Sites e sistemas que trazem pedidos pelo WhatsApp e tiram sua operação da planilha.'; HeroWork maior com a SEV; menu Cases, Serviços, Como trabalho, Sobre e IA com next/link e pré-carregamento no hover; menu do celular em tela cheia; WhatsApp flutuante e no rodapé com a mensagem da rota; rodapé em todas as páginas; FAQ da home; /ia como oferta de revisão de app feito com IA; formulário com noscript, validação do mailto e plano B do pop-up; cartões sem foco indevido; sem a fonte Monument.
This commit is contained in:
Evandro Fonseca Junior committed 2026-10-14 14:15:25 -03:00
1 parent e80f73d075
commit 10f170abf4
56 files changed
+3099 -906

No files matched your search

+23 -6
View File
@@ -14,6 +14,7 @@ import {
} from "@/lib/site-navigation";
import "./conversion.css";
import { Logo } from "./Logo";
import WhatsAppLink from "./WhatsAppLink";
const headingClassName =
"font-mono text-[12px] font-medium uppercase tracking-[0.12em] text-[var(--meta)]";
@@ -30,7 +31,8 @@ export default function Footer({
const currentYear = new Date().getFullYear();
return (
<footer className="border-t border-[var(--border)] bg-[var(--paper)] px-[clamp(20px,6vw,64px)] py-sp-10 text-[var(--ink)]">
// no celular o botão flutuante do WhatsApp (56 px + 16 px de margem) cobriria a última linha: o rodapé sobe o espaço dele
<footer className="border-t border-[var(--border)] bg-[var(--paper)] px-[clamp(20px,6vw,64px)] py-sp-10 text-[var(--ink)] max-md:pb-[calc(var(--sp-10)+72px)]">
<div className="ds-section-shell">
<div className="grid gap-sp-8 md:grid-cols-3 md:gap-sp-10">
<section aria-labelledby="footer-contact-title">
@@ -38,6 +40,14 @@ export default function Footer({
Contato
</p>
<ul className="mt-sp-2">
<li>
<WhatsAppLink
placement="footer"
className={`${linkClassName} font-semibold !text-[var(--ink)] focus-visible:!ring-[var(--ink)] focus-visible:!ring-offset-[var(--paper)]`}
>
WhatsApp
</WhatsAppLink>
</li>
<li>
<a
href={`mailto:${CONTACT_EMAIL}`}
@@ -100,6 +110,11 @@ export default function Footer({
Cases
</Link>
</li>
<li>
<Link href="/ia" className={linkClassName}>
Revisão de app feito com IA
</Link>
</li>
<li>
<Link href="/privacidade" className={linkClassName}>
Privacidade
@@ -117,7 +132,7 @@ export default function Footer({
<li>
<Link
href="/curriculo"
className={`${linkClassName} !text-[14px] !text-[var(--meta)]`}
className={`${linkClassName} !text-[15px] md:!text-[14px] !text-[var(--meta)]`}
>
Currículo
</Link>
@@ -127,14 +142,16 @@ export default function Footer({
</div>
<div className="mt-sp-8 flex flex-wrap items-center justify-between gap-x-sp-6 gap-y-sp-3 border-t border-[var(--border)] pt-sp-5">
<a
<Link
href="/#home"
aria-label="Evandro.dev.br — início"
className="inline-flex min-h-11 items-center"
>
<Logo theme="light" className="w-40" />
</a>
<p className="font-display text-[14px] leading-6 text-[var(--meta)]">
{/* o ".dev" do logo é limão (#ccff00), quase invisível sobre o papel: o filtro o escurece (de 1,04:1
para 4:1) e o resto do logo, já quase preto, quase não muda */}
<Logo theme="light" className="w-40 [filter:brightness(0.5)]" />
</Link>
<p className="font-display text-[15px] md:text-[14px] leading-6 text-[var(--meta)]">
© {currentYear} Evandro Fonseca Junior. Todos os direitos
reservados.
</p>