Libadwaita 1.8: el nuevo ciclo de desarrollo que acompaña a GNOME 49
El proyecto GNOME ha anunciado la llegada de Libadwaita 1.8, una actualización de la biblioteca que define el estilo visual y los componentes de interfaz de usuario del entorno de escritorio.
Esta nueva versión llega con nuevas herramientas para accesos directos, mayor flexibilidad en estilos y mejoras en el rendimiento, la biblioteca se mantiene como pieza central para que las aplicaciones sigan la filosofía de diseño del escritorio GNOME.
Principales novedades de Libadwaita 1.8
Uno de los mayores avances de esta nueva versión que se presenta de Libadwaita 1.8 fue separar los componentes visuales de GNOME de GTK, trasladando el tema Adwaita a una biblioteca independiente. Este movimiento otorga mayor autonomía al desarrollo de GNOME, que ahora puede implementar cambios de estilo y experimentar con nuevas ideas sin alterar la evolución de GTK. El resultado es un entorno más ágil, donde GTK se concentra en aspectos técnicos fundamentales mientras GNOME refuerza su identidad visual.
Otra de las novedades más destacadas de Libadwaita 1.8 se encuentra el reemplazo de la clase GtkShortcutsWindow, obsoleta desde GTK 4.18. Su sucesor, AdwShortcutsDialog, ofrece una interfaz simplificada para la navegación de accesos directos, con un rediseño que elimina estructuras poco utilizadas como las vistas y secciones redundantes. Este nuevo cuadro de diálogo organiza los atajos en secciones más claras, con títulos opcionales y un enfoque en la usabilidad, facilitando la experiencia tanto para desarrolladores como para usuarios.
Junto a este cambio, la clase AdwShortcutLabel sustituye a GtkShortcutLabel, manteniendo la funcionalidad esencial pero con un estilo más claro y un manejo más intuitivo de las combinaciones de teclas. A diferencia de su predecesor, no admite gestos ni íconos, dado que estas funciones habían generado inconsistencias entre aplicaciones y dispositivos. Con este rediseño, la documentación de gestos queda relegada a manuales y ayudas en línea, mientras que la presentación visual de los atajos se centra exclusivamente en teclados y controladores estándar.
Estilos más flexibles con CSS
La versión 1.8 también incorpora soporte para consultas de medios CSS, lo que permite definir estilos oscuros, claros y de alto contraste dentro del mismo archivo, sin necesidad de duplicar hojas de estilo. Esta innovación, sumada al uso de variables, abre la puerta a interfaces más consistentes y fáciles de mantener.
En cuanto a tipografía, se introdujo una clara distinción entre las fuentes para la interfaz (Adwaita Sans 11pt) y el contenido (Adwaita Sans 12pt), con mayor interlineado para mejorar la legibilidad en textos largos. La clase .document aprovecha este diseño para reforzar la claridad visual, mientras que la clase .body adopta por defecto un espaciado más amplio en varios widgets estándar.
Nuevas funciones en widgets y preferencias
Libadwaita 1.8 amplía sus capacidades en el área de preferencias y disposición de contenidos. AdwPreferencesGroup ahora puede vincularse directamente con modelos de lista mediante adw_preferences_group_bind_model(), y además acepta filas adicionales que no pertenezcan a la clase AdwPreferencesRow. Por su parte, AdwPreferencesPage permite insertar grupos en cualquier punto de la interfaz y añade métodos para inspeccionar elementos de forma más sencilla.
Otro avance es el nuevo método adw_wrap_box_remove_all() en AdwWrapBox, diseñado para eliminar todos los elementos secundarios de forma rápida, mientras que los hijos de GtkFlowBox ahora incluyen estilos predeterminados de resaltado al pasar el ratón o al ser activados.
Por último y no menos importante, también vale la pena mencionar que en esta versión también se han aplicado ajustes de rendimiento, reduciendo el uso de sombras en ventanas, cuadros de diálogo y elementos emergentes. Además, la clase AdwHeaderBar implementa compatibilidad con controles de ventana nativos de macOS, alineando la experiencia con otros sistemas operativos.
Finalmente se menciona que dentro de los planes para la próxima versión, se espera que se integre un widget de barra lateral genérico y un sustituto de la barra lateral de pila. No cubrirán todos los casos de uso (pero se espera que sea útil para el cuadro de diálogo de preferencias de Builder, pero no para la ventana principal), pero muchas aplicaciones no hacen nada extraordinario y debería ahorrarles mucho esfuerzo.
Si estás interesado en poder conocer más al respecto, puedes consultar los detalles en el siguiente enlace.