LAND BILHON
Design System // Dark Mode // Glassmorphism // IBM Plex Mono + Inter
Project Structure
Token Prefix Convention
All CSS custom properties use the --bl- prefix (LAND BILHON).
Classes use the bl- prefix to avoid collisions.
Shared across all 4 apps via a single token file.
Background Scale
Brand Green Scale
Semantic Colors
Text Colors
Warm White #f4f4e8
Light #e4e4e7
Gray #71717a
Dark Gray #52525b
40% rgba(245,244,231,0.4)
Border Tiers (RGBA)
H1 // IBM Plex Mono 700 // 30px
H2 // IBM Plex Mono 600 // 22px
H3 // IBM Plex Mono 600 // 18px
H4 // Inter 600 // 16px
Body text in Inter 400 at 14px with 1.5 line-height. Designed for readability on dark backgrounds with anti-aliased rendering.
Caption // IBM Plex Mono 400 // 11px // Muted color for metadata and timestamps
Font Size Scale
4px Grid System
Border Radius
Visual Effects Gallery
Glass Panel
backdrop-filter: blur(12px)
background: rgba(9,9,12,0.96)
saturate(1.4)
Green Glow Pulse
0 0 20px rgba(107,201,80,0.30)
0 0 60px rgba(107,201,80,0.12)
Shadow Large
0 12px 40px rgba(0,0,0,0.5)
Shadow Small
0 1px 3px rgba(0,0,0,0.3)
Shadow Medium
0 4px 12px rgba(0,0,0,0.4)
Text Effects
Shimmer Gradient Text
Tech Glow Pulsing
Dashboard KPI Row
Metric Cards
1. Topbar (56px, Glass)
2. Dropdown Nav
Nav items com dropdown via hover (group/group-hover em Tailwind). Icon 14px + label mono text-xs + chevron 12px opacity-40.
| trigger | hover (group-hover:block) | Desktop lg+ |
| dropdown bg | bg-[#0e0e12] | Solido opaco, NUNCA transparente |
| dropdown border | border-hover | rounded-b-[10px] |
| item active | text-accent + bg 6% | Per-app accent |
| item icon | 16px text-accent | opacity-70 |
| shadow | 0 12px 40px | rgba(0,0,0,0.5) |
3. Buttons
Variants
Sizes
Action Buttons
4. Badges
With Dot
Status Pills
5. Inputs
Input Specs
| background | rgba(255,255,255,0.04) | |
| border | border-3 (8%) | |
| focus | green accent | |
| radius | 8px (md) | |
| padding | 10px 14px | |
| font | Inter 14px |
6. Table
| Candidato | Vaga | Score | Status | Data |
|---|---|---|---|---|
| Ana Silva | Closer Senior | 92 | Aprovado | 2026-03-28 |
| Carlos Mendes | SDR Pleno | 74 | Em Analise | 2026-03-29 |
| Julia Ferreira | Head Comercial | 45 | Reprovado | 2026-03-30 |
| Pedro Almeida | Tech Lead | 88 | Novo | 2026-03-30 |
7. Demo Banner
8. View Mode Toggle
Toggle entre dados reais (ORIGINAL) e dados ficticios (DEMO). ORIGINAL usa green accent, DEMO usa orange. Componente obrigatorio em todas as apps BOS. Posicao: topbar right.
9. Glass Card
Glass Card Default
backdrop-filter: blur + saturate. Border tier 2. Hover shows green glow and lift. Used for dashboards and metric panels.
Standard Card
Solid glass background with top highlight gradient. Hover shows accent border and elevation shift. Used for content sections.
10. Section Header
Icon (32px, green bg) + mono uppercase label + expanding line. Used to separate content areas within pages.
Responsive Grids
Layout Tokens
| Max Width | 1200px | Standard pages |
| Dashboard | 1400px | Dashboard layouts |
| Topbar | 56px | Fixed height |
| Grid Cols | 2 / 3 / 4 | Responsive |
| Sidebar | 280px | Mobile slide-out |
| Gap | 16px | Default grid gap |
2-Column Grid
3-Column Grid
4-Column Stat Row
4 BOS Applications
Hiring Copilot, Scorecards, Speech-to-Text em tempo real, Fireflies integration, RBAC completo. 32 paginas, 19 tabelas Supabase.
CRM v2, 77k deals, War Room, Growth, Fireflies, Lead Scoring, Simulador tempo real, Smart Prompts contextual.
Intelligence hub, auto-ingestion from 7 sources, AI analysis engine, cruzamento de dados, insights automaticos.
Formularios inteligentes, multi-step forms, checkout integration, ClickMax connection, lead capture pipelines.
App Accent Colors
| RH.BOS | #6bc950 | Primary green -- hiring, people, scores |
| COMERCIAL.BOS | #3b82f6 + #6bc950 | Blue-green gradient -- sales, revenue, pipeline |
| REPORTS.BOS | #a855f7 + #6bc950 | Purple-green gradient -- intelligence, insights, data |
| FORMS.BOS | #fb923c + #6bc950 | Orange-green gradient -- forms, checkout, capture |
Design Rules
Layout Structure
- Hero FIRST, Nav Pills SECOND -- title + subtitle + actions above, nav pills below.
- Topbar 56px fixed -- glass background, brand left, nav center, status right.
- Full-width layout -- max-width 1200px pages, 1400px dashboards.
- Shimmer on hero brand -- animation: shimmer 4s linear infinite.
- 4px grid spacing -- all spacing multiples of 4px.
Color Consistency (CRITICAL)
- Each section gets
style="--card-accent:#COLOR" - ALL inner elements inherit
var(--card-accent) - NEVER use hardcoded
style="color:#..."on titles - Input focus inherits section color:
border-color: var(--card-accent) - Background is ALWAYS
#09090c-- never lighter.
Common Pitfalls
- Forgetting
--card-accenton sections = labels default to wrong color - Using Inter for headings instead of IBM Plex Mono
- Missing
backdrop-filteron glass components - Using bg-5 (#18181b) as page background instead of bg-2 (#09090c)
- Hardcoding colors instead of using
var(--bl-*)tokens - Forgetting green glow on primary button hover
Anti-Pattern Catalog
Catalogo de erros visuais e de implementacao do ecossistema LAND BILHON. O que NAO fazer ao construir modulos.
src=""
src=""
Usar hex/rgb hardcoded diretamente no JSX (color="#22c55e", style={{background: '#0a0a0a'}}) ao inves de variaveis CSS do token system (var(--bl-green-500)).
Impossivel trocar tema ou ajustar paleta de forma centralizada. Cores ficam espalhadas por dezenas de arquivos. Manutencao vira pesadelo.
RH.BOS, COMERCIAL.BOS, REPORTS.BOS (todos)
src=""
src=""
Tres greens diferentes coexistindo: #22c55e (Tailwind green-500), #00E05A e variantes hardcoded nos apps. O verde canonico do LAND BILHON e #6bc950 (var(--bl-green-500)) mas nao estava sendo respeitado como fonte unica de verdade.
Usuario percebe que cada app parece de uma empresa diferente. Botoes, badges e indicadores de sucesso tem verdes visivelmente distintos. Identidade visual fragmentada.
RH.BOS, COMERCIAL.BOS, REPORTS.BOS (cross-app)
src=""
src=""
Bordas com opacidade variavel sem padrao: rgba(255,255,255,0.06), rgba(255,255,255,0.08), rgba(255,255,255,0.12) usados aleatoriamente em cards e containers. Cada dev escolhe o que parece bom.
Hierarquia visual de containers fica inconsistente. Alguns cards parecem mais "profundos" que outros sem motivo funcional. Glass effect perde coerencia.
COMERCIAL.BOS (War Room, CRM), REPORTS.BOS (dashboards)
src=""
src=""
Usar fontFamily: 'Inter' ou style={{fontFamily: 'IBM Plex Mono'}} diretamente no JSX ao inves dos tokens var(--bl-font-sans) ou var(--bl-font-mono).
Se a font stack mudar (ex: Inter para Geist), componentes com inline nao atualizam. Dificulta manutencao e cria divergencia tipografica entre paginas.
RH.BOS (Scorecard, Copilot), COMERCIAL.BOS (CRM cards)
src=""
src=""
Textos com font-size: 8px, font-size: 0.45rem ou text-xs com scale adicional. Fontes abaixo de 9px sao ilegiveis em monitores padrao e violam acessibilidade basica.
Usuarios nao conseguem ler informacoes criticas. Acessibilidade WCAG comprometida. Em telas de resolucao padrao o texto vira borrao. Dados de negocio ficam invisiveis.
COMERCIAL.BOS (mini-cards CRM), RH.BOS (tabelas compactas)
src=""
src=""
Legendas de graficos Recharts/Chart.js com fonte default muito pequena. Cores dos datasets nao combinam com labels minusculos. Em dashboards com 4+ graficos fica impossivel identificar series.
Grafico perde utilidade se legenda nao e legivel. Usuarios confundem series e tomam decisoes erradas. Reports impressos ficam inuteis.
REPORTS.BOS (Intelligence), COMERCIAL.BOS (War Room KPIs)
src=""
src=""
Badges de status com texto cortado: "Em andament...", "Aguardando apr...". Badges com largura fixa que nao comportam o conteudo. Status da vaga ou deal fica incompreensivel.
Informacao critica de status fica ilegivel. Usuario precisa passar mouse para ler o texto completo, mas em mobile nao tem hover. Funcionalidade basica comprometida.
RH.BOS (status vagas), COMERCIAL.BOS (pipeline stages)
src=""
src=""
Cada app com topbar diferente: RH.BOS usa topbar com logo a esquerda, COMERCIAL.BOS tem hamburguer menu, REPORTS.BOS tem barra sem glass effect. O componente Global Top Bar (liquid glass) nao esta sendo reutilizado.
Usuario percebe 3 sistemas diferentes ao navegar entre apps. Zero coerencia na experiencia. A topbar e o primeiro elemento que o usuario ve — se diverge, tudo parece quebrado.
RH.BOS, COMERCIAL.BOS, REPORTS.BOS (todos)
src=""
src=""
Pagina com titulo no breadcrumb/topbar E titulo grande no body. Ex: topbar mostra "COMERCIAL.BOS > War Room" e logo abaixo tem h1 "War Room Dashboard". Dois titulos disputando atencao.
Hierarquia visual quebrada. Espaco vertical desperdicado. Redundancia confunde o usuario sobre onde esta. Poluicao visual no topo da pagina.
COMERCIAL.BOS (War Room, Growth), RH.BOS (Hiring Scorecard)
src=""
src=""
Paginas do mesmo app com max-width diferente: formularios com max-w-4xl, dashboards com max-w-5xl, tabelas com max-w-6xl. Ao navegar, conteudo "pula" de largura.
Experiencia de navegacao instavel. Sidebar e topbar ficam fixos mas o conteudo muda de largura a cada pagina. Sensacao de "app quebrado".
COMERCIAL.BOS (CRM vs Dashboard vs Growth)
src=""
src=""
Containers com padding misturado na mesma app: px-4 em uma pagina, px-6 em outra, p-6 em outra. Margens do conteudo nao alinham entre paginas.
Desalinhamento sutil mas perceptivel ao navegar. Conteudo "pula" lateralmente. Impressao de falta de cuidado profissional.
RH.BOS (varias paginas), COMERCIAL.BOS (CRM pages)
src=""
src=""
Cards clicaveis sem nenhum feedback visual no hover. Cursor permanece default, borda nao muda, sem transicao. O card parece estatico e nao-interativo.
Usuario nao percebe que o card e clicavel. Affordance zero. Em dashboards com cards de KPI, usuario nao descobre que pode clicar para detalhar.
COMERCIAL.BOS (KPI cards), REPORTS.BOS (report cards)
src=""
src=""
Botao primario verde no RH.BOS usa #6bc950, no COMERCIAL.BOS usa #00E05A, e no REPORTS.BOS usa Tailwind bg-green-500. Tres verdes diferentes para a mesma acao primaria.
CTA principal muda de cor entre apps. Inconsistencia na acao mais importante da interface. Parece que cada app foi feito por uma equipe diferente.
RH.BOS, COMERCIAL.BOS, REPORTS.BOS (todos)
src=""
src=""
Inputs de formulario sem focus ring ou com focus ring azul default do browser. Em dark mode o azul padrao fica estranho. Alguns inputs usam outline: none sem substituicao.
Usuario nao sabe qual campo esta ativo. Navegacao por teclado fica impossivel de acompanhar visualmente. Acessibilidade comprometida.
RH.BOS (formularios de vaga), COMERCIAL.BOS (filtros CRM)
src=""
src=""
Badges de status com formatos mistos: rounded-md na lista de vagas, rounded-full no pipeline, rounded-lg nos reports. Mesma informacao (status) com 3 formatos visuais diferentes.
Usuario nao associa badges visuais entre paginas. O mesmo status "Ativo" parece diferente em cada contexto. Inconsistencia no padrao de leitura rapida.
RH.BOS (vagas, candidatos), COMERCIAL.BOS (pipeline, deals)
src=""
src=""
Blur do glassmorphism variando: topbar com blur(20px), modais com blur(10px), sidebars com blur(40px), cards com blur(12px) e blur(16px). Sem token definido.
Efeito glass perde consistencia. Algumas areas parecem mais "profundas" que outras sem logica. Em dispositivos fracos, blur alto causa lag de render.
RH.BOS (sidebar), COMERCIAL.BOS (modais), REPORTS.BOS (topbar)
src=""
src=""
Pagina com fundo #0a0a0a plano, sem o grid sutil e sem glow orbs (radial gradients) que definem a identidade visual LAND BILHON. Pagina parece de outro sistema completamente diferente.
Quebra total da identidade visual. O dark mode do Bilhon nao e apenas "fundo preto" — e o ecossistema de grid + glow + glass que cria profundidade. Sem isso, parece template generico.
REPORTS.BOS (paginas novas), COMERCIAL.BOS (paginas legadas)
src=""
src=""
Banner de Demo Mode renderizado DEPOIS do titulo da pagina ao inves de ser o primeiro elemento visivel. Usuario ve conteudo real antes de perceber que esta em modo demo.
Usuario pode confundir dados demo com dados reais por alguns segundos. Em apresentacoes, o banner nao e visivel sem scroll. Ordem semantica incorreta.
COMERCIAL.BOS (24 paginas com toggle), RH.BOS (Demo Mode)
src=""
src=""
Dados de demonstracao renderizados identicamente aos dados reais. Nenhum badge, borda ou indicador visual diferenciando. Em modo DEMO COMPLETO, tabelas e cards parecem producao.
Risco critico: usuario ou gestor pode tomar decisao baseada em dados demo achando que sao reais. Em reunioes, dados falsos podem ser apresentados como verdadeiros.
COMERCIAL.BOS (CRM, War Room), RH.BOS (Scorecard), REPORTS.BOS (Intelligence)
src=""
src=""
Sidebar mobile com z-index: 40 enquanto modais usam z-index: 50 e a topbar z-index: 1000. Sidebar aberta nao cobre conteudo corretamente ou fica atras de outros overlays.
Em mobile, sidebar aberta nao bloqueia interacao com conteudo atras. Cliques "atravessam" a sidebar. Botoes do conteudo principal ficam clicaveis sobre a navegacao.
COMERCIAL.BOS (mobile view), RH.BOS (mobile view)
Dropdown de navegacao usando bg-elevated (rgba transparente) como background. O DemoBanner roxo e outros elementos do body sangram visualmente atraves do menu. Parece que tem sobreposicao de menus.
Menu fica ilegivel quando ha conteudo colorido por baixo. DemoBanner, cards e textos aparecem mesclados com os itens do dropdown. Experiencia visual quebrada e confusa.
RH.BOS (dropdown nav), COMERCIAL.BOS (dropdown nav)