onne.link onne.link Design System
Onne Core + Profile Themes

A base que deixa cada página parecer de quem fez.

Tokens, componentes e padrões do Onne.link. O Core cuida do painel, do Estúdio e do dinheiro. Os Themes cuidam da página pública de cada criador, dentro de limites de contraste, toque e desempenho.

4 pxbase de espaçamento
44 pxalvo de toque mínimo
4,5:1contraste de texto, medido
marca / 960 × 1008toque para animar
Princípios

Quatro regras para decidir quando o caso não estiver aqui.

O criador aparece primeiro

O painel organiza a identidade de quem usa e sai da frente. Cor de marca forte fica no Core; a página pública usa só o tema.

página pública nunca lê --accent

Um verbo por tela

Cada tela tem uma ação principal visível, com o resultado escrito no botão: "Publicar página", "Adicionar bloco".

1 botão primário por contexto

Dinheiro sem surpresa

Valor, taxa, prazo e quem recebe aparecem antes da confirmação. Números em colunas usam algarismos tabulares.

valor + taxa + prazo + status

Feito para o polegar

A criação acontece no celular. Alvos de 44 px, ação principal ao alcance e nada essencial escondido atrás de hover.

mobile primeiro, min-width depois
Fundamentos

Marca

Quatro formas: três azuis e um quadrado rosa, o ponto de cor que também marca o ".link". Use os arquivos oficiais; não redesenhe o logo.

Logo onne.link em fundo claro
Fundo clarologo-light.png
Logo onne.link em fundo escuro
Fundo escurologo-dark.png
Logo onne.link em fundo azul
Fundo azullogo-blue-bg.png

Área de proteção: no mínimo a altura do quadrado rosa em volta do logo. Altura mínima na tela: 20 px para o logo, 16 px para o ícone.

×Não troque as cores do logo nem aplique filtros.

×Não distorça. Redimensione só na proporção original.

×Não coloque sobre fundos que apagam o quadrado rosa.

Fundamentos

Cor

Cada cor tem um papel. O contraste ao lado de cada amostra é calculado na hora, contra branco e contra a tinta. Toque numa amostra para copiar.

Marca e estado

Copiar como

Neutros

os mesmos nomes nos dois modos
TokenClaroEscuroUso
--ui-app#EEF1F8#0B1020Fundo do painel
--ui-surface#FFFFFF#141A2BCards, painéis, modais
--ui-surface-2#F5F7FC#1C2438Áreas de apoio, canvas
--ui-ink#0F1B30#F2F5FFTítulos e texto principal
--ui-ink-2#475069#B8C1DATexto de apoio
--ui-ink-3#5E6780#8A94B0Metadados, ajuda
--ui-line#D6DCEA#26304ABordas e divisores
--ui-line-2#C6CDDE#33405FBordas de campos
Fundamentos

Tipografia

Inter em 400, 500, 600 e 700, carregada de forma explícita com fallback do sistema. Nenhum texto abaixo de 11 px; campos de formulário em 16 px para o iOS não dar zoom.

Display40 / 600 / -0,03em
Sua página, do seu jeito.
Title26 / 600 / -0,02em
Ganhos de outubro
Heading17 / 600
Estilo do botão
Body15 / 400 / 1,55
Adicione um link para sua página começar a tomar forma. Você pode reordenar os blocos depois.
Small13,5 / 400
Atualizado agora há pouco
Caption12,5 / 400
feito com onne.link
Label11 / 600 / caixa alta / 0,06em
Estúdio / Aparência
Valor24 / 700 / tabular
R$ 1.284,50 +12%
Fundamentos

Espaço e forma

Escala de 4 px para espaço, cinco raios por função e três níveis de elevação. Grupos usam gap; nada de margens soltas entre irmãos.

Espaçamento

--sp-*
--sp-14
--sp-28
--sp-312
--sp-416
--sp-520
--sp-624
--sp-832
--sp-1040

Raios

--rad-*
sm · 8
campos, chips
base · 10
botões, cards
lg · 14
painéis, modais
xl · 20
sheets no mobile
full
badges, pílulas

Elevação

--sh-*
Planosó borda · conteúdo
Card--sh-card · listas, blocos
Pop--sh-pop · menus, toasts
Fundamentos

Movimento

Movimento explica o que mudou. Duração curta, só transform e opacity, e nada animado quando o sistema pede menos movimento. Toque em "Testar" para ver cada curva.

Entrada--ease · 220 ms
Deslocamento--ease-move · 340 ms
Resposta--spring · 220 ms

