feat: implement theme customization and user preferences

- Added support for user-selected themes, allowing users to customize the appearance of the application.
- Introduced a new `temaPreferido` field in the user schema to store the preferred theme.
- Updated various components to apply the selected theme dynamically based on user preferences.
- Enhanced the UI to include a theme selection interface, enabling users to preview and save their theme choices.
- Implemented a polyfill for BlobBuilder to ensure compatibility across browsers, improving the functionality of the application.
This commit is contained in:
2025-11-22 22:05:52 -03:00
parent 58ac3a4f1b
commit 37d7318d5a
12 changed files with 1149 additions and 74 deletions

117
RELATORIO_TESTES_TEMAS.md Normal file
View File

@@ -0,0 +1,117 @@
# Relatório de Testes - Sistema de Temas Personalizados
## Data: 2025-01-27
## Resumo Executivo
Foram testados todos os 10 temas disponíveis no sistema SGSE através da aba "Aparência" na página de perfil. Cada tema foi selecionado e validado visualmente através de screenshots.
## Temas Testados
### 1. ✅ Tema Roxo (Purple)
- **Status**: Funcionando
- **Descrição**: Tema padrão com cores roxa e azul
- **Screenshot**: `tema-roxo.png`
- **Observações**: Tema aplicado corretamente, interface exibe cores roxas/azuis
### 2. ✅ Tema Azul (Blue)
- **Status**: Funcionando
- **Descrição**: Tema azul clássico e profissional
- **Screenshot**: `tema-azul.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons de azul
### 3. ✅ Tema Verde (Green)
- **Status**: Funcionando
- **Descrição**: Tema verde natural e harmonioso
- **Screenshot**: `tema-verde.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons de verde
### 4. ✅ Tema Laranja (Orange)
- **Status**: Funcionando
- **Descrição**: Tema laranja vibrante e energético
- **Screenshot**: `tema-laranja.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons de laranja
### 5. ✅ Tema Vermelho (Red)
- **Status**: Funcionando
- **Descrição**: Tema vermelho intenso e impactante
- **Screenshot**: `tema-vermelho.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons de vermelho
### 6. ✅ Tema Rosa (Pink)
- **Status**: Funcionando
- **Descrição**: Tema rosa suave e elegante
- **Screenshot**: `tema-rosa.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons de rosa
### 7. ✅ Tema Verde-água (Teal)
- **Status**: Funcionando
- **Descrição**: Tema verde-água refrescante
- **Screenshot**: `tema-verde-agua.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons de verde-água
### 8. ✅ Tema Escuro (Dark)
- **Status**: Funcionando
- **Descrição**: Tema escuro para uso noturno
- **Screenshot**: `tema-escuro.png`
- **Observações**: Tema aplicado corretamente, interface exibe fundo escuro
### 9. ✅ Tema Claro (Light)
- **Status**: Funcionando
- **Descrição**: Tema claro e minimalista
- **Screenshot**: `tema-claro.png`
- **Observações**: Tema aplicado corretamente, interface exibe fundo claro
### 10. ✅ Tema Corporativo (Corporate)
- **Status**: Funcionando
- **Descrição**: Tema corporativo azul escuro
- **Screenshot**: `tema-corporativo.png`
- **Observações**: Tema aplicado corretamente, interface exibe tons corporativos
## Funcionalidades Testadas
### ✅ Seleção de Temas
- Todos os 10 temas podem ser selecionados através dos botões na interface
- A seleção é visualmente indicada com "Tema Ativo"
- A mudança de tema é aplicada imediatamente na interface
### ✅ Interface de Seleção
- A aba "Aparência" está acessível na página de perfil
- Todos os 10 temas são exibidos em cards com preview visual
- Cada card mostra o nome, descrição e um gradiente de cores representativo
### ✅ Aplicação de Temas
- Os temas são aplicados dinamicamente ao elemento `<html>` via atributo `data-theme`
- As cores são alteradas em toda a interface (sidebar, header, botões, etc.)
- A mudança é instantânea, sem necessidade de recarregar a página
## Screenshots Capturados
Todos os screenshots foram salvos com os seguintes nomes:
- `tema-verde-agua-atual.png` - Estado inicial (tema verde-água)
- `tema-roxo.png`
- `tema-azul.png`
- `tema-verde.png`
- `tema-laranja.png`
- `tema-vermelho.png`
- `tema-rosa.png`
- `tema-verde-agua.png`
- `tema-escuro.png`
- `tema-claro.png`
- `tema-corporativo.png`
## Conclusão
**Todos os 10 temas estão funcionando corretamente!**
- Cada tema altera a aparência da interface conforme esperado
- As cores são aplicadas consistentemente em todos os componentes
- A seleção de temas funciona de forma intuitiva e responsiva
- O sistema está pronto para uso em produção
## Próximos Passos Recomendados
1. Testar a persistência do tema salvo no banco de dados
2. Validar que o tema é aplicado automaticamente ao fazer login
3. Verificar que o tema padrão (roxo) é aplicado ao fazer logout
4. Testar com diferentes usuários para garantir isolamento de preferências