Выпуск бібліятэкі Libadwaita 1.0 для стварэння інтэрфейсаў у стылі GNOME

Праект GNOME апублікаваў першы стабільны выпуск бібліятэкі Libadwaita, у якую ўваходзяць набор кампанентаў для стылявога афармлення інтэрфейсу карыстальніка, які адпавядае рэкамендацыям GNOME HIG (Human Interface Guidelines). Бібліятэка ўключае ў сябе гатовыя фішкі і аб'екты для пабудовы прыкладанняў, якія адпавядаюць агульнаму стылю GNOME, інтэрфейс якіх можа адаптыўна падладжвацца пад экраны любога памеру. Код бібліятэкі напісаны на мове Сі і распаўсюджваецца пад ліцэнзіяй LGPL 2.1+.

Выпуск бібліятэкі Libadwaita 1.0 для стварэння інтэрфейсаў у стылі GNOME

Бібліятэка libadwaita выкарыстоўваецца ў спалучэнні з GTK4 і ўключае кампаненты выкарыстоўванай у GNOME тэмы афармлення 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

Дадаць каментар