Кольори і теми у Kirigami
У Kirigami передбачено палітру кольорів, яка відповідає загальносистемним кольорам для кращої інтеграції із платформою, на якій запущено програму (тобто стільницею Плазми, Плазмою для мобільних пристроїв, GNOME, Android тощо).
Усі компоненти QML Kirigami і усі елементи керування QtQuick вже типово використовують цю палітру, тому, зазвичай, немає потреби у додатковому налаштовуванні розфарбування усіх цих елементів керування.
Primitive components such as Rectangle should always be colored with the color palette provided by Kirigami via the Kirigami.Theme attached property.
Hardcoded colors in QML, such as #32b2fa or red, should usually be avoided; if it is really necessary to have elements with custom colors, it should be an area where only custom colors are used (usually in the content area of the app, and never in chrome areas such as toolbars or dialogs). For instance, a hardcoded black foreground cannot be used over a Kirigami.Theme.backgroundColor background, because if the platform uses a dark color scheme the result will have poor contrast with black over almost black. This is an accessibility issue and should be avoided.
Нотатка
Якщо вам дуже потрібне використання нетипових кольорів, скористайтеся Kontrast, щоб забезпечити добру контрастність та сумісність із WCAG вибраних кольорів.Тема
Kirigami.Theme is an attached property, and therefore it is available to use for any QML item. Its properties include all the colors available in the palette, and what palette to use, such as the colorSet property.
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 Gallery provides a code example showcasing all colors available for Kirigami through Kirigami.Theme. This includes all their states: if you click outside the window, the colors change to their inactive state, and if you switch your system to a dark theme, the dark variants of the colors should show up in real time.

Компонент Colors у Галереї Kirigami
Встановлення кольору
Залежно від місця розташування елемента керування, він використовуватиме різні набори кольорів. Наприклад, (якщо використано світлу схему кольорів Breeze) на панелях панелях перегляду звичайне тло майже біле, а в інших областях, зокрема на панелях інструментів, звичайне тло є сірим.
If you define a color set for an item, all of its child items will recursively inherit it automatically (unless the property inherit has explicitly been set to false, which should always be done when the developer wants to force a specific color set) so it is easy to change colors for an entire hierarchy of items without touching any of the items themselves.
Kirigami.Theme supports 5 different color sets:
- View: набір кольорів для панелей записів, зазвичай, найсвітліший з усіх (у світлих темах кольорів)
- Window: набір кольорів для вікон і «хромованих» областей (це також типовий набір кольорів)
- Button: набір кольорів, який використовують для кнопок
- Selection: набір кольорів, який використовують для позначених областей
- Tooltip: набір кольорів, який використовують для підказок
- Complementary: набір кольорів, який має доповнювати Window: зазвичай, є темним навіть у світлих темах. Ним можна скористатися для «акцентування» невеликих частин інтерфейсу програми.
Тут наведено приклад, у якому продемонстровано те, як успадковуються набори кольорів та як ними можна скористатися для виокремлення різних компонентів. Для додавання контрастності кольорам було використано широку рамку.
| |

Як відрізняються набори кольорів у Breeze

Як відрізняються набори кольорів у темній Breeze
Використання нетипових кольорів
Хоча не рекомендовано використовувати жорстко прописані кольори, у Kirigami передбачено зручніший у сенсі супроводу спосіб призначення нетипової жорстко прописаної палітри для запису і усіх його дочірніх записів. Цей спосіб надає змогу визначити такі нетипові кольори одноразово і у єдиному місці коду:
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
// ЗАУВАЖЕННЯ: незалежно від використаного набору кольорів, рекомендуємо замінити усі
// доступні кольори у Theme, щоб уникнути помилок із контрастністю кольорів
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
}
}
}
Приклад із нетиповими кольорами