Release of the Libadwaita 1.8 library for creating GNOME-style interfaces

The GNOME Project has published the release of the Libadwaita 1.8 library, which includes a set of components for styling the user interface that complies with the GNOME HIG (Human Interface Guidelines) recommendations. The library includes ready-made widgets and objects for building applications that comply with the general GNOME style, the interface of which can adapt responsively to screens of any size. The library code is written in C language and distributed under the LGPL 2.1+ license.

The libadwaita library is used in conjunction with GTK4 and includes components of the Adwaita skin used in GNOME, which have been moved out of GTK into a separate library. Moving GNOME visuals into a separate library allows GNOME-needed changes to be developed separately from GTK, allowing GTK developers to focus on the basics, and GNOME developers to more quickly and flexibly push styling changes for themselves without affecting GTK itself.

The library includes standard widgets covering various interface elements, such as lists, panels, editing blocks, buttons, tabs, search forms, dialog boxes, etc. The proposed widgets allow you to create universal interfaces that function seamlessly both on large screens of PCs and laptops, and on small touch screens of smartphones. The application interface dynamically changes depending on the screen size and available input devices. The library also includes a set of Adwaita styles that bring the look and feel to GNOME guidelines without the need for manual customization.

 Release of the Libadwaita 1.8 library for creating GNOME-style interfaces

In the new version:

  • To replace the GtkShortcutsWindow class, which was declared obsolete in GTK 4.18, Libadwaita implements a new AdwShortcutsDialog class with a dialog implementation for navigating through available keyboard shortcuts. The new implementation features a complete redesign and simplification of the logic for dividing into sections and groups. The developer is provided with a minimal API, and UI files are used to define the structure and contents of the dialog.

    Instead of GtkShortcutLabel, a new class AwsShortcutLabel is proposed to represent elements, which does not support specifying information about screen gestures and integrating icons, since their use led to confusion and was limited in its application (for example, icons were used only in the gnome-games application to indicate gamepad buttons).

     Release of the Libadwaita 1.8 library for creating GNOME-style interfaces
  • Added the ability to use CSS media queries to define dark and light styles, as well as normal and contrast presentation of the same element. Separated font sizes for content (Adwaita Sans 12pt) and interface (Adwaita Sans 11pt). Added the style class ".document" which uses the Adwaita Sans 12pt font and increased line spacing for better readability. Increased line spacing in the style class ".body", which is now used by default in some standard widgets.
     Release of the Libadwaita 1.8 library for creating GNOME-style interfaces
  • The AdwPreferencesGroup class is now allowed to be used with list models via the adw_preferences_group_bind_model() method. It is also possible to add rows to the internal list that are not of the AdwPreferencesRow class.
  • The AdwPreferencesPage class allows you to insert groups anywhere, not just at the end of the page.
  • The AdwPreferencesGroup and AdwPreferencesPage classes have been updated with adw_preferences_page_get_group() and adw_preferences_group_get_row() methods for inspecting groups and rows.
  • The adw_wrap_box_remove_all() method has been added to the AdwWrapBox class to remove all child elements.
  • Child elements of the GtkFlowBox class are provided with default styles for mouse hover highlighting and element activation.
  • The AdwHeaderBar class implements support for native macOS window controls.
  • To improve performance, the use of shadows for windows, dialogs, and pop-ups has been reduced.

Source: opennet.ru

Add a comment