Fundação visual do projeto João Inverno. Tokens, tipografia, espaçamento, componentes
e seções da marca consolidados em um único arquivo. Tema light é padrão;
qualquer <section data-theme="dark"> herda automaticamente
a paleta dark — sem mudar o tema do site inteiro.
Estrutura em três camadas: primitivos (cores, neutrals — nunca usar direto)
→ semânticos (mapeados por contexto e tema) → componentes
(consomem apenas semânticos). Para trocar a marca: editar primitivos.
Como o tema funciona
O atributo data-theme é aplicado em seções (não no
<html>): o designer decide a composição da página.
O :root e [data-theme="light"] compartilham os
mesmos tokens — light é o padrão.
<!-- Light é padrão -->
<body>
<section data-theme="dark"> hero dark </section>
<section> conteúdo light (herda :root) </section>
<section data-theme="dark"> CTA final </section>
</body>
<!-- Página inteira dark -->
<body data-theme="dark"> ... </body>
Paleta primitiva (azul João Inverno + neutrals) e tokens semânticos light.
Os mesmos tokens semânticos existem em dark — apenas trocando os valores.
Brand — azul João Inverno
brand-50#e8edf7
brand-100#cdd9ee
brand-200#9bb3dd
brand-400#3a64ad
brand-500#1556c4 ★
brand-600#0046bc
brand-700#003a9e
brand-800#22354c
brand-900#1d4178
brand-bright#0071ff
★ brand-500 (#1556c4) é o azul oficial da marca — usado em CTA, brackets, badges, linhas accent.
Neutrals
gray-50#f7f8fa
gray-100 ★#edeef1 (light bg)
gray-200#e4e5e5
gray-300#c6c6c6
gray-400#a0a5ac
gray-700#243448
gray-800 ★#162030 (text)
gray-900#101722
gray-950 ★#091426 (dark bg)
gray-deepest#000919
Tokens semânticos — Light (em uso aqui)
--bg-base#edeef1
--bg-surface#ffffff
--bg-surface-raised#f7f8fa
--accent-base#1556c4
--text-primary#162030 (14.7:1 ✓)
--text-secondary#243448 (11.4:1 ✓)
Estados
success--success-text: #15803d
warning--warning-text: #b45309
danger--danger-text: #dc2626
info--info-text: #1556c4
Gradientes
--gradient-cta0046bc → 0071ff
--gradient-cta-alt1556c4 → 22354c
--gradient-tagtag pill
--gradient-section-labelsection bg
--gradient-text-accentdestaque inline
--gradient-card-blue-rcard highlight
Tipografia
Sora é a face principal (headings + body). Inter é exclusiva para
CTAs e título do FAQ — usada por dar presença mecânica em interações. Pinyon Script
aparece apenas no logotipo "Inverno". A maior parte dos H1/H2 da marca
mistura weight 400 + weight 700 na mesma linha.
Grid base de 4px. Use os tokens --space-* via utilitários
(.mt-4, .gap-6, etc.) — nunca valores hardcoded.
Section spacing usa clamp() para responder ao viewport.
Inclui raios corner-cut (canto superior-esquerdo reto, demais arredondados) —
elementos visuais marcantes da identidade João Inverno (pain-card, checkout-card, tag-pill).
6
--radius-sm
8
--radius-md
12
--radius-lg
16
--radius-xl
19
--radius-2xl
24
--radius-3xl
∞
--radius-full
cut
--radius-cut-md
cut-lg
--radius-cut-lg
Shadows
Sombras de uma única camada, calibradas por tema. --shadow-cta-idv
é a sombra característica dos botões da identidade (sutil, com leve outline).
sm
--shadow-sm
md
--shadow-md
lg
--shadow-lg
card
--shadow-card
cta-idv
--shadow-cta-idv
Botões
O CTA principal usa o gradiente azul João Inverno. A versão "premium" do
high-end é envolvida por um wrapper de borda sutil 1.5px #1d4178
com radius 12px e padding 7px — a "dupla-borda" característica.
A seção de conversão tradicional do João Inverno usa fundo azul oficial,
label "› garanta sua vaga ‹", headline mista (regular + bold), sub e CTA com dupla-borda.
› garanta sua vaga ‹
Sua próxima reunião pode ser diferente.
Se você se reconheceu nas dores acima, este é o lugar.
Acordeão CSS-puro com <details>/<summary>.
Ícone + rotaciona 45° para × quando aberto.
Resposta em largura total, alinhada abaixo do título. Acessível por teclado out-of-the-box.
Para quem é o método João Inverno?
Para introvertidos que querem ser percebidos pela profundidade e não por volume — sem precisar fingir ser quem não são.
Em quanto tempo eu vejo resultado?
Os primeiros encontros já trazem clareza sobre os próprios padrões. Resultados consolidados aparecem nas primeiras 4 semanas.
Posso assistir em tempo livre?
Sim. Os encontros ao vivo ficam gravados na plataforma e o acesso é vitalício.
O método funciona para introvertidos que têm dificuldade de liderança?
Sim — a maioria dos alunos relata avanços diretos em presença, escuta ativa e influência sem autoritarismo. O método trabalha com os pontos fortes de quem pensa antes de falar.
<details class="faq-card">
<summary>
<p class="q">Para quem é o método?</p>
<svg class="plus" aria-hidden="true">...</svg>
</summary>
<p class="a">Para introvertidos que...</p>
</details>
Formulários
Inputs, textareas, selects, checkboxes, radios e toggle switches —
todos com estados focus / hover / disabled / error / success,
contraste WCAG AA e acessíveis por teclado out-of-the-box.
Toggle e radios são CSS-only (sem JS).
Letra "J" gigante em opacity reduzida — usado em pilares, sobre, hero.
J
Photo card (high-end)
Wrapper com radius 24px, overlay azul em mix-blend-mode: hue, glow superior.
RETRATO
Divisor wave
SVG inline 100% × 91px, separa seções de cores diferentes. Versão invertida via scaleY(-1).
Seção A (bg-base)
Seção B (bg-surface-overlay)
Seção C (volta para bg-base)
Motion
Catálogo de keyframes, utilitários .anim-*, transições de hover,
sistema scroll-triggered (data-animate), stagger via CSS variable,
skeleton, spinner, loading bar e toast. Tudo respeitaprefers-reduced-motion: reduce.
Aplique data-animate em qualquer elemento. Um pequeno
IntersectionObserver (no fim do arquivo) adiciona a classe
is-visible quando ele entra no viewport. Variantes:
slide-up (padrão), slide-left, slide-right,
scale, blur, fade.
slide-up (default)
data-animate
slide-left
data-animate="slide-left"
scale
data-animate="scale"
blur
data-animate="blur"
slide-right
data-animate="slide-right"
fade
data-animate="fade"
Role a página até esta seção para ver os elementos entrarem em cena.
Skeleton loaders
Spinner & loading bar
.spinner.sm
.spinner
.spinner.lg
.spinner.on-cta dentro do CTA
Loading bar indeterminado:
Toast notifications
Aviso
Sua sessão expira em 5 minutos.
Inscrição confirmada
Acompanhe os próximos passos no seu e-mail.
Quase lá
Confirme seu e-mail antes de continuar.
Erro ao processar
Não foi possível concluir a inscrição. Tente novamente.
prefers-reduced-motion
O sistema inteiro respeita o setting do usuário. Quando ativo, todas as
animações caem para 0.01ms e elementos com data-animate
ficam imediatamente visíveis (sem entrada de cena).
Mock de hero com todos os elementos da identidade combinados:
section label, tag, headline mista (regular + bold), sub, CTA dupla-borda,
pain cards e watermark vertical no canto. Use isso como referência ao montar páginas.
como lidar com a própria introversão
J
› entenda melhor ‹Para introvertidos que cansam de ser invisíveis
Introversão não é defeito. É falta de compreensão.
Um método validado para quem prefere o silêncio mas não quer ser ignorado.
Sem performances forçadas, sem rituais que esgotam.