Notificações Marcar como lidas
M
Nova campanha aprovada
[LEADS] Implante capilar Curitiba foi aprovada e está rodando.
há 4 minutos
JS
Relatório semanal disponível
Veja o desempenho consolidado de todas as plataformas.
há 2 horas

Visão geral

Showcase de todos os componentes, utilities e padrões do Medprev Design System.

Ativo
Campanhas ativas
142
↑ 12% vs. mês anterior
Leads gerados
3.840
↑ 24%
$
CPL médio
R$ 18,40
↓ 8% vs. meta
Conversão
4,8%
↑ 0,4 p.p.
Leads por dia
Últimos 14 dias
Atividade recente
Eventos do time
11:42
Campanha publicada
PMAX Implante capilar
11:08
Upload do CSV
campanhas-set.csv · 142 KB
10:30
Aprovação solicitada
Aguardando review
Fundação

Tipografia

Nunito em todos os pesos. Hierarquia consistente do display ao caption.

Display
Heading 1 · Padrão de marca
Heading 2 · Hierarquia clara
Heading 3 · Estrutura semântica
Heading 4 · Subseções
Heading 5 · Bloco
Heading 6 · Item
Lead · Texto introdutório, mais largo, para abrir uma seção.
Body · Texto padrão de leitura. Peso medium, line-height confortável, contraste suficiente em todos os temas.
Small · Notas, descrições secundárias, helper text.
Caption · 12px, soft
Eyebrow · Etapa 01
Inline elements: code-inline, ⌘K e link inline.
Fundação

Cores

Tokens semânticos, não hex. Cada cor é uma intenção.

Semânticas
Brand
--mp-brand
#096840
Brand soft
--mp-brand-soft
#E5F9DF
Success
--mp-success
#10B981
Warn
--mp-warn
#EA580C
Danger
--mp-danger
#DC2626
Info
--mp-info
#2563EB
Escala verde Medprev
50
#E5F9DF
100
#C8F0B7
200
#9FE197
300
#6BCD78
400
#2FA85A
500
#096840
600
#075A37
700
#064D2E
800
#043F25
900
#02301B
Componentes

Botões

Variantes para todas as ações: ênfase, secundário, ghost, outline, destrutivo, sucesso, ícone, loading.

Variants
Sizes
Icon · group · block
Componentes

Formulários

Inputs, validation, choices, switches, uploads — todos com a11y embutida.

Form completo

Mínimo 3 caracteres.
R$ BRL
leads pmax

Choices · Switches · Checkboxes



Upload / Drop zone

Validation states

✕ Formato inválido
✓ Disponível
Componentes

Overlays

Modal nativo (<dialog>), drawer lateral, popover, tooltip, dropdown.

Tooltip simples
Componentes

Feedback

Alertas, progress, skeletons, badges — comunicação de estado.

i
Atualização disponível
Nova versão do sistema com melhorias de performance.
Tudo certo
Configuração salva e propagada para todas as plataformas.
!
Atenção
O CSV está sem a coluna Nome da campanha.
Falha no envio
Não foi possível conectar ao Meta Ads. Tente novamente.

Progress

Upload 68%
Sincronização 100%
Processando

Skeleton loaders

Badges / Tags / Chips

Default Brand Info Success Warn Danger Ativo Pendente Pill Tag removível Outra tag
Componentes

Tabelas

Densidade adaptável, header sticky, ações inline, paginação.

Campanhas ativas
142 resultados
Nome ↕ Plataforma Status Leads CPL
[LEADS] Implante capilar Curitiba
Criado por Mariana · há 2 dias
Meta Ativo 412 R$ 17,80
[PMAX] Odontologia Porto Alegre
Criado por João · ontem
Google Pendente 128 R$ 22,40
[VIDEO VIEW] Estética Salvador
Criado por Ana · há 1 semana
Meta Ativo 3.840 R$ 0,12
[LEADS] Cirurgia bariátrica SP
Criado por Marina · há 3 semanas
Google Erro 0
Componentes

Visualização de dados

Cards, calendar, kanban, empty states.

Calendário

Maio 2026
D
S
T
Q
Q
S
S
26
27
28
29
30
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

Empty state

Nenhuma campanha
Crie sua primeira campanha para começar a coletar leads automaticamente.

Kanban

