.json, e o TYBA valida tudo antes de aceitar.
Os dois botões
Configurações → Aparência, na linha da seção Temas:
Importar tema… também está na paleta de comandos (
⌘P / Ctrl+Shift+P), no grupo Tema.
Importar pelas Configurações não aplica. O tema entra na grade; para usá-lo, clique nele. E clicar pode mudar o modo — veja Modo claro e escuro. Pela paleta de comandos é diferente: lá importar já aplica o tema.
O exemplo
É exatamente isto que o botão Copiar exemplo coloca na sua área de transferência. Edite as cores e importe.Os campos do topo
O
ui e o terminal são os dois opcionais, e omitir tem um significado útil:
- Sem
terminal, o tema herda a paleta de terminal do TYBA Dark ou do TYBA Light, conforme abase. - Sem
ui, a interface fica com as superfícies padrão daquela base.
{ "name": "Meu Tema", "base": "light" } é um tema válido — só não muda nada. E você só precisa declarar as chaves de ui que quer mudar; o resto herda da base.
ui — as 21 chaves
Qualquer chave fora desta lista é rejeitada. Todas são opcionais.
Tints, glows, cor de seleção, vidro e hover derivam sozinhos dos acentos. Não existe chave para eles — e é por isso que dá para escrever um tema com cinco cores e ele sair coerente.
terminal
A ordem do
ansi é a de sempre: as 8 normais e depois as 8 brilhantes.
As cores
Só hexadecimal, sempre com#:
red, rgb(0,0,0), hsl(...) e #ffff são todos rejeitados. A mensagem de erro diz qual chave estragou.
Nome, id e nomes reservados
O id do tema é o slug doname: minúsculas, e tudo que não é letra ou número vira hífen. Dracula Pro! vira dracula-pro. Café com Leite vira caf-com-leite — acentos não sobrevivem ao slug, mas o name que aparece na grade continua acentuado.
Se um nome só tem símbolos (___), o slug fica vazio e o import falha por nome inválido.
Dois imports com o mesmo slug: o segundo sobrescreve o primeiro, sem perguntar. A grade continua com uma entrada só.
Tamanho
O arquivo precisa ser um arquivo regular e ter no máximo 256 KB. Acima disso, recusado antes mesmo de ser lido como JSON.Quando dá errado
Erro de import vira um alerta do sistema com a mensagem de validação — chave errada, cor inválida, ansi de tamanho errado, nome reservado. Nada é gravado.Onde o tema mora
O import copia o arquivo, já normalizado, para a pasta de configuração do app:
O nome do arquivo é o id:
dracula-pro.json. O arquivo original de onde você importou não é usado depois — mexer nele não muda nada.
Você pode colocar
.json direto nessa pasta em vez de usar o botão. O TYBA lê a pasta toda ao listar os temas. Mas aí não há alerta: arquivo inválido é simplesmente ignorado e o tema não aparece. Arquivo cujo nome bate com um id embutido também é ignorado — o embutido sempre ganha.O que não existe
Apagou o
.json de um tema que estava em uso? O slot cai para o embutido daquela base na próxima leitura. O app não trava.Veja também
Os temas
Os 18 embutidos, antes de você escrever o seu.
Modo claro e escuro
Onde o seu tema vai cair depois de importado.