feat(home): ofertas que vendem o título, WhatsApp no hero e menu do celular acessível
Três ofertas (site que traz pedidos pelo WhatsApp, sistema para tirar a operação da planilha, revisão de sistema existente) com miniatura e formulário com o tipo escolhido; botão principal do hero abre o WhatsApp; moldura da SEV no hero do celular; menu fecha ao navegar, Esc, foco preso incluindo a barra de cookies e espaço para ela; CinematicHome como componente de servidor com ilha cliente; /ia com H1 de oferta e cartão do que você recebe; botão flutuante em aside com transform; AVIF antes de WebP; copy sem repetir contato direto.
This commit is contained in:
1 parent
de6af74a0c
commit
f8545cd442
44 files changed
+2286
-571
No files matched your search
@@ -7,6 +7,8 @@ import { buildWhatsAppUrl } from "@/lib/whatsapp";
|
||||
interface WhatsAppLinkProps {
|
||||
children: ReactNode;
|
||||
className?: string;
|
||||
/** Para o botão flutuante achar o convite (HERO_CTA_ID). */
|
||||
id?: string;
|
||||
/** Assunto da conversa, na frase "Quero conversar sobre {service}". Sem ele, a mensagem fala de "um projeto". */
|
||||
service?: string;
|
||||
placement: string;
|
||||
@@ -20,6 +22,7 @@ const DEFAULT_ANALYTICS_SERVICE = "Contato";
|
||||
export default function WhatsAppLink({
|
||||
children,
|
||||
className = "",
|
||||
id,
|
||||
service,
|
||||
placement,
|
||||
onClick,
|
||||
@@ -29,6 +32,7 @@ export default function WhatsAppLink({
|
||||
const analyticsService = subject ?? DEFAULT_ANALYTICS_SERVICE;
|
||||
return (
|
||||
<a
|
||||
id={id}
|
||||
href={buildWhatsAppUrl(
|
||||
`Olá, Evandro! Quero conversar sobre ${subject ?? "um projeto"}. Contato iniciado pelo site evandro.dev.br.`,
|
||||
)}
|
||||
|
||||
Reference in new issue
Block a user