Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil

GNOME-projektet har publicerat den första stabila utgåvan av Libadwaita-biblioteket, som inkluderar en uppsättning komponenter för användargränssnittsstyling som följer GNOME HIG (Human Interface Guidelines). Biblioteket innehåller färdiga widgets och objekt för att bygga applikationer som överensstämmer med den allmänna GNOME-stilen, vars gränssnitt kan anpassas till skärmar av alla storlekar. Bibliotekskoden är skriven i C och distribueras under licensen LGPL 2.1+.

Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil

Libadwaita-biblioteket används tillsammans med GTK4 och inkluderar komponenter av Adwaita-temat som används i GNOME, som har flyttats från GTK till ett separat bibliotek. Libadwaita-koden är baserad på libhandy-biblioteket och är placerad som en efterföljare till detta bibliotek, som ursprungligen skapades för att bygga ett adaptivt gränssnitt i mobila plattformar baserat på GNOME-teknologier, och finslipades i Phosh GNOME-miljön för Librem 5-smarttelefonen.

Biblioteket innehåller standardwidgetar som täcker olika gränssnittselement, såsom listor, paneler, redigeringsblock, knappar, flikar, sökformulär, dialogrutor, etc. De föreslagna widgetarna låter dig skapa universella gränssnitt som fungerar sömlöst både på stora skärmar på PC och bärbara datorer och på små pekskärmar på smartphones. Applikationsgränssnittet ändras dynamiskt beroende på skärmstorleken och tillgängliga inmatningsenheter. Biblioteket innehåller också en uppsättning Adwaita-stilar som ger utseendet och känslan till GNOMEs riktlinjer utan behov av manuell anpassning.

Genom att flytta GNOME-stylingelement till ett separat bibliotek kan GNOME-specifika ändringar utvecklas separat från GTK, vilket gör att GTK-utvecklare kan fokusera på kärnsakerna och GNOME-utvecklare att snabbare och flexibelt driva framåt stylingändringar de vill ha utan att påverka själva GTK. Detta tillvägagångssätt skapar dock svårigheter för utvecklare av tredjeparts GTK-baserade användarmiljöer, som tvingas antingen använda libadwaita och anpassa sig till funktionerna i GNOME och replikera dess design, eller utveckla sin egen version av GTK-stilbiblioteket och acceptera utseende av GNOME-applikationer heterogena i miljöer baserade på tredjepartsbibliotek.

Det huvudsakliga klagomålet från ramverksutvecklare från tredje part gäller problem med att åsidosätta färgerna på gränssnittselement, men libadwaita-utvecklarna arbetar på att tillhandahålla ett API för flexibel färghantering, som kommer att inkluderas i en framtida utgåva. Bland de olösta problemen nämns också den korrekta driften av widgets för geststyrning endast på pekskärmar - för pekplattor kommer korrekt drift av sådana widgets att säkerställas senare, eftersom de kräver ändringar av GTK.

Stora förändringar i libadwaita jämfört med libhandy:

  • Helt omgjord uppsättning stilar. Adwaita-temat som används i GNOME har tagits bort från GTK och moderniserats, och det gamla temat har fixats i GTK under namnet "Default". En av de mest märkbara skillnaderna mellan libadwaita och "Standard"-temat är förändringen i designen av fönsterrubriker.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Mekanismerna för att binda färger till element och ändra färger medan applikationen körs har ändrats (problemen beror på att libadwaita bytte till SCSS, vilket kräver en ombyggnad för att byta färger). För att ändra färgerna på element, vilket till exempel krävs i GNOME Web för att markera övergången till inkognitoläge, används metoden som föreslås i elementärt OS och baseras på att specificera en fast lista med namngivna färger via "@define-color". Men färgerna för många gränssnittselement beräknas nu i förhållande till bastextfärgen och ändras automatiskt, vilket inte tillåter applikationer att helt kontrollera färgschemat (utvecklare arbetar för att eliminera denna begränsning).
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stilRelease av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Visningskvaliteten har höjts när du använder mörka teman på grund av mer kontrasterande framhävning av element. Accentfärgen har gjorts ljusare, och ytterligare en högdagerfärg har lagts till, som kan ändras för mörka och ljusa teman.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stilRelease av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Lade till en stor del av nya stilklasser för användning i applikationer. Till exempel ".pill" för stora rundade knappar, möjligheten att använda ".flat" i GtkHeaderBar, ".accent" för att sätta en accentfärg i etiketter, ".numeric" för tabelltypografi, ".card" för att använda bakgrunden och skugga som i listor.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Stora monolitiska SCSS-filer är uppdelade i en samling mindre stilfiler.
  • Tillagt API för att ställa in mörk designstil och högkontrastläge.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Dokumentationen har omarbetats, gi-docgen verktygslåda används nu för att generera den.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Ett animations-API har lagts till, som kan användas för att skapa övergångseffekter när man ersätter ett tillstånd med ett annat, samt för att skapa våranimationer.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • För flikar baserade på AdwViewSwitcher har möjligheten att visa etiketter med antalet ej visade aviseringar lagts till.
    Release av Libadwaita 1.0-biblioteket för att skapa gränssnitt i GNOME-stil
  • Lade till AdwApplication-klassen (underklass av GtkApplication) för att automatiskt initiera Libadwaita och ladda stilar.
  • Ett urval av widgets har lagts till för att förenkla standardoperationer: AdwWindowTitle för att ställa in fönstertiteln, AdwBin för att förenkla skapandet av underklasser, AdwSplitButton för kombinerade knappar, AdwButtonContent för knappar med en ikon och en etikett.
  • API rengjort.

Källa: opennet.ru

Lägg en kommentar