Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME

Proyek GNOME telah menerbitkan rilis stabil pertama perpustakaan Libadwaita, yang mencakup serangkaian komponen untuk penataan antarmuka pengguna yang mengikuti GNOME HIG (Pedoman Antarmuka Manusia). Pustaka ini mencakup widget dan objek siap pakai untuk membangun aplikasi yang sesuai dengan gaya umum GNOME, antarmuka yang dapat disesuaikan secara adaptif dengan layar dengan ukuran berapa pun. Kode perpustakaan ditulis dalam C dan didistribusikan di bawah lisensi LGPL 2.1+.

Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME

Pustaka libadwaita digunakan bersama dengan GTK4 dan mencakup komponen tema Adwaita yang digunakan di GNOME, yang telah dipindahkan dari GTK ke pustaka terpisah. Kode libadwaita didasarkan pada perpustakaan libhandy dan diposisikan sebagai penerus perpustakaan ini, yang pada awalnya dibuat untuk membangun antarmuka adaptif pada platform seluler berdasarkan teknologi GNOME, dan diasah di lingkungan Phosh GNOME untuk ponsel pintar Librem 5.

Perpustakaan mencakup widget standar yang mencakup berbagai elemen antarmuka, seperti daftar, panel, blok pengeditan, tombol, tab, formulir pencarian, kotak dialog, dll. Widget yang diusulkan memungkinkan Anda membuat antarmuka universal yang berfungsi dengan lancar baik pada layar PC dan laptop besar, dan pada layar sentuh kecil pada ponsel cerdas. Antarmuka aplikasi berubah secara dinamis tergantung pada ukuran layar dan perangkat input yang tersedia. Perpustakaan juga menyertakan serangkaian gaya Adwaita yang menjadikan tampilan sesuai dengan pedoman GNOME tanpa memerlukan adaptasi manual.

Memindahkan elemen gaya GNOME ke perpustakaan terpisah memungkinkan perubahan khusus GNOME dikembangkan secara terpisah dari GTK, memungkinkan pengembang GTK untuk fokus pada hal-hal inti dan pengembang GNOME untuk lebih cepat dan fleksibel mendorong perubahan gaya yang mereka inginkan tanpa mempengaruhi GTK itu sendiri. Namun, pendekatan ini menimbulkan kesulitan bagi pengembang lingkungan pengguna berbasis GTK pihak ketiga, yang terpaksa menggunakan libadwaita dan beradaptasi dengan fitur-fitur GNOME dan mereplikasi desainnya, atau mengembangkan versi perpustakaan gaya GTK mereka sendiri dan menerima versi tersebut. tampilan aplikasi GNOME heterogen dalam lingkungan berdasarkan perpustakaan gaya pihak ketiga.

Keluhan utama dari pengembang kerangka kerja pihak ketiga berkaitan dengan masalah penggantian warna elemen antarmuka, namun pengembang libadwaita sedang berupaya menyediakan API untuk manajemen warna yang fleksibel, yang akan disertakan dalam rilis mendatang. Di antara masalah yang belum terselesaikan, pengoperasian yang benar dari widget kontrol gerakan hanya pada layar sentuh juga disebutkan - untuk touchpad, pengoperasian yang benar dari widget tersebut akan dipastikan nanti, karena memerlukan perubahan pada GTK.

Perubahan besar di libadwaita dibandingkan dengan libhandy:

  • Kumpulan gaya yang didesain ulang sepenuhnya. Tema Adwaita yang digunakan di GNOME telah dihapus dari GTK dan dimodernisasi, dan tema lama telah diperbaiki di GTK dengan nama β€œDefault”. Salah satu perbedaan paling mencolok antara libadwaita dan tema β€œDefault” adalah perubahan desain header jendela.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • Mekanisme untuk mengikat warna ke elemen dan mengubah warna saat aplikasi sedang berjalan telah diubah (masalahnya disebabkan oleh fakta bahwa libadwaita beralih ke SCSS, yang memerlukan pembangunan kembali untuk mengubah warna). Untuk mengubah warna elemen, yang misalnya diperlukan di Web GNOME untuk menandai transisi ke mode penyamaran, metode yang diusulkan dalam OS dasar digunakan dan didasarkan pada penentuan daftar tetap warna bernama melalui β€œ@define-color”. Namun, warna dari banyak elemen antarmuka kini dihitung relatif terhadap warna teks dasar dan berubah secara otomatis, sehingga aplikasi tidak dapat sepenuhnya mengontrol skema warna (pengembang berupaya menghilangkan batasan ini).
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOMERilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • Kualitas tampilan telah ditingkatkan saat menggunakan tema gelap karena penyorotan elemen yang lebih kontras. Warna aksen telah dibuat lebih terang, dan warna highlight lainnya telah ditambahkan, yang dapat berubah untuk tema gelap dan terang.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOMERilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • Menambahkan sebagian besar kelas gaya baru untuk digunakan dalam aplikasi. Misalnya, ".pill" untuk tombol bulat besar, kemampuan untuk menggunakan ".flat" di GtkHeaderBar, ".accent" untuk mengatur warna aksen pada label, ".numeric" untuk tipografi tabel, ".card" untuk menggunakan latar belakang dan bayangan seperti dalam daftar.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • File SCSS monolitik besar dibagi menjadi kumpulan file gaya yang lebih kecil.
  • Menambahkan API untuk mengatur gaya desain gelap dan mode kontras tinggi.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • Dokumentasinya telah dikerjakan ulang; toolkit gi-docgen sekarang digunakan untuk membuatnya.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • API animasi telah ditambahkan, yang dapat digunakan untuk membuat efek transisi saat mengganti satu keadaan dengan keadaan lainnya, serta untuk membuat animasi pegas.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • Untuk tab berdasarkan AdwViewSwitcher, kemampuan untuk menampilkan label dengan jumlah notifikasi yang belum dilihat telah ditambahkan.
    Rilis perpustakaan Libadwaita 1.0 untuk membuat antarmuka bergaya GNOME
  • Menambahkan kelas AdwApplication (subkelas GtkApplication) untuk menginisialisasi Libadwaita secara otomatis dan memuat gaya.
  • Pilihan widget telah ditambahkan untuk menyederhanakan operasi standar: AdwWindowTitle untuk mengatur judul jendela, AdwBin untuk menyederhanakan pembuatan subkelas anak, AdwSplitButton untuk tombol gabungan, AdwButtonContent untuk tombol dengan ikon dan label.
  • API dibersihkan.

Sumber: opennet.ru

Tambah komentar