// prumo-brandkit.jsx — Manual da Marca do Prumo // Símbolo canônico = fio de prumo + peso em losango âmbar (igual ao favicon). // Paleta creme quente + tipografia Poppins/Nippo — alinhada à plataforma (prumo-ds.css). // Tinta creme quente (#e8dfc5) e fundo quase-preto (#0a0a0a) — mesma da plataforma. const INK='#e8dfc5', BG='#0a0a0a', AC='#e0a14e'; // Tema claro: off-white quente (#f8f2dc) e tinta escura (#171717) da plataforma. const LINK='#171717', LBG='#f8f2dc', LAC='#b9772a'; /* ---------------- marca canônica ---------------- */ function Sym({size=48, ink=INK, accent=AC, line=true}){ return ( {line && } ); } // Wordmark "Prumo" = Poppins Medium (500) — igual ao SVG da logo e ao componente do produto. function WM({size=34, ink=INK, weight=500}){ return Prumo; } // lockup horizontal function LK({size=48, ink=INK, accent=AC, gap=14}){ return ( ); } // lockup vertical function LKv({size=64, ink=INK, accent=AC}){ return ( ); } function AppTile({size=92, bg=BG, ink=INK, accent=AC, radius}){ const r = radius!=null?radius:size*0.235; return (
); } /* ---------------- layout helpers ---------------- */ function Section({n, kicker, title, sub, children, style}){ return (
{n}
{kicker}

{title}

{sub &&

{sub}

}
{children}
); } const Mono = ({children, c='var(--text-3)', style}) => {children}; const XIcon = () => ; const Check = ({c='#56bd83'}) => ; /* icon set (mesmo traço do produto) */ const I = { grid:"M4 4h7v7H4zM13 4h7v7h-7zM4 13h7v7H4zM13 13h7v7h-7z", rocket:"M12 3c3 1.5 5 4.5 5 8l-3 3-4 0-3-3c0-3.5 2-6.5 5-8zM12 8.5h.01M9 16l-2 4M15 16l2 4", receipt:"M6 3h12v18l-2-1.4L14 21l-2-1.4L10 21l-2-1.4L6 21zM9 8h6M9 12h6", folder:"M3 6h6l2 2h10v11H3zM3 8h18", calendar:"M4 5h16v15H4zM4 9h16M8 3v4M16 3v4", building:"M5 21V5l7-2 7 2v16M5 21h14M9 9h.01M9 13h.01M9 17h.01M15 9h.01M15 13h.01M15 17h.01", layers:"M12 3l9 5-9 5-9-5zM3 13l9 5 9-5M3 17l9 5 9-5", arrow:"M5 12h14M13 6l6 6-6 6", }; const Icon = ({name, size=22}) => ( ); /* ========================================================= COVER ========================================================= */ function Cover(){ return (
MANUAL DA MARCA

Manual da
Marca

O sistema visual do Prumo — símbolo, cores, tipografia e voz. Tudo o que mantém a marca no prumo, em qualquer aplicação.

GESTÃO PARA ARQUITETURA & INTERIORES v1.0 — 2026
); } /* ========================================================= 01 — A MARCA ========================================================= */ function MarcaSection(){ const vals=[ ['Preciso','Cada detalhe alinhado. Nada fora do lugar, nada por acaso.'], ['Calmo','Tira o escritório do caos sem gritar. Confiança silenciosa.'], ['Prático','Fala a língua de quem faz obra: briefing, ambiente, medição, entrega.'], ]; return (
SUBSTANTIVO · MASCULINO
prumo /ˈpɾu.mu/

Instrumento de peso suspenso por um fio que indica a vertical exata. Estar “no prumo” é estar perfeitamente alinhado, em ordem, sob controle.

POSICIONAMENTO

O escritório de arquitetura, do primeiro contato à entrega da obra, finalmente em um só lugar.

ASSINATURA
Coloque sua operação no prumo.
{vals.map(([t,d])=>(
{t}

{d}

))}
); } /* ========================================================= 02 — LOGO ========================================================= */ function LogoSection(){ return (
{/* lockup principal */}
LOCKUP PRINCIPAL
SÍMBOLO
WORDMARK
LOCKUP VERTICAL
{/* monocromático */}
PADRÃO
NEGATIVO 1 COR
POSITIVO 1 COR
TEMA CLARO
); } /* ========================================================= 03 — CONSTRUÇÃO & PROTEÇÃO ========================================================= */ function ConstructionSection(){ // unidade X = metade da largura do losango. Área de proteção = 1X em volta. return (
{/* área de proteção */}
ÁREA DE PROTEÇÃO · 1X
{/* marcas de X */} 1X 1X
X = metade da largura do peso em losango.
{/* tamanhos mínimos */}
TAMANHOS MÍNIMOS
Lockup · digital
mín. 120 px de largura
Símbolo isolado
mín. 24 px / 6 mm
Abaixo do mínimo, use só o símbolo.
); } /* ========================================================= 04 — USOS INDEVIDOS ========================================================= */ function MisuseSection(){ const items=[ ['Não gire a marca',
], ['Não recolore o peso', ], ['Não distorça as proporções',
], ['Não troque a tipografia', Prumo], ['Não adicione sombra ou contorno',
], ['Não use em fundo de baixo contraste',
], ]; return (
{items.map(([cap,node],i)=>(
{node}

{cap}

))}
); } /* ========================================================= 05 — COR ========================================================= */ function Swatch({hex, name, sub, use, ink='#fff', border}){ return (
{hex.toUpperCase()}
{name}
{sub}
{use &&
{use}
}
); } function ColorSection(){ return (
{/* fundação */}
FUNDAÇÃO
{/* acento */}
ACENTO DE MARCA

O âmbar é a única cor saturada da marca. Ele aparece no peso do símbolo, em links, foco e na ação principal. Se tudo é destaque, nada é — mantenha-o raro.

Ação primária Foco / seleção Peso do símbolo
{/* funcionais */}
FUNCIONAIS · STATUS NO PRODUTO
); } /* ========================================================= 06 — TIPOGRAFIA ========================================================= */ function Specimen({nm, dt, children}){ return (
{nm}
{dt}
{children}
); } function TypeSection(){ return (
Tire o escritório do caos.
Do briefing à entrega, em etapas claras.

Prospecção, orçamentos, projetos, obras e financeiro — tudo o que o seu escritório faz, finalmente reunido em um só lugar. Sem planilha solta.

ORÇAMENTOS & FINANCEIRO
{/* alfabeto + pesos */}
POPPINS · CONJUNTO
ABCDEFGHIJKLM
NOPQRSTUVWXYZ
abcdefghijklmnopqrstuvwxyz
0123456789 — “no prumo”
PESOS EM USO
{[['Regular','400'],['Medium','500'],['Semibold','600'],['Bold','700']].map(([n,w])=>(
Prumo {n} · {w}
))}
); } /* ========================================================= 07 — ICONOGRAFIA ========================================================= */ function IconSection(){ const set=['grid','rocket','receipt','folder','calendar','building','layers','arrow']; return (
{set.map(n=>(
{n}
))}
TRAÇO

1.6px em grade de 24px. Pontas e junções arredondadas (round).

COR

Herdam a cor do texto. Âmbar só quando o ícone é o destaque da seção.

ESTILO

Sempre lineares. Sem preenchimento, sem gradiente, sem emoji.

); } /* ========================================================= 08 — ELEMENTOS DE UI ========================================================= */ function UISection(){ return (
BOTÕES
Começar grátis Ver demonstração
Subtle Ghost

STATUS / BADGES
Em andamento Entregue Pendente Rascunho

CHIPS
Projeto ativo 3 ambientes
CARD DE PRODUTO
Em andamento
Apartamento Vila Mariana

Reforma completa · 4 ambientes


Entrega · ago/26 Abrir
RAIO
10 · 14 · 22 px
BORDA
1px · branco 8%
); } /* ========================================================= 09 — VOZ & TOM ========================================================= */ function VoiceSection(){ const rows=[ ['Direto, não corporativês','“Tire o escritório do caos.”','“Soluções de gestão integradas para o seu negócio.”'], ['A língua de quem faz obra','“Monte a proposta por ambiente.”','“Configure os módulos de orçamentação.”'], ['Calmo e confiante','“Coloque sua operação no prumo.”','“Revolucione 100% a sua gestão agora!!!”'], ['Concreto, não vago','“Veja o saldo previsto do mês.”','“Tenha mais visibilidade financeira.”'], ]; return (
PRINCÍPIO FALAMOS ASSIM NUNCA ASSIM
{rows.map(([p,y,n],i)=>(
{p}
{y}
×{n}
))}
); } /* ========================================================= 10 — APLICAÇÕES ========================================================= */ function NavMock({light=false}){ const ink=light?LINK:INK, bg=light?LBG:BG, ac=light?LAC:AC, line=light?'rgba(0,0,0,.08)':'rgba(255,255,255,.08)', mut=light?'#56565e':'#a0a0a8'; return (
RecursosPreços Começar grátis
); } function ApplySection(){ return (
{/* app icons */}
APP · ESCURO
APP · ÂMBAR
FAVICON · 16–48 px
APP · CLARO
{/* navbars */}
); } /* ========================================================= FOOTER ========================================================= */ function FooterBlock(){ return ( ); } /* ========================================================= ROOT ========================================================= */ function BrandKit(){ return (
); } window.BrandKit = BrandKit;