Backlog 4
Lookalike de leads quentes
Meta Mariana
Teste de copy v3
PMAX João
Em revisão 2
Vídeo institucional
Meta
Aprovado 3
[LEADS] Bariátrica SP
Live
[PMAX] Estética RJ
Live
Componentes

Extras

Chat widget, avatares, onboarding card.

Chat

SP
Suporte Medprev
online agora
Oi! Sou a Sofia, do suporte. Como posso ajudar?
Quero entender o desempenho da última campanha
Claro! Estou puxando os dados aqui. Um instante…

Onboarding card

PRÓXIMO PASSO

Conecte sua conta do Meta Ads

Você está a 1 passo de começar a importar campanhas automaticamente.

Avatares

P
PC
JS
MA
JP
PC
MA
JS
+5
Composições

Dashboards

Padrões para BI, painéis admin, telemetria. KPIs, gráficos de linha, donut, funil, heatmap, sparklines.

Receita ↑ 12,4%
R$ 248K
12 meses
Leads convertidos ↑ 8,1%
1.842
12 meses
CPL médio ↓ 3,2%
R$ 18,40
12 meses
Churn ↓ 0,4 p.p.
2,1%
12 meses
Receita vs meta
12 meses · em milhares de R$
Receita Meta
Por plataforma
Distribuição de leads
1.842
leads
Meta Ads 48%
Google Ads 28%
TikTok 16%
Outros 8%
Funil de conversão
Últimos 30 dias
Impressões
128.420
100%
Cliques
82.180
64%
Visitas LP
48.792
38%
Leads
23.115
18%
Qualificados
11.520
9%
Convertidos
1.842
1,4%
68%
meta
Meta mensal
R$ 248K de R$ 365K
↑ no ritmo
92%
uptime
SLA do mês
Tudo dentro do esperado
↑ acima da meta
Atividade por hora
Últimas 2 semanas
menos mais
Top campanhas
Ranking + tendência
Campanha Leads Tendência
Implante capilar CWB
Meta · Lead
412
Odontologia POA
Google · PMAX
328
Estética SSA
Meta · VideoView
284
Bariátrica SP
Google · Search
198
Reumato RJ
Meta · Lead
142
Páginas públicas

Landing & Hero

Para LPs, sites institucionais e páginas promocionais — fora do dashboard shell.

Public Navbar
.mp-navbar — com blur + brand + ações
Hero
.mp-hero — clamp() responsivo + blobs de fundo
Plataforma Medprev

Marketing médico que entrega leads de verdade.

Unifique Meta Ads, Google Ads e TikTok num só lugar. Crie campanhas em minutos, sem perder a régua técnica que clínicas sérias exigem.

Hero centrado
.mp-hero.mp-hero-center — variante alternativa
Confiável por +1.200 clínicas

A operação completa de marketing da sua clínica.

Do criativo ao CRM, da régua de leads ao relatório do dono. Sem planilha, sem caos.

Pricing cards
Compositção comum em LPs
Starter
R$ 0 /mês

Para começar a entender o produto.

  • 1 plataforma
  • 100 leads/mês
  • Relatórios básicos
Pro
POPULAR
R$ 499 /mês

Para a operação que precisa escalar.

  • ✓ Todas as plataformas
  • ✓ Leads ilimitados
  • ✓ BI e relatórios avançados
  • ✓ Integrações via API
Enterprise
Custom

Para redes e grupos hospitalares.

  • SSO + permissões
  • Suporte 24/7
  • SLA dedicado
Footer
.mp-footer — rodapé institucional
Documentação

Manifesto

As regras inegociáveis + a documentação de uso. Pra IA (ou time) criar HTML pra qualquer produto Medprev sem precisar abrir o código fonte.

Arquivos do framework

A arquitetura é modular. Em 99% dos casos, importe só o bundle (medprev.css) — ele já inclui todos os módulos na ordem certa. Os arquivos individuais existem pra builds otimizados ou debugging.

