Estou criando um aplicativo que usa ícones simbólicos do tema padrão.
No entanto, existem alguns ícones que eu preciso que não podem ser representados por aqueles do tema padrão, então estou criando meus próprios.
O que fiz foi simplesmente acessar /usr/share/icons/gnome/scalable/actions/
, copiar alguns localmente na árvore de fontes do meu aplicativo que poderia servir de base e começar a editá-los.
Por enquanto, tudo bem. Mas notei o seguinte: todos os ícones simbólicos são de cor cinza claro quando se olha para o arquivo .svg original, mas quando são colocados em um widget, ficam mais escuros.
Aqui está um exemplo, usando o /usr/share/icons/gnome/scalable/actions/view-refresh-symbolic.svg
ícone do tema padrão:
- Aqui está o que parece ao abrir o original com o Inkscape:
- E aqui está o que parece em uma barra de ferramentas em um aplicativo em execução:
Observe o ícone sendo muito mais escuro no tempo de execução. Isso acontece tanto com os temas Ambiance quanto Radiance.
Eu não me importaria muito, mas notei que isso afeta meu ícone personalizado, em que partes dele ficam mais escuras (preenchimento interno), enquanto outras permanecem da mesma cor que o original (o traço).
Então, o que faz os ícones simbólicos padrão escurecerem e como implementar isso nos meus ícones personalizados?
fonte
Respostas:
#bebebeff
). Eles podem ser coloridos com base nofg_color
valor definido pelo tema emsettings.ini
(GTK3) ougtkrc
(GTK2); ou nofg_color
definido no CSS (GTK3).fg_color
) é definida como cinza escuro (#4c4c4c
)/usr/share/themes/Ambiance/gtk-3.0/settings.ini
, motivo pelo qual os ícones simbólicos parecem mais escuros.Para que os ícones simbólicos personalizados tenham a mesma aparência, remova o traçado e use apenas preenchimento com o valor RGBA definido como
#bebebeff
; caso contrário, o traçado sempre aparecerá como definido (por exemplo, cinza ou qualquer cor).Isso nos fornece um ícone simbólico "MyRefresh" bonito e com aparência uniforme:
fonte
#bebebeff
?fg_color
(ele usa libRSVG ); obviamente, o mecanismo diferencia os preenchimentos e os traços e parece ser codificado para aplicar-sefg_color
apenas ao preenchimento, deixando o traço como está. Ele pode fazê-lo porque SVG é um formato vetorizado (parametrizada), enquanto que para os ícones de bitmap de costume, é todos os pixels apenas :)Ícones simbólicos geralmente são definidos pelo tema usando a propriedade "color", que é sua grande vantagem, eles ficam bem em qualquer fundo. No entanto, você pode carregá-los com sua própria cor.
Exemplo de código vala:
fonte