Дата публикации:Sat, 13 Sep 2025 12:10:55 +0300
Проект GNOME опубликовал выпуск библиотеки Libadwaita 1.8, включающей набор компонентов для стилевого оформления интерфейса пользователя, соответствующего рекомендациям GNOME HIG (Human Interface Guidelines). Библиотека включает в себя готовые виджеты и объекты для построения приложений, соответствующих общему стилю GNOME, интерфейс которых может адаптивно подстраиваться под экраны любого размера. Код библиотеки написан на языке Си и распространяется под лицензией LGPL 2.1+.
Библиотека libadwaita используется в сочетании с GTK4 и включает компоненты используемой в GNOME темы оформления Adwaita, которые были вынесены из GTK в отдельную библиотеку. Вынос элементов визуального оформления GNOME в отдельную библиотеку позволяет развивать необходимые для GNOME изменения отдельно от GTK, что даёт возможность разработчикам GTK сосредоточиться на базовых вещах, а разработчикам GNOME более быстро и гибко продвигать необходимые для себя изменения стилевого оформления, не затрагивая сам GTK.
В библиотеку входят типовые виджеты, охватывающих различные элементы интерфейса, такие как списки, панели, блоки редактирования, кнопки, вкладки, формы поиска, диалоговые окна и т.п. Предложенные виджеты позволяют создавать универсальные интерфейсы, которые органично функционируют как на крупных экранах ПК и ноутбуков, так и на небольших сенсорных экранах смартфонов. Интерфейс приложений динамически меняется в зависимости от размера экрана и доступных устройств ввода. Библиотека также включает набор стилей Adwaita, приводящих внешний вид в соответствие с рекомендациями GNOME, без необходимости выполнения ручной адаптации. В новой версии:
- На смену классу GtkShortcutsWindow, объявленному устаревшим в GTK 4.18, в Libadwaita реализован новый класс AdwShortcutsDialog с реализацией диалога для навигации по доступным клавиатурным комбинациям. Новая реализация отличается полной переработкой и упрощением логики разделения на секции и группы. Разработчику предоставляется минимальный API, а для определения структуры и содержимого диалога применяются UI-файлы. Вместо GtkShortcutLabel для представления элементов предложен новый класс AwsShortcutLabel, который не поддерживает указание информации о экранных жестах и интеграцию пиктограмм, так как их использование приводило к путанице, а применение было ограничено (например, пиктограммы применялись только в приложении gnome-games для обозначения кнопок геймпадов). Добавлена возможность использования медиа-запросов CSS для для определения стилей тёмного и светлого оформления, а также обычного и контрастного представления одного и того же элемента. Разделены размеры шрифтов для контента (Adwaita Sans 12pt) и интерфейса (Adwaita Sans 11pt). Добавлен стилевой класс ".document" в котором для лучшей читаемости используется шрифт Adwaita Sans 12pt и увеличеный межстрочный интервал. Увеличен межстрочный интервал в стилевом классе ".body", который теперь применяется по умолчанию в некоторых штатных виджетах. Класс AdwPreferencesGroup разрешено использовать с моделями списков через метод adw_preferences_group_bind_model(). Также добавлена возможность добавлять во внутренний список строки, не являющиеся классом AdwPreferencesRow. В классе AdwPreferencesPage разрешено вставлять группы в любом месте, а не только в конце страницы. В классы AdwPreferencesGroup и AdwPreferencesPage добавлены методы adw_preferences_page_get_group() и adw_preferences_group_get_row() для инспектирования групп и строк. В класс AdwWrapBox добавлен метод adw_wrap_box_remove_all() для удаления всех дочерних элементов. Для дочерних элементов класса GtkFlowBox по умолчанию предоставлены стили для подсветки наведения мыши на элемент и активации элемента. В классе AdwHeaderBar реализована поддержка родных элементов управления окнами в macOS. Для повышения производительности сокращено использование теней для окон, диалогов и всплывающих окон.
Ссылка на оригинал: https://www.opennet.ru/opennews/art.shtml?num=63876