Skip to main content
تخط المحتوى

الألوان والسمات في كيريغامي

اجعل تطبيقك يتبع نظام ألوان المستخدم

تمتلك كيريغامي لوحة ألوان تتبع ألوان النظام لتحسين التكامل مع المنصة التي تعمل عليها (مثل سطح مكتب بلازما، بلازما المحمول، جنوم، أندرويد، إلخ).

جميع مكونات كيريغامي QML وعناصر تحكم QtQuick تتبع هذه اللوحة مبدئيًا، لذا لا حاجة عادةً لتلوين مخصص لهذه العناصر.

يجب تلوين المكونات البدائية مثل Rectangle دائمًا باستخدام لوحة الألوان التي توفرها كيريغامي عبر الخاصية المرفقة Kirigami.Theme.

يُتجنب عادةً الألوان المقننة في QML مثل #32b2fa أو red؛ إذا كانت الحاجة ملحة لعناصر بألوان مخصصة، فيجب أن تكون في منطقة تستخدم ألوانًا مخصصة فقط (عادةً في منطقة المحتوى من التطبيق، وأبدًا في مناطق الإطار مثل أشرطة الأدوات أو الحوارات). مثلًا، لا يمكن استخدام لون أمامي مقنن black فوق خلفية Kirigami.Theme.backgroundColor، لأنه إذا استخدمت المنصة نظام ألوان داكنًا، ستكون النتيجة تباينًا ضعيفًا مع الأسود فوق الأسود تقريبًا. هذه مشكلة وصولية ويجب تجنبها.

السمة

Kirigami.Theme هي خاصية مرفقة، وبالتالي فهي متاحة للاستخدام لأي عنصر QML. تتضمن خصائصها جميع الألوان المتاحة في اللوحة، وأي لوحة يجب استخدامها، مثل خاصية colorSet.

import QtQuick
import org.kde.kirigami as Kirigami

Kirigami.ApplicationWindow {
    height: 300
    width: 400

    pageStack.initialPage: Kirigami.Page {
        Rectangle {
            anchors.centerIn: parent
            implicitHeight: 100
            implicitWidth: 200
            color: Kirigami.Theme.highlightColor
        }
    }
}

يوفر معرض كيريغامي مثالًا برمجيًا يعرض جميع الألوان المتاحة لكيريغامي عبر Kirigami.Theme. يشمل ذلك جميع حالاتها: إذا نقرت خارج النافذة، تتغير الألوان إلى حالتها غير النشطة، وإذا بدّلت نظامك إلى سمة داكنة، تظهر المتغيرات الداكنة للألوان في الوقت الفعلي.

مكون الألوان في معرض كيريغامي

مكون الألوان في معرض كيريغامي

مجموعة الألوان

اعتمادًا على موقع عنصر التحكم، يجب أن يستخدم مجموعة ألوان مختلفة: مثلًا، عند استخدام نظام ألوان Breeze الفاتح في العروض، تكون الخلفية العادية بيضاء تقريبًا، بينما في مناطق أخرى مثل أشرطة الأدوات أو الحوارات، يكون لون الخلفية العادية رماديًا.

إذا عرّفت مجموعة ألوان لعنصر، فسترثها جميع العناصر الفرعية تلقائيًا بشكل متكرر (إلا إذا ضُبطت الخاصية inherit صراحةً على false، ويجب فعل ذلك دائمًا عندما يريد المطور فرض مجموعة ألوان محددة)، لذا من السهل تغيير الألوان لتسلسل هرمي كامل من العناصر دون لمس أي من العناصر نفسها.

يدعم Kirigami.Theme 5 مجموعات ألوان مختلفة:

  • العرض: مجموعة ألوان لعروض العناصر، عادةً الأفتح بينها (في سمات الألوان الفاتحة)
  • النافذة: مجموعة ألوان للنوافذ ومناطق الإطار (هذه أيضًا مجموعة الألوان المبدئية)
  • الزر: مجموعة ألوان تستخدمها الأزرار
  • التحديد: مجموعة ألوان تستخدمها المناطق المحددة
  • التلميح: مجموعة ألوان تستخدمها التلميحات
  • المكمل: مجموعة ألوان مخصصة لتكون مكملة للنافذة: عادةً داكنة حتى في السمات الفاتحة. قد تُستخدم للتأكيد في مناطق صغيرة من التطبيق