Arquivo O que contém Tamanho
medprev.css Bundle principal. Importa todos os módulos abaixo na ordem correta + reset + tipografia base + presets (.mp-h1..h6, .mp-lead, .mp-kbd). É só este que você precisa. ~7KB
medprev.tokens.css Variáveis CSS fundacionais — cores, tipografia, espaço, raio, sombra, motion, z-index, breakpoints. Tudo deriva daqui. ~9KB
medprev.themes.css Overrides de light/dark/auto. Mapeia tokens primitivos em tokens semânticos por tema. ~5KB
medprev.layout.css .mp-app shell, .mp-sidebar, .mp-topbar, .mp-container, .mp-row/grid, .mp-stack, .mp-section, .mp-hero, .mp-navbar, .mp-footer, .mp-split, .mp-auto-grid. ~16KB
medprev.forms.css .mp-input, .mp-textarea, .mp-select, .mp-checkbox, .mp-radio, .mp-switch, .mp-range, .mp-drop (upload), .mp-tags-input, .mp-choices, validation states, floating labels. ~17KB
medprev.components.css Todo o resto — .mp-btn, .mp-card, .mp-modal, .mp-drawer, .mp-toast, .mp-tabs, .mp-accordion, .mp-alert, .mp-badge, .mp-table, .mp-dropdown, .mp-tooltip, .mp-cmdk, .mp-stat, .mp-kpi, .mp-donut, .mp-funnel, .mp-sparkline, .mp-heatmap, .mp-chart-line, .mp-empty, .mp-timeline, .mp-calendar, .mp-kanban, .mp-chat. ~55KB
medprev.animations.css Keyframes globais (fade, slide, scale, spin, pulse, shimmer, etc.) + utilities .mp-anim-* + delays. ~5KB
medprev.utilities.css Utilities atômicas tipo Tailwind — display, flex, grid, gap, padding, margin, width, height, position, z, overflow, text, color, bg, border, radius, shadow, opacity, cursor, transition. Com prefixos responsivos mp-sm:, mp-md:, mp-lg:, mp-xl:. ~25KB
medprev.js Controllers vanilla. Auto-init em DOMContentLoaded: theme, modal, drawer, toast, dropdown, tabs, accordion, sidebar, command palette (⌘K), dropzone, tags input, form validation, scroll spy, back-to-top, copy, loading overlay. ~30KB

Perfis de uso — quais arquivos importar?

A resposta padrão é "importa o bundle". Mas se você precisar otimizar peso (microsite, AMP, email engine), tem como dividir.

App / Dashboard
Default
Sistema interno completo

Painel admin, app SaaS, BI, wizard. Usa sidebar + topbar + main, forms complexos, modais, gráficos.

✓ medprev.css (bundle)
✓ medprev.js
~170KB CSS + 30KB JS
Landing page
Web público
LP / site institucional

Hero, pricing, footer, navbar com blur. Geralmente sem app shell. Forms só se houver captura de lead.

✓ medprev.css (bundle, ainda mais simples)
✓ medprev.js

Se for ultra-performático e tiver tooling de tree-shake: tokens + themes + layout + components + utilities. Pula forms.css se não houver inputs.

Microsite
Promo
Página promocional única

Campanha curta, 1-2 telas, máxima velocidade. Card de oferta, botão, hero compacto.

✓ medprev.tokens.css
✓ medprev.themes.css
✓ medprev.css (reset + tipo)
✓ medprev.utilities.css
+ components sob demanda

JS opcional — só se houver modal/toast/cmdk.

Microfrontend
Widget
Componente embeddado

Widget injetado em outro site (chat, calculadora, formulário). Não controla o <html>.

✓ medprev.css scoped
✓ medprev.js (módulos seletivos)

Reset do bundle pode brigar com host. Em produção, recomenda Shadow DOM.

Email HTML
Limitado
Newsletter / transacional

Clientes de email não suportam variáveis CSS nem <link> externo. Bundle não funciona direto.

✗ Não importa nenhum arquivo
✓ Use tokens como referência
✓ Inline tudo com cores hex

Mantenha as cores e fontes do DS, mas sem dinâmica. Sem dark mode (a maioria dos clientes não suporta).

Documentação
Static
Docs / blog técnico

Conteúdo longo de leitura. Tipografia importa muito, layout simples, código inline.

✓ medprev.css (bundle)
✓ medprev.js (opcional)

Use .mp-max-w-prose no conteúdo. Approve tabs e accordion via JS.

Cheatsheet — esqueletos mínimos

App / Dashboard
<html data-mp-theme="light">
<head>
  <link rel="stylesheet" href=".../medprev.css">
