Design system · identidade da marca

Pare de construir no escuro.

O Design System da Fotografia na HOF: 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 da Fotografia na HOF 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 #F3F3F3 · sobre escuro
Preto #101010 · sobre claro
Cor · gradiente oficial
Uso
Faça
  • Mantenha o espaço livre ao redor ≥ a altura do ícone.
  • Tamanho mínimo: ícone 24px · horizontal 180px 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 #F3F3F3 sobre escuro, preto #101010 sobre claro). O gradiente do diafragma é fixo: azul, violeta e lavanda oficiais.
  • Distorcer, rotacionar, inclinar ou aplicar sombra.
  • Usar a versão branca sobre fundo claro (some no fundo).

Paleta revelada do logo: a luz do diafragma em tokens de tema, claro e escuro. O componente consome token, nunca cor fixa.

Institucionais (paleta da marca)
Violeta
#7A1AD6
Predominante, tirada do centro do diafragma. Marca e CTAs.
Lavanda
#C286FF
A luz alta da paleta: destaques, links e eyebrows sobre o escuro.
Azul profundo
#204A8A
Segunda cor de marca: o azul de fundo de estúdio, dá profundidade.
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
#F3F3F3
O branco da marca, do arquivo do logo. Superfícies usam o off-white #FAFAFA; nunca branco puro (luz estourada).
Preto
#101010
O preto da marca, do arquivo do logo. Fundos escuros usam o quase-preto #0A0A14; nunca preto puro (sombra sem detalhe).
Tema escuro · fundos (quase-preto, sem preto puro)
BG
#0A0A14
Fundo principal (quase-preto, não #000).
BG 2
#121022
Faixas alternadas.
Cartão
#1A1732
Cartões e blocos.
Cartão 2
#221E40
Elevação extra.
Tema claro · fundos (off-white, sem branco puro)
BG
#FAFAFA
Fundo principal (off-white, não #FFF).
BG 2
#F4F2FC
Faixas alternadas.
Cartão
#F9F8FE
Cartões e blocos.
Cartão 2
#EEECFA
Elevação extra.
Violeta · escala de uso
Violeta profundo
#341060
A sombra do violeta: fim de gradiente, fundo do CTA do nav.
Violeta base
#7A1AD6
Institucional: a exposição de referência. Início de gradiente e sombras da marca.
Violeta brilhante
#8B33E3
Um stop acima do violeta base: hover de botões e links.
Lavanda
#C286FF
Luz de recorte sobre o escuro: o accent principal.
Azul · escala de uso
Azul profundo
#204A8A
Institucional: a base fria do diafragma. Fim do gradiente de CTA no claro.
Azul médio
#2E5FA8
Meio-tom frio: fim do gradiente de CTA no escuro.
Azul luz
#7FA9EA
Luz fria de preenchimento sobre o escuro: dados e detalhes de apoio.
Gradiente da marca · como se constrói
Gradiente do diafragma
#204A8A → #7A1AD6 → #C286FF
A assinatura da marca: a luz atravessando o diafragma. Três paradas, do azul profundo à lavanda, no sentido do topo direito para a base esquerda (225°).
CTA · tema escuro
#8C35E3 → #3267B6
Derivado em 120°: violeta brilhante para azul médio. É o token --cta-grad no escuro.
CTA · tema claro
#7A1AD6 → #204A8A
Derivado em 120°: violeta base para azul profundo. É o token --cta-grad no claro.
/* gradiente do diafragma · 3 paradas do logo */ background:linear-gradient(225deg,#204A8A 0%,#7A1AD6 50%,#C286FF 100%); /* derivados de CTA (--cta-grad) · escuro e claro */ background:linear-gradient(120deg,#8C35E3,#3267B6); background:linear-gradient(120deg,#7A1AD6,#204A8A);
Texto
Texto
#F8F8FD
Títulos e corpo principal.
Secundário
#C4BFD9
Texto secundário, leads.
Lavanda suave
#D4B3FF
Texto sobre fundo escuro com leveza.
Aviso legal secundário
#8880B5
Aviso legal, rodapé.
Cor de destaque quente (da marca)
Dourado
#FFE4A4
Luz quente de apoio: selos, bônus, destaques.
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(194,134,255,.14)
Bordas e divisores (lilás @14%).
Sombra
rgba(122,26,214,.40)
Elevação de botões (violeta @40%).
Sombra forte
rgba(122,26,214,.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 premium: roxo institucional escurecido sobre preto, texto quase branco, accents em lilás.
Registro padronizado
Antes e depois comparável em todo retorno.
Assinar →Certificado incluído
Claro · fundo claro
A virada

Do improviso à referência.

Fundo off-white #FAFAFA (branco do brand suavizado, sem branco puro), texto roxo quase preto, accents em roxo institucional.
Registro padronizado
Antes e depois comparável em todo retorno.
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 · violeta → azul
Aurora · violeta + pêssego
Malha de imagem · lavanda + rosa + violeta
Escuros · vibrantes
Violeta → lavanda
Pôr do sol · violeta → violeta claro → rosa
Lavanda → pêssego
Spotlight · lavanda
Bicolor · violeta → escuro
Escuros · malhas
Nebulosa · 4 pontos
Malha · violeta + lavanda + rosa
Malha quente · violeta + lavanda + pêssego
Malha de topo · lavanda + rosa + violeta
Malha centro-base
Escuros · abstratos
Espectro · violeta → lavanda → pêssego
Aurora vertical
Brilho de borda inferior
Fitas diagonais
Claros · suaves e pastel
Suave · lavanda
Aurora claro
Malha pastel
Lavanda
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 · lavanda + 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 fotografar no escuro.
Destaque / H1
Silka · clamp(34-60px)
peso 500 · entrelinha 1.03
espaçamento -0.025em
Cinco módulos. Um padrão de registro.
Título / H2
Silka · clamp(26-38px)
peso 500 · entrelinha 1.12
espaçamento -0.02em
Do celular à câmera, sem improviso.
Subtítulo / H3
Silka · 24px
peso 500 · entrelinha 1.2
Como montar a luz no consultório.
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
Fotografia clínica para profissionais de HOF
Rótulo / Sobrelinha
Silka · 12px · peso 600
espaçamento 0.18em · UPPERCASE
cor: Lilás
Luz, enquadramento e padronização para o antes e depois que valoriza seu trabalho.
Texto de abertura
Silka · 17-18px
peso 300 · entrelinha 1.5
cor: Secundário
Mesma luz, mesmo ângulo, mesmo fundo: o antes e depois só é comparável quando o padrão de captura se repete em cada retorno do paciente.
Corpo
Silka · 16px
peso 300 · entrelinha 1.65
Método de registro validado em clínica, do celular à câmera.
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 · fotografia 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 registro, 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
Antes e depois Antes e depois Antes e depois
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
Registro salvo. As fotos do caso já estão na galeria.
Aula nova esta semana. Entrou conteúdo novo no módulo de iluminação. Confira quando quiser.
Sessão expira em breve. Salve o registro antes de continuar para não perder o que você organizou.
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

Registre o primeiro antes e depois do seu acervo.

Janela modal · Dica · Balão
Duplica o caso para você editar sem perder o original.
Filtrar porRegião da face e data do registro.

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?
Toda semana entra conteúdo novo na plataforma, organizado por módulo.
As aulas têm certificado?
Os cursos completos emitem certificado ao final. As aulas avulsas servem para atualização contínua.
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 de fotografia clínica.

Tabela de dados
Estado
Luz: dura, difusa e rebatidaIluminação42 minPublicada
Enquadramento e ângulos padrãoEnquadramento38 minRascunho
Antes e depois comparávelPadronização51 minPublicada
Fundo, distância e escalaCenário29 minEm revisão
Consentimento e uso de imagemConsentimento47 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

Seus 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.6:1
Secundário em cartão9.7:1
Lilás (links) em fundo7.6:1
Dourado em fundo15.8:1
Branco no botão (roxo)5.6:1
CTA contra o fundo3.5:1
Aviso legal no rodapé5.4:1
Tema light
Texto em fundo16.8:1
Secundário em fundo6.2:1
Roxo (accent/links)6.8:1
Dourado-ink (texto)6.1:1
Rosa-ink (texto)5.0:1
Branco no botão (roxo)7.1:1
CTA contra o fundo6.8: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 registro", 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 registro
Estado vazioNenhum item ainda. Crie o primeiro.
SucessoSalvo. Já está na galeria.
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
/* Fotografia na HOF · tokens (identidade própria) */ :root{ /* institucionais */ --brand-violeta:#7A1AD6; --brand-lavanda:#C286FF; --brand-dourado:#FFE4A4; --brand-rosa:#FFB1BD; --brand-pessego:#FFCA9B; --brand-gelo:#F3F3F3; --brand-preto:#101010; /* fundos */ --bg:#0A0A14; --bg2:#121022; --card:#1A1732; --card2:#221E40; --line:rgba(194,134,255,.14); /* roxo / lilás / texto */ --primary-deep:#341060; --primary:#7A1AD6; --primary-bright:#8B33E3; --accent:#C286FF; --accent-soft:#D4B3FF; --secondary:#204A8A; --secondary-bright:#7FA9EA; --txt:#F8F8FD; --mut:#C4BFD9; --legal-mut:#8880B5; /* accent quente */ --highlight:#FFE4A4; --highlight-deep:#D6C08A; --support:#FFB1BD; --glow:#FFCA9B; /* sombras */ --sh:rgba(122,26,214,.40); --sh-strong:rgba(122,26,214,.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:#C286FF; --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:#C286FF; --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:#F4F2FC; --card:#F9F8FE; --card2:#EEECFA; --line:rgba(122,26,214,.16); --txt:#1A1533; --mut:#5F5A82; --legal-mut:#5F5A82; --primary:#7A1AD6; --primary-bright:#8B33E3; --accent-soft:#6929B8; --secondary-bright:#2E5FA8; --focus-ring:#7A1AD6; --accent:#7A1AD6; /* accent/texto: roxo p/ contraste no claro */ --highlight:#FFE4A4; --highlight-ink:#7A5A0E; --support:#FFB1BD; --support-ink:#B04A5E; --glow:#FFCA9B; --sh:rgba(122,26,214,.18); --sh-strong:rgba(122,26,214,.26); }
JSON (Color Styles + Text Styles do Framer)
// Color Styles { "brand/Violeta": "#7A1AD6", "brand/Lavanda": "#C286FF", "brand/Dourado": "#FFE4A4", "brand/Rosa": "#FFB1BD", "brand/Pêssego": "#FFCA9B", "bg/BG": "#0A0A14", "bg/BG2": "#121022", "bg/Cartão": "#1A1732", "bg/Cartão2": "#221E40", "roxo/Profundo": "#341060", "roxo/Brilhante": "#8B33E3", "text/Texto": "#F8F8FD", "text/Secundário": "#C4BFD9", "text/LilásSuave": "#D4B3FF", "text/Legal": "#8880B5", "accent/Dourado": "#FFE4A4", "accent/DouradoProfundo": "#D6C08A", "accent/Rosa": "#FFB1BD", "accent/Pêssego": "#FFCA9B", "line": "rgba(194,134,255,.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": "#C286FF" // 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
#0A0A14
bg / Superfície
#F4F2FC
#121022
bg / Cartão
#F9F8FE
#1A1732
line / Borda
rgba(122,26,214,.16)
rgba(194,134,255,.14)
text / Texto
#1A1533
#F8F8FD
text / Secundário
#5F5A82
#C4BFD9
accent / Roxo (CTA)
#7A1AD6
#7A1AD6
accent / Lilás (link)
#7A1AD6
#C286FF
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,10,20,.82)
chrome / Rodapé · fundo
#EEECFA
#060409
chrome / Rodapé · texto
#5F5A82
#8880B5

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