Pular para o conteúdo principal

Design System — Extranets Associação Digital

O Design System das Extranets é dividido em dois níveis: tokens estruturais compartilhados (extranet-base.css) e identidade visual por cliente (theme.{cliente}.css). Todos os produtos herdam a base e cada um sobrepõe apenas cores e fontes.

Arquitetura de arquivos

O entry point é apps/web/styles/globals.css, que importa todos os demais:

ArquivoResponsabilidadeEscopo
styles/globals.cssEntry point — importa todos os demaisGlobal
styles/extranet-base.cssTokens estruturais compartilhadosTodos os clientes
styles/theme.abracaf.cssCores + fontes AbracafAbracaf
styles/theme.assobens.cssCores + fontes AssobensAssobens (futuro)
styles/theme.abcnissan.cssCores + fontes ABCNissanABCNissan (futuro)

Regra de ouro: extranet-base.css nunca é modificado para adequações de cliente. Toda variação visual fica no arquivo de tema do respectivo cliente.

extranet-base.css — Tokens estruturais

Layout

Token CSSValorClasse TailwindUso
--extranet-header-height72pxh-extranet-headerAltura do header desktop
--extranet-header-height-mobile56pxh-extranet-header-mobileAltura do header mobile
--extranet-container-max1320pxw-extranet-containerLargura máxima do container
--extranet-container-px40pxpx-extranet-container-pxPadding lateral desktop
--extranet-container-px-sm20pxpx-extranet-container-px-smPadding lateral mobile
--extranet-section-y80pxpy-extranet-sectionEspaçamento vertical de seções
--extranet-gap24pxgap-extranet-gapGap padrão de grid
--extranet-gap-sm16pxgap-extranet-gap-smGap pequeno
--extranet-gap-lg40pxgap-extranet-gap-lgGap grande

Container padrão de toda seção:

<div className="max-w-extranet-container px-extranet-container-px mx-auto">

Z-index

Classe TailwindValorUso
z-extranet-base50Elementos base
z-extranet-raised10Elementos elevados
z-extranet-overlay100Overlays
z-extranet-header200Header fixo
z-extranet-modal300Modais
z-extranet-toast400Notificações

Escala tipográfica

Classe TailwindTamanhoUso sugerido
text-extranet-2xs11pxMicro labels, eyebrows
text-extranet-xs12pxLegendas, badges
text-extranet-sm14pxBody small, nav items
text-extranet-base16pxCorpo padrão
text-extranet-lg18pxCorpo destaque
text-extranet-xl20pxSubtítulos
text-extranet-2xl24pxHeading sm
text-extranet-3xl32pxHeading md
text-extranet-4xl40pxHeading lg
text-extranet-5xl56pxHero desktop
text-extranet-6xl72pxHero large

Geometria de botões

Tamanhopadding-ypadding-xfont-size
sm6px14px14px
md10px22px16px
lg14px32px18px

Border radius

Classe TailwindValorUso
rounded-extranet-sm6pxInputs, badges
rounded-extranet10pxBotões, cards pequenos
rounded-extranet-lg16pxCards, modais
rounded-extranet-xl24pxContainers de destaque
rounded-extranet-full9999pxTags, avatares, pills

Sombras

Classe TailwindUso
shadow-extranet-smInputs, campos de formulário
shadow-extranetCards padrão
shadow-extranet-lgModais, dropdowns

Transições

Classe TailwindDuraçãoEasing
duration-extranet-fast150mspadrão
duration-extranet-base200mspadrão
duration-extranet-slow300msout
duration-extranet-slower500msspring

Easings disponíveis: ease-extranet, ease-extranet-in, ease-extranet-out, ease-extranet-spring.

theme.abracaf.css — Identidade visual

Paleta de cores

FamíliaClasse TailwindHexUso
Navybg-abc-navy-900#0b2650Texto escuro, fundo escuro, ink
Navybg-abc-navy-700#005491Cor primária da marca
Navybg-abc-navy-500#2587c4Hover states
Cyanbg-abc-cyan-500#00c0eaAcento / CTAs
Cyanbg-abc-cyan-400#4dd4f0Hover de acento
Cyanbg-abc-cyan-100#d6f3fbBackgrounds suaves
Slatebg-abc-slate-50#f7f8fcBackground de página
Slatebg-abc-slate-200#e2e5f0Borders
Slatebg-abc-slate-500#5a607aTexto secundário
Semânticotext-abc-success#15a36eSucesso
Semânticotext-abc-warning#e6a100Aviso
Semânticotext-abc-danger#d64545Erro

Fontes

Classe TailwindFontePesosUso
font-abc-displaySora400–800Headings, títulos
font-abc-bodySpace Grotesk300–700Corpo, labels, UI

As fontes são carregadas via next/font/google no abracaf/layout.tsx e injetadas nas variáveis CSS --font-abc-sora e --font-abc-space-grotesk.

Uso nos componentes

{/* Heading */}
<h1 className="font-abc-display text-extranet-5xl font-black text-abc-navy-900">

{/* Parágrafo */}
<p className="font-abc-body text-extranet-base text-abc-slate-500">

{/* Botão primário */}
<button className="bg-abc-navy-700 hover:bg-abc-navy-700/80 text-white rounded-extranet px-[22px] py-[10px] text-[16px]">

{/* Header fixo */}
<header className="h-extranet-header z-extranet-header fixed inset-x-0 top-0">

{/* Seção com container padrão */}
<section className="bg-abc-slate-50 py-extranet-section">
<div className="max-w-extranet-container px-extranet-container-px mx-auto">

Adicionando novo cliente

#PassoDetalhe
1Criar styles/theme.{cliente}.cssSeguir o modelo do theme.abracaf.css — apenas cores e fontes
2Importar em styles/globals.css@import './theme.{cliente}.css'
3Configurar fontes no layout.tsx do produtoUsar next/font/google e injetar as variáveis CSS
4Não alterar extranet-base.cssTokens estruturais são compartilhados e imutáveis
aviso

Nunca modifique extranet-base.css para adequar um cliente específico. Qualquer variação visual deve ficar exclusivamente no theme.{cliente}.css do respectivo produto.