Button
src/components/ui/button.tsx
Uma ação default por vista; destrutivo é tinta a 10%, nunca preenchimento sólido.
Identidade visual
Cores, tipografia, componentes e regras de uso do site e do painel do Conselho Regional de Odontologia do Tocantins.
Princípios
Cor
Cada amostra é a variável CSS real, renderizada nos três temas: claro (site), escuro (painel) e alto contraste (barra de acessibilidade).
background
Fundo da página: branco clínico no site, grafite frio no painel escuro. Recebe foreground (17,7:1 claro · 16,2:1 escuro) e muted-foreground (6:1 claro · 7,4:1 escuro).
foreground
Texto principal sobre background, card, muted e well — ≥12,9:1 nos três temas.
card
Superfície de cards, tabelas, campos e o cartão de busca do hero. Sempre com 1px de border.
card-foreground
Texto sobre card (17,7:1 claro · 14,9:1 escuro).
popover
Menus, popovers, selects, diálogos e o mega-menu do site.
popover-foreground
Texto sobre popover. ATENÇÃO: o tema alto contraste não redefine este token — herda #15191c sobre popover preto (1,2:1). Corrigir na origem (globals.css).
well
Poço neutro um passo mais escuro: placeholder de imagem (Cover), moldura da foto do hero, admin-surface-well.
well-foreground
Texto sobre well (15,6:1 claro). ATENÇÃO: não redefinido no alto contraste — #15191c sobre #111111 (1,1:1).
muted
Porcelana: fundo das seções alternadas do site (serviços, agenda), rodapé e barra utilitária; hover de ghost/outline, lista de Tabs, cabeçalho de tabela.
muted-foreground
Texto secundário, metadados, datas e placeholders sobre background, card, muted e primary-soft (≥5:1 claro · ≥6,4:1 escuro).
secondary
Preenchimento do Button secondary.
secondary-foreground
Texto sobre secondary (≥12,9:1 em todos os temas).
border
Bordas e filetes de 1px — as bordas fazem o trabalho, sombras são raras. Alto contraste: branco.
input
Borda de Input, Textarea, Toggle outline e do campo de busca.
ring
Anel de foco: ring-3 (3px) em ring a 50%; bordas em foco usam foreground a 55%.
primary
Bordô institucional do Sistema CFO/CROs: botão e CTA primários, links, eyebrow, ícones de serviço, anel de foco. Como texto: 9,7:1 sobre background no claro; no escuro (#c8323f) só 3,5:1 — reservar para texto ≥24px, ícones e preenchimentos.
primary-hover
Hover do CTA primário (hover:bg-primary-hover; o Button usa primary a 90%). No escuro, primary-foreground sobre ele fica em 4,3:1.
primary-foreground
Texto e ícones sobre preenchimento primary (9,7:1 claro · 5,3:1 escuro · 17:1 alto contraste).
primary-soft
Tinta bordô: chip do ícone de serviço, DateBlock, ícone do EmptyState, selo “Vigente”, badge brand do painel.
primary-soft-foreground
Texto sobre primary-soft (9,4:1 claro · 9,6:1 escuro · 13:1 alto contraste).
accent
Realce em tom ouro claro (selects/combobox e pílulas accent do painel).
accent-foreground
Texto sobre accent (7:1 claro · 9,6:1 escuro).
gold
Ouro — só como detalhe (estrela de destaque, ícones decorativos). Nunca texto pequeno: 3,2:1 sobre background no claro.
bordo-950
Bordô quase preto: a barra institucional do topo (texto branco a 80%, 13:1+) e o fim do gradiente do placeholder de capa. Não use como fundo de seção de conteúdo.
bordo-900
Escala bordô — fundos escuros de marca.
bordo-800
Escala bordô.
bordo-700
Escala bordô — meio do gradiente do placeholder de capa.
bordo-600
Escala bordô — o mesmo valor de primary no claro.
bordo-500
Escala bordô — brilho do gradiente do placeholder de capa (texto branco 7,7:1).
bordo-300
Escala bordô — texto/ícone claro sobre bordo-950 (7,2:1).
bordo-100
Escala bordô — mesma tinta de primary-soft.
ink-950
Grafite quase preto: o rodapé (texto branco, secundário a 70%, 12:1+), véu sobre fotos e overlay de diálogos (a 40%). Não use como fundo de seção de conteúdo.
ink-975
Grafite mais profundo: a faixa de contatos e a linha final do rodapé, abaixo da faixa ink-950. A troca de tom separa os blocos sem linha.
ink-900
Tinta escura: texto sobre selos brancos em fotos.
on-ink-muted
Texto secundário sobre ink-950 (rodapé): links, endereços e contatos (7,9:1). Títulos ficam em branco.
on-ink-subtle
Texto terciário sobre ink-950: horários, @, linha final do rodapé (5,5:1).
logo-bordo
Tinta do logotipo oficial (símbolo “cro TO”). Só no logo — a UI usa primary (#8b0e1a).
logo-gray
Tinta do descritor “Conselho Regional de Odontologia do Tocantins” no logo (5:1 sobre background). Só no logo.
destructive
Erros, exclusão, “Revogado”. Em botões e selos vai como texto sobre tinta destructive a 10%. Não redefinido no alto contraste: 3,2:1 sobre preto.
destructive-foreground
Texto sobre preenchimento sólido destructive (6,6:1 claro). Não redefinido no escuro: branco sobre #f87171 = 2,8:1 — evitar preenchimento sólido no tema escuro.
success
Status “Aberto”, confirmações. Sobre success-soft: 4,43:1 no claro — um pouco abaixo de 4,5:1 (fonte original; selo de 12px semibold).
success-soft
Fundo dos selos de sucesso.
warning
Avisos (NoticeBar WARNING, badge warning). Sobre warning-soft: 4,46:1 no claro — limítrofe.
warning-soft
Fundo de avisos e selos de atenção.
info
Informação, status “Resultado”. Sobre info-soft: 5,5:1 claro · 5,9:1 escuro.
info-soft
Fundo de avisos informativos e selos info.
sidebar
Fundo da barra lateral do painel.
sidebar-foreground
Texto da barra lateral.
sidebar-accent
Item ativo/hover da barra lateral.
sidebar-accent-foreground
Texto do item ativo da barra lateral.
sidebar-border
Divisória da barra lateral.
Tipografia
Títulos editoriais em serifa com tracking negativo, interface em sans e rótulos em mono caixa-alta.
hero-display
4rem / 1.02 · 500 · -0.025em
Odontologia ética, segura e valorizada em todo o Tocantins.
h1 da home (xl). Abaixo: 3.25rem (sm) e 2.75rem. text-balance.
page-title
3.75rem / 1.02 · 500 · -0.025em
Legislação
h1 do PageHero (md: text-6xl). Abaixo: 3rem (sm) e 2.6rem.
section-title
2.75rem / 1.08 · 500 · -0.02em
Serviços mais procurados
h2 do SectionHeading (md). Mobile: 2rem.
feature-title
2.5rem / 1.1 · 500 · -0.015em
CRO-TO realiza fiscalização em Araguaína
Título do PostCard feature/spotlight (md). Mobile: 1.875rem.
card-title
1.5rem / 1.2 · 500 · -0.015em
Plenária aprova calendário 2026
Título do PostCard padrão.
quiet-title
1.25rem / 1.4 · 500 · -0.025em
Nenhum documento encontrado
Título do EmptyState.
date-day
28px / 1 · 500
14
Dia no DateBlock da agenda.
stat-number
3.5rem / 1 · 500 · -0.02em
139
Números em destaque (CRO de Vantagens), tabular e lining. Mobile: 2.75rem.
lead
1.25rem / 1.625 · 400
Inscrição, certidões, anuidade e fiscalização em um só lugar.
Lead do PageHero (md: text-xl, leading-relaxed) em muted-foreground. Mobile: 1.125rem.
body-lg
1.125rem / 1.625 · 400
Acompanhe as decisões do plenário e a agenda do conselho.
Descrição do SectionHeading (md) e resumo de notícia em destaque.
body
1rem / 1.5 · 400
O CRO-TO fiscaliza o exercício da odontologia no Tocantins.
Texto corrido e campos (Input usa text-base no mobile, text-sm no md+).
card-heading
17px / 1.375 · 600 · -0.01em
Certidão de regularidade
Título do ServiceCard.
row-heading
15px / 1.375 · 600
Resolução CFO nº 263/2025
Título de DocumentRow; excerto do PostCard (15px, relaxed).
ui
0.875rem / 1.4286 · 500
Área do profissional
Botões, abas, labels, células de tabela (text-sm). CTAs do site em 600.
meta
13px / 1.4 · 400
Palmas · Auditório do CRO-TO · 19h
Linha de meta do EventRow, “Mais buscados”.
caption
0.75rem / 1.333 · 600
Aberto
StatusBadge do site (text-xs semibold).
kicker
0.875rem / 1.4286 · 600
Para o cidadão
Eyebrow: nome da seção acima do título, em primary, caixa de frase, sem régua.
label
13px / 1.4 · 500
Fiscalização 23 set 2025
Metadados: categoria e data do PostMeta, Breadcrumbs (peso 400), número de documento, títulos de coluna do rodapé (600).
label-mono
10px / 1.4 · 500 · 0.16em
RASCUNHO
Só no painel: Badge, cabeçalho de tabela e StatusBadge, em CAIXA-ALTA. No site, rótulos usam label (sans).
code
0.875rem / 1.4 · 500
OUV-2026-00412
Códigos que a pessoa digita ou copia: protocolo e teclas (kbd). Nada além disso usa mono no site.
Espaço e forma
spacing 0.25rem
Unidade do Tailwind v4 (p-4 = 1rem, gap-2.5 = 0.625rem).
container-max 1240px
Largura máxima do utilitário container-site.
container-pad 1.25rem
Respiro lateral do container-site no mobile.
container-pad-md 2rem
Respiro lateral do container-site a partir de 48rem.
section-y 4rem
Padding vertical das seções do site no mobile (py-16).
section-y-md 5rem
Padding vertical das seções no desktop (md:py-20, o mais comum; faixas de destaque vão a 6–7rem).
card-pad 1.5rem
Padding do ServiceCard (p-6); EmptyState usa 2rem/2.5rem.
control-h 2.75rem
Altura de Button, Input e botões de ícone (h-11, alvo de toque de 44px).
control-h-sm 2.5rem
Chips de filtro, CTA do cabeçalho, botões xs/icon-sm (h-10).
utility-bar-h 2.5rem
Altura da barra utilitária bordô.
header-h 72px
Altura do cabeçalho fixo no mobile (84px a partir de lg).
header-h-lg 84px
Altura do cabeçalho fixo a partir de lg.
radius 0.75rem
Base do sistema (--radius).
radius-sm 8px
rounded-sm = radius − 4px: miniaturas pequenas, imagens em linha.
radius-md 10px
rounded-md = radius − 2px; também o literal rounded-[10px] do CTA do cabeçalho, botão “Buscar” e aba ativa.
radius-lg 12px
rounded-lg; o literal rounded-[12px] de Button, Input, Textarea, Card e Tabs; imagens no conteúdo.
radius-search 14px
Campo de busca do hero e admin-surface-well.
radius-xl 16px
rounded-xl = radius + 4px: chip de ícone (44px), DateBlock, capa de notícia.
radius-2xl 1rem
rounded-2xl (16px): cards do site — ServiceCard, EmptyState, mega-menu, painéis do admin.
radius-3xl 1.5rem
rounded-3xl: moldura da foto do hero.
radius-full 9999px
Pílulas: StatusBadge, Badge, chips de filtro, botão circular de download.
shadow-card-hover
Hover do ServiceCard (com -translate-y-0.5 e borda primary a 25%).
shadow-header
Cabeçalho fixo depois de rolar (com fundo a 85% e blur).
shadow-search
Campo de busca do hero em repouso.
shadow-search-focus
Campo de busca do hero com foco.
shadow-menu
Mega-menu da navegação desktop.
shadow-float
ConsultaCard flutuando sobre a foto do hero.
shadow-dialog
Diálogo de busca (Ctrl + K).
Logotipo
No código, use <Logo /> de @/components/brand/logo (tone="inverse" em fundo escuro, compact para o símbolo).
Iconografia
Duotone regular a partir de 18px, regular até 16px; setas e controles sempre no regular. Ícones herdam a cor do texto; serviços escolhem o ícone por nome em uma lista fechada e nome desconhecido cai em file-lines.
Componentes
Amostras renderizadas com os componentes React do próprio site.
src/components/ui/button.tsx
Uma ação default por vista; destrutivo é tinta a 10%, nunca preenchimento sólido.
src/components/site/section-heading.tsx
Notícias
Fiscalização, plenárias, eventos e decisões que afetam quem exerce a odontologia no Tocantins.
Área do profissional
Conheça a diretoriasrc/components/site/brand-gradient.tsx
Fundo WebGL do painel bordô de cada página. Até 30 fps, pausa fora da tela; com movimento reduzido, um quadro só; sem WebGL, bordô sólido. Passe o ponteiro.
src/components/site/office-map.tsx
Mapbox light-v11 nos neutros do site, marcador bordô. A roda do mouse rola a página; zoom pelos botões ou por pinça.
src/components/site/breadcrumbs.tsx
src/components/site/service-card.tsx
Emita a certidão de inscrição e regularidade profissional.
Boletos, parcelamento e descontos para pagamento antecipado.
Como o conselho fiscaliza e como fazer uma denúncia.
src/components/site/post-card.tsx
Sem imagem, a capa usa o placeholder bordô da marca. Amostra sem links.
Fiscalização
Equipe do conselho orienta profissionais sobre registro, publicidade e biossegurança.
Eventos
Cursos, encontros regionais e a semana da odontologia estão confirmados.
src/components/site/document-row.tsx
Amostra sem links.
Portaria nº 19/2026
Designa os membros responsáveis pela análise das contas do conselho.
12/10/2026248 KBPDF
Edital nº 02/2026
01/10/20261,2 MBPDF
src/components/site/event-row.tsx
Amostra sem links.
Palmas · Sede do CRO-TO · 19h
Araguaína · 8h30
src/components/site/filter-chips.tsx
src/components/site/notice-bar.tsx
Avisos dispensados ficam ocultos neste navegador.
Anuidade 2026 disponível.Pague até 31 de janeiro com desconto.Saiba mais
Atendimento presencial com horário marcado.Agende pelo WhatsApp.Ver contatos
Expediente reduzido em 28/10.Serviços on-line seguem disponíveis.
src/components/site/utility-bar.tsx
Os controles funcionam: alto contraste e A+ valem para esta página.
src/components/site/empty-state.tsx
Nenhum documento encontrado
Ajuste os filtros ou tente outro termo de busca.
src/components/ui/input.tsx
Informe um e-mail válido.
src/components/ui/badge.tsx
Painel escuro
O painel usa o tema .dark: neutros em grafite com leve toque de petróleo. Estas amostras rodam dentro de um contêiner .dark.
| Título | Categoria | Status | Publicado em |
|---|---|---|---|
| Fiscalização visita consultórios no norte do estado | Fiscalização | Publicado | 08/10/2026 |
| Plenária aprova o calendário de eventos de 2026 | Eventos | Publicado | 02/10/2026 |
| Semana da odontologia: programação | Eventos | Agendado | 20/10/2026 |
| Novo horário de atendimento | Institucional | Rascunho | — |
Informe um e-mail válido.
Nenhuma notícia agendada
Agende uma notícia para que ela apareça aqui.