การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME

โครงการ GNOME ได้เผยแพร่ไลบรารี Libadwaita รุ่นเสถียรรุ่นแรก ซึ่งประกอบด้วยชุดส่วนประกอบสำหรับการออกแบบส่วนต่อประสานผู้ใช้ที่เป็นไปตาม GNOME HIG (แนวทางส่วนต่อประสานกับมนุษย์) ไลบรารีประกอบด้วยวิดเจ็ตและออบเจ็กต์สำเร็จรูปสำหรับสร้างแอปพลิเคชันที่สอดคล้องกับสไตล์ GNOME ทั่วไป ซึ่งอินเทอร์เฟซสามารถปรับให้เข้ากับหน้าจอทุกขนาดได้ รหัสไลบรารีเขียนด้วยภาษา C และเผยแพร่ภายใต้ใบอนุญาต LGPL 2.1+

การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME

ไลบรารี libadwaita ใช้ร่วมกับ GTK4 และรวมส่วนประกอบของธีม Adwaita ที่ใช้ใน GNOME ซึ่งถูกย้ายออกจาก GTK ไปยังไลบรารีแยกต่างหาก รหัส libadwaita อิงตามไลบรารี libhandy และอยู่ในตำแหน่งที่สืบทอดมาจากไลบรารีนี้ ซึ่งเดิมสร้างขึ้นเพื่อสร้างอินเทอร์เฟซแบบปรับได้ในแพลตฟอร์มมือถือที่ใช้เทคโนโลยี GNOME และได้รับการพัฒนาในสภาพแวดล้อม Phosh GNOME สำหรับสมาร์ทโฟน Librem 5

ไลบรารีประกอบด้วยวิดเจ็ตมาตรฐานที่ครอบคลุมองค์ประกอบอินเทอร์เฟซต่างๆ เช่น รายการ แผง บล็อกการแก้ไข ปุ่ม แท็บ แบบฟอร์มการค้นหา กล่องโต้ตอบ ฯลฯ วิดเจ็ตที่นำเสนอช่วยให้คุณสร้างอินเทอร์เฟซสากลที่ทำงานได้อย่างราบรื่นทั้งบนหน้าจอพีซีและแล็ปท็อปขนาดใหญ่ และบนหน้าจอสัมผัสขนาดเล็กของสมาร์ทโฟน อินเทอร์เฟซของแอปพลิเคชันเปลี่ยนแปลงแบบไดนามิกขึ้นอยู่กับขนาดหน้าจอและอุปกรณ์อินพุตที่มีอยู่ ไลบรารียังมีชุดสไตล์ Adwaita ที่ทำให้รูปลักษณ์สอดคล้องกับหลักเกณฑ์ของ GNOME โดยไม่จำเป็นต้องปรับด้วยตนเอง

การย้ายองค์ประกอบการจัดรูปแบบ GNOME ไปยังไลบรารีที่แยกจากกันทำให้การเปลี่ยนแปลงเฉพาะของ GNOME ได้รับการพัฒนาแยกจาก GTK ช่วยให้นักพัฒนา GTK มุ่งเน้นไปที่เนื้อหาหลักและนักพัฒนา GNOME จึงสามารถผลักดันการเปลี่ยนแปลงสไตล์ที่ต้องการได้อย่างรวดเร็วและยืดหยุ่นมากขึ้น โดยไม่ส่งผลกระทบต่อ GTK เอง อย่างไรก็ตาม วิธีการนี้สร้างปัญหาให้กับนักพัฒนาสภาพแวดล้อมผู้ใช้ที่ใช้ GTK บุคคลที่สาม ซึ่งถูกบังคับให้ใช้ libadwaita และปรับให้เข้ากับคุณลักษณะของ GNOME และจำลองการออกแบบ หรือพัฒนาไลบรารีสไตล์ GTK เวอร์ชันของตนเองและยอมรับ ลักษณะที่ปรากฏของแอปพลิเคชัน GNOME ต่างกันในสภาพแวดล้อมตามไลบรารีสไตล์ของบุคคลที่สาม

การร้องเรียนหลักจากนักพัฒนาเฟรมเวิร์กบุคคลที่สามเกี่ยวข้องกับปัญหาการแทนที่สีขององค์ประกอบอินเทอร์เฟซ แต่นักพัฒนา libadwaita กำลังทำงานเพื่อจัดหา API สำหรับการจัดการสีที่ยืดหยุ่น ซึ่งจะรวมอยู่ในรุ่นอนาคต ในบรรดาปัญหาที่ยังไม่ได้รับการแก้ไข มีการกล่าวถึงการทำงานที่ถูกต้องของวิดเจ็ตควบคุมด้วยท่าทางบนหน้าจอสัมผัสเท่านั้น - สำหรับทัชแพด การทำงานที่ถูกต้องของวิดเจ็ตดังกล่าวจะได้รับการรับรองในภายหลัง เนื่องจากจำเป็นต้องเปลี่ยนแปลง GTK

