Temas
O Studio da Turian e seus jogos compilados compartilham uma única camada de
GUI (DVUI, internamente chamada "Guinevere"), e um único sistema de temas
sobre ela. Um asset .uitheme descreve cores e arredondamento de
cantos; o mesmo asset pode ser escolhido como o chrome do próprio Studio, ou
como o tema com o qual um jogo compilado inicia sua UI.
O asset .uitheme
Um arquivo .uitheme é JSON. Ele cobre:
- Cores base:
fill,fill_hover,fill_press,text,text_hover,text_press,border,focus, e uma flagdark. - Sete grupos de estilo, cada um sobrescrevendo as cores base para um papel:
control(botões),window(canvas raiz e barra de abas),highlight(seleção/itens de menu),err(ações destrutivas),app1(chrome do corpo do painel de dock — veja abaixo), eapp2/app3(reservados para uso específico de projeto). corner— tipo e raio de canto padrão do widget (square/round/chamfer/…).panel_border_width— espessura da borda do painel de dock, em pixels lógicos. Um tema pode deixá-la em seu padrão ou defini-la como0para ocultar completamente as bordas dos painéis.font_family— um nome de família de fonte sugerido opcional (deve já estar carregada — veja Fontes abaixo). Vazio mantém as fontes do tema base.
window (o canvas raiz e a barra de abas) e app1 (corpos dos painéis de
dock) recebem deliberadamente cores de preenchimento/borda distintas em
todo preset nativo, para que o limite de um painel seja identificável à
primeira vista em vez de se misturar ao resto do chrome.
O tamanho da fonte deliberadamente não faz parte de um .uitheme — ele
permanece uma configuração independente de escopo do Studio (veja Tamanho
de fonte e zoom abaixo) para que não mude toda
vez que você troca de tema.
Crie um a partir do Asset Browser: clique com o botão direito → Create →
UI/Theme → um dos cinco presets nativos (um ponto de partida que você
depois edita), ou dê duplo clique em um asset .uitheme existente para
abrir seu editor no Inspector — um seletor de cor por papel, além de um
painel de preview ao vivo.
Presets nativos
Cinco temas são distribuídos com o engine e estão sempre disponíveis, mesmo sem nenhum projeto aberto: Dark, Light, Dark High Contrast, Darcula e Catppuccin.
Tema, tamanho de fonte e zoom do Studio
Dois lugares equivalentes controlam a aparência do próprio Studio:
- Settings → UI — um painel com um dropdown Theme, sliders Font Size e Zoom, botões Import/Export, e o seletor System Font abaixo. As alterações se aplicam ao Save.
- View → Theme — um menu para alterações rápidas sem uma etapa de Save separada. Passar o mouse sobre uma entrada de tema faz uma prévia instantânea (afastar o mouse dela, ou fechar o menu sem clicar, reverte para o que estava realmente selecionado); clicar em uma entrada a seleciona e persiste imediatamente. Os sliders de Font Size e Zoom aqui também se aplicam e persistem instantaneamente, sem etapa de prévia ao passar o mouse.
Ambos gravam na mesma preferência de escopo do Studio, armazenada em
~/.turian/settings.json / <project>/.turian/settings.json —
independente de qualquer asset .uitheme de um único projeto.
Zoom (0.7×–1.5×) escala o chrome de botões/abas/menus além da escala de exibição do seu SO, mas deliberadamente não muda o tamanho com que o texto é renderizado — Font Size (8–20) é uma configuração absoluta separada para que você possa ajustar um tamanho de leitura confortável independentemente de quanto o resto do chrome está ampliado.
Importação e exportação
O Studio mantém temas do usuário em uma pasta global, ~/.turian/themes/,
separada de qualquer projeto único. Import Theme… (ao lado do dropdown
de tema) copia um arquivo .uitheme de qualquer lugar no disco para essa
pasta, tornando-o disponível no dropdown imediatamente. Export Theme…
grava o tema atualmente selecionado de volta em um arquivo que você pode
compartilhar ou versionar fora de um projeto.
Fontes
Um .uitheme pode sugerir uma família de fonte via font_family (Settings
→ UI ou o editor Inspector do tema), aplicada com melhor esforço — o dvui
recorre silenciosamente ao padrão se essa família não estiver carregada.
Para uma família que genuinamente não está embutida, use Settings → UI →
System Font → Browse… para escolher qualquer arquivo .ttf/.otf
acessível através da caixa de diálogo de arquivos do seu SO (que é, na
prática, como você acessa as fontes do sistema instaladas no Windows, macOS
e Linux igualmente). Ela sobrescreve as fontes de todo tema até ser limpa,
independentemente de qual .uitheme está ativo.
O tema do jogo compilado
As Configurações do Projeto
de um projeto têm um campo UI Theme sob Boot, contendo o GUID de um
asset .uitheme. Quando definido, o jogo compilado carrega esse tema na
inicialização e inicia sua UI com ele em vez do padrão de claro/escuro do
SO — exatamente o mesmo formato de asset e código de resolução de cor que o
próprio Studio usa, então o que você vê na prévia do Inspector do
.uitheme corresponde ao que é distribuído.
Deixe-o vazio para manter o comportamento atual: o jogo segue a preferência de claro/escuro do SO sem sobreposição de tema.