Projekti GNOME publikoi version e parë të qëndrueshme të bibliotekës Libadwaita, e cila përmban një set komponentesh për stilimin e ndërfaqeve të përdoruesit, në përputhje me rekomandimet e GNOME HIG (Udhëzimet për Ndërfaqen e Njerëzve). Biblioteka përfshin widgete dhe objekte të gatshme për ndërtimin e aplikacioneve që ndjekin stilin e përgjithshëm të GNOME, ndërfaqet e të cilëve mund të adaptohen për ekrane të ç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 së bashku me GTK4 dhe përfshin komponentet e temës së përdorur në GNOME, Adwaita, të cilat janë nxjerrë nga GTK në një bibliotekë të veçantë. Kodi i libadwaita është i bazuar në bibliotekën libhandy dhe pozicionohet si një zëvendësues i kësaj biblioteke, e cila fillimisht ishte krijuar për të ndërtuar ndërfaqe adaptuese në platformat mobile me teknologji GNOME, dhe është përmirësuar në mjedisin GNOME Phosh për smartphone-n 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, kutitë e dialogut dhe të tjerë. Widget-et e ofruara lejojnë krijimin e ndërfaqeve universale që funksionojnë natyrshëm si në ekranet e mëdha të PC-ve dhe laptopëve, ashtu edhe në ekranet e vogla me prekje të smartphone-ve. Ndërfaqja e aplikacioneve ndryshon dinamike në varësi të madhësisë së ekranit dhe pajisjeve të disponueshme të hyrjes. Biblioteka gjithashtu përfshin një grup stilesh Adwaita, që e sjell pamjen në përputhje me rekomandimet e GNOME, pa pasur nevojë për adaptim manual.
Shkëputja e elementeve vizuale të GNOME në një bibliotekë të veçantë lejon zhvillimin e ndryshimeve të nevojshme për GNOME të ndara nga GTK, duke i dhënë mundësi zhvilluesve të GTK të përqendrohen në gjërat bazë, ndërsa zhvilluesit e GNOME të avancojnë më shpejt dhe me fleksibilitet ndryshimet e nevojshme për stilin e tyre pa prekur GTK-në vetë. Megjithatë, një qasje e tillë krijon vështirësi për zhvilluesit e mjediseve të jashtme të përdoruesit të bazuar në GTK, të cilët janë të detyruar ose të përdorin libadwaita dhe të përshtaten me karakteristikat e GNOME dhe ta 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 e GNOME do të duken të pandryshueshme në mjediset e bazuara në bibliotekat e stilit të jashtëm.
DĂ«gji i rĂ«ndĂ«sishĂ«m i zhvilluesve tĂ« mjediseve tĂ« jashtme lidhet me problemet e rregullimit tĂ« ngjyrave tĂ« elementeve tĂ« ndĂ«rfaqes, por zhvilluesit e libadwaita po punojnĂ« pĂ«r ofrimin e API-sĂ« pĂ«r menaxhimin fleksibĂ«l tĂ« ngjyrave, e cila do tĂ« pĂ«rfshihet nĂ« njĂ« nga lĂ«shimet e ardhshme. NjĂ« problem tjetĂ«r i pazgjidhur pĂ«rmendet si funksionimi i saktĂ« i widgetĂ«ve tĂ« kontrollit tĂ« gjesteve vetĂ«m nĂ« ekranet me prekje â pĂ«r tastierĂ«t, funksionimi i tillĂ« do tĂ« sigurohet mĂ« vonĂ«, pasi kĂ«rkon ndryshime nĂ« GTK.
Ndryshimet kryesore në libadwaita krahasuar me libhandy:
- Një set stilesh i ri i rishikuar plotësisht. Tema e përdorur në GNOME, Adwaita, është ndarë nga GTK dhe është modernizuar, ndërsa tema e vjetër është ruajtur në GTK nën emrin "Default". Nga ndryshimet më të dukshme midis libadwaita dhe temës "Default" është ndryshimi i pamjes së titujve të dritareve.

- Mekanizmat e lidhjes së ngjyrave me elementët dhe ndryshimit të ngjyrave gjatë funksionimit të aplikacioneve janë modifikuar (problemet lidhen me kalimin e libadwaita në SCSS, i cili kërkon rindërtim për të ndryshuar ngjyrën). Për të ndryshuar ngjyrat e elementeve, siç kërkohet në GNOME Web për të treguar kalimin në modin incognito, është aplikuar metoda e propozuar në elementary OS e cila bazohet në përcaktimin e një liste fikse të ngjyrave të emëruara nëpërmjet "@define-color". Në këtë mënyrë, ngjyrat e shumë elementeve të ndërfaqes tani llogariten në raport me ngjyrën bazë të tekstes dhe ndryshohen automatikisht, duke mos lejuar aplikacionet të kontrollojnë plotësisht skemën e ngjyrave (zhvilluesit po punojnë në zgjidhjen e këtij kufizimi).


- Cilësia e paraqitjes është rritur kur përdoren tema të errëta përmes theksimit më kontrastues të elementëve. Ngjyra e theksit (accent) është bërë më e ndritshme, si dhe është shtuar një ngjyrë tjetër për theksimin, e cila mund të ndryshojë për temat e errëta dhe të ndritshme.


- Janë shtuar një sasi e madhe klasash të reja stilesh për përdorim në aplikacione. Për shembull, ".pill" për butona të mëdhenj të rrumbullakosur, mundësia për të përdorur ".flat" në GtkHeaderBar, ".accent" për të vendosur ngjyrën e akcentit në etiketa, ".numeric" për tipografinë tabelare, ".card" për përdorimin e sfondit dhe hijeve si në lista.

- Skedarët e mëdhenj monolitikë SCSS janë ndarë në një koleksion skedarësh të vegjël me stile.
- ĂshtĂ« shtuar njĂ« API pĂ«r konfigurimin e stilit tĂ« errĂ«t dhe modit me kontrast tĂ« lartĂ«.

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

- ĂshtĂ« shtuar njĂ« API pĂ«r animacionin, i cili mund tĂ« pĂ«rdoret pĂ«r tĂ« krijuar efekte kalimi kur zĂ«vendĂ«sohet njĂ« gjendje me njĂ« tjetĂ«r, si dhe pĂ«r tĂ« krijuar efekte elastike (spring animation).

- Për skedat me bazë AdwViewSwitcher është shtuar mundësia e shfaqjes së etiketave me numrin e njoftimeve të pa parë.

- ĂshtĂ« shtuar klasa AdwApplication (nĂ«nklasĂ« GtkApplication) pĂ«r inicializimin automatik tĂ« Libadwaita dhe ngarkimin e stileve.
- Shtojmë një koleksion widget-esh për të lehtësuar operacionet tipike: AdwWindowTitle për caktimin e titullit të dritares, AdwBin për të lehtësuar krijimin e nënklasave, AdwSplitButton për butonat e kombinuar, AdwButtonContent për butonat me ikonë dhe etiketë.
- ĂshtĂ« kryer pastrimi i API.
Burimi: opennet.ru










