CI / verify (push) Failing after 5m29s
Estado do disco em 14/10/2026, sem filtrar. Inclui as copias .sync-conflict-* do Syncthing de 07/10 e os 15 arquivos que o Syncthing apagou; todo esse conteudo ja existia em outros commits. So havia fora do Git: AGENTS.md, CLAUDE.md e a alteracao em data/project-health.json.
152 lines
5.7 KiB
TypeScript
152 lines
5.7 KiB
TypeScript
import type { Metadata } from "next";
|
|
import Link from "next/link";
|
|
import { safeJsonLd } from "@/lib/jsonld";
|
|
import { buildBreadcrumbList } from "@/lib/seo";
|
|
import { siteName, siteUrl } from "@/lib/site-content";
|
|
|
|
const pageUrl = `${siteUrl}/privacidade`;
|
|
|
|
export const metadata: Metadata = {
|
|
title: "Privacidade e consentimento",
|
|
description:
|
|
"Como o portfólio trata dados de contato, consentimento de analytics, links externos e solicitações de privacidade.",
|
|
alternates: { canonical: pageUrl },
|
|
openGraph: {
|
|
title: `Privacidade e consentimento | ${siteName}`,
|
|
description:
|
|
"Informações factuais sobre contato, analytics e preferências de privacidade no portfólio.",
|
|
url: pageUrl,
|
|
siteName,
|
|
type: "website",
|
|
},
|
|
};
|
|
|
|
export default function PrivacyPage() {
|
|
const jsonLd = {
|
|
"@context": "https://schema.org",
|
|
"@graph": [
|
|
buildBreadcrumbList(pageUrl, [
|
|
["Início", siteUrl],
|
|
["Privacidade", pageUrl],
|
|
] as const),
|
|
],
|
|
};
|
|
|
|
return (
|
|
<main>
|
|
<script type="application/ld+json">{safeJsonLd(jsonLd)}</script>
|
|
|
|
<section className="ds-section ds-section-dark">
|
|
<div className="ds-section-shell max-w-[960px]">
|
|
<nav aria-label="Breadcrumb" className="mb-sp-6">
|
|
<ol className="flex flex-wrap items-center gap-sp-2 text-sm">
|
|
<li>
|
|
<Link className="ds-link ds-link-muted" href="/">
|
|
Início
|
|
</Link>
|
|
</li>
|
|
<li className="flex items-center gap-sp-2">
|
|
<span aria-hidden="true">/</span>
|
|
<Link
|
|
aria-current="page"
|
|
className="ds-link ds-link-muted"
|
|
href="/privacidade"
|
|
>
|
|
Privacidade
|
|
</Link>
|
|
</li>
|
|
</ol>
|
|
</nav>
|
|
<p className="ds-eyebrow">Privacidade e consentimento</p>
|
|
<h1 className="ds-section-title text-white">
|
|
Privacidade e consentimento
|
|
</h1>
|
|
<p className="ds-copy max-w-[70ch] !text-[rgba(255,255,255,.78)]">
|
|
Esta página explica, de forma objetiva, como funcionam o contato e
|
|
as escolhas de analytics neste portfólio.
|
|
</p>
|
|
</div>
|
|
</section>
|
|
|
|
<section className="ds-section">
|
|
<div className="ds-section-shell">
|
|
<div className="ds-grid-2">
|
|
<article className="ds-card">
|
|
<p className="ds-kicker">Responsável e contato</p>
|
|
<h2 className="ds-card-title">Evandro Fonseca Junior</h2>
|
|
<p className="ds-copy">
|
|
O responsável pelo site é Evandro Fonseca Junior. Para contato
|
|
ou solicitações relacionadas a esta página, escreva para{" "}
|
|
<a
|
|
className="ds-link ds-link-accent"
|
|
href="mailto:[email protected]"
|
|
>
|
|
evandrofonsecajunior@gmail.com
|
|
</a>
|
|
.
|
|
</p>
|
|
</article>
|
|
|
|
<article className="ds-card">
|
|
<p className="ds-kicker">Formulário de contato</p>
|
|
<h2 className="ds-card-title">Mensagem pelo WhatsApp</h2>
|
|
<p className="ds-copy">
|
|
Os dados digitados no formulário são transformados em uma
|
|
mensagem e abrem o WhatsApp. O site não possui endpoint próprio
|
|
de armazenamento desse formulário.
|
|
</p>
|
|
</article>
|
|
|
|
<article className="ds-card">
|
|
<p className="ds-kicker">Analytics</p>
|
|
<h2 className="ds-card-title">Escolha antes da medição</h2>
|
|
<p className="ds-copy">
|
|
Antes de <code>granted</code>, nenhuma tag do Google é
|
|
carregada. A escolha fica no <code>localStorage</code> sob a
|
|
chave <code>evandro.analytics-consent.v1</code>, com os valores{" "}
|
|
<code>granted</code> ou <code>denied</code>.
|
|
</p>
|
|
<p className="ds-copy mt-sp-4">
|
|
A publicidade permanece negada. Ao conceder analytics, o Google
|
|
pode criar cookies <code>_ga*</code>. Ao revogar, novas coletas
|
|
são desativadas e os cookies de analytics acessíveis são
|
|
expirados.
|
|
</p>
|
|
</article>
|
|
|
|
<article className="ds-card">
|
|
<p className="ds-kicker">Preferências e links</p>
|
|
<h2 className="ds-card-title">Você pode mudar a escolha</h2>
|
|
<p className="ds-copy">
|
|
Para alterar a preferência, use o controle existente{" "}
|
|
<strong>“Preferências de analytics”</strong> para acessar suas
|
|
preferências de privacidade. Links externos para GitHub,
|
|
LinkedIn, Instagram, demos e WhatsApp seguem as políticas
|
|
próprias de cada serviço.
|
|
</p>
|
|
<p className="ds-copy mt-sp-4">
|
|
Solicitações relacionadas aos seus direitos devem ser
|
|
encaminhadas ao e-mail publicado acima.
|
|
</p>
|
|
<Link
|
|
className="ds-link ds-link-accent mt-sp-5 inline-block"
|
|
href="/"
|
|
>
|
|
Voltar ao início
|
|
</Link>
|
|
</article>
|
|
</div>
|
|
|
|
<div className="mt-sp-8 border-t border-[var(--border)] pt-sp-5">
|
|
<p className="ds-kicker">Vigência</p>
|
|
<p className="ds-copy mt-sp-2">
|
|
Esta versão está vigente desde{" "}
|
|
<time dateTime="2026-09-04">2026-09-04</time>.
|
|
</p>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</main>
|
|
);
|
|
}
|