Projekti GNOME publikoi lëshimin e parë stabil të bibliotekës Libadwaita, e cila përfshin një grup komponentësh për stilizimin e ndërfaqes së përdoruesit, në përputhje me rekomandimet GNOME HIG (Udhëzimet mbi Ndërfaqen Njerëzore). Biblioteka përmban ndërfaqe të gatshme dhe objekte për ndërtimin e aplikacioneve që i përmbahen stilit të përgjithshëm GNOME, ndërfaqet e të cilave mund të adaptohen për ekranet e çdo madhësie. Kodi i bibliotekës është shkruar në gjuhën C dhe shpërndahet nën licencën LGPL 2.1+.

Biblioteka libadwaita përdoret në kombinim me GTK4 dhe përfshin komponentë të temës Adwaita të përdorur në GNOME, të cilat janë nxjerrë nga GTK në një bibliotekë të veçantë. Kodi i libadwaita bazohet në bibliotekën libhandy dhe pozicionohet si një zëvendësues i kësaj biblioteke, e cila fillimisht u krijua për ndërtimin e një ndërfaqe adaptative në platforma mobile duke përdorur teknologjitë GNOME dhe është përshtatur në ambientin GNOME Phosh për smartphone-in Librem 5.
Biblioteka përfshin widget-e standarde që mbulojnë elemente të ndryshme të ndërfaqes, si lista, panelet, blloqet e redaktimit, butonat, skedat, format e kërkimit, dritaret dialoguese e të tjera. Widget-at e propozuara lejojnë krijimin e ndërfaqeve universale, të cilat funksionojnë organikisht si në ekranet e mëdha të PC-ve dhe laptopëve, ashtu edhe në ekranet e vogla të prekes për smartphone. Ndëfaqja e aplikacioneve ndryshon dinamikisht në varësi të madhësisë së ekranit dhe pajisjeve të disponueshme të hyrjes. Biblioteka gjithashtu përfshin një grup stilesh Adwaita, që i sjell pamjet në përputhje me rekomandimet GNOME, pa pasur nevojë për adaptim manual.
Shkëputja e elementeve të dizajnit të GNOME në një bibliotekë të veçantë lejon zhvillimin e ndryshimeve të nevojshme për GNOME veçmas nga GTK, duke i dhënë mundësi zhvilluesve të GTK të fokusohen në bazat, ndërsa zhvilluesit e GNOME të avancojnë më shpejt dhe me fleksibilitet ndryshimet e nevojshme të stilit pa ndikuar në vetë GTK. Megjithatë, një qasje e tillë krijon vështirësi për zhvilluesit e mjediseve të tjera përdoruesve të bazuar në GTK, të cilët detyrohen ose të përdorin libadwaita dhe t'i përshtaten karakteristikave të GNOME dhe të ripërsërisin stilin e tij, ose të zhvillojnë një variant të tyre të bibliotekës së stilit për GTK, duke u pajtuar me faktin se aplikacionet GNOME do të duken të paqëndrueshme në mjediset që përdorin biblioteka të tjera stilesh.
Ankesa kryesore e zhvilluesve të mjediseve të jashtme është lidhur me problemet e mbi-shkrimit të ngjyrave të elementeve të ndërfaqes, por zhvilluesit e libadwaita po punojnë për ofrimin e një API për menaxhimin fleksibël të ngjyrave, që do të përfshihet në një nga lëshimet e ardhshme. Ndër problemet e pazgjidhura përmendet gjithashtu funksionimi i saktë i widget-eve të kontrollit të gjestit vetëm në ekranet prekëse — për touchpad-et, funksionimi i tillë do të sigurohet më vonë, pasi kërkon ndryshime në GTK.
Ndryshimet kryesore në libadwaita krahasuar me libhandy:
- Një koleksion i ri stilesh është rishikuar plotësisht. Tema e përdorur në GNOME, Adwaita, është ndarë nga GTK dhe është modernizuar, ndërsa tema e vjetër është e regjistruar në GTK me emrin «Default». Ndryshimi më i dukshëm i libadwaita nga tema «Default» vërehet në dizajnin e titujve të dritareve.

- Mekanizmat e lidhjes së ngjyrave me elementët dhe ndërrimi i ngjyrave gjatë funksionimit të aplikacionit janë ndryshuar (problemet lidhen me kalimin e libadwaita në SCSS, i cili kërkon ricompilim për ndërrimin e ngjyrës). Për të ndryshuar ngjyrat e elementëve, të cilat, për shembull, kërkohen në GNOME Web për të shënuar kalimin në modin inkognito, është aplikuar një metodë e propozuar në elementary OS dhe e bazuar në caktimin e një liste fikse ngjyrash të emëruara përmes «@define-color». Në këtë mënyrë, ngjyrat e shumë elementëve të ndërfaqes tani llogariten në raport me ngjyrën bazë të tekstit dhe ndryshojnë automatikisht, çka nuk lejon aplikacionet që të kontrollojnë plotësisht skemën e ngjyrave (zhvilluesit po punojnë për të eliminuar këtë kufizim).


- Cilësia e shfaqjes është rritur kur përdoren tema të errëta të dizajnit për shkak të ngjyrave më kontrastues që theksojnë elementet. Ngjyra theksuese (accent) është bërë më e ndritshme, dhe është shtuar një ngjyrë tjetër për theks që mund të ndryshojë për tema të errëta dhe të ndritshme.


- Një sasi e madhe e klasave të reja të stileve është shtuar për t'u përdorur në aplikacione. Për shembull, «.pill» për butona të mëdhenj të rrumbullakosur, mundësia e përdorimit të «.flat» në GtkHeaderBar, «.accent» për caktimin e ngjyrës së theksimit në etiketa, «.numeric» për tipografinë tabelare, «.card» për përdorimin e sfondit dhe hijes si në lista.

- Skedarët e mëdhenj monolitë SCSS janë ndarë në një koleksion prej skedarësh të vegjël me stile.
- Shtohet API për konfigurimin e stilit të errët dhe modin e kontrastit të lartë.

- Dokumentacioni është riparuar, për gjenerimin e të cilit tani përdoret mjeti gi-docgen.

- Shtohet API për animacionin, i cili mund të përdoret për krijimin e efekteve të kalimit kur zëvendëson një gjendje me një tjetër, si dhe për krijimin e efekteve të shtrëngatës (spring animation).

- Për tabulat e bazuara në AdwViewSwitcher është shtuar mundësia për të shfaqur etiketat me numrin e njoftimeve të papara.

- Shtohet klasa AdwApplication (nëntip i GtkApplication) për inicializimin automatik të Libadwaita dhe ngarkimin e stileve.
- Shtohet një grup përbërësish për lehtësimin e operacioneve standarde: AdwWindowTitle për vendosjen e titullit të dritares, AdwBin për lehtësimin e krijimit të nënklasave, AdwSplitButton për butona të kombinuar, AdwButtonContent për butona me ikonë dhe etiketë.
- Pastrimi i API-it është kryer.
Burimi: opennet.ru










