Design system · identidade da marca

Pare de construir no escuro.

O Design System do HArmonyCa Performance: tokens, tipografia Silka, componentes e acessibilidade prontos para você montar telas com consistência e parar de improvisar a cada tela nova. A decisão fica no token, não no achismo. Clique em qualquer cor, valor (hex/rgba) ou bloco de código para copiar.

A marca do HArmonyCa Performance no digital: logo, assinatura e uso correto sobre fundo claro e escuro. Mantém leitura e contraste nos dois temas.

Composições
Horizontal
Monocromático
Ícone / símbolo
Cores oficiais · sobre o fundo correto
Gelo #F5FAFC · sobre escuro
Navy #16193C · sobre claro
Cor · gradiente oficial
Uso
Faça
  • Mantenha o espaço livre ao redor ≥ a altura do ícone.
  • Tamanho mínimo: ícone 28px · horizontal 90px de largura.
  • Use o SVG vetorial: escala sem perder nitidez e segue o tema.
Não faça
  • Recolorir o texto do logo: use as cores do arquivo (gelo #F5FAFC sobre escuro, navy #16193C sobre claro). O gradiente do medidor é fixo: azul, violeta e coral oficiais.
  • Distorcer, rotacionar, inclinar ou aplicar sombra.
  • Usar a versão branca sobre fundo claro (some no fundo).

Paleta extraída do medidor do logo e seus derivados em tokens de tema, claro e escuro. O componente consome token, nunca cor fixa.

Institucionais (paleta da marca)
Violeta
#7E63C9
Predominante, o centro do medidor. Marca e accents.
Azul céu
#3BA7E3
Do gradiente do medidor: o início da escala.
Coral
#D96155
Do gradiente do medidor: o pico de performance.
Navy
#16193C
A tinta do logo no claro. Base de sustentação: CTA claro, texto.
7401 U 25%
Dourado claro
#FFE4A4
Accent dourado de apoio: selos, destaques.
red 0331 U
Rosa claro
#FFB1BD
Detalhes quentes, citações, âncora de preço.
pantone 712 U
Pêssego
#FFCA9B
Brilho quente em gradientes de fundo.
Gelo
#F5FAFC
O branco da marca, do arquivo do logo. Superfícies usam o off-white #FAFAFA; nunca branco puro.
Tema escuro · fundos (quase-preto, sem preto puro)
BG
#0A0C1B
Fundo principal (quase-preto, não #000).
BG 2
#10132A
Faixas alternadas.
Cartão
#171A38
Cartões e blocos.
Cartão 2
#1E2246
Elevação extra.
Tema claro · fundos (off-white, sem branco puro)
BG
#FAFAFA
Fundo principal (off-white, não #FFF).
BG 2
#F2F4FB
Faixas alternadas.
Cartão
#F8F9FD
Cartões e blocos.
Cartão 2
#EBEEF9
Elevação extra.
Violeta · escala de uso
Violeta profundo
#232755
A sombra da escala: fim de gradiente, fundo do CTA do nav.
Violeta base
#7E63C9
Institucional: o centro do medidor. Gradientes e sombras da marca.
Violeta intenso
#6A50C4
CTA do tema escuro e hover: mais saturação, mais contraste.
Violeta luz
#A18FE3
Accent principal sobre escuro: links, eyebrows.
Azul e coral · escala de uso
Azul sobre claro
#1F6FA8
Texto e accent frio no tema claro.
Azul médio
#2A76AD
Fim do gradiente de CTA no escuro.
Azul luz
#5FBBF0
Dados e apoio frio sobre escuro.
Coral sobre claro
#B0453A
Destaques quentes no tema claro.
Coral luz
#E8837A
Destaques quentes sobre escuro.
Gradiente da marca · como se constrói
Gradiente do medidor
#3BA7E3 → #7E63C9 → #D96155
A assinatura da marca: o ponteiro subindo do azul ao coral, como um medidor de performance. Três paradas em 80°, da esquerda para a direita.
CTA · tema escuro
#6F56C6 → #2A76AD
Derivado em 120°: violeta intenso para azul médio. É o token --cta-grad no escuro.
CTA · tema claro
#16193C → #5B44AD
Derivado em 120°: navy para violeta. É o token --cta-grad no claro.
/* gradiente do medidor · 3 paradas do logo */ background:linear-gradient(80deg,#3BA7E3 0%,#7E63C9 50%,#D96155 100%); /* derivados de CTA (--cta-grad) · escuro e claro */ background:linear-gradient(120deg,#6F56C6,#2A76AD); background:linear-gradient(120deg,#16193C,#5B44AD);
Texto
Texto
#F5FAFC
Títulos e corpo principal.
Secundário
#BCC6DC
Texto secundário, leads.
Azulado suave
#BFB3EE
Texto sobre fundo escuro com leveza.
Aviso legal secundário
#7E88AD
Aviso legal, rodapé.
Cor de destaque quente (da marca)
Dourado
#FFE4A4
Selos, bônus, destaques de apoio.
Dourado profundo
#D6C08A
Ao passar o cursor, borda do dourado.
Rosa
#FFB1BD
Citações e destaques quentes.
Pêssego
#FFCA9B
Calor em gradientes de fundo.
Linha e sombras
Linha
rgba(161,143,227,.14)
Bordas e divisores (lilás @14%).
Sombra
rgba(126,99,201,.40)
Elevação de botões (violeta @40%).
Sombra forte
rgba(126,99,201,.50)
Ao passar o cursor em botões (violeta @50%).
Semânticas · feedback (sempre com ícone, nunca só cor)
Sucesso Informação Atenção Erro

Verde, âmbar e vermelho saem da paleta institucional de propósito: são funcionais (sucesso, atenção, erro). No tema light usam variantes escurecidas para manter AA. Acompanhe sempre de ícone + texto, nunca cor sozinha.

Temas · escuro e claro
Escuro · padrão do site
A virada

Do improviso à referência.

Fundo escuro navy sobre quase-preto, texto quase branco, accents em violeta luz e gelo.
Plano por região
Indicação, produto e profundidade caso a caso.
Assinar →Certificado incluído
Claro · fundo claro
A virada

Do improviso à referência.

Fundo off-white #FAFAFA (sem branco puro), texto navy, accents em violeta e azul.
Plano por região
Indicação, produto e profundidade caso a caso.
Assinar →Certificado incluído

No tema light, dourado e rosa como texto usam variantes escurecidas (gold-ink #7A5A0E, rose #B04A5E); como preenchimento mantêm a cor institucional (#FFE4A4, #FFB1BD). O site usa o tema escuro por padrão.

Gradientes da marca em malhas e lineares. Sem cônico, sem blob, sem halo.

Escuros · funcionais
Primário · navy → violeta
Aurora · violeta + pêssego
Malha de imagem · violeta luz + rosa + violeta
Escuros · vibrantes
Violeta → violeta luz
Pôr do sol · navy → violeta → coral
Violeta luz → pêssego
Spotlight · violeta luz
Bicolor · violeta → escuro
Escuros · malhas
Nebulosa · 4 pontos
Malha · violeta + violeta luz + navy
Malha quente · violeta + violeta luz + pêssego
Malha de topo · violeta luz + rosa + violeta
Malha centro-base
Escuros · abstratos
Espectro · navy → violeta luz → coral
Aurora vertical
Brilho de borda inferior
Fitas diagonais
Claros · suaves e pastel
Suave · navy
Aurora claro
Malha pastel
Navy → gelo
Pêssego
Espectro pastel
Claros · malhas
Malha pastel · 3 pontos
Malha pastel · 4 pontos
Malha quente clara · violeta + rosa + pêssego
Malha de topo clara · violeta luz + rosa + violeta

Silka em escala responsiva por ponto de quebra. Corpo com no mínimo 16px no mobile para evitar o zoom no iOS.

Pare de aplicar no escuro.
Destaque / H1
Silka · clamp(34-60px)
peso 500 · entrelinha 1.03
espaçamento -0.025em
Preenche agora, estimula depois. Com método.
Título / H2
Silka · clamp(26-38px)
peso 500 · entrelinha 1.12
espaçamento -0.02em
Indicação certa, aplicação segura.
Subtítulo / H3
Silka · 24px
peso 500 · entrelinha 1.2
Como funciona o híbrido.
Subtítulo / H4
Silka · 20px
peso 500 · entrelinha 1.25
O que está incluído no plano.
Subtítulo / H5
Silka · 17px
peso 500 · entrelinha 1.3
Detalhe de seção / rótulo
Subtítulo / H6
Silka · 15px
peso 500 · entrelinha 1.35
Performance clínica com HArmonyCa
Rótulo / Sobrelinha
Silka · 12px · peso 600
espaçamento 0.18em · UPPERCASE
cor: Lilás
Produto, indicação e plano de aplicação para resultados que se sustentam.
Texto de abertura
Silka · 17-18px
peso 300 · entrelinha 1.5
cor: Secundário
Preenchimento imediato do ácido hialurônico, colágeno do CaHA nas semanas seguintes: o resultado se constrói em duas fases e o plano de aplicação também.
Corpo
Silka · 16px
peso 300 · entrelinha 1.65
Método validado em clínica, do primeiro caso ao avançado.
Corpo pequeno
Silka · 14px (computador) / 13px (celular)
peso 300 · entrelinha 1.6
cor: Secundário
R$ 149,90
Numeral / Preço
Silka · clamp(32-44px)
peso 700 · entrelinha 1
Legenda / Aviso legal
Silka · 11px
peso 300 · entrelinha 1.5
cor: Aviso legal secundário
Escala responsiva · pontos de quebra do Framer

No Framer, cada Text Style aceita override por breakpoint. Defina o valor no Desktop e ajuste em Tablet e Phone. Valores recomendados (px):

Estilo
Desktop ≥1200
Tablet ≤810
Phone ≤390
Destaque / H1
60 lh 1.03
44
34
Título / H2
38 lh 1.12
32
26
Subtítulo / H3
24 lh 1.2
22
20
Subtítulo / H4
20 lh 1.25
19
18
Subtítulo / H5
17 lh 1.3
16
16
Subtítulo / H6
15 lh 1.35
14
14
Rótulo
12
12
11
Texto de abertura
18 lh 1.5
17
16
Corpo
16 lh 1.65
16
16
Corpo pequeno
14
13
13
Numeral / Preço
44 lh 1
38
32
Aviso legal
12
11
11

As amostras acima já usam clamp(): redimensione a janela para ver a escala fluida entre Phone e Desktop. Corpo mínimo de 16px no celular evita o zoom automático do iOS.

Biblioteca Phosphor, peso Thin, traço de 1pt, herdando a cor por currentColor. O ícone nunca substitui o rótulo.

Conjunto de sistema desenhado na grade 24. Clique em qualquer ícone para copiar o SVG. Para o catálogo completo, use o link da Phosphor no fim da seção.

Domínio · saúde e curso
Navegação
Ação e conteúdo
Comunicação e mídia
Estado e conta
Tamanhos · tokens de ícone
sm · 16
base · 20
md · 24
lg · 32
xl · 48

No Framer: insira o ícone Phosphor, defina Weight = Thin e a cor como Color Style (texto/accent). Em botões, o ícone alinha à baseline do texto com gap de 8 px; alvo de toque mínimo de 44 px mesmo quando o glifo é menor.

Biblioteca completa

Os ícones acima são um recorte de sistema desenhado na grade 24. Para qualquer outro glifo, use a biblioteca oficial: 9.000+ ícones em 6 pesos, todos disponíveis nativamente no Framer.

Abrir biblioteca Phosphorphosphoricons.com

Variantes e tamanhos com altura mínima de 44px e raio pill. O rótulo sempre diz a ação (Salvar plano, não Enviar).

Ícone à direita
Sem ícone
Preenchido
Sólido
Contorno
Inline / texto
Dourado (accent)
Dourado contorno
Tamanhos (sm / md / lg)
Estados
Botões · ícone à esquerda
Etiquetas · sem ícone / ícone esquerda / ícone direita
Bioestimulação Bioestimulação Bioestimulação
Selos · sem ícone / ícone esquerda / ícone direita
Certificado incluído Certificado incluído Certificado incluído
Campos de formulário · estados
Texto de ajuda opcional.
Digite um e-mail válido.
Cupom aplicado.
Campo desabilitado.
Somente leitura.
Área de texto
Caixa de seleção · Botão de opção · Alternador
Matriz de estados interativos

Os mesmos estados se aplicam a todo componente interativo (botão, campo, link, alternador, aba…). Consistência de interação = DS maduro.

EstadoSinal visual / regra
defaultRepouso: token base.
hoverMudança leve (cor/elevação); só em ponteiro.
focus-visibleObrigatório: anel --focus (navegação por teclado).
activePressionado (translateY 1px / cor mais forte).
disabled--opacity-disabled + cursor not-allowed + não focável.
loadingIndicador + bloqueia interação; mantém a largura.
errorBorda/texto --danger + mensagem + aria-invalid.
successBorda/texto --success + confirmação.
selectedEstado persistente (aba/opção ativa).
read-onlyFundo --card2, sem borda de edição, copiável.

Alertas, notificações e status nos quatro tons. Sempre ícone e texto juntos: a cor não comunica sozinha.

Alertas inline
Plano salvo. O caso já está na sua lista.
Aula nova esta semana. Entrou conteúdo novo no módulo de aplicação. Confira quando quiser.
Sessão expira em breve. Salve o plano antes de continuar para não perder o que você montou.
Falha ao salvar. Não foi possível salvar agora. Verifique a conexão e tente de novo.
Notificação · Indicador de carregamento · Esqueleto
Salvo com sucesso
Estado vazio

Nenhum caso ainda

Monte o primeiro plano de aplicação da sua lista.

Janela modal · Dica · Balão
Duplica o plano para você editar sem perder o original.
Filtrar porRegião da face e fase do tratamento.

Organização e navegação: abas, acordeão, avatares, trilha de navegação, paginação e variantes de cartão.

Abas
Conteúdo da aba ativa. No produto: aria-selected + navegação por setas do teclado.
Acordeão
Com que frequência entram aulas novas?
As aulas são liberadas por módulo ao longo da turma.
As aulas têm certificado?
O curso emite certificado ao final. As aulas ficam disponíveis para rever durante a turma.
Avatar
EJACABC+5
Trilha de navegação · Paginação
Cartão · variantes

Cartão básico

Superfície com borda e raio padrão.

Cartão interativo

Elevação ao passar o mouse.

Cartão com mídia

Imagem/gradiente no topo.

Cartão horizontal

Miniatura + texto.

Componentes de aplicação: tabela de dados, paleta de comandos, seletor de data e navegação. Conteúdo de exemplo do domínio do curso.

Tabela de dados
Estado
O híbrido: HA e CaHA em detalheProduto42 minPublicada
Avaliação e indicação por casoIndicação38 minRascunho
Plano de aplicação por regiãoPlanejamento51 minPublicada
Técnica: profundidade e vetoresAplicação29 minEm revisão
Acompanhamento e retornoResultados47 minPublicada
5 de 24 aulas
Seletor de data
17/06/2026 a 20/06/2026
Barra de navegação e barra lateral de produto

Meus módulos

BuscarAC

Módulos

Selecione um módulo para ver as aulas e o seu progresso.

Paleta de comandos

Contraste WCAG AA, foco visível, alvo de toque de 44px e respeito a movimento reduzido. A mensagem de erro diz o que houve e como resolver.

Tema dark
Texto em fundo18.5:1
Secundário em cartão9.9:1
Lilás (links) em fundo7.0:1
Dourado em fundo15.6:1
Branco no botão (roxo)4.9:1
CTA contra o fundo3.5:1
Aviso legal no rodapé5.6:1
Tema light
Texto em fundo16.2:1
Secundário em fundo6.3:1
Roxo (accent/links)7.0:1
Dourado-ink (texto)6.1:1
Rosa-ink (texto)5.0:1
Branco no botão (roxo)7.3:1
CTA contra o fundo7.0:1

No tema light, dourado e rosa como texto usam as variantes -ink (escurecidas) para garantir AA; como preenchimento mantêm a cor institucional. Mantenha foco visível (outline) nos interativos e alvos de toque ≥ 44px.

Cores, tipografia, espaçamento e raio: a base que todo componente consome via token.

Espaçamento · base 4 / 8
--space-1 · 4
--space-2 · 8
--space-3 · 12
--space-4 · 16
--space-6 · 24
--space-8 · 32
--space-12 · 48
Raio
sm · 8
md · 14
lg · 18
pill · 30
Movimento
--motion-fast · .15s --motion · .2s --motion-slow · .4s --ease · cubic-bezier(.2,.8,.2,1)
Elevação
elev-1
elev-2
elev-3
elev-4
Opacidade · borda · desfoque
disabled
.45
muted
.66
Sobreposição
.58
hover
.08
hair · 1
bw-2 · 2
blur-md
12
Pontos de quebra · dimensionamento · proporção
phone · 390 tablet · 810 desktop · 1200
icon 16
icon 20
icon 24
touch 44
1:1
16:9
Elevação semântica

Papéis mapeados na escala de sombra: Elevado = elev-1 · Sobreposição = elev-3 · Modal = elev-4. Use o papel (`--elev-raised/overlay/modal`), não o número. Sombras usam camadas pretas no dark e matiz da marca no light.

Cantos aninhados

Elemento arredondado dentro de outro: os cantos devem ser concêntricos (mesmo centro de arco). Regra: raio interno = raio externo − padding, para o espaçamento ficar uniforme inclusive nos cantos.

Faça · concêntrico
Externo r 24 · padding 16 → interno r 8 (24 − 16). Gap uniforme.
Não faça · mesmo raio
Interno r 24 (igual ao externo) → nos cantos o gap "estufa". Não concêntrico.
Pares recomendados
ContextoExternoPaddingInterno
Cartão grande24168
Cartão médio1688
Cartão pequeno / campo1284
Tile compacto880 · reto
Pill / botãofullnão se aplicaexceção
CSS · derive o interno com calc()
/* raio interno = raio externo − padding (nunca negativo) */ .card{ --r:24px; --pad:16px; border-radius:var(--r); padding:var(--pad); } .card > .inner{ border-radius:max(0px, calc(var(--r) - var(--pad))); } /* 24 - 16 = 8 */

Padding ≥ raio → interno vira 0 (reto). Borda/stroke inverte: externo = interno + largura da borda. Aninhamento profundo: subtraia o padding de cada nível. Pill é exceção (não recalcula). Com corner smoothing (squircle iOS) a fórmula vira aproximação: iguale o smoothing em pai e filho.

Consistência por token, paridade entre claro e escuro, acessibilidade por padrão. Decida uma vez, reaplique em todo lugar.

Arquitetura de tokens (3 camadas)

Tokens fluem em primitive → semantic/intent → component. Regra de ouro: o token semântico nunca sugere valor (--btn-bg, não --azul-500); o de componente referencia o semântico, nunca o primitivo direto. É o que torna theming e rebrand triviais.

CamadaExemploPapel
primitive#hex · 16pxValor cru, sem contexto.
semantic--accent · --space-4Intenção / uso.
component--btn-bgAplicação no componente.
Princípios de movimento

Anime com propósito (feedback, orientação, continuidade), nunca decorativo. Durações nos tokens (--motion-fast .15 · --motion .2 · --motion-slow .4), curva --ease. Respeite prefers-reduced-motion (já no reset). Não anime: deslocamento de layout nem texto de leitura.

Versionamento e contribuição

SemVer (MAJOR.MINOR.PATCH) + CHANGELOG.md + política de depreciação. Contribuição: regra das 3 equipes (só vira padrão o que serve 3+ usos) + revisão antes de virar componente. Ver CONTRIBUTING.md no pacote.

Faça / Não faça
Faça
  • Consumir tokens (nunca hex solto).
  • Escuro + claro em paridade, contraste WCAG AA.
  • Ícone + texto nos estados (cor nunca sozinha).
  • Foco visível em tudo que é focável.
Não faça
  • Cor / raio / sombra fora dos tokens.
  • Texto claro sem contraste no light.
  • Animar sem propósito ou ignorar reduced-motion.
  • Botão <a> sem href.

A camada de copy do sistema: como o produto escreve. Builder para builder, técnica, direta e anti-improviso, sem hipérbole nem happy talk. Guia completo no pacote (voz-e-tom.md) e os termos de cada marca em glossario-marca.md.

Adjetivos da voz
TécnicaDiretaConfiantePrecisaAnti-improviso
Faça / Não faça
Faça
  • O rótulo diz a ação ("Salvar plano", não "Enviar").
  • No erro, diga o que houve e o próximo passo.
  • Voz ativa, frases curtas, pt-BR.
  • Ícone e texto juntos: a cor não comunica sozinha.
Não faça
  • Usar &: escreva a palavra "e".
  • Travessão (— nem –): use vírgula, dois-pontos ou parênteses.
  • Hipérbole ("a melhor", "incrível") ou happy talk ("Bem-vindo!").
  • Misturar domínio entre marcas.
Estrangeirismos
Traduzir (tem equivalente limpo)
data tabletabela de dados
command palettepaleta de comandos
date pickerseletor de data
modal, tooltip, popoverjanela modal, dica, balão
toast, breadcrumb, cardnotificação, trilha, cartão
Manter (nome próprio ou código)
token, hover, link, avatar, pill
Framer, Code Component, Color/Text Style
CSS, JSON, SVG, PNG
WCAG, SemVer, Silka, Phosphor
currentColor, clamp()
Separação de domínio

Cada marca só fala do próprio domínio. Os termos específicos ficam em glossario-marca.md (um por marca) e nunca cruzam para outro design system. Na dúvida, erre para o neutro (corpo de texto, preenchimento de cor, token, cartão), nunca para o domínio de outra marca.

Microcopy modelo
Interface
BotãoSalvar plano
Estado vazioNenhum item ainda. Crie o primeiro.
SucessoSalvo. Já está na sua lista.
ErroNão foi possível salvar. Tente de novo.
DestrutivoRemover item? Não tem volta.
Regras rápidas
Erro diz o que houve e como resolver.
Rótulo de botão é a ação, não o genérico.
Números com função tabular.
Experts: conteúdo editorial, fora da UI.
Nomes de marca por extenso.

Valores legíveis por máquina para tema, espaçamento, raio, elevação e movimento. O componente lê o token, não o valor solto.

Variáveis CSS
/* HArmonyCa Performance · tokens (identidade própria) */ :root{ /* institucionais */ --brand-violeta:#7E63C9; --brand-violeta-luz:#A18FE3; --brand-dourado:#FFE4A4; --brand-rosa:#FFB1BD; --brand-pessego:#FFCA9B; --brand-gelo:#F5FAFC; /* fundos */ --bg:#0A0C1B; --bg2:#10132A; --card:#171A38; --card2:#1E2246; --line:rgba(161,143,227,.14); /* roxo / lilás / texto */ --primary-deep:#232755; --primary:#7E63C9; --primary-bright:#6A50C4; --accent:#A18FE3; --accent-soft:#BFB3EE; --secondary:#3BA7E3; --secondary-bright:#5FBBF0; --tertiary:#E8837A; --txt:#F5FAFC; --mut:#BCC6DC; --legal-mut:#7E88AD; /* accent quente */ --highlight:#FFE4A4; --highlight-deep:#D6C08A; --support:#FFB1BD; --glow:#FFCA9B; /* sombras */ --sh:rgba(126,99,201,.40); --sh-strong:rgba(126,99,201,.50); /* sistema · raio, espaçamento, z-index, movimento, foco */ --radius-sm:8px; --radius-md:14px; --radius-lg:18px; --radius-pill:30px; --space-2:8px; --space-4:16px; --space-6:24px; --space-8:32px; --motion:.2s; --ease:cubic-bezier(.2,.8,.2,1); --focus-ring:#A18FE3; --focus:0 0 0 2px var(--bg),0 0 0 4px var(--focus-ring); /* fundações: opacidade · borda · desfoque · pontos de quebra · dimensionamento · proporção */ --opacity-disabled:.45; --opacity-muted:.66; --opacity-hover:.08; --opacity-overlay:.58; --bw-hair:1px; --bw-2:2px; --blur-sm:6px; --blur-md:12px; --blur-lg:20px; --bp-phone:390px; --bp-tablet:810px; --bp-desktop:1200px; --size-icon:20px; --control-h:44px; --touch-min:44px; --ar-square:1/1; --ar-wide:16/9; /* semânticas (feedback) + elevação (camadas) + papéis */ --success:#45C08A; --warning:#E8B53D; --danger:#FF7D93; --info:#A18FE3; --elev-1:0 1px 2px rgba(0,0,0,.34), 0 2px 6px rgba(0,0,0,.30); --elev-2:0 2px 4px rgba(0,0,0,.34), 0 8px 18px rgba(0,0,0,.40); --elev-3:0 4px 12px rgba(0,0,0,.45), 0 16px 36px rgba(0,0,0,.55); --elev-4:0 10px 24px rgba(0,0,0,.5), 0 28px 64px rgba(0,0,0,.62); --elev-raised:var(--elev-1); --elev-overlay:var(--elev-3); --elev-modal:var(--elev-4); } /* ---- tema light · alterna com [data-theme="light"] no <html> (toggle + localStorage) ---- */ [data-theme="light"]{ --bg:#FAFAFA; --bg2:#F2F4FB; --card:#F8F9FD; --card2:#EBEEF9; --line:rgba(126,99,201,.16); --txt:#16193C; --mut:#525C7E; --legal-mut:#525C7E; --primary:#7E63C9; --primary-bright:#6A50C4; --accent-soft:#4A3A92; --secondary:#1F6FA8; --tertiary:#B0453A; --focus-ring:#5B44AD; --accent:#5B44AD; /* accent/texto: violeta profundo p/ contraste no claro */ --highlight:#FFE4A4; --highlight-ink:#7A5A0E; --support:#FFB1BD; --support-ink:#B04A5E; --glow:#FFCA9B; --sh:rgba(126,99,201,.18); --sh-strong:rgba(126,99,201,.26); }
JSON (Color Styles + Text Styles do Framer)
// Color Styles { "brand/Violeta": "#7E63C9", "brand/VioletaLuz": "#A18FE3", "brand/Dourado": "#FFE4A4", "brand/Rosa": "#FFB1BD", "brand/Pêssego": "#FFCA9B", "bg/BG": "#0A0C1B", "bg/BG2": "#10132A", "bg/Cartão": "#171A38", "bg/Cartão2": "#1E2246", "roxo/Profundo": "#232755", "roxo/Brilhante": "#6A50C4", "text/Texto": "#F5FAFC", "text/Secundário": "#BCC6DC", "text/LilásSuave": "#BFB3EE", "text/Legal": "#7E88AD", "accent/Dourado": "#FFE4A4", "accent/DouradoProfundo": "#D6C08A", "accent/Rosa": "#FFB1BD", "accent/Pêssego": "#FFCA9B", "line": "rgba(161,143,227,.14)", // feedback · valor dark (paridade light no comentário) "feedback/Success": "#45C08A", // light #147A45 "feedback/Warning": "#E8B53D", // light #8A5A00 "feedback/Danger": "#FF7D93", // light #BE2C45 "feedback/Info": "#A18FE3" // light #5E4A8C }
// Text Styles (Silka) · tamanho por breakpoint Framer [desktop, tablet, phone] { "Destaque/H1": { size:[60,44,34], weight:600, lh:1.03, ls:"-0.025em" }, "Título/H2": { size:[38,32,26], weight:600, lh:1.12, ls:"-0.02em" }, "Subtítulo/H3": { size:[24,22,20], weight:600, lh:1.2 }, "Subtítulo/H4": { size:[20,19,18], weight:600, lh:1.25, ls:"-0.01em" }, "Subtítulo/H5": { size:[17,16,16], weight:600, lh:1.3 }, "Subtítulo/H6": { size:[15,14,14], weight:600, lh:1.35 }, "Rótulo": { size:[12,12,11], weight:600, lh:1.2, ls:"0.18em", uppercase:true }, "Texto de abertura": { size:[18,17,16], weight:300, lh:1.5 }, "Corpo": { size:[16,16,16], weight:300, lh:1.65 }, "CorpoPequeno": { size:[14,13,13], weight:300, lh:1.6 }, "Numeral": { size:[44,38,32], weight:700, lh:1 }, "Legal": { size:[12,11,11], weight:300, lh:1.5 } }
Configuração no Framer · claro / escuro automático

No Framer, crie cada cor como um Color Style com um valor de Claro e um de Escuro. O site publicado segue a aparência do sistema do visitante automaticamente (prefers-color-scheme); dá pra adicionar um toggle e lembrar a escolha do visitante. Atalho no canvas: Ctrl+Cmd+N. Valores por estilo:

Color Style
Claro
Escuro
bg / Fundo
#FAFAFA
#0A0C1B
bg / Superfície
#F2F4FB
#10132A
bg / Cartão
#F8F9FD
#171A38
line / Borda
rgba(126,99,201,.16)
rgba(161,143,227,.14)
text / Texto
#16193C
#F5FAFC
text / Secundário
#525C7E
#BCC6DC
accent / Violeta (CTA)
#16193C
#6A50C4
accent / Lilás (link)
#5B44AD
#A18FE3
accent / Dourado · texto
#7A5A0E
#FFE4A4
accent / Dourado · preenchimento
#FFE4A4
#FFE4A4
accent / Rosa · texto
#B04A5E
#FFB1BD
chrome / Navegação
rgba(255,255,255,.82)
rgba(10,12,27,.82)
chrome / Rodapé · fundo
#EBEEF9
#05060F
chrome / Rodapé · texto
#525C7E
#7E88AD

Refs Framer: Modo claro e escuro no Framer · Academy: modo claro e escuro