发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库

GNOME 项目发布了 Libadwaita 库的第一个稳定版本,其中包括一组遵循 GNOME HIG(人机界面指南)的用户界面样式组件。 该库包含现成的小部件和对象,用于构建符合通用 GNOME 风格的应用程序,其界面可以自适应调整以适应任何尺寸的屏幕。 该库代码是用 C 语言编写的,并根据 LGPL 2.1+ 许可证分发。

发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库

libadwaita 库与 GTK4 结合使用,并包含 GNOME 中使用的 Adwaita 主题的组件,这些组件已从 GTK 移出到单独的库中。 libadwaita 代码基于 libhandy 库,并定位为该库的后继者,该库最初是为了在基于 GNOME 技术的移动平台中构建自适应界面而创建的,并在 Librem 5 智能手机的 Phosh GNOME 环境中进行了磨练。

该库包括涵盖各种界面元素的标准小部件,例如列表、面板、编辑块、按钮、选项卡、搜索表单、对话框等。 建议的小部件允许您创建通用界面,可以在大型 PC 和笔记本电脑屏幕以及智能手机的小型触摸屏上无缝运行。 应用程序界面根据屏幕尺寸和可用输入设备动态变化。 该库还包括一组 Adwaita 样式,使外观符合 GNOME 指南,无需手动调整。

将 GNOME 样式元素移至单独的库中,允许与 GTK 分开开发特定于 GNOME 的更改,从而使 GTK 开发人员可以专注于核心内容,而 GNOME 开发人员可以更快、更灵活地推进他们想要的样式更改,而不会影响 GTK 本身。 然而,这种方法给基于 GTK 的第三方用户环境的开发人员带来了困难,他们被迫要么使用 libadwaita 并适应 GNOME 的功能并复制其设计,要么开发自己的 GTK 样式库版本并接受基于第三方样式库的环境中 GNOME 应用程序的外观是异构的。

第三方框架开发人员的主要抱怨涉及覆盖界面元素颜色的问题,但 libadwaita 开发人员正在努力提供用于灵活颜色管理的 API,该 API 将包含在未来的版本中。 在未解决的问题中,还提到了手势控制小部件仅在触摸屏上的正确操作 - 对于触摸板,稍后将确保此类小部件的正确操作,因为它们需要更改 GTK。

libadwaita 与 libhandy 相比的主要变化:

  • 完全重新设计的样式集。 GNOME 中使用的 Adwaita 主题已从 GTK 中删除并进行了现代化改造,旧主题已在 GTK 中以“Default”名称修复。 libadwaita 和“默认”主题之间最显着的区别之一是窗口标题设计的变化。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 将颜色绑定到元素以及在应用程序运行时更改颜色的机制已更改(问题是由于 libadwaita 切换到 SCSS,这需要重新构建才能更改颜色)。 为了更改元素的颜色(例如,GNOME Web 中需要标记向隐身模式的过渡),使用了Elementary OS 中提出的方法,该方法基于通过“@define-color”指定固定的命名颜色列表。 然而,许多界面元素的颜色现在是相对于基本文本颜色进行计算并自动更改的,这不允许应用程序完全控制配色方案(开发人员正在努力消除此限制)。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 使用深色主题时,由于元素的对比度更高,显示质量得到了提高。 强调色变得更亮,并且添加了另一种高亮颜色,可以针对深色和浅色主题进行更改。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 添加了大量新样式类以供在应用程序中使用。 例如,“.pill”用于大圆形按钮,在 GtkHeaderBar 中使用“.flat”的能力,“.accent”用于在标签中设置强调色,“.numeric”用于表格排版,“.card”用于使用背景和列表中的阴影。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 大型整体 SCSS 文件被分为一组较小的样式文件。
  • 添加了用于设置深色设计风格和高对比度模式的API。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 该文档已被重新编写;现在使用 gi-docgen 工具包来生成它。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 添加了动画 API,可用于在用一种状态替换另一种状态时创建过渡效果,以及创建弹簧动画。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 对于基于 AdwViewSwitcher 的选项卡,添加了显示带有未查看通知数量的标签的功能。
    发布用于创建 GNOME 风格界面的 Libadwaita 1.0 库
  • 添加AdwApplication类(GtkApplication的子类)来自动初始化Libadwaita和加载样式。
  • 添加了一系列小部件来简化标准操作:AdwWindowTitle 用于设置窗口标题,AdwBin 用于简化子子类的创建,AdwSplitButton 用于组合按钮,AdwButtonContent 用于带有图标和标签的按钮。
  • API已清理。

来源: opennet.ru

添加评论