Um símbolo, cinco temas, um só jeito de construir
Tokens, tipografia e componentes do bFlow com a marca Pista. Tudo que está aqui roda nos cinco temas do produto; troque no topo e veja cada peça mudar.
O que é
O sistema de design 3.0 do bFlow, o SaaS de gestão empresarial para PMEs. Substitui o BitByBit da BitGrow para tudo que é bFlow: produto, site, propostas e redes.
Como usar
Leia os tokens antes de qualquer CSS: toda cor, tamanho e raio tem nome. Troque o tema no topo para ver cada componente nos 5 temas do produto.
Status
Proposta aguardando aprovação do Carlos. Nada vai para produção antes do OK escrito. Depois: staging → QA (5 temas × telas-chave) → produção.
Marca e logo
Assinatura, símbolo e ícone nas cores do tema. As cores vêm de tokens, então o mesmo markup serve a todos os temas.
Onde aparece
Topo da barra lateral (símbolo 20–24 px + nome), login, splash do PWA, favicon/ícone de app, avatar de notificação. Em mais lugar nenhum da interface.
Construção
Malha 120, traço 14, faixas em y 104/82/60, centro comum (46,52), raios 52/30/8, subida a 45°. Micro: 2 faixas, traço 17. Tile: raio 22,5%, símbolo a 78%.
Proteção e mínimos
Área de proteção = altura de uma faixa em todos os lados. Símbolo 16 px (micro), assinatura 24 px de altura. Abaixo de 64 px, sempre a versão micro.
Faça
- Usar os SVGs de
logo/; no produto, o inline com--ink/--acc. - Sobre claro: azul + lima tinta. Sobre escuro e sobre azul bFlow: branco + lima. Alto Contraste: P&B.
- Escrever sempre bFlow.
Não faça
- Recolorir, inclinar, espelhar, sombra, degradê, contorno.
- Símbolo sobre foto sem tile; símbolo repetido como padrão.
- "BFlow", "Bflow", "B-Flow"; nome recomposto em outra fonte.
Cores
Tokens semânticos para componentes; escalas de sete tons para defini-los e para gráficos. Os valores abaixo mudam com o tema escolhido no topo.
Tokens semânticos (mudam com o tema — troque acima)
var(--bg)Fundo de página. Proposta 3.0: névoa no Claro Padrão (hoje #ffffff); branco no Vibrante; meia-noite no Escuro (hoje #0B0D1A). Mapeia `--background`.var(--bg-elevado)Cards, modais, inputs, menus. Mapeia `--foreground`.var(--bg-sutil)Hover de linhas, chips neutros, trilha de progresso. Mapeia `--shaded`.var(--borda)Borda de card e divisor. Mapeia `--border`.var(--borda-forte)Borda de input (componente: ≥3:1 sobre `bg`) e contorno de botão secundário. Mapeia `--input`.var(--texto)Títulos e texto principal. Mapeia `--text`.var(--texto-corpo)Texto corrido sobre `bg` e `bg-elevado`. Nunca branco puro no escuro.var(--texto-suave)Legendas e rótulos (≥4,5:1 sobre `bg` e `bg-elevado` nos 5 temas). Mapeia `--label`.var(--marca)Botão primário, switch ligado, progresso. Azul bFlow; ameixa #43075D no tema Ameixa; âmbar no Alto Contraste. Mapeia `--primary` e `--cta-bg`.var(--marca-hover)Hover e pressed do botão primário.var(--sobre-marca)Texto sobre `marca`: branco, exceto preto sobre o âmbar do Alto Contraste. Mapeia `--on-primary` e `--cta-ink`.var(--link)Links em texto corrido. Mapeia `--primary-text` (o azul clareado nos temas escuros).var(--acento)Faixa de dentro do símbolo e traço de resultado. Gráfico, nunca texto. Ameixa usa o seu lima #B2D300 (já `--module-accent` lá); Alto Contraste não tem lima: branco.var(--acento-texto)Texto curto de ganho/IA (≥4,5:1 em todos os temas). Nunca parágrafos.var(--acento-fundo)Fundo da faixa "IA do bFlow" e chips de meta batida; texto em `acento-texto`. Ameixa: `--module-accent-soft` #EAF4C4.var(--foco)Anel de foco, 2px sólido + 2px de afastamento. Ameixa mantém o ciano #14B5BD já aprovado.var(--nav-bg)Barra lateral L1/L2 e cabeçalho mobile. Ameixa: `--sb-l1` #241246.var(--nav-texto)Itens de navegação inativos sobre `nav-bg`.var(--nav-ativo-bg)Fundo do item ativo. No Claro Padrão é céu; no Vibrante, azul cheio; no Ameixa, lima com tinta ameixa.var(--nav-ativo-texto)Texto do item ativo sobre `nav-ativo-bg`.var(--logo-ink)Faixas de fora do símbolo e nome do logotipo sobre `bg`/`bg-elevado` (login, documentos, cards). Azul; ameixa no tema Ameixa; branco nos temas escuros e no Alto Contraste (P&B).var(--logo-acento)Faixa de dentro do símbolo sobre `bg`/`bg-elevado`. Lima tinta sobre claro, lima puro sobre escuro, branco no Alto Contraste.var(--logo-ink-nav)Faixas de fora e nome na barra lateral (`nav-bg`). Branco sempre que a barra é escura (Escuro Vibrante, Ameixa, Alto Contraste).var(--logo-acento-nav)Faixa de dentro do símbolo na barra lateral. Ameixa usa o seu lima #B2D300.var(--sucesso)Recebido, pago, concluído. Sempre com ícone ou palavra junto, nunca só a cor.var(--atencao)Vence hoje, pendente de revisão. Texto em atencao só em 14px+ sobre fundo neutro.var(--erro)Vencido, falha, campo inválido. Difere de sucesso em luminosidade, não só em matiz.var(--overlay)Véu atrás de modais e drawers (70%).var(--branco)Branco fixo, igual em todos os temas: logo e texto sobre azul bFlow ou meia-noite em peças de marca (capas, posts, cards de destaque). Não usar para texto de interface.Escalas de 7 tons
Azul
#dce5ff
#b8cbff
#8aa8fc
#5c82fa
#315cf6
#1e3fbf
#14298a
Lima
#f1f9d2
#e3f39f
#d2ec5e
#bae314
#8db000
#5c7400
#3c4c00
Neutros (meia-noite → névoa)
#f4f6fb
#dde2f1
#c9cfea
#9ba3c7
#5a6185
#1f2440
#0a0f2c
Faça
- Componentes usam só tokens semânticos (
bg,texto,marca,acento…); as escalas servem para definir os semânticos e para gráficos. - Proporção 60/30/10: fundo, azul em blocos e botões, lima só no acento (≤10%).
- Lima sobre fundo claro é sempre a versão tinta:
lima-500para gráfico,lima-600para texto. - Status com ícone ou palavra junto;
sucesso,atencaoeerrodiferem em luminosidade.
Não faça
- Hexadecimal em componente.
- Lima puro
#BAE314sobre branco, lima como texto corrido, botão ou navegação. - Variação negativa em vermelho (vermelho é vencido/erro); negativa vai em
texto-suave. - Gradiente, 3D, brilho, sombra pesada.
Valores por tema
| Token | Claro Padrão | Claro Vibrante | Escuro Vibrante | Ameixa Moderno | Alto Contraste |
|---|---|---|---|---|---|
bg | #f4f6fb | #ffffff | #0a0f2c | #f6f3fa | #000000 |
bg-elevado | #ffffff | #ffffff | #141a3c | #ffffff | #0f0f0f |
bg-sutil | #eef0f8 | #e8edff | #1c2350 | #efe8f7 | #1a1a1a |
borda | #dde2f1 | #dde2f1 | #262d58 | #e6ddf2 | #555555 |
borda-forte | #9ba3c7 | #9ba3c7 | #5a6185 | #8a7ba3 | #e0e0e0 |
texto | #0a0f2c | #0a0f2c | #ffffff | #241246 | #ffffff |
texto-corpo | #1f2440 | #1f2440 | #c9cfea | #4a3d5e | #ffffff |
texto-suave | #5a6185 | #5a6185 | #9ba3c7 | #6b5c80 | #e0e0e0 |
marca | #315cf6 | #315cf6 | #315cf6 | #43075d | #fbbf24 |
marca-hover | #1e3fbf | #1e3fbf | #5c82fa | #241246 | #d97706 |
sobre-marca | #ffffff | #ffffff | #ffffff | #ffffff | #000000 |
link | #1e3fbf | #1e3fbf | #8aa8fc | #43075d | #fbbf24 |
acento | #8db000 | #8db000 | #bae314 | #b2d300 | #ffffff |
acento-texto | #5c7400 | #5c7400 | #bae314 | #4f5e00 | #ffffff |
acento-fundo | #f1f9d2 | #f1f9d2 | #1f2a12 | #eaf4c4 | #1a1a1a |
foco | #315cf6 | #315cf6 | #bae314 | #14b5bd | #fbbf24 |
nav-bg | #ffffff | #ffffff | #0f1538 | #241246 | #000000 |
nav-texto | #1f2440 | #1f2440 | #c9cfea | #d9cdeb | #ffffff |
nav-ativo-bg | #dce5ff | #315cf6 | #1e3fbf | #b2d300 | #fbbf24 |
nav-ativo-texto | #14298a | #ffffff | #ffffff | #241246 | #000000 |
logo-ink | #315cf6 | #315cf6 | #ffffff | #43075d | #ffffff |
logo-acento | #8db000 | #8db000 | #bae314 | #8db000 | #ffffff |
logo-ink-nav | #315cf6 | #315cf6 | #ffffff | #ffffff | #ffffff |
logo-acento-nav | #8db000 | #8db000 | #bae314 | #b2d300 | #ffffff |
sucesso | #1e8e4e | #1e8e4e | #3dbb75 | #4f7a00 | #4ade80 |
atencao | #b8760a | #b8760a | #f0b13a | #7a4a00 | #fbbf24 |
erro | #d7263d | #d7263d | #f2607a | #b42a35 | #f87171 |
overlay | #0a0f2cb3 | #0a0f2cb3 | #000000b3 | #241246b3 | #000000cc |
branco | #ffffff | #ffffff | #ffffff | #ffffff | #ffffff |
Tipografia
Sora para falar alto, Inter para trabalhar.
Sora
Títulos, números-herói e logotipo. Pesos 600–800, tracking −2% a −5%. Google Fonts, sem custo de licença.
Inter
Já é a fonte do produto. Pesos 400–600. Números tabulares em colunas financeiras. Reserva em e-mail e Office: Arial.
Display e títulos (Sora)
Hero do site, capas. Mobile: 40px.
Título de página. Mobile: 30px.
Seções, títulos de card grandes. Mobile: 24px.
Títulos de bloco, modais, drawers. Mobile: 18px.
Indicadores e dashboards, com `font-variant-numeric: tabular-nums`. Precedido do traço de resultado quando for ganho.
Só o nome no logotipo. Não usar para texto.
Texto e interface (Inter)
Texto corrido, descrições. Mobile: 15px.
Tabelas, listas densas, descrições de campo. Mobile: 13px.
Nome em linha de tabela, título de card pequeno.
Rótulos em caixa alta (aplicar text-transform no CSS), breadcrumbs, eyebrows. Cor `texto-suave` ou `marca`.
Timestamps, ajuda de campo, rodapés. Cor `texto-suave`.
Texto de botões. Sem caixa alta.
Botões compactos em tabelas e cards.
Dados (mono)
Chaves, IDs, números de documento, webhooks.
Faça
- No máximo dois pesos por peça.
- Alinhamento à esquerda; centralizado só em capas e selos.
- 55–75 caracteres por linha no texto corrido.
- "R$ 84,3 mil" em comunicação; valor exato em tabela e documento fiscal.
Não faça
- Itálico em títulos.
- Caixa alta em botões (só em rótulos de 12 px com +12% de tracking).
- Montserrat ou outra display: a Sora substitui.
- Logotipo recomposto em outra fonte.
Carregue Sora:wght@600;700;800 e Inter:wght@400;500;600 (ou self-hosted em woff2 com font-display: swap).
Espaçamento, raio e sombra
Grade de 8 px, raios generosos, profundidade por camadas de cor.
Grade de 8px com meio passo. Margens de página: 24px no mobile, 32px no desktop; conteúdo máximo 1280px.
4pxEntre ícone e texto, entre chips.
8pxEntre rótulo e campo; gap de botões agrupados.
12pxPadding vertical de input e botão médio; gap entre linhas de lista.
16pxPadding de card compacto; gap entre cards no mobile.
20pxPadding de card padrão.
24pxPadding de modal e drawer; gap entre cards no desktop; margem de página mobile.
32pxEntre seções de uma página; margem de página desktop.
48pxEntre blocos de landing page.
64pxRespiro de hero e de capas.
Raio
6pxChips, badges, checkboxes.
8pxBotões, inputs, itens de menu.
12pxCards pequenos, toasts, popovers.
16pxCards padrão, modais, drawers.
18pxCards de destaque e blocos de marketing.
22.5%Tile do ícone de app (27 em 120). Não usar em UI.
999pxAvatares, switch, chips de filtro.
Sombra
Profundidade vem de camadas de cor (`bg` → `bg-elevado`), não de blur. Sombra só em elementos flutuantes.
Popover, menu, toast.
Modal e drawer.
Temas
Os cinco temas que já existem no produto, com a marca aplicada em cada um.
Faça
- Trocar o tema trocando
data-themeno<html>; os componentes não sabem em que tema estão. - O logo segue
logo-ink/logo-acento(superfícies) elogo-ink-nav/logo-acento-nav(barra lateral). theme-colorpor tema: #315CF6 nos claros, #0A0F2C no escuro, #241246 no Ameixa, #000000 no Alto Contraste.
Não faça
- Criar tema novo sem aprovação do Carlos.
- Recolorir o símbolo com a cor do módulo ou do tema.
- Lima como cor de navegação (exceção única: aba ativa da barra inferior mobile nos temas escuros).
Movimento
Curto, com saída suave. Nada pulsa, nada gira.
120msHover, foco, troca de cor.
200msAbrir menu, expandir card, trocar aba.
240msModal, drawer, toast entrando.
cubic-bezier(0.2, 0.8, 0.2, 1)Padrão para tudo que entra. Nada pulsa, nada gira.
Respeite prefers-reduced-motion. As faixas da marca entram da esquerda para a direita e sobem; nada pulsa, nada gira.
Botões
Um primário por tela; secundário para alternativas; fantasma para ações leves; perigo só para destruir; IA só para a IA do bFlow.
Faça
- Rótulo em infinitivo, sem caixa alta, sem exclamação.
- Loading: substitua o ícone pelo spinner e mantenha a largura.
bf-btn--smem tabelas e cards.
Não faça
- Dois primários lado a lado.
- Botão em lima fora da IA.
- Botão desabilitado sem explicar por quê (use ajuda ao lado).
Formulários
Rótulo em caixa alta acima do campo, ajuda em legenda, erro que diz o problema e a correção.
Faça
- Altura 40 px, raio
radius-md, bordaborda, foco com anelfoco. - Máscaras de CPF/CNPJ, moeda e data aplicadas no valor.
- Checkbox e switch em
marcaquando ligados; switch comrole="switch".
Não faça
- Placeholder como rótulo; rótulo flutuante dentro do campo.
- Só a borda vermelha, sem mensagem.
- Borda verde de sucesso (confirmação é silenciosa).
Cards e indicadores
Superfície padrão, indicador com traço de resultado e a faixa da IA do bFlow.
A receber hoje
Recebido no mês
Faça
- Valor em
numero-heroi(Sora 800, números tabulares). - Traço de resultado só quando o número é ganho: recebido, lucro, meta, tempo economizado.
- Um card escuro de destaque por página, no máximo.
Não faça
- Sombra em card; borda lateral colorida.
- Traço lima em saldo neutro ou em vencidos.
- Card zerado com lista cheia (mesma fonte de dados sempre).
Badges e chips
Status com palavra, chips de filtro em pílula.
Faça
- Status sempre com palavra; a cor só reforça.
bf-badge--aipara o que a IA fez ou sugeriu.
Não faça
- Badge só com cor.
- Fundo sólido de cor de status (fundo é sempre
bg-sutil).
Tabelas
Listas densas com números tabulares à direita; no mobile viram cards.
| Cliente | Documento | Vencimento | Status | Valor | |
|---|---|---|---|---|---|
| Padaria Santa Rita | BOL 2026/0412 | 23/10/2026 | Vencido há 12 dias | R$ 1.840,00 | |
| Clínica Vida | NFS-e 2026/0098 | 04/11/2026 | Vence hoje | R$ 3.200,00 | |
| Oficina do Beto | BOL 2026/0415 | 02/11/2026 | Pago | R$ 960,00 |
Faça
- Cabeçalho em rótulo sobre
bg-sutil; linhas de 44–48 px; hoverbg-sutil. - Valores exatos (R$ 1.840,00) e IDs em mono.
- Lista com mais de 3 colunas vira card abaixo de
md(DataList).
Não faça
- Mais de uma ação visível por linha.
- Zebra striping; bordas verticais.
Perfis
Avatar de pessoa, de empresa e do próprio bFlow.
Faça
- Pessoa: círculo com iniciais em
azul-100/azul-700ou foto; 28, 40 e 64 px. - Empresa: quadrado arredondado em
bg-sutil. - bFlow e IA do bFlow: tile azul com o símbolo.
Não faça
- Iniciais "BF" para o bFlow.
- Foto sem máscara circular.
Pop-ups
Diálogo, drawer lateral e toast, nas camadas certas (z-index 500 / 400 / 600).
BOL 2026/0412 · Padaria Santa Rita
Faça
- Modal 440 px,
sombra-modal, sobreoverlay; título como pergunta ou ação; primário por último. - Drawer 360–480 px à direita; fecha com Esc e clique fora.
- Toast em
noite-700, ponto lima quando é resultado; some em 6 s; uma ação no máximo.
Não faça
- Modal sobre modal.
- Toast para erro bloqueante (use o modal).
- Drawer para formulário longo (use página).
Ícones
Phosphor, peso regular, herdando a cor do texto.
Phosphor Icons, peso regular
Família única do produto (@phosphor-icons/react), 1,5 px em 24 px, cor herdada de currentColor; fill só no item L1 ativo. Reservas de significado: SparkleIcon = IA · TagIcon = etiquetas · WrenchIcon = OS · TrayIcon = caixa de entrada · ChartLineUpIcon = relatórios.
Faça
- Um detalhe em
acentopor ícone, no máximo, e só para IA ou ganho. - Ícone + rótulo sempre que o significado não for universal.
Não faça
- Ícones coloridos de pacotes genéricos; emoji como ícone; SVG avulso fora da biblioteca.
- Logo de terceiros como ícone genérico.
Downloads
Logo em SVG, PNG e JPG (INPI), tokens e CSS. O botão salva o arquivo; se o navegador bloquear, ele abre em nova aba.
Logo em SVG
Logo em PNG e JPG (prontos para usar)
Tokens e CSS
Mapa para o globals.css
Como cada token deste sistema cai nas variáveis que o produto já usa.
| Token do DS | Variável atual no globals.css | Observação |
|---|---|---|
bg | --background | Proposta: névoa #F4F6FB no light (hoje #ffffff) e meia-noite #0A0F2C no dark-vibrant (hoje #0B0D1A) |
bg-elevado | --foreground | cards, modais, inputs |
bg-sutil | --shaded | hover, chips neutros |
texto / texto-corpo / texto-suave | --text / --text-secondary / --label | no dark, corpo em #C9CFEA (não branco puro) |
marca / sobre-marca | --primary, --cta-bg / --on-primary, --cta-ink | Ameixa #43075D; Alto Contraste âmbar com tinta preta |
marca-hover | --primary-hover (Ameixa) / --primary-faded | |
link | --primary-text | azul clareado nos temas escuros |
borda / borda-forte | --border / --input | borda de campo é componente: ≥3:1 |
sucesso / atencao / erro | --success-text / --warning-text / --danger-text | para texto; fills continuam --success etc. |
foco | anel de foco global | Ameixa mantém #14B5BD |
nav-bg / nav-texto / nav-ativo-* | --sb-l1 / --sb-text / item ativo | Ameixa: #241246 / #D9CDEB / lima #B2D300 |
acento / acento-texto / acento-fundo | novos | só resultado e IA do bFlow; no Ameixa coincidem com --module-accent* |
logo-ink / logo-acento / logo-ink-nav / logo-acento-nav | novos | substituem o logo recolorido por tema |
--module-accent*, --surface-block-*, --band-* | mantidos como estão | regra 90/10 e cor por módulo continuam (manual técnico §3–4) |
O manual técnico de UX (SPECS/UXUI/design-system-bflow.md, v3.0) continua sendo a fonte de z-index, comportamentos anti-bug, mobile e cor por módulo. Este site define marca, tokens e componentes.








