Introduces a dedicated layer-shell `WindowChromeSurface` that renders macOS-style traffic-light controls over the focused Sway window titlebar, replacing the old top-bar window controls. Adds theme tokens and a reusable `TrafficLightButton` component, updates shell QML/CMake wiring, and adjusts Sway titlebar padding/title format so window titles do not overlap the overlay. Window tracking was extended with focused-window geometry/deco/fullscreen properties plus backend refresh support so the chrome follows window movement and state changes in near real time.
65 lines
2.7 KiB
QML
65 lines
2.7 KiB
QML
pragma Singleton
|
|
|
|
import QtQuick
|
|
|
|
QtObject {
|
|
// Colours from the Nebula Desktop React prototype (tokens.css).
|
|
readonly property color background: "#0b0f16"
|
|
readonly property color backgroundDeep: "#080b11"
|
|
|
|
readonly property color surface: Qt.rgba(20 / 255, 26 / 255, 36 / 255, 0.78)
|
|
readonly property color surfaceRaised: Qt.rgba(32 / 255, 40 / 255, 54 / 255, 0.9)
|
|
readonly property color topBarBackground: Qt.rgba(10 / 255, 13 / 255, 18 / 255, 0.55)
|
|
|
|
readonly property color border: Qt.rgba(232 / 255, 236 / 255, 242 / 255, 0.08)
|
|
readonly property color borderStrong: Qt.rgba(232 / 255, 236 / 255, 242 / 255, 0.14)
|
|
|
|
readonly property color textPrimary: "#e8ecf2"
|
|
readonly property color textSecondary: "#8e99ab"
|
|
readonly property color textTertiary: "#6b7587"
|
|
|
|
readonly property color accent: "#7ea0c4"
|
|
readonly property color accentStrong: "#9bb6d4"
|
|
readonly property color accentSoft: Qt.rgba(126 / 255, 160 / 255, 196 / 255, 0.16)
|
|
|
|
readonly property color danger: "#c98888"
|
|
readonly property color focus: Qt.rgba(126 / 255, 160 / 255, 196 / 255, 0.55)
|
|
|
|
readonly property color hoverFill: Qt.rgba(1, 1, 1, 0.06)
|
|
readonly property color pressedFill: Qt.rgba(1, 1, 1, 0.10)
|
|
readonly property color dangerSoft: Qt.rgba(201 / 255, 136 / 255, 136 / 255, 0.18)
|
|
readonly property color dangerSoftStrong: Qt.rgba(201 / 255, 136 / 255, 136 / 255, 0.28)
|
|
readonly property color trafficClose: "#ff5f57"
|
|
readonly property color trafficMinimise: "#febc2e"
|
|
readonly property color trafficZoom: "#28c840"
|
|
readonly property color tileHover: Qt.rgba(1, 1, 1, 0.05)
|
|
readonly property color iconWell: Qt.rgba(1, 1, 1, 0.05)
|
|
readonly property color iconWellHighlight: Qt.rgba(1, 1, 1, 0.06)
|
|
readonly property color searchFill: Qt.rgba(8 / 255, 11 / 255, 17 / 255, 0.45)
|
|
readonly property color shadow: Qt.rgba(0, 0, 0, 0.42)
|
|
|
|
readonly property int radiusSmall: 6
|
|
readonly property int radiusMedium: 10
|
|
readonly property int radiusLarge: 14
|
|
|
|
readonly property int spacingSmall: 8
|
|
readonly property int spacingMedium: 16
|
|
readonly property int spacingLarge: 24
|
|
|
|
readonly property int animationFast: 120
|
|
readonly property int animationNormal: 200
|
|
|
|
readonly property int topBarHeight: 40
|
|
readonly property int controlHeight: 28
|
|
readonly property int searchHeight: 36
|
|
readonly property int trafficLightSize: 12
|
|
readonly property int trafficLightGap: 8
|
|
readonly property int windowChromeInset: 10
|
|
|
|
readonly property int fontSize: 13
|
|
readonly property int fontSizeApp: 12
|
|
readonly property int fontSizeSmall: 11
|
|
|
|
readonly property string fontFamily: "Ubuntu"
|
|
}
|