Problema
As cores da TUI estao todas hardcoded em crates/jcode-tui-style/src/theme.rs. Nao ha temas alternativos, dark/light mode, ou customizacao pelo usuario.
O que precisa ser feito
1. Estrutura de temas declarativos
Criar struct Theme com campos para todas as cores semanticas: bg_primary, bg_secondary, text_primary, text_secondary, text_dim, user_message_bg, user_message_text, ai_message_bg, ai_message_text, tool_bg, tool_text, tool_border, accent, error, warning, success, info, header_bg, header_text, status_bar_bg, status_bar_text, sidebar_bg, sidebar_text, sidebar_border, input_bg, input_border, input_text, input_placeholder, code_block_bg, code_block_text, blockquote_bar, diff_add, diff_del, scrollbar_thumb, scrollbar_track.
2. Temas built-in
- dark (default, cores atuais refinadas)
- light (cores claras para terminais com fundo claro)
- high-contrast (para acessibilidade)
3. Arquivos de tema carregaveis
- Formato TOML em ~/.jcode/themes/*.toml
- Suporte a cores hex (#1a1b26)
4. Comando /theme
- /theme list — lista temas disponiveis
- /theme set — aplica tema
- /theme preview — preview temporario
- /theme reload — recarrega temas do disco
5. Hot-reload de tema
- Mudar tema sem reiniciar servidor
- Persistir escolha em config.toml
Arquivos a modificar
- crates/jcode-tui-style/src/theme.rs — refatorar para usar Theme struct
- crates/jcode-tui-style/src/color.rs — adicionar parse_hex_color()
- src/tui/ui_theme.rs — consumir Theme do config
- crates/jcode-config-types/src/lib.rs — adicionar theme field
- Novo: src/theme_loader.rs — carregar temas de ~/.jcode/themes/
- src/tui/app/ — comando /theme
Problema
As cores da TUI estao todas hardcoded em crates/jcode-tui-style/src/theme.rs. Nao ha temas alternativos, dark/light mode, ou customizacao pelo usuario.
O que precisa ser feito
1. Estrutura de temas declarativos
Criar struct Theme com campos para todas as cores semanticas: bg_primary, bg_secondary, text_primary, text_secondary, text_dim, user_message_bg, user_message_text, ai_message_bg, ai_message_text, tool_bg, tool_text, tool_border, accent, error, warning, success, info, header_bg, header_text, status_bar_bg, status_bar_text, sidebar_bg, sidebar_text, sidebar_border, input_bg, input_border, input_text, input_placeholder, code_block_bg, code_block_text, blockquote_bar, diff_add, diff_del, scrollbar_thumb, scrollbar_track.
2. Temas built-in
3. Arquivos de tema carregaveis
4. Comando /theme
5. Hot-reload de tema
Arquivos a modificar