Logos
Assinatura principal, aplicacao negativa e direcao de marca.

A marca principal deve respirar em superficies escuras e claras. A home publica privilegia a versao horizontal para leitura rapida.
16x16
32x32
48x48
<Image src="/images/logo-portal-licitacoes.webp" alt="Portal Licitacoes" width={180} height={52} />Colors
Paleta oficial, regra 60-30-10 e usos semanticos.
main
#F2F5F8
secondary
#0F2741
accent
#F5A623
support
#1B4FD8
const brand = { main: "#F2F5F8", secondary: "#0F2741", accent: "#F5A623", support: "#1B4FD8" };Typography
Escala tipografica para hero, painel operacional e utilitarios.
Hero e titulos de impacto
Inter sustenta leitura longa, labels e contexto operacional sem competir com a voz de display da home.
JetBrains Mono para dados curtos, codigos e instrumentacao.
font-display: Plus Jakarta Sans
font-body: Inter
font-mono: JetBrains MonoGrid Layout
Padrao de listagem com totalizador, ordenacao e paginacao.
Exibindo 1 a 25 de 143 registros
Totalizador na primeira linha visual da grid
Edital
Pregao eletronico - equipamentos hospitalares
Orgao
Secretaria de Saude
Prazo
17/07/2026 09:00
grid header -> totalizador -> tabela -> rodape com 25/50/100 registrosIcons
Iconografia orientada a monitoramento, risco e decisao.
Radar
Alerta
Base
Triagem
<Radar className="text-[color:var(--brand-support)]" />Buttons
Acoes primarias, secundarias e discretas.
<Button variant="primary">Solicitar diagnostico</Button>Forms
Campos base para busca, cadastro e filtros operacionais.
<Input placeholder="Codigo / descricao / orgao" />Components
Cards, badges e blocos de contexto reutilizaveis.
Card de oportunidade
Bloco reutilizavel para listagens, resumo de edital e favoritos.
Badge semantica
Estados positivos, neutros e de atencao seguem a mesma base.
Status operacional
Nao usar cores destrutivas fora de estado realmente critico.
<Badge variant="warning">Prazo critico</Badge>Content Blocks
Blocos textuais para pagina publica e telas internas.
Home publica
Radar publico para empresas que querem vender ao governo.
Cabecalho interno
Editais monitorados
Titulo funcional, descricao curta e acao primaria contextual.
<SectionHeading eyebrow="Plataforma" title="..." description="..." />Feedback States
Sucesso, erro, alerta e informacao dentro do mesmo sistema.
Alerta salvo
A regra de monitoramento foi atualizada com sucesso.
Prazo curto
O edital exige revisao ate amanha as 09:00.
Falha ao validar origem
Revise a URL ou o token configurado para a fonte publica.
toast global fixo para sucesso, erro e validacaoPage Templates
Estruturas base para home, dashboard e detalhe de registro.
Home publica
Narrativa comercial, prova operacional e CTA claro.
Dashboard operacional
Resumo, filtros, grid e modais por rota interceptada.
Detalhe de edital
Metadados, eventos, anexos e historico da oportunidade.
home publica | dashboard operacional | detalhe de editalMotion Interactions
Animacoes pontuais para radar, destaque e transicao de foco.
Movimento com funcao
O projeto usa poucas animacoes: sweep do radar, ticker de fonte e destaque temporario apos navegacao por busca. Todas respeitam `prefers-reduced-motion`.
radarSweep 5.5s linear infinite; prefers-reduced-motion respeitadoAccessibility
Contraste, foco, reducao de movimento e rotulos consistentes.
Foco visivel em todos os controles interativos.
Contraste suficiente entre superficies, texto e acentos.
Labels e aria-label em campos, icones e acoes icon-only.
Animacao opcional e desativada quando o usuario pede menos movimento.
focus-visible, aria-label, contraste AA, reducao de movimentoDesign Tokens
Mapa tipado da paleta, superficies e semantica.
{
"brand": {
"main": "#F2F5F8",
"secondary": "#0F2741",
"accent": "#F5A623",
"support": "#1B4FD8"
},
"text": {
"primary": "#102234",
"secondary": "#38506A",
"muted": "#5B7189"
},
"semantic": {
"success": "#157347",
"warning": "#C47A00",
"error": "#C62828",
"info": "#1B4FD8"
},
"surface": {
"primary": "#F2F5F8",
"secondary": "#EAF0F6",
"panel": "#FFFFFF",
"strong": "#F8FAFC"
},
"border": {
"subtle": "rgba(15, 39, 65, 0.12)",
"strong": "rgba(15, 39, 65, 0.22)"
},
"typography": {
"display": "Plus Jakarta Sans",
"body": "Inter",
"mono": "JetBrains Mono"
}
}import { designTokens } from "@/lib/design-system/tokens";Technologies
Stack oficial refletida no pacote e na arquitetura.
Runtime
Node.js 24 LTS
Framework
Next.js 16.2 com App Router
Frontend
React 19 + TypeScript 5
Estilizacao
Tailwind CSS 4 com tokens em CSS
Componentes
Biblioteca interna compativel com shadcn/ui
Dados
MySQL 8 + Drizzle ORM
Auth
Better Auth + RBAC
Docs
Storybook 10 e specifications versionadas
package.json e documentos oficiais precisam permanecer sincronizadosProject File Structure
Arvore oficial de pastas do projeto.
project-root/
├── .storybook/
├── config/deployment/
├── docs/
├── drizzle/
├── public/
├── scripts/
├── specifications/
├── src/
│ ├── app/
│ ├── components/
│ ├── config/
│ ├── lib/
│ ├── modules/
│ ├── server/
│ ├── stories/
│ ├── styles/
│ └── tests/
├── Dockerfile
├── docker-compose.yml
├── drizzle.config.ts
├── next.config.ts
└── package.jsonproject-root/
├── .storybook/
├── config/deployment/
├── docs/
├── drizzle/
├── public/
├── scripts/
├── specifications/
├── src/
│ ├── app/
│ ├── components/
│ ├── config/
│ ├── lib/
│ ├── modules/
│ ├── server/
│ ├── stories/
│ ├── styles/
│ └── tests/
├── Dockerfile
├── docker-compose.yml
├── drizzle.config.ts
├── next.config.ts
└── package.json