Bárbara Annitza

Sistema vivo · Versão 1.1.0

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-1

    Título de página (desktop)

    3.75rem / 1.05

  • text-display-1-compact

    Título de página (celular)

    3rem / 1.05

  • text-display-2

    Título de seção; título de case no celular

    2.25rem / 1.1

  • text-title-1

    Título de bloco do case (desktop)

    1.875rem / 2.25rem

  • text-title-2

    Título de card e de bloco (celular)

    1.5rem / 2rem

  • text-title-3

    Títulos curtos em listas e grades

    1.25rem / 1.75rem

  • text-body-lg

    Texto de abertura

    1.125rem / 1.75rem

  • text-body

    Texto corrido

    1rem / 1.625rem

  • text-body-sm

    Apoio, navegação e botões

    0.875rem / 1.25rem

  • text-caption

    Legendas e notas

    0.75rem / 1rem

  • text-meta

    Rótulos em caixa alta

    0.75rem / 1rem

  • text-tag

    Tags e selos

    0.6875rem / 1rem

  • text-doc-body

    Texto 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.5rem
  • md:px-page-x-lg · 2.5rem
  • py-section-y · 4rem
  • md:py-section-y-lg · 6rem
  • max-w-site · 80rem
  • max-w-reading · 48rem
  • max-w-a4 · 210mm
  • aspect-media · 16 / 9
  • aspect-portrait · 4 / 5
  • aspect-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.

Ação principalAção secundáriaTag
  • 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.tsx
  • AmbientBackground

    Fundo ambiente em canvas, lê tokens em runtime

    components/ambient-background.tsx
  • FadeIn · Stagger

    Entrada com fade e sequência

    components/motion/fade.tsx
  • Reveal

    Revelação ao rolar a página

    components/motion/reveal.tsx
  • PageTransition

    Transição entre páginas

    components/motion/page-transition.tsx

Componente

  • SiteHeader

    Navegação, idioma e tema

    components/site-header.tsx
  • SiteFooter

    Rodapé com navegação e redes

    components/site-footer.tsx
  • LanguageSwitcher

    Troca PT/EN

    components/language-switcher.tsx
  • Tag

    Tags e selos (receita tag)

    components/tag.tsx
  • ContactLinks

    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.tsx
  • ProjectView · CaseSection

    Template de case com destaques, seções e figuras

    components/project-view.tsx
  • AboutView

    Página Sobre mim

    components/about-view.tsx
  • ContactView

    Página de contato

    components/contact-view.tsx
  • CvDocument

    Currículo em tela e A4 (padrão documento)

    components/cv-document.tsx
  • DesignSystemView

    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.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.

  2. 1.0.0 · 2026-10-05

    Cores semânticas, temas, três famílias, escala inicial, raios e motion documentados.