GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi

GNOME Projesi, GNOME HIG'yi (İnsan Arayüzü Yönergeleri) takip eden kullanıcı arayüzü stili için bir dizi bileşen içeren Libadwaita kütüphanesinin ilk kararlı sürümünü yayınladı. Kütüphane, arayüzü her boyuttaki ekrana uyarlanabilir şekilde ayarlanabilen, genel GNOME stiline uygun uygulamalar oluşturmak için hazır widget'lar ve nesneler içerir. Kütüphane kodu C dilinde yazılmıştır ve LGPL 2.1+ lisansı altında dağıtılmaktadır.

GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi

Libadwaita kütüphanesi, GTK4 ile birlikte kullanılır ve GNOME'da kullanılan, GTK'dan ayrı bir kütüphaneye taşınan Adwaita temasının bileşenlerini içerir. Libadwaita kodu, libhandy kütüphanesini temel alır ve başlangıçta GNOME teknolojilerini temel alan mobil platformlarda uyarlanabilir bir arayüz oluşturmak için oluşturulan ve Librem 5 akıllı telefon için Phosh GNOME ortamında geliştirilen bu kütüphanenin halefi olarak konumlandırılmıştır.

Kitaplık, listeler, paneller, düzenleme blokları, düğmeler, sekmeler, arama formları, iletişim kutuları vb. gibi çeşitli arayüz öğelerini kapsayan standart widget'lar içerir. Önerilen widget'lar, hem büyük PC ve dizüstü bilgisayar ekranlarında hem de akıllı telefonların küçük dokunmatik ekranlarında sorunsuz bir şekilde çalışan evrensel arayüzler oluşturmanıza olanak tanır. Uygulama arayüzü, ekran boyutuna ve mevcut giriş cihazlarına bağlı olarak dinamik olarak değişir. Kitaplık ayrıca, manuel uyarlamaya gerek kalmadan görünümü GNOME yönergeleriyle uyumlu hale getiren bir dizi Adwaita stili içerir.

GNOME stil öğelerinin ayrı bir kitaplığa taşınması, GNOME'a özgü değişikliklerin GTK'dan ayrı olarak geliştirilmesine olanak tanıyarak, GTK geliştiricilerinin temel öğelere odaklanmasına ve GNOME geliştiricilerinin, GTK'nın kendisini etkilemeden istedikleri stil değişikliklerini daha hızlı ve esnek bir şekilde ileri itmelerine olanak tanır. Ancak bu yaklaşım, ya libadwaita'yı kullanıp GNOME'un özelliklerine uyum sağlamak ve tasarımını kopyalamak ya da GTK tarzı kitaplığın kendi sürümünü geliştirip kabul etmek zorunda kalan üçüncü taraf GTK tabanlı kullanıcı ortamlarının geliştiricileri için zorluklar yaratır. GNOME uygulamalarının üçüncü taraf tarzı kitaplıklara dayalı ortamlarda heterojen görünümü.

Üçüncü taraf çerçeve geliştiricilerinin ana şikayeti, arayüz öğelerinin renklerinin geçersiz kılınmasıyla ilgili sorunlarla ilgilidir, ancak libadwaita geliştiricileri, gelecekteki bir sürüme dahil edilecek olan esnek renk yönetimi için bir API sağlamak üzerinde çalışıyor. Çözülmemiş sorunlar arasında, hareket kontrolü widget'larının yalnızca dokunmatik ekranlarda doğru çalışmasından da bahsediliyor - dokunmatik yüzeyler için, GTK'da değişiklik yapılmasını gerektirdiğinden bu tür widget'ların doğru çalışması daha sonra sağlanacak.

Libadwaita'da libhandy'ye kıyasla büyük değişiklikler:

  • Tamamen yeniden tasarlanmış stil seti. GNOME'da kullanılan Adwaita teması GTK'dan kaldırılarak modernize edilmiş, eski tema ise GTK'da “Varsayılan” adı altında düzeltilmiştir. Libadwaita ile "Varsayılan" tema arasındaki en göze çarpan farklardan biri, pencere başlıklarının tasarımındaki değişikliktir.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Renkleri öğelere bağlama ve uygulama çalışırken renkleri değiştirme mekanizmaları değiştirildi (sorunlar, libadwaita'nın renkleri değiştirmek için yeniden oluşturma gerektiren SCSS'ye geçmesinden kaynaklanıyor). Örneğin GNOME Web'de gizli moda geçişi işaretlemek için gerekli olan öğelerin renklerini değiştirmek için, temel işletim sisteminde önerilen yöntem kullanılır ve "@define-color" aracılığıyla adlandırılmış renklerin sabit bir listesinin belirtilmesine dayanır. Ancak birçok arayüz öğesinin renkleri artık temel metin rengine göre hesaplanıyor ve otomatik olarak değişiyor; bu da uygulamaların renk düzenini tam olarak kontrol etmesine izin vermiyor (geliştiriciler bu sınırlamayı ortadan kaldırmak için çalışıyor).
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesiGNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Öğelerin daha kontrastlı bir şekilde vurgulanması nedeniyle koyu temalar kullanıldığında görüntü kalitesi artırıldı. Vurgu rengi daha parlak hale getirildi ve koyu ve açık temalara göre değişebilen başka bir vurgu rengi eklendi.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesiGNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Uygulamalarda kullanılmak üzere yeni stil sınıflarının büyük bir kısmı eklendi. Örneğin, büyük yuvarlak düğmeler için ".pill", GtkHeaderBar'da ".flat" kullanma yeteneği, etiketlerde vurgu rengini ayarlamak için ".accent", tablo tipografisi için ".numeric", arka planı kullanmak için ".card" ve listelerdeki gibi gölge.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Büyük monolitik SCSS dosyaları, daha küçük stil dosyalarından oluşan bir koleksiyona bölünür.
  • Koyu tasarım stilini ve yüksek kontrast modunu ayarlamak için API eklendi.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Dokümantasyon yeniden düzenlendi; onu oluşturmak için artık gi-docgen araç seti kullanılıyor.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Bir durumu diğeriyle değiştirirken geçiş efektleri oluşturmak ve ayrıca bahar animasyonu oluşturmak için kullanılabilecek bir animasyon API'si eklendi.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • AdwViewSwitcher'ı temel alan sekmeler için, görüntülenmeyen bildirimlerin sayısını içeren etiketleri görüntüleme özelliği eklendi.
    GNOME tarzı arabirimler oluşturmak için Libadwaita 1.0 kitaplığının piyasaya sürülmesi
  • Libadwaita'yı otomatik olarak başlatmak ve stilleri yüklemek için AdwApplication sınıfı (GtkApplication'ın alt sınıfı) eklendi.
  • Standart işlemleri basitleştirmek için bir dizi widget eklendi: Pencere başlığını ayarlamak için AdwWindowTitle, alt alt sınıfların oluşturulmasını kolaylaştırmak için AdwBin, birleştirilmiş düğmeler için AdwSplitButton, simgeli ve etiketli düğmeler için AdwButtonContent.
  • API temizlendi.

Kaynak: opennet.ru

Yorum ekle