Filosofia
MGConnect é um sistema de telemetria veicular operado por frotistas, mecânicos e analistas. A interface precisa entregar muita informação rapidamente, sem distrair. O design é industrial, não consumer; operacional, não decorativo; e privilegia densidade informacional sobre espaço em branco generoso.
Princípios
- Leitura rápida — números monoespaçados, hierarquia tipográfica enxuta, sem decoração entre dado e olho.
- Baixa distração — animações curtas (≤250ms), cores fortes só para sinal, não para decoração.
- Alta densidade — minicards de 95×~60px cabem 3-12 por linha; grid é o padrão sobre lista vertical.
- Estado sempre visível — online/offline/loading nunca ambíguo; tempos sempre presentes; OTA com etapa numerada.
- Dark é primário — operadores passam horas na tela; light existe para sol direto.
- Mobile preserva densidade — não simplificamos no celular; mantemos minicards, viramos modal em bottom-sheet.
Regras
Decisões fechadas. Não negociar caso-a-caso — alinhe aqui antes.
--mgc-radius-xl (16px). Minicards usam --mgc-radius-md (8px). Modais usam --mgc-radius-2xl (18px). Nenhum valor entre estes.--mgc-danger (#e74c3c): deletar, abortar OTA, reset hard, desativar veículo. Não confundir com erro de display (que é alert, não button).--mgc-info ou --mgc-warning para destacar sem alarmar.--mgc-trans-fast (120ms). Exceção: cards que levantam (transform translateY) usam --mgc-trans-slow (250ms) porque elasticidade pede mais tempo.--mgc-overlay (rgba 0.55 / 0.68 dark) com backdrop-filter: blur(2px). Mobile vira bottom-sheet automaticamente abaixo de 600px..mgc-mono. Habilita tabular-nums — colunas de números alinham sozinhas.#fff, #1e293b). Use sempre var(--mgc-…). Hard-code quebra dark mode.<body class="dark-mode">. Compatível com Albert View atual. Todos os componentes herdam via variáveis — nenhuma classe precisa de override manual.--mgc-info). Não remover. Acessibilidade não é opcional.Como usar
Em qualquer página MGConnect, adicione apenas o link CSS e marque o body.
Setup mínimo
Toggle dark/light em JS
Logo & Ícone
Ativos de marca MGConnect em PNG com fundo transparente. Servidos centralmente pelo design system — referencie sempre por URL. Atualizar o arquivo aqui propaga para todas as UIs (View, Portal, Server, Service, Admin, Config Tool).
Logo (ícone + texto)
Usado no header via .mgc-header .mgc-logo. Já contém o texto
"MGConnect" — não acompanhe de rótulo separado (.mgc-brand fica oculto).
fundo claro
fundo escuro
Ícone (favicon / app icon)
Versão só-símbolo, transparente. Favicon da aba do navegador e ícone de app (apple-touch).
Regras de uso
<img class="mgc-logo">; o .mgc-brand é ocultado pelo CSS do DS.#c1121f) — em fundo vermelho perde contraste.Emojis
Emoji é sinal semântico, não decoração. Cada significado tem
um emoji padrão — não troque por sinônimos visuais. Use o glifo
listado aqui; mantenha o seletor de cor (U+FE0F) nos que
renderizam mono por padrão (⚠️, ☀️, ⚙️…).
Estado & sinalização
Pontos de status (cor)
Bolinhas de estado — espelham as cores semânticas dos tokens de status.
Navegação & direção
Ações & ferramentas
Telemetria & veículo
Análise, saúde & gamificação
Tema, conta & conteúdo
Regras de uso
Ícones (SVG)
Ícones SVG inline usados nos controles das UIs (sobretudo no Albert View).
Desenhados em viewBox próprio, herdam a cor do contexto via
fill="currentColor" ou stroke="currentColor"
— então funcionam em header escuro e em botão claro sem ajuste.
Conjunto
Símbolos tipográficos
Glifos Unicode (não-emoji) usados como ícone de botão em toolbars de análise — herdam a fonte e a cor do texto.
Como usar
currentColor (em fill ou stroke) para o ícone herdar a cor do botão/header. Evita uma cópia por tema.title — o tooltip é o rótulo acessível do ícone (ex.: "Inicial", "Mapa").#0ea5e9 de propósito como "sinal vital").<use href="#einsteinSymbol">), não um ícone de UI reutilizável.Cores
Tokens semânticos, nunca literais. Cada cor tem um papel definido.
Superfícies
Texto
Status semântico
Bordas e sombras
Tipografia
Sans para texto, mono para dados. Escala compacta — 6 tamanhos.
Famílias
Escala
Espaçamento
Escala 4px. Tudo é múltiplo. Nada de ad-hoc.
Raios
7 valores. Cada componente tem o seu — fixo.
Sombras
4 níveis. Adapta automaticamente para dark mode.
Transições
3 velocidades. Padrão é fast (120ms).
--mgc-trans-fast: 120ms — hover, mudança de cor, toggle. Padrão.--mgc-trans-base: 200ms — barras de progresso, painéis abrindo.--mgc-trans-slow: 250ms — transform elástico (cards levantando).Demo (passe o mouse)
levanta no hover
Botões
Default → ação reversível. Primary → ação principal. Danger → destrutivo.
Variantes
Tamanhos
Icon button
Status badges & Pills
Sinalização visual de estado. Cor sempre semântica.
Status badge (120×38px, dentro de card)
Pills (tag minúscula em listas)
Cards
Container padrão. Radius 16px (xl), padding 16px, shadow-md.
PRZ · IVC4026
OKGRT · JCU5A70
SENSORPZT · XAF1100
ERROMinicards
Densidade máxima — 95px de largura. 9-12 por linha em desktop, 3 em mobile.
Grids
.mgc-grid padrão é responsivo (auto-fill minmax 240px). Para mini, use .mgc-grid--mini.
Padrão
Alerts
Mensagens contextuais. Diferente de status — fala da operação, não do veículo.
Tabelas
Densas, monoespaçadas, sticky-header. Hover de linha sinaliza interatividade.
| Sigla | Placa | Status | Vel | RPM | Último sinal |
|---|---|---|---|---|---|
| PRZ | IVC4026 | OK | 82 | 1840 | 12s |
| GRT | JCU5A70 | ATENÇÃO | 0 | 760 | 8s |
| PZT | XAF1100 | OFFLINE | — | — | 3h12m |
| VND | VEC8821 | OTA | 0 | 820 | 2s |
Timeline
Eventos discretos em ordem temporal. Cor do marcador codifica natureza.
Barra OTA
Progresso + etapa numerada. Cor da barra sinaliza estado global.
Modal
Overlay 0.55, blur 2px, content radius 18px. Mobile vira bottom-sheet.
Tooltips
Conteúdo informativo on-hover, fora do fluxo da página.
Passe o mouse no card abaixo para ver o tooltip.
Loaders
Spinner, dots, pulse, toast. Cada um sinaliza um tipo de espera.
Forms
Inputs, selects, textareas e checkboxes. Densidade compacta, foco com glow azul.
Estados
Inline (linha de filtro)
Fieldsets
Agrupa campos relacionados com legenda. Substitui o div+h2 para formulários longos.
Modal — small / dialog
Para confirmações e fluxos curtos. Diferente do modal full-screen padrão.
Action list
Lista de operações tipadas. Cor codifica o tipo — backup, move, create, db, update, conflict.
-
Criar backup~/albert/agent/_backup/PRZ_IVC4026_20260522_1432.tgz
-
Mover pasta~/albert/agent/OLD/IVC4026 → ~/albert/agent/PRZ/IVC4026
-
Criar estrutura~/albert/agent/PRZ/IVC4026/{T,al,TWiFi,hWiFi,segmentos,contr}/
-
Atualizar contr.txtCampos [7]=14LBE, [8]=PRZ, [9]=IVC4026, [10]=Volvo, [11]=VM 270
-
Upsert no bancoINSERT INTO veiculos(numserie, sigla, placa, marca, modelo) VALUES(…) ON CONFLICT(numserie) DO UPDATE …
-
CMD11 será enviadoDispositivo atualiza contr.txt no próximo ping (~30s)
-
Conflito — placa já existeIVC4026 atualmente vinculada a numSerie=09ABC. Use "Forçar" para rebinding.
Editable cell
Para tabelas com edição inline. Clique = vira input. Salvamento explícito (botão "Aplicar" na linha).
| Sigla | Placa | Marca | Modelo | Chip | |
|---|---|---|---|---|---|
| PRZ | IVC4026 | Volvo | VM 270 | 8932011234 | |
| GRT | JCU5A70 | Scania | R450 | 8932011567 |
State box
Resultado de busca/consulta. Diferente de alert — representa um estado do dado, não um aviso de UI.
numSerie=
14LBE · sigla=LBG · placa=XAF1100
99ZZZ não existe no banco nem no filesystem. Será criado como novo.
Two-column layout
Form à esquerda (400px), preview/resultado à direita (flex). Colapsa abaixo de 800px.