การเปลี่ยนแปลงที่สำคัญใน libadwaita เมื่อเทียบกับ libhandy:

  • ชุดรูปแบบที่ออกแบบใหม่ทั้งหมด ธีม Adwaita ที่ใช้ใน GNOME ได้ถูกลบออกจาก GTK และปรับปรุงให้ทันสมัยแล้ว และธีมเก่าได้รับการแก้ไขใน GTK ภายใต้ชื่อ "ค่าเริ่มต้น" หนึ่งในความแตกต่างที่เห็นได้ชัดเจนที่สุดระหว่าง libadwaita และธีม "ค่าเริ่มต้น" คือการเปลี่ยนแปลงในการออกแบบส่วนหัวของหน้าต่าง
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • กลไกในการผูกสีกับองค์ประกอบและการเปลี่ยนสีในขณะที่แอปพลิเคชันกำลังทำงานมีการเปลี่ยนแปลง (ปัญหาเกิดจากการที่ libadwaita เปลี่ยนเป็น SCSS ซึ่งต้องมีการสร้างใหม่เพื่อเปลี่ยนสี) หากต้องการเปลี่ยนสีขององค์ประกอบ ซึ่งจำเป็นในเว็บ GNOME เพื่อทำเครื่องหมายการเปลี่ยนไปใช้โหมดไม่ระบุตัวตน วิธีการที่เสนอในระบบปฏิบัติการระดับประถมศึกษาจะถูกนำมาใช้และขึ้นอยู่กับการระบุรายการสีที่กำหนดชื่อคงที่ผ่าน “@define-color” อย่างไรก็ตาม สีขององค์ประกอบอินเทอร์เฟซจำนวนมากได้รับการคำนวณโดยสัมพันธ์กับสีข้อความพื้นฐานและเปลี่ยนโดยอัตโนมัติ ซึ่งไม่อนุญาตให้แอปพลิเคชันควบคุมโทนสีได้อย่างสมบูรณ์ (นักพัฒนาซอฟต์แวร์กำลังทำงานเพื่อขจัดข้อจำกัดนี้)
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOMEการเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • คุณภาพการแสดงผลเพิ่มขึ้นเมื่อใช้ธีมสีเข้มเนื่องจากการเน้นองค์ประกอบที่ตัดกันมากขึ้น สีที่ถูกเน้นได้รับการปรับให้สว่างขึ้น และมีการเพิ่มสีไฮไลท์อื่นซึ่งสามารถเปลี่ยนแปลงได้สำหรับธีมสีเข้มและสีอ่อน
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOMEการเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • เพิ่มคลาสสไตล์ใหม่จำนวนมากเพื่อใช้ในแอปพลิเคชัน ตัวอย่างเช่น ".pill" สำหรับปุ่มโค้งมนขนาดใหญ่ ความสามารถในการใช้ ".flat" ใน GtkHeaderBar, ".accent" สำหรับการตั้งค่าสีเน้นในฉลาก, ".numeric" สำหรับการพิมพ์ตาราง, ".card" สำหรับการใช้พื้นหลัง และเงาตามรายการ
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • ไฟล์ SCSS แบบเสาหินขนาดใหญ่จะถูกแบ่งออกเป็นชุดของไฟล์สไตล์ที่มีขนาดเล็กลง
  • เพิ่ม API สำหรับการตั้งค่าสไตล์การออกแบบที่มืดและโหมดคอนทราสต์สูง
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • เอกสารประกอบได้รับการปรับปรุงใหม่ ขณะนี้มีการใช้ชุดเครื่องมือ gi-docgen เพื่อสร้างเอกสารดังกล่าว
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • เพิ่ม API ภาพเคลื่อนไหวแล้ว ซึ่งสามารถใช้เพื่อสร้างเอฟเฟกต์การเปลี่ยนผ่านเมื่อแทนที่สถานะหนึ่งด้วยอีกสถานะหนึ่ง รวมถึงสร้างแอนิเมชั่นในฤดูใบไม้ผลิด้วย
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • สำหรับแท็บที่ใช้ AdwViewSwitcher ได้มีการเพิ่มความสามารถในการแสดงป้ายกำกับพร้อมจำนวนการแจ้งเตือนที่ยังไม่ได้ดู
    การเปิดตัวไลบรารี Libadwaita 1.0 สำหรับการสร้างอินเทอร์เฟซแบบ GNOME
  • เพิ่มคลาส AdwApplication (คลาสย่อยของ GtkApplication) เพื่อเริ่มต้น Libadwaita และสไตล์การโหลดโดยอัตโนมัติ
  • มีการเพิ่มวิดเจ็ตที่เลือกเพื่อทำให้การดำเนินงานมาตรฐานง่ายขึ้น: AdwWindowTitle สำหรับตั้งชื่อหน้าต่าง, AdwBin เพื่อทำให้การสร้างคลาสย่อยย่อยง่ายขึ้น, AdwSplitButton สำหรับปุ่มรวม, AdwButtonContent สำหรับปุ่มที่มีไอคอนและป้ายกำกับ
  • ทำความสะอาด API แล้ว

ที่มา: opennet.ru

เพิ่มความคิดเห็น