Durações

  • --dur-fast 140 ms: hover, cor, pressionar
  • --dur 220 ms: toggles, abas, toasts
  • --dur-slow 340 ms: sheets e troca de tema

Regras

  • Feedback começa no toque (pointer-down), não ao soltar.
  • Ação feita pelo teclado não anima: o indicador pula direto.
  • No máximo uma cascata por tela, 30 a 50 ms entre itens.
  • Nada bloqueia o próximo toque.
Componentes

Ações

Botões dizem o que acontece. Um primário por contexto, altura de 44 px no toque, e o rótulo continua lá durante o carregamento para o botão não mudar de largura.

Button

hierarquia
button / variantes
Copiar endereço

Quando usar

  • Primário: a ação que fecha a tarefa. Um por tela.
  • Secundário: alternativa segura, como Prévia.
  • Discreto: cancelar, voltar, ações de baixo risco.
  • Pro: só em upgrade. Destrutivo: sempre com confirmação.

Tente

Toque em "Publicar página": carregando, publicado e volta ao normal.

--ui-accent--ui-accent-hover--rad

Estados

todo botão documenta os sete
button / estados
padrão
hover
foco
pressionado
carregando
sucesso
desabilitado

Comportamento

  • Pressionar: escala 0,97 em 90 ms, no pointer-down.
  • Foco: anel de 2 px na cor de ação, mais um halo suave.
  • Carregando: aria-busy, loader da marca no lugar do rótulo.
  • Desabilitado só quando o motivo estiver escrito por perto.
Componentes

Formulários

Rótulo sempre visível, ajuda abaixo do campo e erro que diz como resolver. A validação acontece enquanto a pessoa digita, sem esperar o envio.

Input com prefixo e validação ao vivo

endereço público
input / prefix / live
Letras minúsculas, números, ponto e hífen.
Aparece abaixo do seu nome.0/160

Tente

Apague e digite outro endereço. "marina", "maike" e "admin" já estão em uso.

Regras

  • Campos com 46 px de altura e fonte de 16 px.
  • Erro aparece ao lado do campo e é anunciado pelo leitor de tela.
  • Quando der erro, ofereça a saída: sugestões que a pessoa toca e usa.
  • Contador só aparece onde existe limite real.

Seleção

switch, checkbox, abas
switch / checkbox / tabs
Animação nos botõesMovimento curto no toque
Tema, fundo, botões e fonte da página pública.

Comportamento

  • Switch aplica na hora; checkbox entra num formulário que se salva.
  • Abas: setas trocam, Home e End vão às pontas. Pelo teclado o indicador pula, pelo toque ele desliza.
  • A área de toque do switch tem 44 px, maior que o desenho.
Componentes

Feedback

Cor nunca vem sozinha: todo estado tem ícone e texto. Toast confirma o que já aconteceu; alerta explica o que ainda precisa de atenção.

alert
✓
Página publicadaQuem tiver o link já vê a nova versão.
!
Confira o valor antes de publicarO botão de Pix vai mostrar R$ 500,00 como sugestão.
i
Este bloco não aparece na páginaEle está oculto. Ative em Configurações do bloco.
toast / badge
PRO Publicada Rascunho Em breve

Toast

  • Some sozinho em 4 s; pausa com o cursor em cima.
  • Erro com saída: "Tentar de novo" dentro do toast.
  • Lido pelo leitor de tela via aria-live.
Componentes

Carregamento

O loader é a marca da v2 em movimento: os quadrados acendem em sentido horário e o rosa fecha o ciclo. Ele aparece só quando a espera é real.

Loader da marca

tela inteira, inline, botão
onne-loader
16 · inline
24 · card
36 · tela
parado · pouco movimento

Quando mostrar

  • Espere 300 ms antes de mostrar. Se carregar antes, ninguém vê o loader.
  • Uma vez na tela, fica no mínimo 500 ms para não piscar.
  • Ao terminar: o loader encolhe e some em 260 ms enquanto o conteúdo entra.

Acessibilidade

  • role="status" com rótulo "Carregando".
  • Com pouco movimento, os quadrados só respiram em opacidade.
1,05 s / ciclo140 ms entre quadrados

Skeleton, autosave e envio

quando o formato já é conhecido
skeleton / save-status / progress
ML
Marina Lopes2.418 visitas este mês
Link mais clicado: Playlist da semana, 812 cliques.
foto-perfil.jpg0%

Escolha

  • Skeleton quando o desenho da tela já é conhecido: lista, perfil, números.
  • Loader quando não é: abertura do app, troca de rota.
  • Barra quando o progresso é medido: upload, importação.

Autosave

Três estados visíveis: salvando, salvo e falha com "Tentar de novo". Na falha, nada se perde.

