CPFHub.io

Guia de Estilo

Referência visual e técnica do design system. Use esta página para manter consistência em novas páginas, materiais gráficos e integrações com o produto.

01 — Marca

Logo e identidade

O logo é composto pelo símbolo duplo-C e o wordmark Funnel Display Bold. Use sempre os arquivos originais, nunca recrie à mão.

Wordmark

CPFHub.io

Horizontal — fundo claro

CPFHub.io

Horizontal — fundo azul

Ícone isolado

Para fundos claros

Para fundos escuros

Regras de uso

Zona de proteção

Mantenha ao redor do logo um espaço mínimo equivalente à largura do símbolo em todos os lados.

Tamanho mínimo

Não use o logo completo abaixo de 120px de largura. Em tamanhos menores, use apenas o símbolo isolado.

O que não fazer

Não recolorir, distorcer, rotacionar, adicionar sombras ou recriar os arquivos manualmente.

02 — Cores

Paleta de cores

Todos os valores são tokens Tailwind definidos em globals.css via @theme inline. Nunca use hex solto em className.

Paleta primária — brand

50

#eef2ff

100

#dce7ff

200

#b9d0ff

300

#84adff

400

#4d7fff

Primary

500

#0b53fd

600

#0040e6

700

#0032ba

800

#002795

900

#001e75

950

#000e40

Cores semânticas

Success

#10b981

emerald-500

Warning

#f59e0b

amber-500

Error

#ef4444

red-500

Neutro

#6b7280

gray-500

Superfícies

White

#ffffff

Fundo principal

Alt

#f3f5fb

Seções alternadas

CTA

#002795

CTA / conversão

Dark

#181d26

Código / seções dev

Footer

#0f0e17

Footer

03 — Tipografia

Fontes e escala

Dois typefaces: Funnel Display para headings (font-display) e Inter para body text (font-sans). Ambos via Google Fonts CDN.

font-display (--font-funnel)

Funnel Display

Aa Bb Cc 0123 — Verificação

font-sans (--font-inter)

Inter

Aa Bb Cc 0123 — Body text

Nome
Size
LH
Weight
Classe Tailwind
Uso
Display 1
46px
1.15
600
font-display text-[46px] font-semibold
H1 de seção
Display 2
32px
1.2
600
font-display text-[32px] font-semibold
H2 de subsection
Display 3
20px
1.25
700
font-display text-[20px] font-bold
Logo wordmark
Body LG
18px
1.6
400
text-lg
Lead / subtítulo
Body
16px
1.5
400
text-base
Texto corrido
Body SM
14px
1.5
400
text-sm
Labels, listas, cards
Caption
12px
1.4
400
text-xs
Metadados, datas
Overline
12px
1.4
600
text-xs font-semibold uppercase tracking-widest
Eyebrow de seção

Specimens

Verificação de identidade sem fricção.

Dados com qualidade superior

API REST simples com a linguagem que você preferir. Documentação completa, exemplos prontos e SDKs para acelerar a integração.

SLA de 99,9% garantido. Estável mesmo com altíssimo volume de requisições simultâneas. Excedente cobrado no mês seguinte.

04 — Ícones

Material Symbols

Biblioteca: Material Symbols Outlined (variável). Importada via Google Fonts CDN. Use sempre o componente Icon, nunca o span diretamente.

Uso do componente Icon

import { Icon } from '@/components/ui/Icon'

// Outline (padrão)
<Icon name="shield" className="text-brand-600" style={{ fontSize: '20px' }} />

// Fill
<Icon name="star" fill style={{ fontSize: '16px', color: '#ffca60' }} />

// Tamanhos pequenos (<= 16px): sempre use style={{ fontSize }}
// Tamanhos >= 18px: text-[Npx] className funciona

Ícones comuns no projeto

badge
verified_user
fingerprint
analytics
check
check_circle
shield
security
progress_activity
sync
history
lock
mail
info
warning
expand_more
chevron_right
close
star
format_quote
terminal
code
menu_book
article
bolt
storage
support_agent
work
how_to_reg
policy
newspaper
monitor_heart

Escala de tamanhos

14px
style={{ fontSize: '14px' }}
Texto inline, metadados
16px
style={{ fontSize: '16px' }}
Labels, badges, listas
18px
className="text-[18px]"
Navbar dropdowns
20px
className="text-[20px]"
Card headers, features
32px
style={{ fontSize: '32px' }}
Quote decorativa
52px
style={{ fontSize: '52px' }}
Spinner (progress_activity)

05 — Componentes

UI Components

Componentes base usados em todo o site. Sempre prefira as classes CSS já definidas ao criar variações novas.

Botões

btn-primary bg-brand-500 text-white rounded-xlborder border-gray-300 text-gray-700 rounded-xl hover:border-gray-500

Badges & pills

AprovadoEscaladoProcessando✓ Online200 OKEm breveMAIS POPULAR

Padrão: rounded-lg para badges de estado. rounded-full para pills de destaque e tags.

Cards

method-card padrão