هذا مثال يوضح كيف تُورث مجموعات الألوان ويمكن استخدامها لتمييز المكونات المختلفة. أُضيف حد كبير لتباين الألوان.

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
import QtQuick
import QtQuick.Controls as Controls
import org.kde.kirigami as Kirigami

// The comments assume the system uses the Breeze color theme

Kirigami.ApplicationWindow {
    height: 500
    width: 800

    Rectangle {
        anchors.fill: parent
        border.width: 5

        // A gray color will be used, as the default color set is Window
        color: Kirigami.Theme.backgroundColor

        Controls.Label {
            // The text will be near-black, as defined in the Window color set for light themes
            text: "Rectangle that uses default background color\nfrom the Window color set"
            padding: 100
        }
        Rectangle {
            anchors.bottom: parent.bottom
            border.width: 5
            width: parent.width
            height: Math.round(parent.height / 2)

            // Use the color set used for Views
            Kirigami.Theme.colorSet: Kirigami.Theme.View
            // Do not inherit from the parent
            Kirigami.Theme.inherit: false
            // This will be a near-white color in light themes
            color: Kirigami.Theme.backgroundColor

            Controls.Label {
                text: "Rectangle that does not inherit the default background color\nand uses the Theme.View color set"
                padding: 50

            }

            Rectangle {
                anchors.bottom: parent.bottom
                anchors.left: parent.left
                border.width: 5
                width: Math.round(parent.width / 2)
                height: Math.round(parent.height / 2)

                // This will be a near-white color too, as the color set
                // is inherited from the parent and will be View
                color: Kirigami.Theme.backgroundColor

                Controls.Label {
                    // The text will be near-black, as defined in the View color set for light themes
                    text: "Rectangle that inherits the Theme.View color set"
                    anchors.centerIn: parent
                }
            }

            Rectangle {
                anchors.bottom: parent.bottom
                anchors.right: parent.right
                border.width: 5
                width: Math.round(parent.width / 2)
                height: Math.round(parent.height / 2)

                // Use the Complementary set
                Kirigami.Theme.colorSet: Kirigami.Theme.Complementary
                // Do not inherit from the parent
                Kirigami.Theme.inherit: false
                // This will be near-black as the background color
                // of the Complementary color set is dark in light themes
                color: Kirigami.Theme.backgroundColor

                Controls.Label {
                    // The text will be near-white, as defined in the Complementary color set for light themes
                    text: "Rectangle that does not inherit the Theme.View\nand uses Theme.Complementary instead"
                    anchors.centerIn: parent
                }
            }
        }
    }
}
كيف تختلف مجموعات الألوان في Breeze

كيف تختلف مجموعات الألوان في Breeze

كيف تختلف مجموعات الألوان في Breeze الداكن

كيف تختلف مجموعات الألوان في Breeze الداكن

استخدام الألوان المخصصة

رغم أنه لا يُشجع استخدام الألوان المقننة، تقدم كيريغامي طريقة أكثر قابلية للصيانة لتعيين لوحة مقننة مخصصة لعنصر وجميع أبنائه، مما يسمح بتعريف هذه الألوان المخصصة في مكان واحد فقط:

import QtQuick
import org.kde.kirigami as Kirigami

Kirigami.ApplicationWindow {
    title: "Custom colors"
    height: 300
    width: 300

    Rectangle {
        anchors.fill: parent
        Kirigami.Theme.inherit: false
        // ملاحظة: بغض النظر عن مجموعة الألوان المستخدمة، يُوصى باستبدال جميع الألوان المتاحة في
        // السمة، لتجنب الألوان ضعيفة التباين

        Kirigami.Theme.colorSet: Kirigami.Theme.Window
        Kirigami.Theme.backgroundColor: "#b9d795"
        Kirigami.Theme.textColor: "#465c2b"
        Kirigami.Theme.highlightColor: "#89e51c"
        // أعد تعريف جميع الألوان الأخرى التي تريدها

        // سيكون هذا "#b9d795"
        color: Kirigami.Theme.backgroundColor

        Rectangle {
            // سيكون هذا "#465c2b"
            anchors.centerIn: parent
            height: Math.round(parent.height / 2)
            width: Math.round(parent.width / 2)
            color: Kirigami.Theme.textColor
        }
    }
}

مثال بألوان مخصصة

مثال بألوان مخصصة