Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME

Проектът GNOME публикува първото стабилно издание на библиотеката Libadwaita, която включва набор от компоненти за стилово оформяне на потребителския интерфейс, съответстващи на насоките GNOME HIG (Human Interface Guidelines). Библиотеката включва готови widgets и обекти за изграждане на приложения, които съответстват на общия стил на GNOME, а интерфейсът им може адаптивно да се настройва за екрани с различен размер. Кодът на библиотеката е написан на C и се разпространява под лиценз LGPL 2.1+.

Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME

Библиотеката libadwaita се използва в комбинация с GTK4 и включва компоненти на темата за оформление Adwaita, която е била отделена от GTK. Кодът на libadwaita е базиран на библиотеката libhandy и се позиционира като наследник на тази библиотека, която първоначално е създадена за изграждане на адаптивни интерфейси на мобилни платформи с технологии на GNOME и е била дооформена в GNOME-околната среда Phosh за смартфона Librem 5.

Библиотеката включва стандартни виджети, покриващи различни елементи на интерфейса, като списъци, панели, блокове за редактиране, бутони, раздели, търсещи форми, диалогови прозорци и др. Предложените виджети позволяват създаването на универсални интерфейси, които функционират органично както на големи екрани на компютри и лаптопи, така и на малки сензорни екрани на смартфони. Интерфейсът на приложенията динамично се променя в зависимост от размера на екрана и наличните устройства за въвеждане. Библиотеката също така включва набор от стилове Adwaita, които коригират външния вид в съответствие с препоръките на GNOME, без необходимост от ръчна адаптация.

Изнасянето на елементите на визуалното оформление на GNOME в отделна библиотека позволява развитието на необходимите за GNOME промени извън GTK, което дава възможност на разработчиците на GTK да се фокусират върху основните неща, а на разработчиците на GNOME да напредват по-бързо и гъвкаво с необходимите за тях изменения в стиловото оформление, без да засягат самия GTK. Въпреки това, този подход създава трудности за разработчиците на трети страни, създаващи потребителски среди на база GTK, които трябва или да използват libadwaita и да се адаптират към особеностите на GNOME и да повтарят неговото оформление, или да разработят собствен вариант на библиотеката за стилове за GTK, примирявайки се с факта, че приложенията на GNOME ще изглеждат нееднородно в околните среди, изградени на база стилови библиотеки на трети страни.

Основното недоволство на разработчиците на трети страни се състои в проблемите с преопределянето на цветовете на елементите на интерфейса, но разработчиците на libadwaita работят по предоставянето на API за гъвкаво управление на цветовете, който ще бъде включен в един от следващите версии. Сред нерешените проблеми се споменава и коректната работа на джаджите за управление на жестове само на сензорни екрани — за тъчпадовете коректната работа на подобни джаджи ще бъде осигурена по-късно, тъй като изисква изменения в GTK.

Основни изменения в libadwaita в сравнение с libhandy:

  • Изцяло преработен набор от стилове. Използваната в GNOME тема на оформление Adwaita е изнесена от GTK и модернизирана, а старата тема на оформление е фиксирана в GTK под името „Default“. Сред най-забележимите различия на libadwaita от темата „Default“ е промененото оформление на заглавията на прозорците.
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Променени са механизмите за свързване на цветовете с елементите и сменяне на цветовете по време на работа на приложението (проблемите са свързани с това, че libadwaita премина на SCSS, който изисква повторно компилиране за замяна на цвета). За смяна на цветовете на елементите, което например е необходимо в GNOME Web за отбелязване на преминаването в инкогнито режим, е приложен метод, предложен в elementary OS и основан на задаването на фиксиран списък с именувани цветове чрез „@define-color“. При това много от елементите на интерфейса вече се изчисляват относително на базовия цвят на текста и се променят автоматично, което не позволява на приложенията напълно да контролират цветната схема (разработчиците работят по отстраняването на това ограничение).
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOMEИздание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Повишено е качеството на визуализация при използване на тъмни теми на оформление чрез по-контрастно подчертаване на елементите. Акцентният цвят (accent) е направен по-ярък, а също така е добавен още един цвят за подчертаване, който може да се променя за тъмната и светлата тема.
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOMEИздание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Добавен е голям брой нови стилови класове за използване в приложения. Например, „.pill“ за големи закръглени бутони, възможността за използване на „.flat“ в GtkHeaderBar, „.accent“ за задаване на цвят на акцента в етикетите, „.numeric“ за таблична типография, „.card“ за използване на фон и сянка, както в списъците.
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Големите монолитни SCSS файлове са разделени на колекция от малки файлове със стилове.
  • Добавен API за настройка на тъмен стил и режим на висока контрастност.
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Преработена е документацията, за чието генериране сега се прилага инструментариума gi-docgen.
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Добавен е API за анимации, който може да се използва за създаване на преходни ефекти при смяна на състояния, както и за извършване на пружиниращи анимации (spring animation).
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • За табовете, базирани на AdwViewSwitcher, е добавена възможност за показване на етикети с броя на непрочетените известия.
    Издание на библиотеката Libadwaita 1.0 за създаване на интерфейси в стил GNOME
  • Добавен е клас AdwApplication (подклас на GtkApplication) за автоматична инициализация на Libadwaita и за зареждане на стиловете.
  • Добавен е комплект от виджети за опростяване на типични операции: AdwWindowTitle за задаване на заглавие на прозореца, AdwBin за опростяване на създаването на дъщерни подкласове, AdwSplitButton за комбинирани бутони, AdwButtonContent за бутони с икона и етикет.
  • Проведена е пречистване на API.

Източник: opennet.ru

Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри 🔥 Купете надежден хостинг за сайтове със защита от DDoS, VPS и VDS сървъри | ProHoster