# Componentes · Score Positivo > empresa B2B · v0.2 · piloto com cliente real. Dados extraídos do Manual de Marca, Tom e Voz e Kickoff. Os itens marcados como pendentes aguardam confirmação do cliente Botões, badge, card, alerta, campo e tabela, com estados e código para copiar. > **Pendente (item 11):** Cores semânticas (sucesso, erro, alerta, info) e o Verde Score 700 (#3D7A01) para texto pequeno verde e botões com texto branco. [Ver em pendencias.md](pendencias.md#item-11) ## O essencial 1. Use cantos de 16px, botões em pílula, selos em pílula. 2. Separe com filetes de 1px em Cinza; nada de sombra. 3. Use a barra de score uma vez por peça. 4. Escreva o título em duas camadas: contexto leve, resultado forte. 5. Aplique só pares aprovados, via variáveis de tokens.css. ## Exemplos com a copy da marca - **Botões:** Agilidade técnica Cada decisão sem dado preciso é uma aposta. Falar com Score Baixar o logo Ver os detalhes - **Badge:** API e Web Pré-pago e pós-pago - **Card:** API e Web Dado certo, decisão segura Atendimento consultivo de quem entende de crédito, e não de ticket. - **Alerta:** Sucesso Mensagem enviada. A resposta chega por e-mail. Você não precisa fazer mais nada agora. - **Campo de formulário:** E-mail Você recebe a resposta por e-mail. Falar com Score - **Tabela simples:** Canal Usa? Fonte LinkedIn (página + executivos) sim Tom e Voz, Use Case Maps Instagram / Facebook sim Kickoff Google Ads (Search e Display) sim Kickoff E-mail marketing (RD Station) sim padrão de banner 757×300 já aprovado ## Barra de Score Trilho Cinza com preenchimento em gradiente (#4E9901 → #71DF01) e ponto no fim. Representa evolução e score. Usar sob títulos-chave, como divisor de seção e como indicador de progresso. Máximo 1 por peça além do logotipo. - **Fazemos:** Uma barra por peça: Parceiro, não fornecedor - **Nunca fazemos:** Duas barras na mesma peça: Parceiro, não fornecedor Segundo bloco da peça - **Motivo:** Máximo 1 por peça além do logotipo: a barra perde o valor de indicador se aparece duas vezes. ## Título em duas camadas Linha de contexto em Poppins Regular + linha de resultado em Poppins Bold na cor Verde Score (sobre fundo claro) ou Verde Claro (sobre Azul Noite). - **Fazemos:** Contexto leve, resultado forte: Do acesso ao resultado - **Nunca fazemos:** Duas linhas do mesmo peso e da mesma cor: Do acesso ao resultado - **Motivo:** Linha de contexto em Poppins Regular + linha de resultado em Poppins Bold na cor Verde Score (sobre fundo claro) ou Verde Claro (sobre Azul Noite). ## Bloco de destaque Retângulo Verde Claro (#71DF01) atrás da palavra-chave do título, com texto PRETO em Bold (contraste 12,26:1), como nos criativos. Uma palavra ou expressão por peça. Nunca usar o bloco atrás de parágrafo inteiro. - **Fazemos:** Uma palavra-chave em destaque: Liberdade contratual - **Nunca fazemos:** Destaque em excesso: várias palavras ou o parágrafo inteiro: Liberdade contratual - **Motivo:** Uma palavra ou expressão por peça. ## Selo Pílula com 'Para empresas' ou 'Uso corporativo, contratação por CNPJ' em peças de mídia, para filtrar o público B2C. - **Fazemos:** Selo em pílula, par aprovado: Para empresas Uso corporativo, contratação por CNPJ - **Nunca fazemos:** Par de cor proibido: Para empresas - **Motivo:** Verde Claro sobre Branco tem contraste 1,71:1; o selo só usa pares aprovados. ## Movimento Movimento padrão do template: o brand.json deste cliente não define `tokens.motion`. | Grupo | Token | Valor | Origem | Uso | | --- | --- | --- | --- | --- | | Duração | `--mov-dur-fast` | `120ms` | padrão do template | Microinterações: clique, foco, hover. | | Duração | `--mov-dur-base` | `250ms` | padrão do template | Entradas e transições comuns. | | Duração | `--mov-dur-slow` | `400ms` | padrão do template | Barras que se preenchem e contadores. | | Curva | `--mov-ease-standard` | `cubic-bezier(.2,0,0,1)` | padrão do template | Movimento dentro da tela. | | Curva | `--mov-ease-enter` | `cubic-bezier(0,0,.2,1)` | padrão do template | O que entra: começa rápido e assenta. | | Curva | `--mov-ease-exit` | `cubic-bezier(.4,0,1,1)` | padrão do template | O que sai: começa devagar e acelera. | | Cascata | `--mov-stagger` | `40ms` | padrão do template | Atraso entre irmãos de um mesmo grupo. | | Distância | `--mov-dist` | `8px` | padrão do template | Deslocamento vertical de entrada. | **Quando mover** - Mova para orientar: o que entra, sai ou muda de estado ganha movimento; o que já está na tela fica parado. - Mova em resposta ao toque: botões e cards clicáveis reduzem de escala ao clicar. - Mova em cascata ao revelar grupos de itens, do primeiro ao último irmão. **Quando não mover** - Não mova texto corrido enquanto a pessoa lê. - Não use movimento em repetição nem só para enfeitar. - Não esconda conteúdo atrás de animação: sem JavaScript ou com movimento reduzido, tudo aparece parado. **Movimento reduzido** - Com `prefers-reduced-motion: reduce` não há transição, cascata nem contador: todo o conteúdo aparece parado. ```css /* Movimento · Score Positivo (padrão do template) */ :root{ --mov-dur-fast:120ms; --mov-dur-base:250ms; --mov-dur-slow:400ms; --mov-ease-standard:cubic-bezier(.2,0,0,1); --mov-ease-enter:cubic-bezier(0,0,.2,1); --mov-ease-exit:cubic-bezier(.4,0,1,1); --mov-stagger:40ms; --mov-dist:8px; } /* entrada: sobe 8px e aparece; irmãos entram com atraso de --mov-stagger */ .entra{opacity:0;transform:translateY(var(--mov-dist))} .entra.visivel{opacity:1;transform:none;transition:opacity var(--mov-dur-base) var(--mov-ease-enter) calc(var(--i,0) * var(--mov-stagger)),transform var(--mov-dur-base) var(--mov-ease-enter) calc(var(--i,0) * var(--mov-stagger))} /* resposta ao toque */ .botao{transition:transform var(--mov-dur-fast) var(--mov-ease-standard)} .botao:active{transform:scale(.98)} /* quem pede menos movimento recebe tudo parado */ @media (prefers-reduced-motion:reduce){ *,*::before,*::after{animation:none!important;transition:none!important} .entra{opacity:1;transform:none} } ``` ## Especificação técnica ### Barra de Score (código) ```html
/* CSS (requer tokens.css) */ .bfg-barra{--p:80%;position:relative;width:100%;height:.5rem;background:var(--cinza-100);border-radius:9999px} .bfg-barra__fill{position:absolute;left:0;top:0;bottom:0;width:var(--p);border-radius:9999px;background:linear-gradient(90deg,#4E9901,#71DF01)} .bfg-barra__ponto{position:absolute;left:var(--p);top:50%;width:1rem;height:1rem;border-radius:50%;background:#4E9901;transform:translate(-50%,-50%)} ``` ### Título em duas camadas (código) ```htmlDo acessoao resultado
/* CSS (requer tokens.css) */ .bfg-t2{display:grid;gap:.1em;margin:0;font:700 clamp(1.75rem,3.4vw,2.75rem)/1.05 var(--font-display, var(--f-display))} .bfg-t2__ctx{font-weight:300;color:var(--preto-900)} .bfg-t2__res{font-weight:700;color:var(--verde-score-400)} .bfg-t2--uma .bfg-t2__ctx,.bfg-t2--uma .bfg-t2__res{font-weight:300;color:var(--preto-900)} ``` ### Bloco de destaque (código) ```htmlLiberdade contratual
/* CSS (requer tokens.css) */ .bfg-dest{margin:0;font:700 clamp(1.75rem,3.4vw,2.75rem)/1.2 var(--font-display, var(--f-display));color:var(--preto-900)} .bfg-dest--corpo,.bfg-dest--corpo .bfg-destaque{font-size:1.125rem;font-weight:400;line-height:1.6} .bfg-destaque{background:var(--verde-claro-200);color:var(--preto-900);padding:0 .2em;border-radius:16px;font-weight:700;-webkit-box-decoration-break:clone;box-decoration-break:clone} ``` ### Selo (código) ```html Para empresas Uso corporativo, contratação por CNPJ /* CSS (requer tokens.css) */ .bfg-selo{display:inline-block;font:500 .8125rem/1 var(--font-texto, var(--f-texto));padding:.5em .9em;background:var(--azul-noite-900);color:var(--branco-50);border:1px solid var(--azul-noite-900);border-radius:9999px} ``` ### Outros elementos da marca - Assistente virtual 24/7 (avatar 3D). Uso em peças de atendimento e plataforma. Regras de uso pendentes. ### Botões Primário preenchido (cor de ação), secundário com contorno, neutro preenchido (escuro) e link. Três tamanhos (P, M, G), em múltiplos da grade de 8 px. Baixar e copiar levam ícone, com traço de 1,5 e pontas retas. Cantos de 16px, botões em pílula, selos em pílula, sem sombra. O rótulo usa a fonte de texto, nunca mono caixa-alta. - **Primário:** Padrão, Hover, Pressionado, Desabilitado - **Secundário (contorno):** Padrão, Hover, Pressionado, Desabilitado - **Neutro:** Padrão, Hover, Pressionado, Desabilitado - **Link:** Padrão, Hover, Pressionado, Desabilitado - **Com ícone (ação):** Copiar, Baixar, Baixar (neutro) - **Tamanhos:** P, M, G ```html ``` ```css :root{--radius-btn:9999px;--radius-selo:9999px} .bfg-btn,.bfg-badge,.bfg-campo__entrada{appearance:none;-webkit-appearance:none;margin:0;box-sizing:border-box} .bfg-btn{display:inline-flex;align-items:center;gap:var(--space-sm);font:500 var(--fs,15px)/1 var(--font-texto);padding:var(--py,12px) var(--px,20px);border:var(--linha-width) solid transparent;border-radius:var(--radius-btn);cursor:pointer;text-decoration:none;background:none} .bfg-btn svg{flex:none} .bfg-btn--p{--fs:13px;--py:8px;--px:16px} .bfg-btn--m{--fs:15px;--py:12px;--px:20px} .bfg-btn--g{--fs:17px;--py:16px;--px:24px} .bfg-btn--primario{background:var(--verde-score-700);color:var(--branco-50);border-color:var(--verde-score-700)} .bfg-btn--primario:hover,.bfg-btn--primario.is-hover{filter:brightness(0.92)} .bfg-btn--primario:active,.bfg-btn--primario.is-active{filter:brightness(0.84)} .bfg-btn--secundario{color:var(--azul-noite-900);border-color:var(--azul-noite-900)} .bfg-btn--secundario:hover,.bfg-btn--secundario.is-hover{background:var(--cinza-100)} .bfg-btn--secundario:active,.bfg-btn--secundario.is-active{background:var(--azul-noite-900);color:var(--branco-50)} .bfg-btn--neutro{background:var(--azul-noite-900);color:var(--branco-50);border-color:var(--azul-noite-900)} .bfg-btn--neutro:hover,.bfg-btn--neutro.is-hover{background:var(--azul-noite-800);border-color:var(--azul-noite-800)} .bfg-btn--neutro:active,.bfg-btn--neutro.is-active{background:var(--azul-noite-700);border-color:var(--azul-noite-700)} .bfg-btn--link{color:var(--azul-noite-900);padding-left:0;padding-right:0;text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:var(--linha-width)} .bfg-btn--link:hover,.bfg-btn--link.is-hover{text-decoration-thickness:2px} .bfg-btn--link:active,.bfg-btn--link.is-active{text-decoration-thickness:3px} .bfg-btn:disabled,.bfg-btn.is-disabled{background:var(--cinza-100);color:var(--azul-noite-900);border:var(--linha-width) dashed var(--azul-noite-900);cursor:not-allowed;text-decoration:none} .bfg-btn--link:disabled,.bfg-btn--link.is-disabled{background:none;border-color:transparent;text-decoration:line-through} .bfg-btn:focus-visible{outline:2px solid var(--azul-noite-900);outline-offset:2px} ``` ### Badge Em pílula. Sem a cor de acento: o selo usa o escuro, o apoio ou só o contorno. Rótulo curto para categoria (serviço, canal, formato). Quando vira filtro, usa os estados do contorno. - **Variantes:** escuro, apoio, contorno - **Como filtro:** Padrão, Hover, Pressionado, Desabilitado ```html API e Web Pré-pago e pós-pago ``` ```css .bfg-badge{background:transparent;color:inherit;display:inline-block;font:400 12px/1 var(--font-dados);text-transform:uppercase;letter-spacing:.06em;padding:var(--space-xs) var(--space-sm);border:var(--linha-width) solid transparent;border-radius:var(--radius-selo)} .bfg-badge--acento{background:var(--verde-score-700);color:var(--branco-50)} .bfg-badge--escuro{background:var(--azul-noite-900);color:var(--branco-50)} .bfg-badge--apoio{background:var(--cinza-100);color:var(--azul-noite-900)} .bfg-badge--contorno{color:var(--azul-noite-900);border-color:var(--azul-noite-900)} button.bfg-badge{cursor:pointer;font:500 13px/1 var(--font-texto);text-transform:none;letter-spacing:0} button.bfg-badge:hover,button.bfg-badge.is-hover{background:var(--cinza-100)} button.bfg-badge:active,button.bfg-badge.is-active{background:var(--azul-noite-900);color:var(--branco-50)} button.bfg-badge:disabled,button.bfg-badge.is-disabled{border-style:dashed;text-decoration:line-through;cursor:not-allowed;background:none} ``` ### Card Filete de 1px, raio de 16px, sem sombra. No hover o card não sobe: só muda de fundo. - **Estados:** Padrão, Hover, Pressionado, Desabilitado ```html API e WebAtendimento consultivo de quem entende de crédito, e não de ticket.
``` ```css .bfg-card{display:flex;flex-direction:column;gap:var(--space-md);padding:var(--space-lg);background:var(--branco-50);color:var(--azul-noite-900);border:var(--linha-width) solid var(--cinza-100);border-radius:var(--radius);text-decoration:none;cursor:pointer} .bfg-card__rotulo{font:400 12px/1 var(--font-dados);text-transform:uppercase;letter-spacing:.06em} .bfg-card__titulo{font:700 var(--space-xl)/1.1 var(--font-display);letter-spacing:-.02em;margin:0} .bfg-card__texto{font:400 17px/1.5 var(--font-texto);margin:0} .bfg-card__ponto{color:var(--azul-noite-900)} .bfg-card:hover,.bfg-card.is-hover{background:var(--cinza-100)} .bfg-card:active,.bfg-card.is-active{background:var(--azul-noite-900);color:var(--branco-50)} .bfg-card:hover .bfg-card__ponto,.bfg-card.is-hover .bfg-card__ponto,.bfg-card:active .bfg-card__ponto,.bfg-card.is-active .bfg-card__ponto{color:currentColor} .bfg-card[aria-disabled=true],.bfg-card.is-disabled{border-style:dashed;cursor:not-allowed} .bfg-card[aria-disabled=true] .bfg-card__titulo,.bfg-card.is-disabled .bfg-card__titulo{text-decoration:line-through} .bfg-card[aria-disabled=true] .bfg-card__ponto,.bfg-card.is-disabled .bfg-card__ponto{color:currentColor} ``` ### Alerta Quatro semânticas, só com contraste registrado de 4,5 ou mais sobre o fundo. A cor aparece no filete e no rótulo; o texto fica em azul-noite. O alerta varia por tipo, não por estado. - **Semânticas:** sucesso, erro, alerta, info ```htmlMensagem enviada. A resposta chega por e-mail.
Você não precisa fazer mais nada agora.
Não foi possível enviar. Confira o e-mail.
Falta o @ no endereço informado.
Falta um campo. O nome do contato.
Sem ele, não dá para preparar a conversa.
O arquivo está pronto. Baixe quando quiser.
Ele fica disponível nesta página.
Você recebe a resposta por e-mail.
| Canal | Usa? | Fonte |
|---|---|---|
| LinkedIn (página + executivos) | sim | Tom e Voz, Use Case Maps |
| Instagram / Facebook | sim | Kickoff |
| Google Ads (Search e Display) | sim | Kickoff |
| E-mail marketing (RD Station) | sim | padrão de banner 757×300 já aprovado |