Um arquivo, três línguas: design, código e negócio.
Esta página renderiza os tokens, receitas e componentes que o site usa de verdade. O Tailwind lê o mesmo arquivo (tokens.ts), e uma checagem automática impede desvios. Troque tema e idioma para ver o sistema trabalhando.
Cores semânticas
Componentes consomem papéis semânticos, nunca valores soltos nem a paleta do Tailwind.
--background
Fundo da página
Base estável para leitura e contraste.
--background-soft
Fundo suave / seções
Cria hierarquia sem introduzir uma nova cor arbitrária.
--foreground
Texto principal
Legibilidade é requisito, não ornamento.
--card
Superfície de cartão
Agrupa conteúdo de forma previsível nos dois temas.
--card-foreground
Texto sobre cartão
Mantém contraste em superfícies.
--popover
Superfície flutuante
Camadas consistentes reduzem ambiguidade.
--popover-foreground
Texto flutuante
Contraste consistente em overlays.
--primary
Ação principal
Define uma ação dominante e previsível.
--primary-foreground
Texto sobre ação principal
Mantém CTA legível.
--secondary
Ação secundária
Cria hierarquia entre ações.
--secondary-foreground
Texto secundário forte
Suporte sem perder contraste.
--muted
Superfície neutra
Apoio visual sem competir.
--muted-foreground
Texto de apoio
Metadados legíveis sem roubar foco.
--accent
Destaque funcional
Sinaliza foco e destaque sem substituir cores de marca.
--accent-foreground
Texto sobre destaque
Contraste garantido.
--accent-soft
Destaque funcional suave
Realce discreto para estados de apoio.
--brand-moss
Verde musgo de marca
Acento estrutural associado a tecnologia, pesquisa e continuidade.
--brand-moss-soft
Superfície musgo suave
Hierarquia de progressão e estados positivos.
--brand-burgundy
Bordô de marca
Acento editorial para decisões, ênfase e identidade autoral.
--brand-burgundy-soft
Superfície bordô suave
Ênfase sem competir com o conteúdo.
--brand-lilac-soft
Lilás suave de apoio
Apoia elementos lúdicos sem virar cor estrutural.
--destructive
Erro / destrutivo
Torna risco e erro inequívocos.
--destructive-foreground
Texto sobre erro
Mensagem crítica legível.
--border
Borda padrão
Estrutura visual consistente.
--border-soft
Borda suave
Divisão sutil para conteúdo editorial.
--input
Borda de campo
Campos identificáveis nos dois temas.
--ring
Anel de foco
Navegação por teclado visível.
--artifact
Papel de artefato
Fundo neutro para diagramas e documentos originais, igual nos dois temas.
Cores com escopo de case
Só podem ser usadas dentro do case a que pertencem; não mudam com o tema.
--project-vegam-purple
VegAM · roxo da marca
Cor original do TCC; não muda com o tema.
--project-vegam-yellow
VegAM · amarelo da marca
Fundo das telas e do infográfico originais.
--project-vegam-paper
VegAM · texto claro
Texto sobre o roxo do VegAM.
--project-vegam-ink
VegAM · texto escuro
Texto sobre o amarelo do VegAM.
Tipografia
display — Aa
Playfair Display, Georgia, serif
Títulos editoriais e frases de impacto
body — Aa
Inter, system-ui, sans-serif
Texto funcional, conteúdo e navegação
mono — Aa
JetBrains Mono, ui-monospace, monospace
Dados, tokens e informação técnica
Escala
text-display-1Título de página (desktop)
3.75rem / 1.05
text-display-1-compactTítulo de página (celular)
3rem / 1.05
text-display-2Título de seção; título de case no celular
2.25rem / 1.1
text-title-1Título de bloco do case (desktop)
1.875rem / 2.25rem
text-title-2Título de card e de bloco (celular)
1.5rem / 2rem
text-title-3Títulos curtos em listas e grades
1.25rem / 1.75rem
text-body-lgTexto de abertura
1.125rem / 1.75rem
text-bodyTexto corrido
1rem / 1.625rem
text-body-smApoio, navegação e botões
0.875rem / 1.25rem
text-captionLegendas e notas
0.75rem / 1rem
text-meta0.75rem / 1rem
text-tagTags e selos
0.6875rem / 1rem
text-doc-bodyTexto do currículo impresso
0.8125rem / 1.3rem
Espaçamento, containers e proporções
Use a escala Tailwind para micro-layout e tokens semânticos para estrutura de página, containers e proporções de mídia.
px-page-x· 1.5remmd:px-page-x-lg· 2.5rempy-section-y· 4remmd:py-section-y-lg· 6remmax-w-site· 80remmax-w-reading· 48remmax-w-a4· 210mmaspect-media· 16 / 9aspect-portrait· 4 / 5aspect-phone· 9 / 16
Raios
Controles = control; superfícies agrupadas = card; mockups de aparelho = device; tags e ações compactas = pill.
Movimento
CSS-first; Framer Motion só quando necessário; atrasos de entrada são múltiplos de stagger.interval; reduced-motion zera deslocamento e duração.
page 0.4s · reveal 0.7s · y 24 · hover ×1.03
Receitas
Combinações de tokens reutilizadas por vários componentes.
Receita pill
Botões e links de ação: primary (fundo foreground) e secondary (borda). Ver lib/design-system/recipes.ts.
Documento claro
A classe .light aplicada a um contêiner usa os tokens do tema claro só naquele trecho (currículo).
Impressão
Header, footer e fundo ambiente usam print:hidden; @page define A4 com margens de 14 × 16 mm.
Figura de case
Imagens de case com fit, fundo (card, artifact, vegam) e largura mínima no celular para diagramas.
Inventário de componentes
Lista verificada por teste: todo arquivo em components/ precisa estar aqui.
Fundação
ThemeProvider
Alterna tema claro/escuro (classe .light)
components/theme-provider.tsxAmbientBackground
Fundo ambiente em canvas, lê tokens em runtime
components/ambient-background.tsxFadeIn · Stagger
Entrada com fade e sequência
components/motion/fade.tsxReveal
Revelação ao rolar a página
components/motion/reveal.tsxPageTransition
Transição entre páginas
components/motion/page-transition.tsx
Componente
SiteHeader
Navegação, idioma e tema
components/site-header.tsxSiteFooter
Rodapé com navegação e redes
components/site-footer.tsxLanguageSwitcher
Troca PT/EN
components/language-switcher.tsxTag
Tags e selos (receita tag)
components/tag.tsxContactLinks
E-mail e redes como botões (receita pill)
components/contact-links.tsx
Página
HomeView · CaseCard
Home em página única e card de case
components/home-view.tsxProjectView · CaseSection
Template de case com destaques, seções e figuras
components/project-view.tsxAboutView
Página Sobre mim
components/about-view.tsxContactView
Página de contato
components/contact-view.tsxCvDocument
Currículo em tela e A4 (padrão documento)
components/cv-document.tsxDesignSystemView
Esta documentação viva (/sistema)
components/design-system-view.tsx
Case
VegamScreens · VegamTestPhoto
Telas e teste do VegAM (tokens project-vegam)
components/vegam-case-visuals.tsx
Regras e governança
- • Componentes não recebem hex/RGB/HSL local nem cores da paleta Tailwind; consomem tokens semânticos.
- • Tamanhos vêm de typography.scale (text-display-*, text-title-*, text-body*, text-caption, text-meta, text-tag).
- • Estrutura de página usa spacing.semantic, spacing.containers e spacing.aspect.
- • Somente control, card, device e pill como raios.
- • Motion importa valores deste arquivo e sempre respeita reduced-motion.
- • Textos de interface ficam em lib/i18n; conteúdo de case em lib/data ou lib/i18n/<case>.
- • npm run design-system:check falha em qualquer desvio; --report mostra as métricas.
Histórico de versões
1.1.0 · 2026-10-17
Fonte única (Tailwind lê tokens.ts), escala tipográfica ampliada, raio device, proporções de mídia, token artifact, tokens de case, receitas pill/tag, inventário verificado por teste e checagem automática ampliada.
1.0.0 · 2026-10-05
Cores semânticas, temas, três famílias, escala inicial, raios e motion documentados.