lw-advocacia

LW Advocacia: landing page

Landing page do escritório LW Advocacia em HTML semântico, CSS puro e JS vanilla, construída sobre o design system em https://claude.ai/artifact/SpNVkZTFhNCDT3NwiPE7tv. O conteúdo fica separado do layout (content/site.json) e é editável por um painel (Decap CMS).

🌐 Site publicado: https://leodwahhab.github.io/lw-advocacia/ (GitHub Pages)

Status: publicado no GitHub Pages como demonstração. O domínio próprio ainda não está configurado (veja docs/publicacao.md). ⚠️ O conteúdo usa dados de exemplo propositalmente falsos (“Fulana de Tal”, OAB/BA 123.456, Xique-Xique/BA, domínio example.com). A lista completa para substituir está em docs/pendencias.md.

Publicação (GitHub Pages)

   
Site https://leodwahhab.github.io/lw-advocacia/
Política de Privacidade https://leodwahhab.github.io/lw-advocacia/politica-de-privacidade.html
Repositório https://github.com/leodwahhab/lw-advocacia
Deploys https://github.com/leodwahhab/lw-advocacia/actions

Como rodar

Requisitos: Node.js 20 ou superior.

npm install        # uma vez
npm run dev        # site em http://localhost:8080 + painel em http://localhost:8080/admin/

No Windows, um duplo clique em editar-site.cmd faz o mesmo e abre o painel.

Comando O que faz
npm run dev Build + recompilação automática a cada alteração + servidor local (8080) + decap-server (8081, painel local)
npm run build Gera dist/ e roda o check-oab. Falha se houver termo proibido pela OAB.
npm run preview Serve dist/ como em produção (brotli/gzip + cache) em http://localhost:4173, para medir com o Lighthouse
npm run cms Só o decap-server (se o site já estiver sendo servido de outra forma)
npm run check:oab Só a checagem de termos proibidos
npm run gtm:container Gera de novo integrations/gtm-container.json

Como editar

Estrutura

content/site.json            conteúdo editável (fonte única)
src/template.html            página inicial · src/politica.html: Política de Privacidade
src/partials/                head, header, footer, fixos (WhatsApp + cookies)
src/css/                     tokens.css + components.css (design system) + site.css (ajustes)
src/js/main.js               microinterações, cookies/Consent Mode, formulário, dataLayer, GTM tardio
src/admin/                   Decap CMS (index.html + config.yml)
src/fonts/                   Source Serif 4 (normal e itálico) + Inter, woff2 latin
assets/                      logo, emblema, fotos originais, uploads do CMS
scripts/build.mjs            build (templates, CSS crítico, imagens, favicons, SEO, docs)
scripts/check-oab.mjs        checagem de termos proibidos (Provimento 205/2021)
scripts/dev.mjs · preview.mjs   servidores local e de preview
scripts/lib/                 motor de templates, imagens (sharp), ícones Lucide, geração de docs
integrations/                Apps Script do formulário + contêiner do GTM
docs/                        tutoriais, decisões, pendências, copy para revisão, screenshots
dist/                        gerado pelo build (fora do Git)

O que o build gera

Verificação (21/10/2026)

Lighthouse mobile (13.5.0, emulação padrão de celular, sobre npm run preview):

Página Performance Acessibilidade Boas práticas SEO
Início (5 execuções, domínio placeholder) 98–99 100 100 85*
Início (3 execuções, com domínio real no site.url) 98–99 100 100 100
Início com os dados de exemplo (22/10/2026, 3 execuções) 98–99 100 100 100
Política de Privacidade (domínio real) 100 100 100 100

Medianas na home: FCP 1,4 s · LCP 1,9 s · TBT 97 ms · CLS 0 · Speed Index 2,1 s.

* Com o placeholder https://[seu-dominio].com.br, o canonical e o sitemap do robots.txt são URLs inválidas. A nota chega a 100 assim que site.url recebe o domínio (testado com https://lwadvocacia.com.br).

Playwright (Chromium, sobre o site local):

Telas em docs/screenshots/ (final-390.png, final-1440.png, final-politica-*.png).

Documentação

Arquivo Para quê
docs/tutorial-edicao.md Editar textos e fotos pelo painel (leigo, com prints)
docs/configurar-formulario.md Ligar o formulário à planilha e ao e-mail (Google Apps Script)
docs/configurar-gtm.md GTM, GA4, Meta Pixel, consentimento e conversões
docs/publicacao.md Hospedagem, domínio, SSL e painel online (futuro)
docs/copy-para-revisao.md Todos os textos em ordem de leitura, para aprovação
docs/pendencias.md O que falta preencher, revisar ou configurar
docs/decisoes.md Onde a implementação derivou ou completou o design system, e por quê