Framework CSS dark do OfficeHub SaaS. Plug-and-play — inclua uma linha e tenha todos os componentes, utilitários e animações prontos para uso, com identidade visual consistente em todos os módulos da ferramenta.
CDN / link direto
<link rel="stylesheet" href="ohub.css">
Google Font (recomendada)
Outfit — wght 300;400;500;600;700;800
🎨
28 seções
Componentes
📦
Zero JS
CSS puro
⚡
CSS Vars
Totalmente customizável
🎨 Tokens — CSS Variables
Todas as variáveis são definidas em :root e podem ser sobrescritas por página ou componente.
Containers com variações de header, footer e bordas coloridas.
📊 Painel com Header
Conteúdo do painel aqui.
Card com borda accent
Card border pink
Card border green
⚡Card hover interativo
<divclass="oh-panel"><divclass="oh-panel-header"><spanclass="oh-panel-title">Título</span></div><divclass="oh-panel-body">...</div></div><!-- Card com borda colorida --><divclass="oh-card oh-card-accent-left oh-green">...</div>
🔘 Botões
Variantes por cor, tamanho, ícone e grupo.
<buttonclass="oh-btn oh-btn-primary">Primário</button><buttonclass="oh-btn oh-btn-danger oh-btn-sm">Pequeno</button><buttonclass="oh-btn oh-btn-icon oh-btn-secondary">⚙️</button><!-- Grupo de botões --><divclass="oh-btn-group"><buttonclass="oh-btn oh-active">A</button><buttonclass="oh-btn">B</button></div>
📝 Formulários
Inputs, selects, textareas, toggles e checkboxes estilizados.
📧
⚠️ Este campo é obrigatório
<divclass="oh-form-group"><labelclass="oh-label oh-required">Nome</label><inputclass="oh-input"type="text"placeholder="..."><divclass="oh-form-error">Mensagem de erro</div></div>
ℹ️Arraste os bonequinhos para alocar nos departamentos.
🏷️ Badge & Pills
DefaultAccentPinkGreenOrangeBlueDanger
SmallDefaultLarge
💻 Tecnologia ✕📢 Marketing💰 Financeiro
OnlineOcupadoOffline
📊 Stat Cards
👥
48
Colaboradores
↑ 12%
🏛️
7
Departamentos
✅
45
Alocados
⏳
3
Sem setor
↓ 2
👤 Avatar & Pickers
👩💻
👨🎨
🧑🏫
👩⚕️
👤
🎨
Avatar Picker:
👩
👨
👩💼
👨💻
🧑🏫
Color Picker:
Icon Picker:
💼
💻
📢
🔬
🎨
💰
🧩 Drag & Drop
Arraste os bonequinhos entre departamentos e a área "Sem departamento". Toda a lógica de estado é feita via JS — o CSS fornece as classes visuais de feedback.
🧩 Sem departamento
3 pessoas
/* HTML básico — zones e cards */<divclass="oh-pool"><divclass="oh-drop-zone oh-empty"id="unassigned"data-empty="Arraste aqui"></div></div><divclass="oh-dept-card"><divclass="oh-dept-header"><divclass="oh-dept-color-bar"style="background:#6c63ff"></div><span>💻</span><spanclass="oh-dept-name">Tecnologia</span></div><divclass="oh-dept-drop-zone oh-empty"id="zone-ti"></div></div>/* Card draggável */<divclass="oh-person-wrap"><divclass="oh-person-card"draggable="true"><divclass="oh-person-avatar"style="background:#6c63ff22">👩💻</div><spanclass="oh-person-name">Maria</span><spanclass="oh-person-role">Dev</span></div></div>/* Classes de estado (aplicadas via JS) *//* oh-dragging → card sendo arrastado *//* oh-drag-active → zona recebendo drag *//* oh-drag-over → dept-card com drag em cima *//* oh-empty → zona sem filhos (placeholder) */
🔧 Outros Componentes
Progress
Alocação85%
Metas62%
Empty State
🏛️
Nenhum departamento ainda
Crie um departamento para começar a organizar sua equipe.
Skeleton Loading
Tooltips
Breadcrumb
✨ Animações
Classes de animação reutilizáveis via @keyframes internos.
🟢 oh-anim-pulse⬇️
Classe
Efeito
Keyframe
.oh-anim-pop
Escala com rotação
oh-pop
.oh-anim-fadeIn
Fade + slide up
oh-fadeIn
.oh-anim-pulse
Opacidade pulsante
oh-pulse
.oh-anim-bounce
Quique vertical
oh-bounce
.oh-anim-fadeOut
Desaparece para a direita
oh-fadeOut
.oh-skeleton
Shimmer de loading
oh-shimmer
.oh-spinner
Loader circular
oh-spin
✏️ Exemplo de Modal
ℹ️Este é um modal gerado com ohub.css.
⚠️ Confirmar
Deseja remover este departamento? Os colaboradores serão movidos para "sem setor".