</head>
<body>
  <div class="mp-app">
    <aside class="mp-sidebar">…</aside>
    <header class="mp-topbar">…</header>
    <main class="mp-main">…</main>
  </div>
  <script src=".../medprev.js"></script>
</body>
Landing page
<html data-mp-theme="light">
<head>
  <link rel="stylesheet" href=".../medprev.css">
</head>
<body>
  <div class="mp-container">
    <nav class="mp-navbar">…</nav>
    <section class="mp-hero">…</section>
    <section class="mp-section">…</section>
    <footer class="mp-footer">…</footer>
  </div>
  <script src=".../medprev.js"></script>
</body>

Regras inegociáveis

01
Identidade
  • Logo: URL oficial do CDN, em fundo branco, dentro de .mp-logo-box ou .mp-navbar-brand.
  • Fonte: Nunito e somente Nunito, com fallback system-ui. Sem fonte secundária.
  • Cores: só tokens (var(--mp-brand)). Nunca hex hardcoded no markup.
02
Estrutura
  • Apenas classes e data-mp-* no HTML. Sem <style>, sem <script> com lógica de componente, sem onclick=.
  • Apps dashboard usam .mp-app + .mp-sidebar + .mp-topbar + .mp-main.
  • LPs e sites usam .mp-navbar + .mp-hero + .mp-section + .mp-footer.
03
Botões
  • Primary verde sólido pra ação principal.
  • Secondary branco com borda pra ação alternativa.
  • Ghost pra ação neutra/cancel.
  • Danger só pra destrutivo, sempre com confirmação modal.
  • 1 botão primário por contexto. Mais que isso, a hierarquia some.
04
Overlays
  • Sempre <dialog> nativo. Nunca <div role="dialog"> improvisado.
  • Modal, drawer e cmdk abrem e fecham com transição. Nunca seco.
  • Clique fora fecha drawer/cmdk por padrão. Modal opta com data-mp-close-on-backdrop.
  • ESC sempre fecha (browser nativo cuida).
  • Nunca alert(), confirm(), prompt(). Sempre modal custom.
05
Acessibilidade
  • Foco visível em todos os interativos (já vem default — não anule).
  • Checkbox, radio, switch usam <input> nativo (keyboard de graça).
  • prefers-reduced-motion respeitado automaticamente.
  • Labels obrigatórios em todos os inputs. .mp-sr-only se o label visual existe em outro lugar.
  • Contraste mínimo WCAG AA em texto, AAA quando possível.
06
Movimento
  • Duração via --mp-duration-fast (150ms), -base (220ms), -slow (300ms).
  • Easing oficial: --mp-ease-out padrão, --mp-ease-bounce só pra acentos (checks, pops, success).
  • Toggle de seleção: classList.toggle('selected') no item. Nunca re-render do grupo.
  • Tudo que abre/fecha tem que animar nas DUAS direções.
07
Estética
  • Limpa, profissional, healthcare tech.
  • Nada de gradiente roxo, glassmorphism gratuito, ou estética genérica de IA.
  • Sem emojis decorativos. Só símbolos funcionais (✓ ↓ ✕ ↔ ⚠) — idealmente SVGs.
  • Densidade adequada: ar suficiente, sem cansar. Use os tokens de espaço.
08
Temas
  • Todo produto suporta light · dark · auto via data-mp-theme no <html>.
  • Tokens semânticos (--mp-surface, --mp-text) — não use os primitivos diretos.
  • Tema persiste em localStorage automaticamente.
§
Regra de ouro
Se você precisou escrever CSS dentro do HTML da aplicação, ou JS controlando um componente, é porque o DS está faltando alguma coisa. PR no /Claude/ — não gambiarra no produto.
Nova campanha
Use a convenção [TIPO] descrição cidade.
R$
!
Remover campanha?

Esta ação é permanente. Todos os dados associados à campanha serão removidos. Não dá pra desfazer.

Detalhes da campanha
Status
Ativo
Nome
[LEADS] Implante capilar Curitiba
Plataforma
Meta Ads · Lead

Leads
412
CPL
R$ 17,80
Ações rápidas
Nova campanha ⌘N
Importar CSV
Sincronizar plataformas
Ir para
Visão geral
Campanhas
Relatórios
Configurações
Alternar tema ⌘D
Sair