fix(qt): elevated controls lift on hover instead of darkening

Buttons that rest on surfaceElevated used surfaceHover for their hover
fill: a 6% white wash meant for rows that rest transparent. Over an
elevated button it lands DARKER than the rest fill — on a modal's dark
ground the Cancel/Save/footer buttons went near-black under the pointer.

QbzTheme gains surfaceElevatedHover (a lift of surfaceElevated, derived
so every palette has it), its ambient half-alpha twin, and the
elevatedFill / elevatedHoverFill pair an ambient-aware control paints.
Every site with the old pairing (65 across modals, toolbars, selects,
circle actions, chips and cards) now hovers to the lift.

cc
This commit is contained in:
vicrodh committed 2026-09-14 00:49:54 -06:00
1 parent 4bf5cb1a0e
commit ed7fa588ea
53 files changed
+87 -76

No files matched your search

@@ -650,7 +650,7 @@ Item {
height: 38
radius: theme.radiusSm
color: chipArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: chipArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
@@ -77,8 +77,8 @@ Rectangle {
// .slint:77 — the same chip in three mounts). Accent and hover keep theirs.
color: root.active ? theme.accent
: genreArea.containsMouse
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
Row {
id: genreRow
+1 -1
View File
@@ -162,7 +162,7 @@ Item {
height: 30
radius: 6
color: active ? theme.accent
: (pArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated)
: (pArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated)
Text {
id: pLabel
anchors.centerIn: parent
@@ -408,7 +408,7 @@ Item {
width: refreshRow.width + 24
height: 34
radius: theme.radiusSm
color: refreshArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: refreshArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
Row {
@@ -481,7 +481,7 @@ Item {
width: footerRow.width + 24
height: 34
radius: theme.radiusSm
color: footerArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: footerArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
@@ -180,7 +180,7 @@ Item {
radius: 8
color: presetTile.active
? theme.accent
: (presetArea.containsMouse ? theme.surfaceHover
: (presetArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated)
QbzIcon {
anchors.centerIn: parent
@@ -217,7 +217,7 @@ Item {
radius: 8
color: imageTile.active
? theme.accent
: (imageArea.containsMouse ? theme.surfaceHover
: (imageArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated)
// No `clip: true` — it is a rectangular scissor and does
// not follow `radius`. RoundedImage masks its own corners.
@@ -415,7 +415,7 @@ Item {
height: 38
radius: 6
color: chip.modelData.selected ? theme.accent
: chipArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
: chipArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Row {
anchors.fill: parent
@@ -508,7 +508,7 @@ Item {
radius: 6
opacity: root.liveCount > 0 ? 1.0 : 0.5
color: clearArea.containsMouse && root.liveCount > 0
? theme.surfaceHover : theme.surfaceElevated
? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
anchors.centerIn: parent
text: QbzSession.tr("Clear filter", QbzSession.trRev)
@@ -36,7 +36,7 @@ Rectangle {
radius: theme.radiusSm
border.width: 1
border.color: theme.borderSubtle
color: hoverArea.containsMouse && root.btnEnabled ? theme.surfaceHover : (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
color: hoverArea.containsMouse && root.btnEnabled ? theme.elevatedHoverFill : theme.elevatedFill
opacity: root.btnEnabled ? 1.0 : 0.4
Row {
@@ -128,7 +128,7 @@ Item {
width: parent.width
height: allCol.implicitHeight + 24
radius: theme.radiusSm
color: allArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: allArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: allArea.containsMouse ? theme.accent : theme.borderSubtle
Row {
@@ -178,7 +178,7 @@ Item {
width: parent.width
height: missingCol.implicitHeight + 24
radius: theme.radiusSm
color: missingArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: missingArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: missingArea.containsMouse ? theme.accent : theme.borderSubtle
Row {
@@ -229,7 +229,7 @@ Item {
width: cancelLabel.implicitWidth + 32
height: 36
radius: theme.radiusSm
color: cancelArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: cancelArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: cancelLabel
anchors.centerIn: parent
@@ -410,7 +410,7 @@ Item {
height: 36
radius: theme.radiusSm
color: (cancelArea.containsMouse && !root.busy)
? theme.surfaceHover : theme.surfaceElevated
? theme.surfaceElevatedHover : theme.surfaceElevated
opacity: root.busy ? 0.5 : 1.0
Text {
id: cancelLabel
@@ -462,7 +462,7 @@ Item {
height: 36
radius: theme.radiusSm
color: (pickArea.containsMouse && !root.loading)
? theme.surfaceHover : theme.surfaceElevated
? theme.surfaceElevatedHover : theme.surfaceElevated
opacity: root.loading ? 0.5 : 1.0
Text {
id: pickLabel
@@ -317,7 +317,7 @@ Item {
width: 20
height: 20
radius: 10
color: chipArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: chipArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
anchors.centerIn: parent
name: "x"
@@ -31,8 +31,8 @@ Rectangle {
// Translucent at rest under the dynamic background, like every other chip
// in this toolbar band (PlaylistTagFilter.slint:77).
color: tagArea.containsMouse
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
QbzFilterTip {
id: tagTip
@@ -111,8 +111,8 @@ Rectangle {
// (CircleAction.slint:53-55). The overlay variant above sits on
// artwork and keeps its white scale.
: ((cbArea.containsMouse || active)
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)))
? theme.elevatedHoverFill
: theme.elevatedFill))
border.width: primary ? 0 : 1.5
border.color: overlay ? "#ccffffff" : theme.borderStrong
// A loading button keeps FULL opacity — it is working, not unavailable,
@@ -220,7 +220,7 @@ Item {
width: cancelLbl.implicitWidth + 32
height: root.kioskHost ? 44 : 36
radius: theme.radiusSm
color: cancelArea.containsMouse ? theme.surfaceHover
color: cancelArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated
activeFocusOnTab: root.opened
border.width: activeFocus ? 2 : 0
+2 -2
View File
@@ -74,8 +74,8 @@ Rectangle {
// shows through the control (QbzSelect.slint:110-116). Hover keeps its own
// token, which is already translucent.
color: selArea.containsMouse && enabled
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
opacity: enabled ? 1.0 : 0.4
activeFocusOnTab: enabled
Accessible.role: Accessible.ComboBox
+1 -1
View File
@@ -69,7 +69,7 @@ Rectangle {
: 2 * root.padH + row.implicitWidth
radius: 6
color: root.filled ? theme.accent
: (toolArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated)
: (toolArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated)
border.width: (root.large && !(root.active && !root.fillActive)) ? 0 : 1
border.color: (root.active && !root.fillActive) ? theme.accent : theme.borderSubtle
@@ -36,7 +36,7 @@ Rectangle {
border.width: root.activeFocus ? 2 : 1
border.color: root.activeFocus ? theme.accent
: (danger ? theme.danger : theme.borderSubtle)
color: enabled && btnArea.containsMouse ? theme.surfaceHover : (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
color: enabled && btnArea.containsMouse ? theme.elevatedHoverFill : theme.elevatedFill
opacity: enabled ? 1.0 : 0.4
activeFocusOnTab: enabled
Accessible.role: Accessible.Button
@@ -890,7 +890,7 @@ Rectangle {
border.width: 1
border.color: chip.active ? theme.accent : theme.borderSubtle
color: chip.active ? theme.accent
: chipArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
: chipArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: chipLabel
anchors.centerIn: parent
@@ -754,7 +754,7 @@ Item {
width: parent.width
height: 40
radius: theme.radiusSm
color: cfgHead.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: cfgHead.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: activeFocus ? theme.accent : theme.borderSubtle
activeFocusOnTab: visible && enabled
@@ -978,7 +978,7 @@ Item {
event.accepted = true
}
}
color: prevTa.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: prevTa.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
anchors.centerIn: parent
width: 16
@@ -1016,7 +1016,7 @@ Item {
event.accepted = true
}
}
color: nextTa.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: nextTa.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
anchors.centerIn: parent
width: 16
@@ -269,7 +269,7 @@ Item {
width: resetRow.width + 24
height: root.kioskHost ? 44 : 34
radius: theme.radiusSm
color: resetArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: resetArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: activeFocus ? theme.accent : theme.borderSubtle
activeFocusOnTab: root.opened
@@ -221,7 +221,7 @@ Item {
width: body.width
height: 92
radius: theme.radiusMd
color: selected ? theme.surfaceHover : theme.surfaceElevated
color: selected ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: selected ? 2 : 1
border.color: selected ? theme.accent : theme.borderSubtle
+3 -3
View File
@@ -104,7 +104,7 @@ Item {
radius: theme.radiusSm
border.width: 1
border.color: theme.borderSubtle
color: lbArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: lbArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Row {
id: lbRow
@@ -162,7 +162,7 @@ Item {
radius: theme.radiusSm
border.width: 1
border.color: theme.borderSubtle
color: hcArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: hcArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Row {
id: hcRow
@@ -224,7 +224,7 @@ Item {
radius: theme.radiusSm
border.width: 1
border.color: theme.borderSubtle
color: (sc.clickable && scArea.containsMouse) ? theme.surfaceHover : theme.surfaceElevated
color: (sc.clickable && scArea.containsMouse) ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: scText
+1 -1
View File
@@ -528,7 +528,7 @@ Popup {
height: 34
radius: theme.radiusSm
color: selected ? theme.accent
: (tabArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated)
: (tabArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated)
Row {
anchors.centerIn: parent
@@ -452,7 +452,7 @@ Item {
radius: theme.radiusSm
color: entryRow.recording
? theme.bgHover
: (capArea.containsMouse ? theme.surfaceHover
: (capArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated)
border.width: (entryRow.recording || entryRow.entry.modified) ? 2 : 1
// Colour priority (trap 6): danger on
@@ -499,7 +499,7 @@ Item {
height: 30
anchors.verticalCenter: parent.verticalCenter
radius: theme.radiusSm
color: resetArea.containsMouse ? theme.surfaceHover
color: resetArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
+1 -1
View File
@@ -1260,7 +1260,7 @@ Rectangle {
border.width: 1
border.color: theme.borderSubtle
opacity: QbzSession.connectivity === 2 ? 0.4 : 1.0
color: signInArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: signInArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: signInText
anchors.centerIn: parent
@@ -272,7 +272,7 @@ Item {
width: customizeLabel.implicitWidth + 40
height: 40
radius: theme.radiusSm
color: customizeArea.containsMouse ? theme.surfaceHover
color: customizeArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated
border.width: 1
border.color: customizeArea.containsMouse ? theme.accent
@@ -126,7 +126,7 @@ Popup {
width: parent.width
height: 92
radius: theme.radiusSm
color: optionArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: optionArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: optionArea.containsMouse ? theme.accent : theme.borderSubtle
+1 -1
View File
@@ -1313,7 +1313,7 @@ Rectangle {
radius: theme.radiusSm
border.width: 1
border.color: theme.borderSubtle
color: cancelArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: cancelArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
anchors.fill: parent
text: QbzSession.tr("Cancel Timer", QbzSession.trRev)
+1 -1
View File
@@ -138,7 +138,7 @@ Item {
radius: theme.radiusSm
border.width: 1
border.color: theme.borderSubtle
color: goArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: goArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: goLabel
anchors.centerIn: parent
+12
View File
@@ -59,6 +59,18 @@ QtObject {
readonly property color surfaceCard: _c("surfaceCard")
readonly property color surfaceElevated: _c("surfaceElevated")
readonly property color surfaceHover: _c("surfaceHover")
/// Hover fill for a control whose REST fill is surfaceElevated: a lift of
/// that surface. NOT `surfaceHover` — that is a 6% white wash meant for
/// rows that rest transparent, and over an elevated button it lands
/// DARKER than the rest fill (the modal buttons that "went black on
/// hover", 2026-09-14). Derived, so every palette gets it for free.
readonly property color surfaceElevatedHover: Qt.lighter(surfaceElevated, isDark ? 1.35 : 0.94)
/// The same lift for the ambient half-alpha fill, a little more opaque so
/// the hover still reads as a lift over the field.
readonly property color surfaceElevatedHoverA50: Qt.rgba(surfaceElevatedHover.r, surfaceElevatedHover.g, surfaceElevatedHover.b, 0.62)
/// The ambient-aware pair an elevated control paints: rest and hover.
readonly property color elevatedFill: ambientOn ? surfaceElevatedA50 : surfaceElevated
readonly property color elevatedHoverFill: ambientOn ? surfaceElevatedHoverA50 : surfaceElevatedHover
readonly property color bgHover: _c("bgHover")
readonly property color textPrimary: _c("textPrimary")
// Weak-ramp hardening under ambient on LIGHT themes (owner, 2026-08-31):
+2 -2
View File
@@ -1591,8 +1591,8 @@ Rectangle {
height: 30
radius: 6
anchors.verticalCenter: parent.verticalCenter
color: selectToggleArea.containsMouse ? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
color: selectToggleArea.containsMouse ? theme.elevatedHoverFill
: theme.elevatedFill
border.width: 1
border.color: root.multiSelect ? theme.accent : theme.borderSubtle
QbzIcon {
@@ -257,7 +257,7 @@ Rectangle {
width: retryLabel.implicitWidth + 32
height: 34
radius: 6
color: retryArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: retryArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: retryLabel
@@ -282,7 +282,7 @@ Rectangle {
width: toggleRow.implicitWidth + 28
height: root.kioskHost ? 44 : 34
radius: theme.radiusSm
color: toggleArea.containsMouse ? theme.surfaceHover
color: toggleArea.containsMouse ? theme.surfaceElevatedHover
: theme.surfaceElevated
Row {
id: toggleRow
+1 -1
View File
@@ -1796,7 +1796,7 @@ Rectangle {
height: 32
radius: 6
color: retryArea.containsMouse
? theme.surfaceHover : theme.surfaceElevated
? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
Text {
+1 -1
View File
@@ -1339,7 +1339,7 @@ Rectangle {
height: 32
radius: 6
anchors.horizontalCenter: parent.horizontalCenter
color: retryArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: retryArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
Text {
+1 -1
View File
@@ -588,7 +588,7 @@ Rectangle {
border.width: 1
border.color: root.multiSelect ? theme.accent : theme.borderSubtle
color: (root.multiSelect || selectArea.containsMouse)
? theme.surfaceHover
? theme.surfaceElevatedHover
: theme.surfaceElevated
QbzIcon {
name: "square-check-big"
+2 -2
View File
@@ -740,8 +740,8 @@ Rectangle {
// PlaylistView.slint:855-859 — resting fill
// translucent under the dynamic background.
color: sortArea.containsMouse
? theme.surfaceHover
: (root.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
border.width: 1
border.color: theme.borderSubtle
Row {
@@ -400,7 +400,7 @@ Rectangle {
height: 32
radius: 6
anchors.horizontalCenter: parent.horizontalCenter
color: retryArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: retryArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
Text {
+1 -1
View File
@@ -446,7 +446,7 @@ Rectangle {
height: 32
radius: 6
anchors.horizontalCenter: parent.horizontalCenter
color: retryArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: retryArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
border.width: 1
border.color: theme.borderSubtle
Text {
+1 -1
View File
@@ -689,7 +689,7 @@ Rectangle {
height: 24
radius: 12
anchors.verticalCenter: parent.verticalCenter
color: clrArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: clrArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon { name: "x"; width: 13; height: 13; anchors.centerIn: parent; tintName: clrArea.containsMouse ? "textPrimary" : "muted" }
MouseArea {
id: clrArea
@@ -113,8 +113,8 @@ Item {
// rest fill and, when a genre is applied, the SAME accent OUTLINE —
// not an accent fill — so the three toolbar controls read identically
// in their modified state.
color: gtbArea.containsMouse ? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
color: gtbArea.containsMouse ? theme.elevatedHoverFill
: theme.elevatedFill
border.width: gtb.active ? 1 : 0
border.color: gtb.active ? theme.accent : "transparent"
Row {
+1 -1
View File
@@ -22,7 +22,7 @@ Rectangle {
border.width: 1
border.color: active ? theme.accent : theme.borderSubtle
color: active ? theme.accent
: chipArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
: chipArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Text {
id: lbl
@@ -26,7 +26,7 @@ Rectangle {
radius: 6
border.width: 1
border.color: cardArea.containsMouse ? theme.accent : theme.borderSubtle
color: cardArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: cardArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Column {
anchors.fill: parent
@@ -120,8 +120,8 @@ Item {
readonly property bool busy: QbzLocal.localDiscOpening
color: (!openBtn.busy && (openArea.containsMouse || openMenu.opened))
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
Row {
id: openRow
@@ -314,8 +314,8 @@ Item {
radius: 6
anchors.verticalCenter: parent.verticalCenter
color: ripArea.containsMouse
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
Row {
id: ripRow
anchors.centerIn: parent
@@ -25,7 +25,7 @@ Item {
border.width: 1
border.color: root.view && root.view.filterCount > 0
? theme.accent : theme.borderSubtle
color: area.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: area.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
name: "list-filter"
@@ -198,9 +198,8 @@ Item {
height: 28
radius: 6
color: chipMouse.containsMouse
? theme.surfaceHover
: (theme.ambientOn ? theme.surfaceElevatedA50
: theme.surfaceElevated)
? theme.elevatedHoverFill
: theme.elevatedFill
border.width: 1
border.color: theme.ambientOn ? theme.frostBorder : theme.borderSubtle
@@ -312,7 +311,7 @@ Item {
radius: 5
color: theme.ambientOn
? theme.surfaceElevatedA50
: (caretArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated)
: (caretArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated)
border.width: 1
border.color: theme.ambientOn ? theme.frostBorder : theme.borderSubtle
QbzIcon {
@@ -40,7 +40,7 @@ Item {
radius: 6
border.width: 1
border.color: root.marked ? theme.accent : theme.borderSubtle
color: btnArea.containsMouse ? theme.surfaceHover : (theme.ambientOn ? theme.surfaceElevatedA50 : theme.surfaceElevated)
color: btnArea.containsMouse ? theme.elevatedHoverFill : theme.elevatedFill
QbzIcon {
name: root.iconName
width: 15
+1 -1
View File
@@ -47,7 +47,7 @@ Rectangle {
color: cardArea.containsMouse ? theme.surfaceHover
: (root.compact ? "transparent" : theme.surfaceCard)
border.width: root.compact ? 0 : 1
border.color: cardArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
border.color: cardArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
// `label · meta`, but never a bare " · ": a default/half-built `item` (a
// standalone instance, or a pre-publish frame) has neither half and would
@@ -524,7 +524,7 @@ Rectangle {
width: 28
height: 28
radius: 14
color: newArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: newArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
anchors.centerIn: parent
name: "plus"
@@ -35,7 +35,7 @@ Rectangle {
width: 160
height: 150
radius: 10
color: cardArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: cardArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
opacity: (root.folder.isHidden === true) ? 0.6 : 1.0
// padding 16 / spacing 8 / centred column.
@@ -40,7 +40,7 @@ Rectangle {
height: 52
radius: 8
color: chipArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: chipArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
opacity: (root.folder.isHidden === true) ? 0.6 : 1.0
Row {
@@ -96,7 +96,7 @@ Item {
width: tb.kioskHost ? Math.max(64, tbRow.width) : tbRow.width
height: tb.kioskHost ? 64 : 30
radius: 6
color: tbArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: tbArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
Row {
id: tbRow
height: parent.height
@@ -396,7 +396,7 @@ Item {
width: root.kioskHost ? 64 : 30
height: root.kioskHost ? 64 : 30
radius: 6
color: filterArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: filterArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
name: "list-filter"
width: 16
@@ -579,7 +579,7 @@ Item {
height: root.kioskHost ? 64 : 30
radius: 6
anchors.verticalCenter: parent.verticalCenter
color: viewArea.containsMouse ? theme.surfaceHover : theme.surfaceElevated
color: viewArea.containsMouse ? theme.surfaceElevatedHover : theme.surfaceElevated
QbzIcon {
name: root.viewMode === "grid" ? "list" : "layout-grid"
width: 16