O ShellUI agora possui um sistema de temas avançado que permite aos usuários customizar completamente a aparência da interface, desde cores até animações e efeitos visuais.
- Default - Tema padrão limpo e minimalista
- Ocean - Inspirado no oceano profundo (tons azuis)
- Forest - Inspirado na natureza (tons verdes)
- Sunset - Cores quentes do pôr do sol (tons laranja/vermelho)
- Midnight - Tema escuro elegante para uso noturno
- Candy - Tema colorido e divertido (tons rosa/roxo)
- Corporate - Tema profissional para ambientes corporativos
- Terminal - Inspirado em terminais clássicos (verde sobre preto)
- Clique no botão "Customizar Tema" no canto inferior direito da tela
- Escolha um tema predefinido ou customize as cores manualmente
- Use a visualização em tempo real para ver as mudanças
- Exporte seu tema personalizado para compartilhar com outros
# config.yaml
title: "ShellUI - Modern Shell Interface"
theme: ocean # Tema padrão
# Configuração avançada de tema
theme_config:
# Tema padrão
default_preset: "ocean"
# Tema personalizado
custom_theme:
name: "Meu Tema Personalizado"
description: "Tema customizado para minha organização"
mode: "system" # light, dark, system
# Cores personalizadas (formato HSL)
colors:
primary: "220 90% 30%"
accent: "220 90% 25%"
background: "220 20% 98%"
foreground: "220 90% 10%"
commandSuccess: "142 76% 36%"
commandError: "0 84% 60%"
commandWarning: "38 92% 50%"
commandInfo: "217 91% 60%"
# Tipografia
fontFamily: "Inter, system-ui, sans-serif"
borderRadius: "0.5rem"
# Animações
animation:
duration: "0.2s"
easing: "ease-out"
# Efeitos visuais
effects:
blur: "8px"
shadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1)"
glow: "0 0 20px rgba(59, 130, 246, 0.5)"
# Temas específicos por comando
command_themes:
- id: "system-info"
theme:
colors:
primary: "142 76% 36%"
accent: "142 76% 30%"
- id: "docker-ps"
theme:
colors:
primary: "200 100% 50%"
accent: "200 100% 40%"
- id: "restart-service"
theme:
colors:
primary: "0 84% 60%"
accent: "0 84% 50%"O sistema suporta temas que mudam automaticamente baseado no contexto:
command_themes:
- id: "docker-ps"
theme:
colors:
primary: "200 100% 50%"command_themes:
- id: "system-commands"
conditions:
category: "Sistema"
theme:
colors:
primary: "142 76% 36%"command_themes:
- id: "dangerous-commands"
conditions:
tags: ["dangerous", "system"]
theme:
colors:
primary: "0 84% 60%"command_themes:
- id: "error-state"
conditions:
status: "error"
theme:
colors:
primary: "0 84% 60%"As cores são definidas no formato HSL (Hue, Saturation, Lightness):
- Hue: 0-360 (matiz)
- Saturation: 0-100% (saturação)
- Lightness: 0-100% (luminosidade)
Exemplo: "220 90% 30%" = Azul escuro
primary- Cor principal dos botões e elementos de destaqueprimaryForeground- Cor do texto sobre fundo primáriosecondary- Cor secundáriasecondaryForeground- Cor do texto sobre fundo secundárioaccent- Cor de destaqueaccentForeground- Cor do texto sobre fundo de destaque
background- Cor de fundo principalforeground- Cor do texto principalcard- Cor de fundo dos cardscardForeground- Cor do texto nos cardspopover- Cor de fundo dos popoverspopoverForeground- Cor do texto nos popovers
commandSuccess- Cor para comandos bem-sucedidoscommandError- Cor para erroscommandWarning- Cor para avisoscommandInfo- Cor para informações
muted- Cor para elementos suavesmutedForeground- Cor do texto suavedestructive- Cor para ações destrutivasdestructiveForeground- Cor do texto sobre fundo destrutivoborder- Cor das bordasinput- Cor de fundo dos inputsring- Cor do foco
fontFamily: "Inter, system-ui, sans-serif"
fontSize:
xs: "0.75rem"
sm: "0.875rem"
base: "1rem"
lg: "1.125rem"
xl: "1.25rem"
"2xl": "1.5rem"
"3xl": "1.875rem"borderRadius: "0.5rem"
spacing:
xs: "0.25rem"
sm: "0.5rem"
md: "1rem"
lg: "1.5rem"
xl: "2rem"
"2xl": "3rem"animation:
duration: "0.2s"
easing: "ease-out" # ease-in, ease-in-out, linear, cubic-bezier()effects:
blur: "8px"
shadow: "0 4px 6px -1px rgba(0, 0, 0, 0.1)"
glow: "0 0 20px rgba(59, 130, 246, 0.5)"- Abra o customizador de temas
- Clique em "Exportar"
- O arquivo JSON será baixado automaticamente
- Abra o customizador de temas
- Cole o JSON do tema na área de importação
- Clique em "Importar"
{
"name": "Meu Tema",
"description": "Descrição do tema",
"mode": "system",
"colors": {
"primary": "220 90% 30%",
"accent": "220 90% 25%",
// ... outras cores
},
"fontFamily": "Inter, system-ui, sans-serif",
"borderRadius": "0.5rem",
"animation": {
"duration": "0.2s",
"easing": "ease-out"
},
"effects": {
"blur": "8px",
"shadow": "0 4px 6px -1px rgba(0, 0, 0, 0.1)",
"glow": "0 0 20px rgba(59, 130, 246, 0.5)"
}
}theme: corporate
theme_config:
custom_theme:
colors:
primary: "220 90% 30%"
accent: "220 90% 25%"
fontFamily: "Inter, system-ui, sans-serif"
borderRadius: "0.25rem"theme: terminal
theme_config:
custom_theme:
fontFamily: "JetBrains Mono, Consolas, monospace"
colors:
primary: "120 100% 50%"
background: "0 0% 0%"
foreground: "120 100% 50%"theme: midnight
theme_config:
custom_theme:
colors:
commandSuccess: "142 76% 36%"
commandError: "0 84% 60%"
commandWarning: "38 92% 50%"import { useAdvancedTheme } from '@/components/advanced-theme-provider'
function MyComponent() {
const {
currentTheme,
setTheme,
customizeTheme,
exportTheme,
importTheme
} = useAdvancedTheme()
// Mudar para um tema predefinido
setTheme('ocean')
// Customizar tema atual
customizeTheme({
colors: {
primary: '200 100% 50%'
}
})
// Exportar tema
const themeJSON = exportTheme()
// Importar tema
importTheme(themeJSON)
}import { useCommandTheme } from '@/hooks/useCommandTheme'
function CommandExecutor({ commandId, category }) {
useCommandTheme({
commandId,
category,
tags: ['dangerous'],
status: 'success',
commandThemes: [
{
id: 'dangerous-commands',
conditions: { tags: ['dangerous'] },
theme: {
colors: { primary: '0 84% 60%' }
}
}
]
})
return <div>...</div>
}- Mantenha contraste adequado entre texto e fundo
- Use cores de status consistentes (verde=sucesso, vermelho=erro, etc.)
- Teste com diferentes temas de sistema (claro/escuro)
- Considere usuários com daltonismo ao escolher cores
- Temas são aplicados via CSS custom properties
- Mudanças são instantâneas e otimizadas
- Temas são salvos no localStorage
- Funciona em todos os navegadores modernos
- Suporte completo para modo escuro/claro
- Responsivo em todos os dispositivos
- Temas sazonais automáticos
- Temas baseados em horário do dia
- Temas colaborativos
- Galeria de temas da comunidade
- Temas animados
- Temas baseados em localização
- Temas para diferentes tipos de usuário (admin, user, guest)