Випуск бібліотеки Libadwaita 1.0 для створення інтерфейсів у стилі GNOME

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

Випуск бібліотеки Libadwaita 1.0 для створення інтерфейсів у стилі GNOME

Бібліотека libadwaita використовується в поєднанні з GTK4 і включає компоненти теми оформлення Adwaita, що використовуються в GNOME, які були винесені з 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:

  • Повністю перероблений набір стилів. Тема оформлення Adwaita, що використовується в GNOME, винесена зі складу 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

Додати коментар або відгук