Vai criar com IA?
Escolhe o contexto abaixo, copia o prompt e cola como primeira mensagem em qualquer chat (Claude.ai, ChatGPT, Gemini, Cursor). A IA vai usar APENAS os componentes relevantes pro contexto — sem entupir com o que não importa.
Este projeto usa o Medprev Design System (Trepadeira) — MODO LANDING PAGE.
O DS e um CATALOGO de componentes e regras de marca, NAO um template forcado.
O briefing abaixo define O QUE criar; o DS so responde "o que existe pra usar"
e "quais regras de marca sao inegociaveis". Use SO os componentes que o briefing
pedir. Nao force sidebar, trust strip, calculadora, ou qualquer coisa que nao
foi pedida — o DS nao opina sobre estrutura nem layout.
SETUP TECNICO (inegociavel — sem isso o DS nao carrega):
<link rel="stylesheet" href="https://trepadeira.mktmedprev.com.br/medprev.css">
<script src="https://trepadeira.mktmedprev.com.br/medprev.js" defer></script>
Nunito via Google Fonts.
<html data-mp-theme="light"> (ou dark/auto — preserve o tema do HTML original; so troque se o briefing pedir explicitamente)
ASSETS OFICIAIS (use APENAS essas URLs — nunca baixar nem criar logo de projeto):
Logo verde: https://trepadeira.mktmedprev.com.br/logo.png
Logo branca: https://trepadeira.mktmedprev.com.br/logo-white.png
Favicon: https://trepadeira.mktmedprev.com.br/favicon.png
Apple icon: https://trepadeira.mktmedprev.com.br/apple-touch-icon.png
No <head>:
<link rel="icon" type="image/png" href="https://trepadeira.mktmedprev.com.br/favicon.png">
<link rel="apple-touch-icon" href="https://trepadeira.mktmedprev.com.br/apple-touch-icon.png">
<meta name="theme-color" content="#096840">
Logo no markup (so se o briefing pedir logo na pagina):
<img src="https://trepadeira.mktmedprev.com.br/logo.png" alt="Medprev" height="32">
COMPONENTES B2C DISPONIVEIS (catalogo — use SO os que o briefing precisar):
- .mp-hero / .mp-hero-blob (hero com gradiente, se a pagina tem hero)
- .mp-navbar (navbar publica com blur, se a pagina tem navegacao)
- .mp-trust-strip (faixa escura de objecoes resolvidas — opcional)
- .mp-comparison + .mp-comparison-col-bad/-good (comparativo lado-a-lado)
- .mp-calc + .mp-calc-result (calculadora interativa)
- .mp-steps-big (passos com numero gigante 01/02/03)
- .mp-doctor-card + .mp-doctor-grid (foto + nome + CRM + rating)
- .mp-wa-mockup (mockup de conversa WhatsApp)
- .mp-testimonial-rich (depoimento com aspas + estrelas)
- .mp-price-anchor (preco "de R$ X por R$ Y" riscado)
- .mp-pricing-row (linha de catalogo de preco)
- .mp-spec-grid + .mp-spec-chip (chips de servico + preco)
- .mp-fab-whatsapp (botao verde WhatsApp flutuante)
- .mp-sticky-cta (CTA fixo bottom mobile)
- .mp-contact-method + .mp-contact-method-icon-wa (cards multi-canal)
- .mp-cta-block (CTA verde dramatico)
- .mp-accordion + data-mp-accordion-single (FAQ)
- .mp-footer (rodape institucional)
- Mais tudo do DS base: .mp-btn, .mp-card, .mp-input, .mp-grid, etc.
REGRAS DE MARCA INEGOCIAVEIS (sempre validas, qualquer projeto):
- Prefixo "mp-" em TODA classe usada. Se uma classe existe no DS, use ela
em vez de criar do zero.
- Cores via var(--mp-...). Zero hex hardcoded (excecao: cores oficiais
WhatsApp #25D366, #075E54, #DCF8C6, #E5DDD5 em mockups WhatsApp).
- Fonte: Nunito SO. Sem outra.
- Comportamento via data-mp-* (data-mp-open, data-mp-tabs, etc).
Nunca onclick="" inline.
- Overlays (se houver): <dialog> nativo com .mp-modal/.mp-drawer/.mp-cmdk.
- PROIBIDO alert/confirm/prompt — use Medprev.toast.* ou modal.
- CSS local OK pra layout especifico/animacoes — nunca pra redefinir
tokens ou hex hardcoded.
Detalhes completos (catalogo + exemplos canonicos, opcional):
https://trepadeira.mktmedprev.com.br/llms-lp.txt
https://trepadeira.mktmedprev.com.br/llms-full.txt
SE O BRIEFING ABAIXO ESTIVER VAZIO OU FOR SO "aplique o DS":
Modo RETROFIT, nao redesign.
- Preserve estrutura, secoes e tema do HTML original (se houver).
- Substitua estilos/classes pelos equivalentes do DS (.mp-btn, .mp-card,
.mp-input, var(--mp-*), Nunito).
- NAO invente secoes que o original nao tinha (hero, trust strip,
depoimentos, FAQ, CTA secundario, footer institucional, badges).
- NAO reescreva copy. NAO troque o tema (dark<->light) sem instrucao.
- Em duvida, PERGUNTE antes de mudar.
Briefing curto = retrofit. Briefing vazio = retrofit. Nao e licenca pra redesign.
────────────────────────────────────────────────────────────
BRIEFING DO PROJETO: [DESCREVA O QUE QUER — pagina, objetivo, secoes, copy]
Este projeto usa o Medprev Design System (Trepadeira) — MODO SISTEMA / DASHBOARD.
O DS e um CATALOGO de componentes e regras de marca, NAO um template forcado.
O briefing abaixo define O QUE criar; o DS so responde "o que existe pra usar"
e "quais regras de marca sao inegociaveis". Use SO os componentes que o briefing
pedir. Nao force app shell, sidebar, topbar, KPIs, tabela, ou qualquer coisa
que nao foi pedida — o DS nao opina sobre estrutura.
SETUP TECNICO (inegociavel — sem isso o DS nao carrega):
<link rel="stylesheet" href="https://trepadeira.mktmedprev.com.br/medprev.css">
<script src="https://trepadeira.mktmedprev.com.br/medprev.js" defer></script>
Nunito via Google Fonts.
<html data-mp-theme="light"> (ou dark/auto — preserve o tema do HTML original; so troque se o briefing pedir explicitamente)
ASSETS OFICIAIS (use APENAS essas URLs):
Logo verde: https://trepadeira.mktmedprev.com.br/logo.png
Logo branca: https://trepadeira.mktmedprev.com.br/logo-white.png (use em dark mode)
Favicon: https://trepadeira.mktmedprev.com.br/favicon.png
No <head>:
<link rel="icon" type="image/png" href="https://trepadeira.mktmedprev.com.br/favicon.png">
<link rel="apple-touch-icon" href="https://trepadeira.mktmedprev.com.br/apple-touch-icon.png">
<meta name="theme-color" content="#096840">
Logo no markup (so se o briefing pedir):
<img src="https://trepadeira.mktmedprev.com.br/logo.png" alt="Medprev" height="28">
COMPONENTES DISPONIVEIS (catalogo — use SO os que o briefing pedir):
- App shell: .mp-app / .mp-sidebar / .mp-topbar / .mp-main / .mp-page-header
(use se o briefing pedir dashboard com sidebar. Se pedir tela isolada, ignore.)
- Botoes: .mp-btn + variants (primary/secondary/ghost/outline/danger/success/link)
- Cards: .mp-card + .mp-card-header/-body/-footer
- Forms: .mp-form / .mp-field / .mp-input / .mp-textarea / .mp-select / .mp-checkbox
/ .mp-radio / .mp-switch / .mp-range / .mp-drop / .mp-tags-input / .mp-choices
- Stats: .mp-stat / .mp-kpi (com sparkline)
- Feedback: .mp-alert / .mp-badge / .mp-chip / .mp-avatar / .mp-progress
/ .mp-skeleton / .mp-spinner
- Overlays: .mp-modal / .mp-drawer / .mp-cmdk (ctrl+K) / .mp-dropdown
/ .mp-popover / .mp-tooltip
- Navegacao: .mp-tabs / .mp-accordion / .mp-breadcrumbs / .mp-steps (wizard)
/ .mp-pagination
- Tabelas: .mp-table-wrap / .mp-table (compact/roomy/striped/clickable)
- Visualizacao: .mp-chart-bars / .mp-chart-line (SVG) / .mp-donut / .mp-funnel
/ .mp-sparkline / .mp-heatmap
- Extras: .mp-empty / .mp-timeline / .mp-calendar / .mp-kanban / .mp-chat
/ .mp-notification-item
REGRAS DE MARCA INEGOCIAVEIS (sempre valem):
- Prefixo "mp-" em TODA classe. Se uma classe existe no DS, USE em vez de criar.
- Cores via var(--mp-...). Zero hex hardcoded.
- Fonte Nunito SO. Sem outra.
- Use tokens semanticos (--mp-surface, --mp-text) — nao primitivos.
- Comportamento via data-mp-* (data-mp-open, data-mp-tabs, etc).
Nunca onclick="" inline.
- Overlays (se houver): <dialog> nativo com .mp-modal/.mp-drawer/.mp-cmdk.
- PROIBIDO alert/confirm/prompt — use Medprev.toast.* ou modal.
- CSS local OK pra customizacoes — nunca pra redefinir tokens.
Componentes de LP que nao fazem sentido em dashboard (evite):
.mp-trust-strip, .mp-cta-block, .mp-fab-whatsapp, .mp-sticky-cta,
.mp-doctor-card, .mp-wa-mockup, .mp-spec-chip, .mp-price-anchor,
.mp-testimonial-rich, .mp-hero, .mp-navbar publica, .mp-footer institucional.
Detalhes completos:
https://trepadeira.mktmedprev.com.br/llms-app.txt
https://trepadeira.mktmedprev.com.br/llms-full.txt
SE O BRIEFING ABAIXO ESTIVER VAZIO OU FOR SO "aplique o DS":
Modo RETROFIT, nao redesign.
- Preserve estrutura, layout e tema do HTML original (se houver).
- Substitua estilos/classes pelos equivalentes do DS (.mp-btn, .mp-card,
.mp-input, var(--mp-*), Nunito).
- NAO invente componentes que o original nao tinha (toggle de tema,
sidebar, KPI, badges, empty states, headers).
- NAO troque o tema (dark<->light) sem instrucao explicita.
- Em duvida, PERGUNTE antes de mudar.
Briefing curto = retrofit. Briefing vazio = retrofit. Nao e licenca pra redesign.
────────────────────────────────────────────────────────────
BRIEFING DO PROJETO: [DESCREVA O QUE QUER — tela, dados, acoes, estrutura]
Este projeto usa o Medprev Design System (Trepadeira) — MODO EMAIL HTML.
O DS e um CATALOGO de regras tecnicas e tokens de marca. O briefing abaixo
define O QUE criar (assunto, copy, layout, blocos). Use SO os blocos que o
briefing pedir. Estrutura, ordem, presenca de header/footer institucional —
tudo decisao do briefing.
CONTEXTO: Email marketing, transacional ou newsletter.
ATENCAO: clientes de email (Outlook, Gmail mobile, Apple Mail) NAO suportam:
- variaveis CSS (var(--mp-...))
- <link> externo de CSS
- @import
- a maioria dos seletores complexos
- dark mode automatico
- flexbox / grid confiavelmente
REGRA: estilo TOTALMENTE INLINE com hex hardcoded.
Use os tokens do DS Trepadeira como REFERENCIA, mas escreva os valores literais.
ASSETS OFICIAIS PARA EMAIL (use APENAS estas URLs — SEMPRE PNG, NUNCA SVG):
Logo verde: https://trepadeira.mktmedprev.com.br/logo.png
Logo branca: https://trepadeira.mktmedprev.com.br/logo-white.png
No header do email (sempre dentro de uma <table>, com width/height inline):
<img src="https://trepadeira.mktmedprev.com.br/logo.png"
alt="Medprev"
width="120"
height="32"
style="display:block; height:32px; width:auto; border:0;">
CORES DO DS (use estas, hex literal):
Brand verde: #096840 (CTA, headings de destaque)
Brand hover: #075A37
Brand soft: #E5F9DF (fundo de bloco verde claro)
Brand contrast: #FFFFFF (texto sobre brand)
Texto base: #454155
Texto strong: #1B1925 (titulos)
Texto soft: #6B6680 (subtitulos)
Texto muted: #9CA3AF (metadata)
Fundo: #F7F9F8
Surface (card): #FFFFFF
Border: #E5E7EB
Danger: #DC2626
Success: #10B981
Warn: #EA580C
Info: #2563EB
TIPOGRAFIA (Nunito, com fallback):
font-family: "Nunito", system-ui, -apple-system, "Segoe UI", Roboto, Arial, sans-serif;
Tamanhos: 11, 12, 13, 15 (base), 17, 20, 24, 28, 36, 48px
Pesos: 400, 500, 600, 700, 800, 900
ESPACO (escala 4px): 4, 8, 12, 16, 20, 24, 32, 40, 48, 64px
RADIUS: 3, 6, 10, 14, 20, 28, 9999px
SINTAXE QUE EMAIL EXIGE (fato tecnico, nao opiniao de layout):
- <table> pra layout (clients quebram <div> com flex/grid)
- width 600px maximo no container principal
- Imagens com alt + width/height inline + display:block + border:0
- Botoes como <table> bulletproof com background hex + texto branco + padding
- PNG/JPG (clients nao renderizam SVG)
- Sem JavaScript, sem form, sem iframe (todos bloqueados)
- Tudo style INLINE (clients ignoram <link> externo)
Quanto a estrutura, blocos, ordem, presenca de header/footer/CTAs —
decisao do briefing.
EXEMPLO DE BOTAO (CTA) FUNCIONAL:
<table cellpadding="0" cellspacing="0" border="0">
<tr><td style="background:#096840; border-radius:10px;">
<a href="..." style="display:inline-block; padding:14px 28px; color:#FFFFFF;
font-family:Nunito,Arial,sans-serif; font-size:15px; font-weight:700;
text-decoration:none;">Agendar agora</a>
</td></tr>
</table>
NUNCA:
- @media queries (so dark e raras)
- variaveis CSS
- Fontes web (clients ignoram, use o fallback)
- Background image em <td> (Outlook quebra — use cor solida)
- Position absolute/fixed
- Iframe / video / form
SE O BRIEFING ABAIXO ESTIVER VAZIO OU FOR SO "aplique o DS":
Modo RETROFIT, nao redesign.
- Preserve estrutura, blocos e hierarquia do email original (se houver).
- Substitua estilos inline pelos tokens/padroes do DS (CTA bulletproof,
cores hex literais acima, Nunito com fallback Arial).
- NAO invente blocos que o original nao tinha (hero image, CTA secundario,
depoimentos, social proof, footer institucional gigante, banner).
- NAO reescreva copy. NAO invente assunto/preheader novo.
- Se era transacional, mantenha transacional. Se era promocional, mantenha.
- Em duvida, PERGUNTE antes de mudar.
Briefing curto = retrofit. Briefing vazio = retrofit. Nao e licenca pra redesign.
────────────────────────────────────────────────────────────
BRIEFING DO EMAIL: [DESCREVA — assunto, audiencia, oferta, CTA, blocos]
Visão geral
Showcase de todos os componentes, utilities e padrões do Medprev Design System.
Tipografia
Nunito em todos os pesos. Hierarquia consistente do display ao caption.
Cores
Tokens semânticos, não hex. Cada cor é uma intenção.
Botões
Variantes para todas as ações: ênfase, secundário, ghost, outline, destrutivo, sucesso, ícone, loading.
Formulários
Inputs, validation, choices, switches, uploads — todos com a11y embutida.
Form completo
Choices · Switches · Checkboxes
Upload / Drop zone
Validation states
Overlays
Modal nativo (<dialog>), drawer lateral, popover, tooltip, dropdown.
Feedback
Alertas, progress, skeletons, badges — comunicação de estado.
Progress
Skeleton loaders
Badges / Tags / Chips
Tabelas
Densidade adaptável, header sticky, ações inline, paginação.
| 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
|
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
|
Erro | 0 | — |
Visualização de dados
Cards, calendar, kanban, empty states.
Calendário
Empty state
Kanban
Extras
Chat widget, avatares, onboarding card.
Chat
Onboarding card
Conecte sua conta do Meta Ads
Você está a 1 passo de começar a importar campanhas automaticamente.
Avatares
Dashboards
Padrões para BI, painéis admin, telemetria. KPIs, gráficos de linha, donut, funil, heatmap, sparklines.
| 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 |
Landing & Hero
Para LPs, sites institucionais e páginas promocionais — fora do dashboard shell.
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.
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.
Para começar a entender o produto.
- ✓ 1 plataforma
- ✓ 100 leads/mês
- ✓ Relatórios básicos
Para a operação que precisa escalar.
- ✓ Todas as plataformas
- ✓ Leads ilimitados
- ✓ BI e relatórios avançados
- ✓ Integrações via API
Para redes e grupos hospitalares.
- ✓ SSO + permissões
- ✓ Suporte 24/7
- ✓ SLA dedicado
Tudo pra montar landing page Medprev de verdade.
Hero, trust strip, comparativo, calculadora, depoimentos com aspas, equipe médica, mockup WhatsApp, catálogo, multi-canal e CTA final. Tudo no padrão Medprev, pronto pra equipe usar sem inventar nada.
.mp-trust-strip
.mp-comparison
.mp-cta-block
Cuide da sua saúde pagando o justo.
Mais de 50 mil pessoas já economizam com a Medprev. Chama no WhatsApp e descubra o seu valor.
.mp-calc · .mp-calc-result
.mp-steps-big · .mp-step-big
.mp-fab-whatsapp · .mp-sticky-cta
Fixed bottom-right 60x60. Cor oficial WhatsApp #25D366. Desktop only.
<a href="https://wa.me/..." class="mp-fab-whatsapp">
<svg>...</svg>
</a>
Botão fixo bottom mobile (some em desktop). Padding-bottom do body injetado via body:has().
<a href="..."
class="mp-btn mp-btn-primary mp-btn-lg
mp-btn-block mp-sticky-cta">
Consultar valores
</a>
.mp-doctor-grid · .mp-doctor-card
.mp-wa-mockup
Pague só no dia, sem mensalidade. 14:23
.mp-testimonial-rich
Super recomendo. Ótimo atendimento e valores bem acessíveis. Já indiquei pra família toda.
Sem complicação nenhuma. Atendimento muito bom, médica atenciosa. Voltarei sempre.
Uso há anos, desde Florianópolis. Em Araucária continua excelente. Vale muito a pena.
.mp-price-anchor · .mp-pricing-row · .mp-spec-chip
.mp-contact-method
.mp-logo-cloud
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.
Painel admin, app SaaS, BI, wizard. Usa sidebar + topbar + main, forms complexos, modais, gráficos.
Hero, pricing, footer, navbar com blur. Geralmente sem app shell. Forms só se houver captura de lead.
Se for ultra-performático e tiver tooling de tree-shake: tokens + themes + layout + components + utilities. Pula forms.css se não houver inputs.
Campanha curta, 1-2 telas, máxima velocidade. Card de oferta, botão, hero compacto.
JS opcional — só se houver modal/toast/cmdk.
Widget injetado em outro site (chat, calculadora, formulário). Não controla o <html>.
Reset do bundle pode brigar com host. Em produção, recomenda Shadow DOM.
Clientes de email não suportam variáveis CSS nem <link> externo. Bundle não funciona direto.
Mantenha as cores e fontes do DS, mas sem dinâmica. Sem dark mode (a maioria dos clientes não suporta).
Conteúdo longo de leitura. Tipografia importa muito, layout simples, código inline.
Use .mp-max-w-prose no conteúdo. Approve tabs e accordion via JS.
Cheatsheet — esqueletos mínimos
<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>
<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
- Logo: URL oficial do CDN, em fundo branco, dentro de
.mp-logo-boxou.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.
- Apenas classes e data-mp-* no HTML. Sem
<style>, sem<script>com lógica de componente, semonclick=. - Apps dashboard usam
.mp-app+.mp-sidebar+.mp-topbar+.mp-main. - LPs e sites usam
.mp-navbar+.mp-hero+.mp-section+.mp-footer.
- 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.
- 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. ESCsempre fecha (browser nativo cuida).- Nunca
alert(),confirm(),prompt(). Sempre modal custom.
- 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-motionrespeitado automaticamente.- Labels obrigatórios em todos os inputs.
.mp-sr-onlyse o label visual existe em outro lugar. - Contraste mínimo WCAG AA em texto, AAA quando possível.
- Duração via
--mp-duration-fast(150ms),-base(220ms),-slow(300ms). - Easing oficial:
--mp-ease-outpadrão,--mp-ease-bouncesó 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.
- 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.
- Todo produto suporta light · dark · auto via
data-mp-themeno<html>. - Tokens semânticos (
--mp-surface,--mp-text) — não use os primitivos diretos. - Tema persiste em localStorage automaticamente.
/Claude/ — não gambiarra no produto.