Cmd+K (Mac) / Ctrl+K (Win). Input com autofocus. ESC para fechar.
Categorias
Produtos, Paginas, Acoes. Cada uma com label uppercase cinza. Icone SVG por tipo.
Highlight
Termo buscado em bold + color: #2B6CB0 nos resultados. Busca fuzzy tolerante.
Navegacao
Setas ↑↓ para navegar, Enter para abrir, ESC para fechar. Item selecionado com bg #EBF8FF.
Footer
Dicas de teclas + contagem de resultados. Max 8 resultados visiveis, scroll para mais.
32 — Accordion e Collapsible Sections
Accordion e Collapsible Sections
Accordions organizam conteudo em secoes expansiveis, economizando espaco vertical. Ideais para FAQs, configuracoes e paineis de detalhes.
Perguntas Frequentes
Qual a garantia dos paineis solares?
Todos os paineis solares Sysled possuem garantia de 25 anos de performance (80% da potencia nominal) e 12 anos de garantia contra defeitos de fabricacao. A garantia cobre defeitos de material e mao de obra.
Apos rating baixo (1-2 estrelas ou NPS 0-6), abrir modal com textarea "O que podemos melhorar?" + botao enviar.
35 — Data Entry Patterns (Multi-Step Form)
Formularios Multi-Step
Formularios complexos sao divididos em etapas para reduzir carga cognitiva. Cada step valida antes de avancar, com progresso visual e opcao de salvar rascunho.
"Voltar" (secondary) + "Proximo: [nome]" (primary). Ultimo step: "Revisar e Publicar". Clicar em steps completos permite voltar.
Validacao
Validar campos obrigatorios antes de avancar. Mostrar erros inline. Nao permitir pular steps.
Rascunho
Botao "Salvar rascunho" no footer, estilo text cinza. Auto-save a cada 30s. Indicador "Rascunho salvo as 14:32".
Responsivo
Mobile: sidebar vira stepper horizontal no topo. Form ocupa largura total.
36 — Avatar Upload e Image Cropper
Avatar Upload e Image Cropper
O upload de avatar permite que usuarios personalizem seu perfil. Inclui preview circular, crop/zoom, indicador de progresso e fallback para iniciais quando nao ha imagem.
Sem foto: iniciais em gradient #2B6CB0 → #48C9B0. Font: Montserrat bold branco.
Edit button
Circulo 28px azul com icone camera, posicionado bottom-right com borda branca 3px.
Crop
Area circular com borda dashed azul. Slider de zoom com thumb 12px. Botoes Cancelar/Aplicar.
Progress
Ring SVG circular com stroke-dasharray proporcional. Percentual no centro. Cor #2B6CB0.
Formatos
Aceitar JPG, PNG, WebP. Max 5MB. Validar antes do upload. Mostrar erro inline se invalido.
37 — Color Picker e Swatch Selector
Color Picker e Swatch Selector
O color picker permite selecionar cores para personalizacao de temas, tags e categorias. Inclui paleta Sysled pre-definida, input hex/RGB e cores recentes.
Setas prev/next para mes. Click no titulo do mes para selecionar ano. Dias do mes anterior em cinza claro.
39 — Toast Positioning e Stacking
Toast Positioning e Stacking
Toasts empilham verticalmente na tela. Regras de posicao, timing de auto-dismiss, limite de stack e animacoes de entrada/saida garantem uma experiencia limpa.
Circulo 20px com icone SVG 11px. Success: verde. Info: azul. Warning: amarelo. Error: vermelho.
40 — Skeleton Loading Patterns
Skeleton Loading Patterns
Skeletons mostram o layout do conteudo antes dele carregar, reduzindo a percepcao de espera. Cada tipo de componente tem seu skeleton correspondente que espelha o layout real.
Gradient #E2E8F0 → #F1F5F9 → #E2E8F0 animado em 1.5s infinite. Dark mode: #1E293B → #334155.
Matching
Skeleton deve espelhar o layout real: mesma altura, largura e posicao dos elementos que vai substituir.
Variantes
Text (12px h, border-radius 6px). Circle (aspect-ratio 1). Rect (border-radius 10px). Widths variaveis (50%, 70%, 90%).
Timing
Mostrar skeleton apos 200ms de loading (evitar flash em carregamentos rapidos). Transicao suave para conteudo real.
41 — Error Handling Patterns
Error Handling Patterns
Erros devem ser tratados de forma transparente, com mensagens claras, opcoes de retry e fallback UI quando possivel. O usuario nunca deve ficar preso sem saber o que aconteceu.
Retry Automatico
Falha ao carregar
Nao foi possivel conectar ao servidor.
Tentativa 2 de 3...
Modo Offline
Sem conexao
Voce esta offline. Alteracoes serao sincronizadas automaticamente quando a conexao voltar.
3 alteracoes pendentes
Fallback UI
Grafico indisponivel
Os dados serao exibidos quando o servico estiver online.
<!-- Retry -->
<div class="error-card">
<div class="error-icon"><svg>...retry...</svg></div>
<h3>Falha ao carregar</h3>
<p>Nao foi possivel conectar.</p>
<span class="retry-count">Tentativa 2 de 3...</span>
<button class="btn-primary">Tentar novamente</button>
</div>
<!-- Offline bar -->
<div class="offline-bar">
<div class="status-dot offline"></div>
<span>Sem conexao</span>
</div>
Max 3 tentativas automaticas com backoff (1s, 3s, 5s). Mostrar contagem. Apos 3: botao manual "Tentar novamente".
Offline
Barra com dot vermelho + "Sem conexao". Contar alteracoes pendentes. Sincronizar automaticamente ao reconectar.
Fallback
Componente dashed border com icone cinza. Texto explicativo. Nao bloquear — permitir usar o resto da pagina.
Mensagens
Nunca jargao tecnico ("Error 500"). Sempre: o que aconteceu + o que fazer. Tom empatico, nunca culpar o usuario.
42 — Confirmation Dialogs e Destructive Actions
Confirmation Dialogs
Acoes destrutivas exigem confirmacao explicita. Quanto mais grave a acao, mais forte a friccao: de um simples "Confirmar?" ate digitar o nome do recurso.
Confirmacao Simples
Excluir produto?
Esta acao ira remover "Sensor IP65" permanentemente. Isto nao pode ser desfeito.
Tag <mark> com background #FEF9C3 (amarelo claro). Border-radius 2px. Cor herda do contexto.
Did you mean
Correcao ortografica abaixo da barra. Link azul underline. Aparece quando fuzzy match encontra resultado melhor.
Meta
Contagem + tempo de busca. Cada resultado: titulo bold, snippet com highlight, metadata (SKU, preco).
Zero results
Usar empty state com sugestoes: "Tente termos mais genericos" ou "Remover filtros".
44 — Progress Indicators
Progress Indicators (Upload, Import, Export)
Indicadores de progresso comunicam o andamento de operacoes demoradas. Barras determinadas mostram percentual exato; indeterminadas indicam que algo esta acontecendo.
Sidebar colapsada 56px. Apenas icones. Tooltip no hover com nome da pagina.
<768px
Bottom tab bar fixo. Max 5 items. Icone + label pequeno. Item ativo: azul. "Mais" para menu extra.
Transicao
Sidebar: width transition 0.2s. Labels: fade in/out. Bottom bar: slide up on mount.
Safe area
Mobile: respeitar env(safe-area-inset-bottom) para dispositivos com notch/gesture bar.
46 — Micro-copy e Placeholder Guidelines
Micro-copy e Placeholder Guidelines
Micro-copy sao os pequenos textos que guiam o usuario: placeholders, labels, helper texts, mensagens de erro e textos de botoes. Devem ser claros, concisos e uteis.
Correto
nome@empresa.com
Usado para login e recuperacao de senha.
0
Insira um valor entre 1 e 9999.
Evitar
Digite seu email aqui...
Sem helper text
0
Erro: campo invalido
<div class="form-group">
<label class="form-label">
Email corporativo <span class="required">*</span>
</label>
<input type="email" placeholder="nome@empresa.com" />
<span class="helper-text">Usado para login e recuperacao de senha.</span>
<span class="error-text">Insira um email valido.</span>
</div>
Direto e humano. Sem jargao tecnico. Sem culpar o usuario. Sem "por favor" excessivo.
47 — Spacing & Layout Tokens Visuais
Spacing & Layout Tokens Visuais
Tokens de espacamento aplicados em contexto real. O sistema usa multiplos de 4px para manter ritmo vertical e horizontal consistente em todos os componentes.
:root {
--space-1: 4px; /* micro gaps, icon padding */
--space-2: 8px; /* inline gaps, button padding-y */
--space-3: 12px; /* between related elements */
--space-4: 16px; /* card padding, section gaps */
--space-5: 20px; /* between groups */
--space-6: 24px; /* section padding */
--space-8: 32px; /* large sections */
--space-10: 40px; /* page margins */
--space-12: 48px; /* hero spacing */
--space-16: 64px; /* page sections */
}
/* Usage: sempre usar tokens, nunca valores magicos */
Token
Uso
4px
Micro gaps: entre icone e texto inline, padding de badges, gap de dots.
8px
Gaps padrao: entre botoes, padding vertical de inputs, gap de flex items relacionados.
12-16px
Padding interno de cards, espacamento entre titulo e descricao, gap de grid items.
24-32px
Entre secoes dentro de uma pagina, padding de modais, gaps de grid maiores.
40-64px
Margens de pagina, espacamento entre secoes hero, padding de containers full-width.
48 — Z-Index Scale e Layering
Z-Index Scale e Layering
A hierarquia de z-index define quais elementos ficam acima de outros. Usar valores pre-definidos evita conflitos e garante que modais sempre cubram dropdowns, que cobrem conteudo base.
Dropdowns, popovers, notifications. Destaque do conteudo base.
Overlay (lg)
0 12px 40px rgba(0,0,0,0.15)
Modais, drawers, command palette. Foco total no elemento.
50 — Focus States e Keyboard Navigation
Focus States e Keyboard Navigation
Focus states sao essenciais para acessibilidade por teclado. Todo elemento interativo deve ter um ring de foco visivel e consistente. Usar :focus-visible para evitar ring em cliques de mouse.
Regras de impressao para garantir que relatorios, notas fiscais e documentos exportados fiquem legiveis em papel. Remove elementos interativos e otimiza tipografia para midia impressa.
SYSLED
Relatorio de Vendas
Emitido em
07/03/2026
Produto
Qtd
Total
Luminaria LED 24W
150
R$ 12.750,00
Painel Slim 18W
320
R$ 19.200,00
Fita LED 5m RGB
85
R$ 6.375,00
Total Geral
R$ 38.325,00
Pagina 1 de 1 — Gerado automaticamente pelo SYSLED ERP
<!-- Elementos com class="no-print" sao removidos na impressao -->
<nav class="no-print">...</nav>
<aside class="sidebar no-print">...</aside>
<button class="no-print">Exportar</button>
<!-- Conteudo imprimivel -->
<main class="print-area">
<header class="print-header">
<h1>SYSLED</h1>
<span class="print-date">07/03/2026</span>
</header>
<table class="print-table">...</table>
<footer class="print-footer">Pagina 1 de 1</footer>
</main>
Nav, sidebar, botoes, modais, tooltips, toasts. Usar class .no-print.
Cores
Preto e branco apenas. Sem gradientes ou sombras.
Fonte corpo
Georgia serif, 12pt, line-height 1.5 para legibilidade.
Tabelas
Bordas finas 0.5pt. page-break-inside: avoid em linhas.
Links
Mostrar URL apos o texto via ::after.
Margens
2cm em todos os lados. Rodape com numero de pagina.
53 — Motion & Transition Tokens
Motion & Transition Tokens
Tokens de animacao padronizados para transicoes consistentes. Baseados em curvas de easing perceptualmente suaves, com duracoes proporcionais a complexidade do movimento.
Obrigatorio: desabilitar animacoes para acessibilidade
78 — Rich Text Editor (WYSIWYG)
Rich Text Editor
Componente de edição de texto rico para notas internas, descrições de ordens de produção, laudos de qualidade e comunicação entre equipes na plataforma SYSLED.
Preview — Editor Completo
B
I
U
S
H1
H2
H3
Markdown
Laudo de Inspeção — Prensa #12
Inspeção realizada em 08/03/2026 no turno da manhã. Equipamento apresentou vibração anormal no cilindro principal.
Ações recomendadas:
Substituir rolamento do cilindro
Calibrar sensor de pressão
Agendar revisão completa com @rafael.silva
"Equipamento liberado para operação com restrição de carga máxima em 80% até conclusão da manutenção."
// Sensor ID: PSR-012-Apressao_atual: 142.7 bar
pressao_limite: 180.0 bar
status: "warning"
348 palavras•Salvo automaticamente
DescartarSalvar
Preview — Slash Commands
Digitando / no editor, abre um menu contextual de comandos rápidos.
Filtrar comandos...
H1
Heading 1
Título principal
Lista
Lista com marcadores
Checklist
Lista de tarefas
Bloco de Código
Dados técnicos, sensores
Imagem
Upload ou URL
@
Mencionar
Notificar um colega
Preview — Mention Autocomplete
Ao digitar @, abre lista de usuarios filtrada em tempo real.
RS
Rafael Silva
Técnico Manutenção
RA
Renata Almeida
Qualidade
RM
Roberto Moura
Supervisor Produção
Toolbar — Agrupamento de Ações
Grupo
Ações
Shortcut
Formatação
Bold, Italic, Underline, Strikethrough
⌘B, ⌘I, ⌘U, ⌘⇧X
Headings
H1, H2, H3
⌘⌥1, ⌘⌥2, ⌘⌥3
Listas
Bullet list, Numbered list, Checklist
⌘⇧8, ⌘⇧7, ⌘⇧9
Inserir
Link, Imagem, Código, Divisor
⌘K, —, ⌘⇧C, —
Blocos
Blockquote, Callout, Tabela
⌘⇧B, —, —
Social
Mention (@), Emoji
@, :
Especificações do Editor
Propriedade
Valor
Toolbar height
46px
Toolbar button size
30 × 30px, border-radius 6px
Content padding
20px 24px
Min height (content)
160px (expandível)
Font body
Inter, 0.88rem, line-height 1.7
Font heading
Montserrat, weight conforme nivel
Font code
JetBrains Mono, 0.72rem, bg #0F172A
Blockquote
border-left 3px #2B6CB0, bg rgba(blue, 0.04)
Mention style
color #2B6CB0, font-weight 600
Highlight (warn)
bg #FEF2F2, color #991B1B, radius 4px
Autosave
A cada 30s ou ao perder foco
Footer bar
Word count + save status + actions
Do's & Don'ts
DO
Autosave a cada 30s com indicador visual "Salvo automaticamente". Nunca perder conteúdo do usuario.
DON'T
Exibir todas as opções da toolbar de uma vez em mobile. Usar menu overflow (...) para ações menos comuns.
DO
Suportar Markdown nativo — quem digitar **texto** deve ver negrito automaticamente.
DON'T
Permitir HTML arbitrário no editor. Sanitizar input para prevenir XSS.
79 — Map & Geolocation UI
Map & Geolocation UI
Patterns de interface para mapas, rastreamento logístico, localização de máquinas e gestão de rotas na plataforma SYSLED. Essencial para monitoramento de frotas, entregas e ativos distribuídos.
Preview — Mapa com Pins de Equipamentos
● CNC Torno #04
● Caminhão #07
● Prensa #12 — ALERTA
8
8 ativos nesta area
+
−
Legenda
Online
Em Trânsito
Alerta
Offline
12 Online
3 Trânsito
1 Alerta
4 Offline
Atualizado há 30s
Preview — Location Card (Popup do Pin)
Card que aparece ao clicar em um pin no mapa. Mostra detalhes do ativo/veículo.
ONLINE — Operando
CNC Torno #04
Setor A — Galpão 2
OEE
92.4%
Uptime
18h 42m
Ver Detalhes
EM TRÂNSITO — ETA 14:30
Caminhão #07
Placa ABC-1234 — Motorista: João
Velocidade
67 km/h
Destino
Fábrica SP
Origem: Depósito RJ72%
Rastrear Rota
Preview — Geocoding Search Input
Campo de busca com autocomplete de endereços. Integra com APIs de geocoding (Google, Mapbox, etc).
Card com dots coloridos + labels, bg semi-transparente
Info Bar
Below map
Contadores por status + timestamp de atualização
Pin Tooltip
Below pin
Label com nome do ativo, bg #0F172A, font 0.62rem
Location Card
Popup on click
Card completo com KPIs, ações, barra de progresso
Search Input
Top/sidebar
Autocomplete com geocoding, border-focus #2B6CB0
Do's & Don'ts
DO
Clusterizar pins quando zoom < nível de rua. Mostrar contador no cluster para indicar quantidade de ativos.
DON'T
Mostrar centenas de pins individuais ao mesmo tempo — causa lentidão e poluição visual.
DO
Animar apenas pins de alerta/erro para chamar atenção. Status normais devem ser estáticos.
DON'T
Usar cores que não seguem a paleta semântica. Verde = ok, amarelo = trânsito/warning, vermelho = erro.
80 — Data Table Virtualization & Performance
Data Table Virtualization & Performance
Estratégias e padrões visuais para tabelas de dados massivos — virtualização de linhas, lazy loading, indicadores de carregamento parcial e otimizações de renderização para listas industriais com milhares de registros.
Quadros kanban para gestão visual de fluxos industriais — ordens de manutenção, etapas de produção, controle de qualidade e rastreamento de tarefas com drag & drop entre colunas.
Kanban — Ordens de Manutenção
Filtrar
+ Nova Ordem
Backlog4
OM-2851Urgente
Troca de rolamento — Torno CNC #04
10 Mar
RF
OM-2849Média
Calibração sensor temperatura — Prensa PH-200
12 Mar
JS
Em Andamento2
OM-2845Urgente
Substituição bomba hidráulica — Injetora #02
60%
OM-2843Baixa
Lubrificação guias lineares — Centro Usinagem
30%
Aguardando Peça1
OM-2840Média
Troca correia dentada — Esteira E-03
Peça em trânsito — ETA: 11 Mar
Arraste um card aqui
Concluído3
OM-2838
Revisão preventiva — Compressor AR-01
Concluído em 07 Mar — 2h 15min
OM-2835
Alinhamento laser — Fresa CNC #07
Concluído em 06 Mar — 45min
Workflow Linear — Fluxo de Aprovação
SolicitaçãoTécnico
AprovaçãoSupervisor
3
ExecuçãoEquipe Manutenção
4
ValidaçãoQualidade
5
EncerramentoGestor
Anatomia do Card Kanban
OM-2851Urgente
Troca de rolamento — Torno CNC #04
MecânicaGalpão A
60%
10 Mar
3
RF
Priority stripe — barra de 4px no topo, cor = prioridade
ID + Badge — código mono + nível de urgência
Título — máx. 2 linhas, font-weight 600
Tags — labels de categoria, localização
Progress bar — 4px height, cor semântica
Footer — data, comentários, assignee avatar
Propriedade
Valor
Nota
Column Width
260px (min) / 320px (max)
Scroll horizontal quando > 4 colunas
Card Padding
12px 14px
Compact para maximizar cards visíveis
Card Border Radius
8px
Menor que section cards (16px)
Priority Stripe
4px height, full width no topo
Vermelho, laranja, verde, cinza
Drag Ghost
rotate(-1deg), box-shadow: 0 8px 24px
Border dashed primary durante drag
Drop Zone
Border 2px dashed gray-200, icon +
Aparece ao arrastar sobre coluna
Column Counter
Pill padding: 1px 7px, radius 100px
Cor semântica por status
Assignee Avatar
22px, gradient bg, font 0.5rem
Iniciais em branco, bold 700
Progress Bar
4px height, radius 2px
Cor = primary (andamento) ou green
Workflow Step
Circle 44px, connector 40×2px
Active = primary + pulse shadow
DO
Limitar WIP (Work in Progress) por coluna
Priority stripe visível mesmo em scroll rápido
Ghost feedback durante drag com rotação sutil
Coluna "Aguardando" para bloqueios externos
Contador por coluna para visão rápida
DON'T
Mais de 6 colunas visíveis sem scroll
Cards sem ID visível (dificulta referência)
Arrastar entre colunas não adjacentes sem alerta
Ocultar cards concluídos imediatamente
Workflow steps sem indicação do responsável
93 — Dashboard Layout & Widget Grid
Dashboard Layout & Widget Grid
Layouts de dashboard organizam widgets (KPIs, gráficos, tabelas, alertas) em grids flexíveis e responsivos. Cada widget é um card autônomo com header, body e ações.
CSS Grid · 4 colunas (desktop) · 2 col (tablet) · 1 col (mobile)
Gap
12px (0.75rem)
Widget border-radius
12px
Widget padding
16px (KPI) · header 16px 16px 12px · body 16px
Widget header
title 0.82rem / 600 · subtitle 0.68rem / text-tertiary
KPI number
1.5rem / 800 · line-height 1
Trend indicator
arrow icon 12px + value 0.68rem/600 + label 0.65rem
Min widget height
120px (KPI) · 200px (chart) · 240px (table)
Refresh
Auto-refresh a cada 60s · indicador "há X min" no header
Do
Colocar KPIs mais importantes na primeira linha (acima da dobra)
Permitir filtro de data global que afeta todos os widgets
Usar cores consistentes para status em todo o dashboard
Incluir trend indicators (+/-%) para contextualizar KPIs
Don't
Não sobrecarregar com mais de 12 widgets por dashboard
Não usar gráficos 3D — preferir visualizações flat e claras
Não misturar períodos de tempo entre widgets sem indicar
Não omitir loading states — cada widget carrega independentemente
94 — Search & Filtering Patterns
Search & Filtering Patterns
Patterns de busca e filtragem permitem ao usuário encontrar e refinar dados rapidamente. Combinam search bars, filtros laterais, chips ativos e resultados com highlight.
Debounce a busca para evitar requests excessivos (300ms)
Destacar o termo buscado nos resultados com <mark>
Mostrar contagem de itens em cada opção de filtro
Permitir limpar todos os filtros com um clique
Don't
Não recarregar a página inteira ao aplicar filtros
Não ocultar filtros ativos — sempre exibir chips visíveis
Não resetar filtros ao navegar entre páginas de resultado
Não exibir filtros com 0 resultados sem indicar
95 — Onboarding & Feature Tour
Onboarding & Feature Tour
Fluxo de boas-vindas e guias interativos para novos operadores e técnicos de manutenção. O onboarding combina um Welcome Wizard multi-step, Feature Tour com spotlight em elementos-chave da interface, Tooltips contextuais e Checklist de progresso persistente — garantindo adoção rápida e segura da plataforma SYSLED.
Welcome Wizard
Modal full-screen exibido no primeiro acesso. Stepper visual com 4 etapas: perfil, planta, preferências e conclusão.
Welcome Wizard — Step 2 de 4
SYSLED
Configurar sua Planta
Selecione a planta industrial e configure os setores que você irá monitorar.
Perfil
2
Planta
3
Preferências
4
Pronto!
Planta São Paulo
12 linhas · 847 equipamentos
Planta Campinas
8 linhas · 523 equipamentos
Usinagem
Injeção
Montagem
Você pode alterar estas configurações a qualquer momento em Configurações → Planta.
Passo 2 de 4
Feature Tour — Spotlight
Tour guiado com overlay escuro e spotlight no elemento-alvo. Popover posicional com seta aponta para o componente em destaque. Navegação por steps com contagem de progresso.
Feature Tour — Step 3 de 5 · Dashboard
SYSLEDDashboard
DF
Alertas Ativos
3
Vibração CNC-042min
Temp. Injetora #0214min
Pressão Compressor32min
3 / 5Dashboard
Painel de Alertas
Monitore alertas em tempo real de vibração, temperatura e pressão dos seus equipamentos. Clique para ver detalhes e tomar ação imediata.
Coachmarks Contextuais
Dicas flutuantes que aparecem ao interagir com funcionalidades pela primeira vez. Persistem até o usuário dispensar ou concluir a ação sugerida.
Coachmarks — Variantes
Beacon Pulsante
← Badge de atenção
Crie sua primeira OS
Registre ordens de serviço para rastrear manutenções preventivas e corretivas.
Banner Inline
Configure alertas inteligentes
Defina limiares de vibração e temperatura para receber notificações automáticas antes que falhas ocorram.
Hotspot Interativo
ConfiguraçõesNovo: alertas por e-mail e SMS
NOVO
Checklist de Progresso
Widget persistente no canto inferior direito que acompanha o progresso de configuração. Expansível com detalhes de cada etapa, barra de progresso e estimativa de tempo.
Sua planta está configurada. O SYSLED já está monitorando seus equipamentos em tempo real.
Anatomia — Tour Spotlight
Anatomia — Popover do Tour
3 / 5
Título do Passo
Descrição contextual explicando o componente em destaque e como utilizá-lo.
Pular
Anterior
Próximo
1
Step Badge
2
Título
3
Descrição
4
Navegação
5
Progress Dots
Fluxo de Decisão — Onboarding
Decision Tree — Primeiro Acesso vs Retorno
Usuário acessa SYSLED
Primeiro acesso?
SIM
Welcome Wizard 4 steps
Feature Tour 5 spotlights
Checklist Ativo Persistente
NÃO
Checklist completo?
SIM
Dashboard
NÃO
Retomar Checklist
Especificações
Propriedade
Valor
Observação
Welcome Wizard trigger
isFirstLogin === true
Modal full-screen, não-dismissável
Feature Tour trigger
Após wizard + 1º acesso a cada módulo
Spotlight com backdrop rgba(15,23,42,0.72)
Tour popover largura
280px
Max-width, responsivo em mobile
Tour popover offset
12px do elemento-alvo
Seta de 12×12px com rotação 45deg
Beacon tamanho
14×14px com borda 2px
Animação pulse 2s ease-in-out infinite
Checklist posição
Bottom-right, 24px de margem
FAB 52×52px quando minimizado
Checklist persistência
localStorage
Mantém estado entre sessões
Progress bar height
4px
Gradient #10B981 → #34D399
Coachmark dismiss
Click "Entendi" ou ação concluída
Armazena flag em localStorage
Celebration confetti
CSS-only (pseudo-elements)
Exibido ao completar 100% do checklist
Mobile behavior
Wizard full-screen; Tour como bottom-sheet
Checklist colapsa em top-bar compacta
Acessibilidade
role="dialog", aria-modal="true"
Focus trap no wizard e tour popover
Do's & Don'ts
Do
Permitir pular o wizard e o tour a qualquer momento
Salvar progresso do checklist entre sessões
Contextualizar cada step do tour com dados reais da planta do usuário
Usar spotlight com backdrop escuro para foco claro no elemento
Exibir celebração visual (confetti) ao completar o onboarding
Oferecer opção de re-assistir o tour em Configurações → Ajuda
Don't
Não bloquear a interface — sempre permitir escape/dismiss
Não exibir tour de mais de 7 steps (fadiga de onboarding)
Não repetir tour automaticamente a cada login
Não ocultar o botão "Pular" durante qualquer etapa
Não exigir conclusão de 100% do checklist para usar a plataforma
Não usar coachmarks em ações que o usuário já executou
96 — Offline Mode & Sync UI
Offline Mode & Sync UI
Padrões para operação sem conectividade em ambientes industriais — chão de fábrica com sinal instável, áreas de manutenção sem cobertura Wi-Fi e inspeções em campo. O SYSLED mantém funcionalidade crítica offline com fila de sincronização, indicadores de estado de rede, resolução de conflitos e feedback visual durante a reconexão.
Connection Status Bar
Barra fixa no topo da aplicação indicando o estado atual da conexão. Transiciona suavemente entre 4 estados com cores e ícones distintos.
Sinal fraco — alterações sendo enfileiradas localmente
Modo OfflineFila: 12 ações · Último sync: 14:32
Sem conexão — modo offline ativo, dados salvos localmente
Sincronizando...
8/12 ações
Reconectado — enviando ações da fila local para o servidor
Componentes Offline-Ready
Elementos da interface que adaptam seu comportamento e aparência visual quando operam sem conectividade. Badges, overlays e restrições visuais comunicam o estado ao usuário.
Componentes — Online vs Offline
Online
OS-3847Em Andamento
Troca de rolamento — Torno CNC #04
Técnico: Rafael Souza · Prazo: 12 Mar
Offline
OS-3847OFFLINE
Em Andamento
Troca de rolamento — Torno CNC #04
Técnico: Rafael Souza · Prazo: 12 Mar
2 alterações aguardando sync
Disponibilidade de Funcionalidades
Funcionalidade
Online
Offline
Visualizar OS
●
●
Criar/Editar OS
●
◐ fila
Registrar leituras sensor
●
●
Capturar fotos inspeção
●
●
Dashboard em tempo real
●
✕ snapshot
Relatórios & Export
●
✕
Notificações push
●
✕
● Disponível
◐ Parcial (enfileirado)
✕ Indisponível
Sync Queue — Fila de Sincronização
Painel acessível pelo ícone de sync na topbar. Mostra todas as ações pendentes com status individual, timestamp, prioridade e opção de retry manual.
Sync Queue Panel — Reconectando
Fila de Sync
5 ações pendentes
Sincronizando...3/5
Atualizar OS-3842 → Concluída
14:32 · Sync OK
Registrar leitura sensor T-104
14:33 · Sync OK
Upload foto inspeção — Prensa PH-200
Enviando... 2.4 MB / 3.1 MB
Criar OS-3848 — Manutenção preventiva
14:45 · Aguardando
Atualizar checklist Esteira E-03
Erro: timeout — tente novamente
Resolução de Conflitos
Quando o mesmo registro é editado offline por múltiplos usuários ou no servidor, o sistema detecta conflitos e apresenta uma interface de merge para o usuário decidir qual versão manter.
Conflict Resolution — Modal
Conflito Detectado
OS-3842 foi modificada enquanto você estava offline
Sua Versão (Local)
Status
Concluída
EDITADO
Observação
Rolamento substituído, testado OK às 16h
Editado há 45 min · Offline
Versão do Servidor
Status
Em Revisão
EDITADO
Observação
Supervisor solicitou revisão da peça
Editado há 30 min · Por: Carlos M.
Notificações de Estado
Toasts que informam transições de estado de rede em tempo real. Aparecem automaticamente e somem após a ação ser reconhecida.
Toasts — Transições de Rede
Conexão perdida
Modo offline ativado · Dados salvos localmente
Reconectado
Sincronizando 5 ações pendentes...
Sync concluído
5 ações sincronizadas com sucesso
1 conflito encontrado
OS-3842 precisa de revisão manual
Storage Local & Capacidade
Indicador do espaço utilizado pelo cache offline. Informa ao técnico quanto armazenamento local ainda está disponível e oferece opção de limpar dados antigos.
Storage Indicator — Configurações
Armazenamento Offline
127 MB de 200 MB utilizados
OS & Checklists70 MB
Leituras Sensor36 MB
Fotos Inspeção20 MB
Manuais & Docs1 MB
Especificações
Propriedade
Valor
Observação
Status bar posição
Fixed top, z-index: 9999
Acima de todos os elementos da UI
Status bar altura
36px
Compact; collapsa após 5s online
Offline detection
navigator.onLine + heartbeat
Ping a cada 30s para confirmar conectividade real
Sync queue storage
IndexedDB
Fila FIFO com prioridade por tipo de ação
Max offline storage
200 MB (configurável)
Alerta em 80% (160 MB); bloqueio em 95%
Sync retry strategy
Exponential backoff
1s → 2s → 4s → 8s → max 60s entre retries
Conflict detection
updatedAt timestamp
Compara versão local vs servidor
Conflict resolution
Manual (modal) ou auto-merge
Auto-merge para campos não conflitantes
Offline badge
Barra tracejada vermelha no topo do card
repeating-linear-gradient
Toast duração
Offline: persistente; Online: 5s
Conflito: persistente até ação do usuário
Service Worker cache
Cache-first para assets; Network-first para dados
Precache de rotas críticas no install
Acessibilidade
role="status", aria-live="polite"
Anúncia mudanças de estado para screen readers
Do's & Don'ts
Do
Pré-cachear dados críticos (OS abertas, checklists, manuais) ao detectar boa conexão
Exibir claramente quais ações foram salvas localmente e aguardam sync
Permitir o técnico trabalhar normalmente com feedback visual de "modo offline"
Apresentar conflitos lado a lado com diff visual para decisão informada
Usar exponential backoff para retries — nunca bombardear o servidor
Indicar capacidade restante de armazenamento local
Don't
Não bloquear a interface inteira ao perder conexão — manter funcionalidade offline
Não descartar dados locais sem confirmação explícita do usuário
Não resolver conflitos automaticamente sem mostrar ao usuário o que mudou
Não enfileirar ações destrutivas (delete) offline sem warning extra
Não exibir dados em tempo real sem indicar que são snapshot (pode estar desatualizado)
Não ignorar o limite de storage — alertar antes de atingir o máximo