border: 1px solid #e5e7eb, rounded-2xl, sem shadow em repouso. Hover: border brand-300, glow azul 10%.

method-card

Regra de uso: Todo card de conteúdo usa method-card. Sem exceções inline.

Shadow: proibido em cards estáticos. Apenas o featured tem shadow permanente.

Ícones: diretos no card, sem container pill (sem bg-brand-50 rounded-xl). Tamanho 28–36px, cor brand-600 ou gray-400.

Background alt: section-alt = #f3f5fb (azul-derivado, tom brand-50 suavizado). Hover de rows = #eff6ff (brand-50).

Inputs

000.000.000-00

Padrão: border border-gray-200 rounded-xl + focus ring focus:ring-2 focus:ring-brand-500

06 — Espaçamento & Grid

Spacing, grid e layout

Escala Tailwind padrão de 4px base. Max-widths e padding de seção padronizados.

Escala de spacing

1
4px
Gap mínimo inline
2
8px
Ícone + texto, gap de badge
3
12px
Gap em listas
4
16px
Padding badge / pill
5
20px
Gap entre cards
6
24px
Padding horizontal de seção
8
32px
Padding de card médio (p-8)
10
40px
Gap de grid (gap-10)
16
64px
Gap hero (gap-16)
24
96px
Padding vertical de seção (py-24)

Containers e padding de seção

max-w-5xl mx-auto
1024px
Preços, FAQ
max-w-6xl mx-auto
1152px
Maioria das seções de conteúdo
max-w-7xl mx-auto
1280px
Navbar, guia de estilo
py-24 px-6
96px v, 24px h
Padding padrão de seção
py-20 px-6
80px v, 24px h
Seções de depoimentos
pt-16 pb-16 px-6
64px v, 24px h
Hero sections

07 — Motion

Animação e transições

Princípio: ease-out, sem bounce nem elastic. Motion deve ser funcional: confirmar ação, revelar conteúdo, indicar estado.

Ease-out sempre

Objetos que chegam desaceleram naturalmente. Nunca use bounce ou elastic no produto.

Durações curtas

150–300ms para micro-interações. 600ms para reveals de scroll. Nunca acima de 800ms sem propósito.

Motion reduzido

Todas as animações respeitam prefers-reduced-motion via @media no globals.css.

Propriedade
Valor
Onde é usado
Hover opacity/shadow
0.15s ease
btn-primary
Color, border, bg
0.2s ease
links, nav hover
Reveal scroll
0.6s ease
.reveal → .visible
Reveal delay step
+ 0.08s por elemento
reveal-delay-1/2/3/4
Dropdown open
0.15s all
opacity + translateY(4px)
Step transition
0.3s ease
ag-step (opacity + Y6px)
Spinner
0.8s linear ∞
progress_activity
Glow de card
0.5s ease
va-card box-shadow
FAQ chevron
0.2s ease
group-open:rotate-180

08 — Tom de Voz

Como a CPFHub se comunica

Três atributos definem o tom. Use estes exemplos como referência ao escrever copy para páginas, emails e suporte.

Direto e técnico

Frases curtas. Preferimos mostrar código a descrever. Nada de jargão vazio.

Correto

Integre em menos de 30 minutos com a linguagem que você já usa.

Evitar

Nossa plataforma revolucionária permite que você utilize soluções inovadoras de ponta.

Confiável, não comercial

Dados reais, SLAs reais, sem hipérboles. Confiança se constrói com transparência.

Correto

SLA de 99,9% garantido em contrato. Uptime público em status.cpfhub.io.

Evitar

A API mais rápida e confiável do mercado — escolhida por milhões de clientes!

Humano, mas profissional

Falamos com devs e founders. Tom pessoal sem ser informal demais.

Correto

Dúvidas? Nossa equipe técnica responde via WhatsApp em minutos.

Evitar

Ei! Fica à vontade pra mandar um zap pra gente! Tô aqui hahaha 😊

09 — Uso Incorreto

Anti-patterns de design

Padrões explicitamente proibidos no design system da CPFHub. Qualquer pull request que introduza estes padrões deve ser rejeitado.

Gradient text

Nunca use background-clip: text com gradiente em nenhum texto. Use solid text-brand-500.

Border stripe lateral

Nunca use border-left colorido como acento em cards ou alertas. Use borda completa ou background tint.

Bounce / elastic

Sem cubic-bezier com overshoot. Apenas ease-out. Motion deve ser funcional, não decorativo.

Glassmorphism decorativo

Blur e cards de vidro são proibidos como recurso decorativo padrão. Raro e intencional, ou nada.

Cores fora da paleta

Use apenas tokens definidos (brand-*, gray-*, emerald, amber, rose). Nunca hex solto em className.

Grid de cards idênticos

Evite grids onde todos os cards têm exatamente o mesmo tamanho, ícone + título + texto. Varie o layout.

A lista completa de anti-patterns está documentada nos comentários do arquivo src/app/globals.css e nas referências do sistema Impeccable. Em caso de dúvida sobre um padrão visual, consulte a página de verificação de idade como referência primária de design.