Componentes

Dinheiro

Onde tem dinheiro, a interface mostra tudo antes do clique: valor, taxa, prazo e quem recebe. Os exemplos abaixo seguem o escopo do botão de Pix desta versão.

pix-button / visão do visitante
Apoie a MarinaPRO
Mínimo de R$ 1,00.
ValorR$ 50,00Escaneie no app do seu banco
Ao pagar, você vê o nome e o banco de quem recebe.
Obrigado pelo apoio!

Regras do componente

  • Valores pré-definidos: 5, 50 e 100 por padrão, mais "Outro". O criador pode trocar.
  • Pix direto é recurso Pro e avisa que o pagador vê nome e banco.
  • Depois do QR, o visitante responde "Já enviei" ou "Não vou enviar", para estimarmos as doações.
  • Pix anônimo aparece como "Em breve", já com taxa e prazo, para medir interesse.

Números

  • Formato brasileiro: R$ 1.284,50.
  • Algarismos tabulares em valores e colunas.
  • Desconto e taxa com sinal de menos, nunca só em vermelho.
Padrões

Estúdio

Blocos, prévia e inspetor no mesmo fluxo. A prévia usa o mesmo código da página pública, então o que a pessoa vê editando é o que o visitante vê. Mude o formato e a cor no inspetor.

Minha página / aparência
Salvo
Blocos3
prévia ao vivo · 390 px
MLMarina LopesProduto, música e ideias que cabem no dia. Meu sitePlaylist da semanaApoie com Pix feito com onne.link
Aparência

Estilo dos botões

Formato
Cor
AnimaçãoBotão cresce no toque
i
Contraste do texto no botão: 5,27:1
Padrões

Estados de tela

Todo fluxo principal documenta os quatro. O texto diz o que aconteceu e qual é o próximo passo.

vazio+

Comece pelo primeiro link

Cole um endereço e ele vira um botão na sua página.

carregando

Buscando seus números

Os cards ficam no lugar enquanto os dados chegam.

erro!

O link do bloco não abre

O endereço precisa começar com https://. Corrija e publique de novo.

sucesso✓

Página no ar

Copie o endereço e coloque na bio do Instagram.

Padrões

Profile Themes

A página pública só lê as variáveis do tema, nunca as cores do painel. Cada tema novo passa pela checagem de contraste antes de entrar na galeria. Temas que vieram da v1 ficam como estão.

Contrato do canvas

[data-canvas]
VariávelControlaRegra
--t-bgFundo da páginaBase para medir contraste
--t-btn / --t-btn-textBotões de link4,5:1 entre os dois
--t-name / --t-bioNome e bio4,5:1 sobre o fundo
--t-radiusFormato dos botõesLivre
--t-fontFonte do perfilCom fallback declarado
MLMarina LopesProduto, música e ideias que cabem no dia. Meu sitePlaylist da semanaFale comigofeito com onne.link
Referência

Acessibilidade

Faz parte do contrato de cada componente e é conferida com medição, não no olho.

Teclado em tudo

Tab, Enter, Espaço, Esc e setas operam cada controle, na ordem da leitura.

foco visível: 2 px + halo
Contraste medido

Texto com 4,5:1; texto grande e partes de controle com 3:1. Esta página calcula os números ao vivo.

ink sobre surface: …
Toque confortável

Alvos de 44 por 44 px com espaço entre eles. Nada essencial depende de hover.

botão md: 44 px · campo: 46 px
Menos movimento

Com a preferência do sistema ligada, animações viram corte seco e o loader só respira.

prefers-reduced-motion
Rótulos de verdade

Todo campo tem rótulo visível ligado a ele. Imagens de bloco pedem descrição.

label[for] + aria-describedby
Idioma e estrutura

Idioma da página declarado, um h1, títulos em ordem e marcos de navegação.

lang="pt-BR" · main · nav
Referência

Tokens

Base: client/src/styles/chrome.css da v2, com dois ajustes desta versão: --ui-ink-3 mais escuro para passar no contraste e o novo --ui-danger-strong para texto de erro.


        
Referência

Versões

1.017/10/2026
  • Valores alinhados ao código da v2 (chrome.css): azul de ação #105FF5 e rosa #F7456C, os mesmos do logo.
  • Loader da v2 animado e documentado, com regras de atraso e duração mínima.
  • Componentes de dinheiro: botão de Pix direto e Pix anônimo "em breve".
  • Modo escuro, contraste calculado ao vivo e tokens de movimento.
0.116/10/2026
  • Proposta inicial: separação entre Onne Core e Profile Themes, princípios e primeira página de referência.