Cores e temas no Kirigami
O Kirigami possui uma paleta de cores que segue as cores do sistema para melhor integração com a plataforma em que está sendo executado (por exemplo, Plasma Desktop, Plasma Mobile, GNOME, Android, etc.).
Todos os componentes QML do Kirigami e do QtQuick Controls já devem seguir esta paleta por padrão, portanto, normalmente, nenhuma coloração personalizada é necessária para esses controles.
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.
Nota
Se você realmente precisa usar cores personalizadas, confira o Kontrast para garantir que as cores escolhidas tenham bom contraste e sejam compatíveis com WCAG.Tema
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.

O componente Cores na Galeria Kirigami
Conjunto de cor
Dependendo de onde um controle estiver localizado, ele deverá usar um conjunto de cor diferente: por exemplo, quando o esquema de cor Breeze Light é usado em Visualizações, o fundo normal é quase branco, enquanto em outras regiões, como barras de ferramentas ou caixas de diálogo, a cor de fundo normal é cinza.
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:
- Visualização: Conjunto de cor para visualização de itens, geralmente o mais claro de todos (em temas de cores claras)
- Janela: Conjunto de cor para janelas e áreas cromadas (este também é o conjunto de cor padrão)
- Botão: Conjunto de cor usado pelos botões
- Seleção: Conjunto de cor usado pelas áreas selecionadas
- Dica: Conjunto de cor usado pelas dicas
- Complementar: Conjunto de cor que visa complementar a Janela: geralmente escuro, mesmo em temas claros. Pode ser usado para dar ênfase em pequenas áreas do aplicativo
Aqui está um exemplo que mostra como os conjuntos de cor são herdados e podem ser usados para distinguir diferentes componentes. Uma borda grande foi adicionada para contrastar as cores.
| |

Como os conjuntos de cor diferem no Breeze

Como os conjuntos de cor diferem no Breeze Dark
Usando cores personalizadas
Embora seja desencorajado o uso de cores codificadas, o Kirigami oferece uma maneira mais sustentável de atribuir uma paleta personalizada codificada a um item e a todos os seus filhos, o que permite definir essas cores personalizadas em um único, e apenas um, lugar:
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
// NOTA: independentemente do conjunto de cor utilizado, é recomendável substituir todas as
// cores disponíveis no Tema, para evitar cores com muito contraste
Kirigami.Theme.colorSet: Kirigami.Theme.Window
Kirigami.Theme.backgroundColor: "#b9d795"
Kirigami.Theme.textColor: "#465c2b"
Kirigami.Theme.highlightColor: "#89e51c"
// Redefina todas as outras cores que você desejar
// Isto será "#b9d795"
color: Kirigami.Theme.backgroundColor
Rectangle {
// Isto será "#465c2b"
anchors.centerIn: parent
height: Math.round(parent.height / 2)
width: Math.round(parent.width / 2)
color: Kirigami.Theme.textColor
}
}
}
Exemplo com cores personalizadas