Watch
1
0
Fork
You've already forked RedFlag
0
RedFlag/desktop/qml/Theme.qml
Fimeg f487de554a desktop: become the machine console
Qt/QML now carries 11 local views while the Agent owns observation and intent. Tauri, WebKit, and the second React desktop build leave together. Linux ships first; Windows waits for a native Qt runner.
2026-09-01 08:29:58 -04:00

45 lines
1.9 KiB
QML

pragma Singleton
import QtQuick
QtObject {
property bool dark: true
readonly property color window: dark ? "#0b0e13" : "#f3f4f6"
readonly property color rail: dark ? "#10141b" : "#ffffff"
readonly property color surface: dark ? "#151a22" : "#ffffff"
readonly property color raised: dark ? "#1b222d" : "#f8fafc"
readonly property color hover: dark ? "#222b38" : "#eef2f6"
readonly property color divider: dark ? "#252d39" : "#dce1e7"
readonly property color text: dark ? "#eef1f5" : "#171a1f"
readonly property color dim: dark ? "#99a2af" : "#5f6874"
readonly property color faint: dark ? "#66707d" : "#8a939e"
readonly property color red: "#e23b3b"
readonly property color redDim: dark ? "#3a1a1e" : "#fee2e2"
readonly property color good: "#32bd74"
readonly property color warn: "#e5a936"
readonly property color bad: "#ef5350"
readonly property color blue: "#4d8dff"
readonly property color purple: "#ad7aff"
readonly property color cyan: "#30b8c9"
readonly property int railWidth: 216
readonly property int headerHeight: 72
readonly property int radius: 10
readonly property int radiusSm: 6
readonly property int spacing: 14
readonly property int spacingSm: 8
readonly property int fontTitle: 23
readonly property int fontHeading: 17
readonly property int fontBody: 13
readonly property int fontMeta: 11
readonly property string mono: {
const wanted = ["JetBrainsMono NF", "Adwaita Mono", "DejaVu Sans Mono"]
const installed = Qt.fontFamilies()
for (let i = 0; i < wanted.length; ++i)
if (installed.indexOf(wanted[i]) >= 0) return wanted[i]
return "monospace"
}
function tint(color, alpha) { return Qt.rgba(color.r, color.g, color.b, alpha) }
function pressure(percent) { return percent >= 90 ? bad : percent >= 75 ? warn : good }
}