Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME

O projeto GNOME publicou a primeira versão estável da biblioteca Libadwaita, que inclui um conjunto de componentes para a estilização da interface do usuário, conforme as diretrizes GNOME HIG (Human Interface Guidelines). A biblioteca contém widgets e objetos prontos para a construção de aplicativos que seguem o estilo geral do GNOME, cuja interface pode se adaptar a telas de qualquer tamanho. O código da biblioteca é escrito em C e é distribuído sob a licença LGPL 2.1+.

Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME

A biblioteca libadwaita é usada em conjunto com o GTK4 e inclui componentes do tema Adwaita utilizado no GNOME, que foram extraídos do GTK para se tornarem uma biblioteca separada. O código da libadwaita é baseado na biblioteca libhandy e é posicionado como um substituto para essa biblioteca, que foi originalmente criada para construir interfaces adaptativas em plataformas móveis com tecnologias do GNOME, tendo sido aprimorada no ambiente GNOME Phosh para o smartphone Librem 5.

A biblioteca inclui widgets padronizados que abrangem vários elementos da interface, como listas, painéis, blocos de edição, botões, guias, formulários de pesquisa, janelas de diálogo, etc. Os widgets propostos permitem a criação de interfaces universais que funcionam de forma orgânica tanto em grandes telas de PCs e laptops quanto em pequenas telas sensíveis ao toque de smartphones. A interface das aplicações muda dinamicamente, dependendo do tamanho da tela e dos dispositivos de entrada disponíveis. A biblioteca também inclui um conjunto de estilos Adwaita, que ajustam a aparência de acordo com as diretrizes do GNOME, sem a necessidade de adaptação manual.

Extrair elementos de estilização do GNOME para uma biblioteca separada permite desenvolver as mudanças necessárias para o GNOME independentemente do GTK, dando assim a oportunidade aos desenvolvedores do GTK de se concentrarem no básico, enquanto os desenvolvedores do GNOME podem promover as alterações de estilo necessárias mais rapidamente e de forma mais flexível, sem afetar o próprio GTK. No entanto, essa abordagem cria dificuldades para desenvolvedores de ambientes de usuário independentes baseados em GTK, que são forçados a usar a libadwaita e se adaptar às características do GNOME, repetindo sua estilização, ou a desenvolver sua própria versão da biblioteca de estilos para o GTK, aceitando que os aplicativos do GNOME parecerão heterogêneos em ambientes baseados em bibliotecas de estilos de terceiros.

A principal insatisfação dos desenvolvedores de ambientes de terceiros diz respeito aos problemas de sobreposição de cores dos elementos da interface, mas os desenvolvedores da libadwaita estão trabalhando para fornecer uma API para gerenciamento flexível de cores, que será incluída em uma das próximas versões. Outra questão não resolvida mencionada é o funcionamento correto dos widgets de controle gestual apenas em telas sensíveis ao toque — para touchpads, o funcionamento correto desses widgets será assegurado posteriormente, pois requer mudanças no GTK.

As principais mudanças na libadwaita em comparação com a libhandy:

  • Um conjunto de estilos totalmente reformulado. O tema Adwaita usado no GNOME foi separado do GTK e modernizado, enquanto o antigo tema foi fixado no GTK sob o nome "Default". Uma das diferenças mais notáveis do libadwaita em relação ao tema "Default" é a mudança no design das janelas.
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • Os mecanismos de vinculação de cores aos elementos e a mudança de cores durante o uso do aplicativo foram alterados (os problemas estão relacionados ao fato de que o libadwaita passou a usar SCSS, que requer recompilação para trocar a cor). Para mudar as cores dos elementos, como é necessário no GNOME Web para indicar que se está em modo incógnito, foi aplicado um método sugerido no elementary OS, que se baseia em definir uma lista fixa de cores nomeadas através de "@define-color". Assim, as cores de muitos elementos da interface agora são calculadas em relação à cor base do texto e mudam automaticamente, o que não permite que os aplicativos controlem completamente o esquema de cores (os desenvolvedores estão trabalhando para resolver essa limitação).
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOMELançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • A qualidade de exibição com temas escuros foi aumentada por meio de um destaque mais contrastante dos elementos. A cor de destaque (accent) foi tornada mais brilhante, e uma nova cor de destaque foi adicionada, que pode variar entre os temas escuros e claros.
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOMELançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • Uma grande quantidade de novas classes de estilo foi adicionada para uso em aplicativos. Por exemplo, ".pill" para botões grandes e arredondados, a possibilidade de usar ".flat" no GtkHeaderBar, ".accent" para definir a cor de destaque em rótulos, ".numeric" para tipografia tabelar, ".card" para usar fundo e sombra como em listas.
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • Grandes arquivos SCSS monolíticos foram divididos em uma coleção de pequenos arquivos de estilo.
  • Uma API para personalizar o estilo escuro e o modo de alto contraste foi adicionada.
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • A documentação foi reestruturada, agora utilizando a ferramenta gi-docgen para sua geração.
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • Uma API para animação foi adicionada, permitindo criar efeitos de transição ao substituir um estado por outro, bem como criar efeitos de mola (spring animation).
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • Para as abas baseadas no AdwViewSwitcher, foi adicionada a capacidade de exibir rótulos com o número de notificações não lidas.
    Lançamento da biblioteca Libadwaita 1.0 para criação de interfaces no estilo GNOME
  • Foi adicionada a classe AdwApplication (subclasse de GtkApplication) para a inicialização automática do Libadwaita e o carregamento de estilos.
  • Foi adicionada uma coleção de widgets para simplificar operações típicas: AdwWindowTitle para definir o título da janela, AdwBin para facilitar a criação de subclasses filhas, AdwSplitButton para botões combinados e AdwButtonContent para botões com ícone e etiqueta.
  • Foi realizada uma limpeza na API.

Fonte: opennet.ru

Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS 🔥 Compre hospedagem confiável para sites com proteção contra DDoS, servidores VPS VDS | ProHoster