marcas fortes
não pedem
licença
estratégia
+ execução
no mesmo
lugar
bolda. nasce da palavra bold — ousado, corajoso, marcante. O “a” final dá-lhe identidade própria. Este documento define como esse caráter se traduz em símbolo, cor, tipo, ritmo e movimento — e entrega os tokens para o construir.
Tudo na identidade desce de duas formas: um traço de topos retos e um ponto perfeitamente circular. São o ponto final de “bolda.” libertado da linha de base — a assinatura que sobrevive a qualquer redução.
Toda a construção usa um único módulo: M = espessura da haste do “l”. No original, M também é a altura do traço e o diâmetro do ponto. Medir uma coisa é medir todas.
Proporções medidas diretamente no vetorial de origem. Não redesenhar: usar sempre o SVG fornecido.
A linha tracejada é a área de proteção: 2 M livres em toda a volta. A malha fina são módulos de 1 M.
17 M — o logotipo completo, do “b” ao ponto.
6,5 M — inclui o traço e o ponto descidos abaixo da linha de base.
3,5 M — o “o” e o “a”; a ascendente do “b/l/d” é 4,9 M.
2 M em toda a volta. É exatamente a margem do bloco verde (Ativo 10).
Seis assinaturas, uma decisão: escolhe-se pela largura disponível, não pelo gosto.
Logotipo — a versão por defeito. Mínimo 110 px / 28 mm de largura.
Com descritor — primeira aparição, papelaria, apresentações. Mínimo 150 px / 40 mm.
Monograma bd. — avatares, favicon, carimbos. Mínimo 40 px / 12 mm.
Selo — merch, adesivos, carimbo de rodapé. Nunca abaixo de 64 px.
Ícone — quadrado com raio de 1 M (11,3% do lado). A marca ocupa 82% da largura.
Lockup horizontal — cabeçalhos largos e assinaturas de vídeo. Intervalo fixo de 2 M.
O “a”, o traço e o ponto carregam sempre a cor de destaque — exceto sobre verde, onde o logotipo passa a monocromático.
Branco sobre verde tem apenas 1,73:1 de contraste. Funciona como forma grande — nunca abaixo do dobro do tamanho mínimo, e nunca em impressão de baixa qualidade. Em dúvida, usar a versão a tinta: 10,58:1.
Os SVGs em logos/svg/ chegam numerados como “Ativo N”. Tradução:
| Arquivo | Elemento | Cores | Onde usar |
|---|---|---|---|
| Ativo 18 | Logotipo bolda. | tinta + verde | Assinatura principal |
| Ativo 19 / 20 | Logotipo monocromático | verde / tinta | Uma cor, gravação, carimbo |
| Ativo 21–24 | Logotipo com “a” secundário | magenta / violeta | Campanhas e sub-linhas |
| Ativo 17 / 34 | Monograma bd. | uma cor | Avatar, favicon, marcação |
| Ativo 14 | Traço + ponto | verde | Padrão, bullet, loader |
| Ativo 3 | Ícone de app (quadrado) | verde + tinta | App, perfis, atalho |
| Ativo 10 | Bloco com logotipo | verde + branco | Etiqueta, botão, autocolante |
| Ativo 4 / 33 | Selos circulares | verde + branco | Merch, rodapé, carimbo |
| Ativo 30 / 32 | Logotipo + “agência” | verde / tinta+verde | Papelaria, apresentações |
| Ativo 31 | Lockup bd. + bolda. | tinta | Cabeçalhos largos |
| Ativo 2, 5, 16 | Faíscas (8, 4 e 4 pontas finas) | verde | Acentos gráficos |
| Ativo 6, 11 | Cruz e estrela orgânica | verde | Acentos, marcadores |
| Ativo 7, 8, 9 | Anéis, mancha e órbita | verde | Textura ambiente |
Preto é o terreno. Verde é a voz — e usa-se pouco, para continuar a ser ouvida. Os campos RGB / CMYK ficaram por preencher no manual original; estão fechados aqui, medidos no vetorial de origem.
Aparecem em campanhas, sub-linhas e sistemas de categorização — nunca no mesmo bloco que o verde com o mesmo peso. Máximo uma secundária por peça.
Uma peça bolda. lê-se ao longe pelo contraste, não pela saturação. A regra prática:
60 terreno (tinta ou branco) · 30 neutros e superfícies · 10 verde. As secundárias saem dos 10% — não se somam a eles.
Rácios WCAG 2.1 calculados. Verde = passa AA para texto corrente (4,5:1). Âmbar = só texto grande, ≥ 24 px ou ≥ 19 px bold (3:1). Vermelho = não usar como texto.
| Cor | sobre #FFFFFF | sobre #F5F5F3 | sobre #0B0B0B | sobre #151515 | sobre #80DC10 |
|---|---|---|---|---|---|
| Verde #80DC10 | 1,73 | 1,58 | 11,40 | 10,58 | 1,00 |
| Verde escuro #63A90D | 2,91 | 2,67 | 6,76 | 6,27 | 1,69 |
| Verde médio #519009 | 3,93 | 3,60 | 5,01 | 4,65 | 2,28 |
| Verde tinta #437707 | 5,41 | 4,96 | 3,64 | 3,37 | 3,13 |
| Tinta #151515 | 18,26 | 16,73 | 1,08 | 1,00 | 10,58 |
| Branco #FFFFFF | 1,00 | 1,09 | 19,68 | 18,26 | 1,73 |
| Cinza escuro #3C3C3C | 11,03 | 10,11 | 1,78 | 1,66 | 6,39 |
| Cinza claro #C6C6C6 | 1,71 | 1,56 | 11,52 | 10,69 | 1,01 |
| Violeta #5550F2 | 5,50 | 5,04 | 3,58 | 3,32 | 3,19 |
| Magenta #A6036D | 7,35 | 6,74 | 2,68 | 2,48 | 4,26 |
Verde puro em tudo — texto, ícones, links. É onde a marca respira.
#519009 para display, #437707 para texto corrente. O verde puro fica para preenchimentos.
Só tinta. Branco apenas em formas grandes — logotipo, número, título de display.
Duas famílias, papéis separados. Tajawal grita; Poppins explica. Nenhuma das duas escreve o logotipo.
Substitui a Madani Arabic do manual original. A Madani é licenciada e não está no Google Fonts; a Tajawal é aberta, cobre latim e árabe e tem a mesma presença geométrica nos pesos altos.
O “a” de caixa-baixa da Poppins é de um só andar — é a única fonte do sistema que ecoa o desenho do logotipo. Fica com toda a ênfase em itálico.
Sempre que a palavra bolda aparece escrita — num título, num parágrafo, numa legenda de post, na assinatura de e-mail — o “a” final leva a cor de destaque. Não é licença de designer: é padrão da marca. É o que amarra o texto corrente à assinatura sem ter de colar o logotipo em todo o lado.
<!-- uma classe, um <i> sem itálico --> <span class="wb">bold<i>a</i></span>. .wb i { font-style: normal; color: var(--accent); } .wb--inv i { color: #FFFFFF; } /* sobre verde */ .wb--mono i { color: inherit; } /* uma cor só */
A regra do “a” é para a palavra escrita. O logotipo continua a ser arquivo: entra como SVG, nunca composto em fonte.
Repara na diferença — o “a” da Tajawal tem dois andares, o do logotipo tem um. Escrever a assinatura na fonte produz uma marca parecida, mas errada.
Um único conjunto de degraus. Tudo o que aparece numa tela bolda. sai desta lista.
| Papel | Família | Tamanho | Peso | Entrelinha | Espacejamento |
|---|---|---|---|---|---|
| Display 1 — herói | Tajawal | clamp(52, 9.5vw, 132) | 800 | 0.92 | −0.045em |
| Display 2 — abertura | Tajawal | clamp(34, 4.6vw, 64) | 800 | 1.00 | −0.035em |
| Título 1 — seção | Tajawal | clamp(26, 3.1vw, 40) | 800 | 1.08 | −0.025em |
| Título 2 — bloco | Tajawal | clamp(19, 2vw, 23) | 700 | 1.20 | −0.015em |
| Título 3 — cartão | Tajawal | 16 | 700 | 1.30 | −0.005em |
| Entrada | Poppins | clamp(17, 1.5vw, 19.5) | 300 | 1.65 | 0 |
| Corpo | Poppins | 16 | 300 / 400 | 1.72 | 0 |
| Pequeno | Poppins | 14 | 400 | 1.62 | 0 |
| Sobretítulo | Poppins | 11.5 | 600 | 1.00 | +0.20em |
| Dado / código | JetBrains Mono | 12.5 | 400 | 1.75 | −0.01em |
/* uma só ligação, dois pesos por família */ --f-display: "Tajawal","Poppins",system-ui,sans-serif; --f-body: "Poppins",system-ui,sans-serif; --f-mono: "JetBrains Mono",ui-monospace,monospace;
A Poppins é o fallback do display: se a Tajawal falhar, a página degrada para uma geométrica próxima em vez de para a fonte do sistema.
Doze colunas na tela, oito pontos no espaçamento, e o módulo M sempre que o logotipo estiver na composição.
Máximo 1240 px, centrado. O rodapé e as faixas de cor podem sangrar.
clamp(20px, 5vw, 48px) — 20 no telefone, 48 no desktop.
24 px entre colunas; 14 px entre cartões dentro de um bloco.
560 · 860 · 1024 px — as mesmas do site institucional.
Base 8. Só estes valores; nada de números soltos.
4 · 8 · 12 · 16
24 · 32 · 48
64 · 96 · 128 — na tela, clamp(64px,7vw,108px)
O raio da marca vem do ícone de app: 1 M, ou 11,3% do lado. Nada é mais redondo do que isso, exceto pílulas.
| Peça | Formato | Margem | Nota |
|---|---|---|---|
| Cartão de visita | 85 × 55 mm | 8 mm | Logotipo a 28 mm de largura, alinhado à esquerda |
| A4 · documento | 210 × 297 mm | 16 mm | Logotipo no canto superior esquerdo, 32 mm |
| Post | 1080 × 1350 px | 64 px | Marca no rodapé, altura de 40 px |
| Story / Reels | 1080 × 1920 px | 96 px lateral · 240 px topo e base | Zona segura das interfaces |
| Apresentação | 1920 × 1080 px | 80 px | Marca fixa no canto inferior direito |
| Avatar | 1:1 | 9% do lado | Monograma bd. centrado a 82% da largura |
O símbolo tem topos retos e um ponto perfeitamente redondo. Os ícones herdam exatamente isso: contorno sem pontas arredondadas, curvas sempre circulares, e um ponto verde quando há estado a assinalar.
A 30 px ou mais, o traço mantém-se em 2. Abaixo de 20 px, usar a versão cheia do ícone em vez de o afinar.
O ícone toma a cor do texto ao lado (currentColor). O verde entra só no ponto de estado ou quando o ícone é o elemento principal do bloco — nunca em todos ao mesmo tempo.
Alinhar a caixa de 24, não o desenho. Junto a texto de 16 px, o ícone fica a 20 px com translateY(1px) — a área viva é mais pequena do que a caixa e a linha de base engana.
Mesma grelha de 24, mesmo traço de 2 — mas a silhueta de cada plataforma mantém-se. É o que as torna reconhecíveis num rodapé de 20 px, e é o que as próprias plataformas exigem. Onde a forma oficial é sólida (X, TikTok, o play do YouTube), o glifo é cheio; o resto é contorno.
20 px em rodapé e assinatura de e-mail; 24 px em barras de navegação; 21 px dentro do disco de 40 px.
Sempre currentColor, nunca as cores oficiais das plataformas. Num campo verde, os ícones vão a tinta.
Onde o contrato de uso da plataforma obrigar ao logótipo oficial — lojas de apps, botões de login — usar o asset oficial dela, não este.
Seis texturas, todas derivadas de peças que já existem na identidade. Uma por composição. Nunca duas a competir.
O padrão principal. Repete o átomo da marca a cada 5,4 M, com 2,5 M entre linhas. Usar como faixa horizontal — divisor, rodapé, cinta de embalagem — ou como campo inteiro a 100% de opacidade sobre tinta.
O ponto isolado, em malha regular de 2,75 M. Fundo de seção, verso de cartão, textura de fundo em slides. Reduzir a opacidade para 20–40% quando houver texto por cima.
Elipses de contorno fino (Ativo 7 e 9) sobrepostas em três ângulos. Textura ambiente para heróis e aberturas de seção — sempre em contorno, nunca preenchida, e sempre atrás do conteúdo.
Acentos pontuais, não padrão. Máximo três por composição, em três tamanhos diferentes, nunca alinhados entre si. A mancha orgânica (Ativo 8) serve também de máscara para fotografia em peças de social. Se estiverem a decorar, são a mais.
Palavra em display, escalada até sangrar por dois lados. É o recurso de capa do manual original. Só uma palavra, sempre em caixa-baixa, e nunca com o ponto final — cortar o logotipo é proibido, cortar uma palavra não.
Ruído monocromático a 30–45% sobre campos de verde grandes, para lhes tirar o aspecto digital. Só sobre cor sólida — nunca sobre fotografia, nunca sobre texto.
Uma textura por peça. Se a peça já tem uma fotografia forte, não leva textura nenhuma. Se leva padrão de traço-ponto, o logotipo entra sobre bloco sólido — não diretamente sobre o padrão.
bolda. move-se com decisão: entra depressa, para em seco, não faz ricochete. Nada de elastic, nada de bounce — a marca é ousada, não é fofa.
Uma curva por transição. Se precisa de duas, o movimento está a fazer demasiado.
Escalonamento entre irmãos: 80 ms. Nunca mais de cinco elementos em cascata.
translateY(30px) + opacidade, 800 ms, curva de saída. Dispara ao entrar na tela, uma vez só.
O ponto da marca é o indicador de carregamento. Escala 1 → 0,55, 1100 ms, ciclo contínuo. Substitui qualquer spinner.
O traço desenha-se da esquerda para a direita como sublinhado de link e estado ativo. scaleX, origem à esquerda, 250 ms no hover.
Duas cópias idênticas do grupo, translação de exatamente −50%, linear infinito. Pausa no hover e no foco de teclado.
Rotação linear de 9 a 24 s nos elementos de anel. Só em elementos decorativos de fundo, e apenas um por tela.
Escala e rotação de 45°, 2,4 s, curva de entrada-e-saída. Desfasar as faíscas entre si em 400 ms para não pulsarem em uníssono.
Sob prefers-reduced-motion: reduce desligam-se as revelações, os marquees, as órbitas, as faíscas e o cursor personalizado. O conteúdo aparece no estado final — nunca escondido. O marquee passa a região de scroll horizontal normal.
@media (prefers-reduced-motion: reduce) { .reveal { opacity: 1; transform: none; } .marquee__track, .orbit, .spark { animation: none; } }
A primeira coisa que alguém vê da marca. Tem uma tarefa só: cobrir o intervalo entre o clique e a página pronta — e sair. Duas versões, escolhidas pelo contexto, nunca as duas no mesmo produto.
1,6 s. Se a página carregar antes, a tela sai antes. Se demorar mais, sai na mesma e o conteúdo continua a chegar.
Uma vez por sessão, guardada em sessionStorage. Navegação interna nunca a volta a mostrar.
Tinta #0B0B0B nos dois temas. O loading é território da marca, não da interface.
A tela só existe se o JavaScript correr. Sem ele nunca aparece — e o conteúdo fica acessível na mesma.
Para quando há progresso real a comunicar — envio de arquivos do cliente, exportação de relatório, uma galeria pesada. A barra é o traço da marca a encher-se; a percentagem entra em mono, porque é dado.
A barra nunca recua e nunca fica presa nos 99%. Se o valor real não for conhecido, usar a Versão B — uma barra que mente é pior do que barra nenhuma.
A versão por defeito: site institucional e qualquer entrada onde não há progresso a medir. As cinco letras sobem para o lugar, o “a” assume o verde, e o traço e o ponto fecham a assinatura. É a regra do “a” a acontecer em movimento.
| Passo | Início | Duração |
|---|---|---|
| “b” sobe e aparece | 0 | 460 ms |
| “o” | 60 | 460 ms |
| “l” | 120 | 460 ms |
| “d” | 180 | 460 ms |
| “a” | 240 | 460 ms |
| “a” passa a verde | 760 | 260 ms |
| traço abre da esquerda | 860 | 320 ms |
| ponto entra em escala | 980 | 260 ms |
| pausa e saída | 1240 | 220 ms |
As letras sobem 26 unidades do viewBox — não pixels, para o percurso escalar junto com o logotipo. Cada letra é um path do Ativo 18: não há tipografia envolvida, e por isso o que se forma no fim é o logotipo exato, não uma aproximação.
/* a tela sai no load, ou ao fim de 1,6 s — o que vier primeiro */ const tela = document.getElementById('loader'); function sair() { tela.classList.add('is-done'); /* fade 220 ms */ sessionStorage.setItem('bolda-loader', '1'); } if (sessionStorage.getItem('bolda-loader')) { tela.remove(); /* já viu nesta sessão */ } else { window.addEventListener('load', sair); setTimeout(sair, 1600); /* teto */ setTimeout(() => tela.remove(), 3000); /* rede de segurança */ }
O sistema montado. Cada peça usa uma decisão de cor, uma textura no máximo, e o logotipo numa só versão.
Frente a tinta com órbita a 16%; verso em campo de verde cheio com o logotipo a tinta. O logotipo nunca sangra — 8 mm de margem, sempre acima dos 2 M exigidos.
marcas fortes
não pedem
licença
Post 4:5 — 1080 × 1350, margem 64 px. Sobretítulo, título em display, marca no rodapé.
estratégia
+ execução
no mesmo
lugar
Story 9:16 — 1080 × 1920. Campo de verde, tudo a tinta. Zona segura de 240 px em cima e em baixo.
Avatar — monograma no quadrado verde. Nunca o logotipo completo: a 48 px o traço e o ponto desaparecem.
Slide de tinta para os momentos de tese; slide claro para listas e dados. A marca fica sempre no canto inferior direito, a 64 px de largura.
Largura máxima 520 px. Uma barra verde de 3 px como único elemento gráfico — sem imagens de fundo, que os clientes de e-mail bloqueiam.
As constantes de marca nunca mudam. Tudo o resto é semântico e troca com o tema — por isso uma peça nova herda o tema certo sem uma única linha de cor escrita à mão.
/* 1 — constantes de marca: iguais em qualquer tema */ :root { --green: #80DC10; /* primária */ --green-deep: #63A90D; /* séries de gráfico, tema escuro */ --green-mid: #519009; /* display sobre claro — 3,93:1 */ --green-ink: #437707; /* texto sobre claro — 5,41:1 */ --ink: #151515; --grey-dark: #3C3C3C; --grey-light: #C6C6C6; --violet: #5550F2; --magenta: #A6036D; --white: #FFFFFF; --font-display: "Tajawal","Poppins",system-ui,sans-serif; --font-body: "Poppins",system-ui,sans-serif; --font-mono: "JetBrains Mono",ui-monospace,monospace; --container: 1240px; --gutter: clamp(20px, 5vw, 48px); --radius: 14px; --radius-lg: 24px; --ease: cubic-bezier(.22, 1, .36, 1); --ease-in-out: cubic-bezier(.65, 0, .35, 1); --dur-micro: 120ms; --dur-base: 250ms; --dur-slow: 400ms; --dur-reveal: 800ms; } /* 2 — tokens semânticos: tema escuro (default) */ :root, :root[data-theme="dark"] { color-scheme: dark; --bg: #0B0B0B; --surface: #111111; --surface-2: #181818; --line: rgba(255,255,255,.10); --heading: #FFFFFF; --text: #F2F2F2; --text-muted: #A6A6A6; --accent: var(--green); } /* 3 — tema claro */ :root[data-theme="light"] { color-scheme: light; --bg: #FFFFFF; --surface: #F5F5F3; --surface-2: #EBEBE7; --line: rgba(21,21,21,.12); --heading: #151515; --text: #232323; --text-muted: #5C5C5C; --accent: var(--green-ink); }
Para Figma, Style Dictionary ou qualquer pipeline de tokens.
{
"brand": {
"green": { "value": "#80DC10", "type": "color" },
"ink": { "value": "#151515", "type": "color" },
"white": { "value": "#FFFFFF", "type": "color" },
"greyDark":{ "value": "#3C3C3C", "type": "color" },
"greyLight":{ "value": "#C6C6C6", "type": "color" },
"violet": { "value": "#5550F2", "type": "color" },
"magenta": { "value": "#A6036D", "type": "color" }
},
"font": {
"display": { "value": "Tajawal", "weights": [700, 800, 900] },
"body": { "value": "Poppins", "weights": [300, 400, 500, 600] },
"mono": { "value": "JetBrains Mono", "weights": [400, 500] }
},
"space": { "scale": [4, 8, 12, 16, 24, 32, 48, 64, 96, 128] },
"radius": { "scale": [0, 8, 14, 24, 9999] },
"motion": {
"ease": "cubic-bezier(.22,1,.36,1)",
"easeInOut":"cubic-bezier(.65,0,.35,1)",
"duration": { "micro": 120, "base": 250, "slow": 400, "reveal": 800 }
}
}
Nunca escrever um hex diretamente num componente. Escolher pelo papel:
| Preciso de… | Token | Escuro | Claro |
|---|---|---|---|
| Fundo da página | --bg | #0B0B0B | #FFFFFF |
| Cartão, painel | --surface | #111111 | #F5F5F3 |
| Título | --heading | #FFFFFF | #151515 |
| Texto corrente | --text | #F2F2F2 | #232323 |
| Texto secundário | --text-muted | #A6A6A6 | #5C5C5C |
| Separador | --line | branco 10% | tinta 12% |
| Destaque, link, ícone ativo | --accent | #80DC10 | #437707 |
| Preenchimento de marca | --green | #80DC10 | #80DC10 |
A última linha é a excepção que confirma a regra: o verde de preenchimento não é semântico. Um bloco verde é verde nos dois temas — é a marca, não a interface.
O manual em PDF especifica Madani Arabic como fonte de display. Este documento substitui-a pela Tajawal, do Google Fonts — aberta, com os sete pesos, e com cobertura latina e árabe. Tudo o resto — símbolo, paleta, hierarquia — mantém-se como no original. No código, a mudança é uma linha:
--font-display: "Tajawal", "Poppins", system-ui, sans-serif;