diff --git a/crates/qbz-qt/qml/controls/AddToMixtapeModal.qml b/crates/qbz-qt/qml/controls/AddToMixtapeModal.qml index ec794fd53..a8a09e491 100644 --- a/crates/qbz-qt/qml/controls/AddToMixtapeModal.qml +++ b/crates/qbz-qt/qml/controls/AddToMixtapeModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/BrowseGenreButton.qml b/crates/qbz-qt/qml/controls/BrowseGenreButton.qml index d3210c09e..1051120cc 100644 --- a/crates/qbz-qt/qml/controls/BrowseGenreButton.qml +++ b/crates/qbz-qt/qml/controls/BrowseGenreButton.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/DiscMetaModal.qml b/crates/qbz-qt/qml/controls/DiscMetaModal.qml index ac6683f77..79b74c761 100644 --- a/crates/qbz-qt/qml/controls/DiscMetaModal.qml +++ b/crates/qbz-qt/qml/controls/DiscMetaModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/DiscoverConfigModal.qml b/crates/qbz-qt/qml/controls/DiscoverConfigModal.qml index 12dfffeea..c9b5852ec 100644 --- a/crates/qbz-qt/qml/controls/DiscoverConfigModal.qml +++ b/crates/qbz-qt/qml/controls/DiscoverConfigModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/FolderEditPanel.qml b/crates/qbz-qt/qml/controls/FolderEditPanel.qml index b95868d20..1075750cd 100644 --- a/crates/qbz-qt/qml/controls/FolderEditPanel.qml +++ b/crates/qbz-qt/qml/controls/FolderEditPanel.qml @@ -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. diff --git a/crates/qbz-qt/qml/controls/GenreFilterPopup.qml b/crates/qbz-qt/qml/controls/GenreFilterPopup.qml index de599ff9d..769f97410 100644 --- a/crates/qbz-qt/qml/controls/GenreFilterPopup.qml +++ b/crates/qbz-qt/qml/controls/GenreFilterPopup.qml @@ -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) diff --git a/crates/qbz-qt/qml/controls/IconTextButton.qml b/crates/qbz-qt/qml/controls/IconTextButton.qml index 738ff7763..264bfeb57 100644 --- a/crates/qbz-qt/qml/controls/IconTextButton.qml +++ b/crates/qbz-qt/qml/controls/IconTextButton.qml @@ -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 { diff --git a/crates/qbz-qt/qml/controls/OfflineCacheChoiceModal.qml b/crates/qbz-qt/qml/controls/OfflineCacheChoiceModal.qml index 6eb67ac9a..81887caca 100644 --- a/crates/qbz-qt/qml/controls/OfflineCacheChoiceModal.qml +++ b/crates/qbz-qt/qml/controls/OfflineCacheChoiceModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/PlaylistCreateModal.qml b/crates/qbz-qt/qml/controls/PlaylistCreateModal.qml index 0cbef2fe1..3209e23bf 100644 --- a/crates/qbz-qt/qml/controls/PlaylistCreateModal.qml +++ b/crates/qbz-qt/qml/controls/PlaylistCreateModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/PlaylistImportModal.qml b/crates/qbz-qt/qml/controls/PlaylistImportModal.qml index 619b985eb..b5d49ec16 100644 --- a/crates/qbz-qt/qml/controls/PlaylistImportModal.qml +++ b/crates/qbz-qt/qml/controls/PlaylistImportModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/PlaylistPickerModal.qml b/crates/qbz-qt/qml/controls/PlaylistPickerModal.qml index c283d747a..bafcce8c3 100644 --- a/crates/qbz-qt/qml/controls/PlaylistPickerModal.qml +++ b/crates/qbz-qt/qml/controls/PlaylistPickerModal.qml @@ -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" diff --git a/crates/qbz-qt/qml/controls/PlaylistTagFilterButton.qml b/crates/qbz-qt/qml/controls/PlaylistTagFilterButton.qml index 8369182a3..0396ba82b 100644 --- a/crates/qbz-qt/qml/controls/PlaylistTagFilterButton.qml +++ b/crates/qbz-qt/qml/controls/PlaylistTagFilterButton.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/QbzCircleAction.qml b/crates/qbz-qt/qml/controls/QbzCircleAction.qml index 466b326c0..c9855cbb0 100644 --- a/crates/qbz-qt/qml/controls/QbzCircleAction.qml +++ b/crates/qbz-qt/qml/controls/QbzCircleAction.qml @@ -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, diff --git a/crates/qbz-qt/qml/controls/QbzConfirmModal.qml b/crates/qbz-qt/qml/controls/QbzConfirmModal.qml index e929f344a..4bbecf516 100644 --- a/crates/qbz-qt/qml/controls/QbzConfirmModal.qml +++ b/crates/qbz-qt/qml/controls/QbzConfirmModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/QbzSelect.qml b/crates/qbz-qt/qml/controls/QbzSelect.qml index 99b0eb855..ecf73774d 100644 --- a/crates/qbz-qt/qml/controls/QbzSelect.qml +++ b/crates/qbz-qt/qml/controls/QbzSelect.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/QbzToolButton.qml b/crates/qbz-qt/qml/controls/QbzToolButton.qml index e1ca89f4a..b940a7706 100644 --- a/crates/qbz-qt/qml/controls/QbzToolButton.qml +++ b/crates/qbz-qt/qml/controls/QbzToolButton.qml @@ -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 diff --git a/crates/qbz-qt/qml/controls/SettingsButton.qml b/crates/qbz-qt/qml/controls/SettingsButton.qml index 6821ebaf7..0cd9e1496 100644 --- a/crates/qbz-qt/qml/controls/SettingsButton.qml +++ b/crates/qbz-qt/qml/controls/SettingsButton.qml @@ -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 diff --git a/crates/qbz-qt/qml/kiosk/KioskLocalLibrary.qml b/crates/qbz-qt/qml/kiosk/KioskLocalLibrary.qml index f059dd714..8437157cb 100644 --- a/crates/qbz-qt/qml/kiosk/KioskLocalLibrary.qml +++ b/crates/qbz-qt/qml/kiosk/KioskLocalLibrary.qml @@ -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 diff --git a/crates/qbz-qt/qml/settings/DacWizardModal.qml b/crates/qbz-qt/qml/settings/DacWizardModal.qml index a14e4a56a..0af445724 100644 --- a/crates/qbz-qt/qml/settings/DacWizardModal.qml +++ b/crates/qbz-qt/qml/settings/DacWizardModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/settings/LocalTabsConfigModal.qml b/crates/qbz-qt/qml/settings/LocalTabsConfigModal.qml index 428d3c458..55bc2bb69 100644 --- a/crates/qbz-qt/qml/settings/LocalTabsConfigModal.qml +++ b/crates/qbz-qt/qml/settings/LocalTabsConfigModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/settings/MigrationSetupModal.qml b/crates/qbz-qt/qml/settings/MigrationSetupModal.qml index e8ea5e624..08ebe89a6 100644 --- a/crates/qbz-qt/qml/settings/MigrationSetupModal.qml +++ b/crates/qbz-qt/qml/settings/MigrationSetupModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/AboutModal.qml b/crates/qbz-qt/qml/shell/AboutModal.qml index 15b356b7c..be7948bbf 100644 --- a/crates/qbz-qt/qml/shell/AboutModal.qml +++ b/crates/qbz-qt/qml/shell/AboutModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/CastPicker.qml b/crates/qbz-qt/qml/shell/CastPicker.qml index 294758e66..b8fb41894 100644 --- a/crates/qbz-qt/qml/shell/CastPicker.qml +++ b/crates/qbz-qt/qml/shell/CastPicker.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/CustomizeShortcutsModal.qml b/crates/qbz-qt/qml/shell/CustomizeShortcutsModal.qml index 5ca3aec19..c4ab5f74d 100644 --- a/crates/qbz-qt/qml/shell/CustomizeShortcutsModal.qml +++ b/crates/qbz-qt/qml/shell/CustomizeShortcutsModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/HeaderBar.qml b/crates/qbz-qt/qml/shell/HeaderBar.qml index f02362947..8a840ce25 100644 --- a/crates/qbz-qt/qml/shell/HeaderBar.qml +++ b/crates/qbz-qt/qml/shell/HeaderBar.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/KeyboardShortcutsModal.qml b/crates/qbz-qt/qml/shell/KeyboardShortcutsModal.qml index b15d2c7db..b03e9249a 100644 --- a/crates/qbz-qt/qml/shell/KeyboardShortcutsModal.qml +++ b/crates/qbz-qt/qml/shell/KeyboardShortcutsModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/QconnectPlaybackConflictModal.qml b/crates/qbz-qt/qml/shell/QconnectPlaybackConflictModal.qml index dbe44886d..877d6b61a 100644 --- a/crates/qbz-qt/qml/shell/QconnectPlaybackConflictModal.qml +++ b/crates/qbz-qt/qml/shell/QconnectPlaybackConflictModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/shell/QueuePanel.qml b/crates/qbz-qt/qml/shell/QueuePanel.qml index f6e8d60f1..aaf431c78 100644 --- a/crates/qbz-qt/qml/shell/QueuePanel.qml +++ b/crates/qbz-qt/qml/shell/QueuePanel.qml @@ -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) diff --git a/crates/qbz-qt/qml/shell/ReportIssueModal.qml b/crates/qbz-qt/qml/shell/ReportIssueModal.qml index 728d2d4ee..5a1424a9d 100644 --- a/crates/qbz-qt/qml/shell/ReportIssueModal.qml +++ b/crates/qbz-qt/qml/shell/ReportIssueModal.qml @@ -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 diff --git a/crates/qbz-qt/qml/theme/QbzTheme.qml b/crates/qbz-qt/qml/theme/QbzTheme.qml index a672df4aa..8f6fbe22f 100644 --- a/crates/qbz-qt/qml/theme/QbzTheme.qml +++ b/crates/qbz-qt/qml/theme/QbzTheme.qml @@ -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): diff --git a/crates/qbz-qt/qml/views/AlbumView.qml b/crates/qbz-qt/qml/views/AlbumView.qml index feb59b0ed..397279ec6 100644 --- a/crates/qbz-qt/qml/views/AlbumView.qml +++ b/crates/qbz-qt/qml/views/AlbumView.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/ArtistReleasesView.qml b/crates/qbz-qt/qml/views/ArtistReleasesView.qml index d7add9f45..016dfe0a2 100644 --- a/crates/qbz-qt/qml/views/ArtistReleasesView.qml +++ b/crates/qbz-qt/qml/views/ArtistReleasesView.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/BlacklistManagerView.qml b/crates/qbz-qt/qml/views/BlacklistManagerView.qml index 946e5b762..90db7a37f 100644 --- a/crates/qbz-qt/qml/views/BlacklistManagerView.qml +++ b/crates/qbz-qt/qml/views/BlacklistManagerView.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/HomeView.qml b/crates/qbz-qt/qml/views/HomeView.qml index ee807854d..6b2a62881 100644 --- a/crates/qbz-qt/qml/views/HomeView.qml +++ b/crates/qbz-qt/qml/views/HomeView.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/LibraryView.qml b/crates/qbz-qt/qml/views/LibraryView.qml index 6bff0cffa..00455aaa2 100644 --- a/crates/qbz-qt/qml/views/LibraryView.qml +++ b/crates/qbz-qt/qml/views/LibraryView.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/LocalAlbumView.qml b/crates/qbz-qt/qml/views/LocalAlbumView.qml index f90f6a38e..7959f1dc7 100644 --- a/crates/qbz-qt/qml/views/LocalAlbumView.qml +++ b/crates/qbz-qt/qml/views/LocalAlbumView.qml @@ -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" diff --git a/crates/qbz-qt/qml/views/PlaylistView.qml b/crates/qbz-qt/qml/views/PlaylistView.qml index 455d80800..551ce3763 100644 --- a/crates/qbz-qt/qml/views/PlaylistView.qml +++ b/crates/qbz-qt/qml/views/PlaylistView.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/PurchaseAlbumView.qml b/crates/qbz-qt/qml/views/PurchaseAlbumView.qml index 433f87219..45c5cc7c7 100644 --- a/crates/qbz-qt/qml/views/PurchaseAlbumView.qml +++ b/crates/qbz-qt/qml/views/PurchaseAlbumView.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/PurchasesView.qml b/crates/qbz-qt/qml/views/PurchasesView.qml index 08d71aaed..3b37f1226 100644 --- a/crates/qbz-qt/qml/views/PurchasesView.qml +++ b/crates/qbz-qt/qml/views/PurchasesView.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/SearchView.qml b/crates/qbz-qt/qml/views/SearchView.qml index 937a32722..c3a2ab90d 100644 --- a/crates/qbz-qt/qml/views/SearchView.qml +++ b/crates/qbz-qt/qml/views/SearchView.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/library/LibraryToolbar.qml b/crates/qbz-qt/qml/views/library/LibraryToolbar.qml index 37e49ecde..55f0fdafe 100644 --- a/crates/qbz-qt/qml/views/library/LibraryToolbar.qml +++ b/crates/qbz-qt/qml/views/library/LibraryToolbar.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/local/FilterChip.qml b/crates/qbz-qt/qml/views/local/FilterChip.qml index 96fd49596..12b26e1b8 100644 --- a/crates/qbz-qt/qml/views/local/FilterChip.qml +++ b/crates/qbz-qt/qml/views/local/FilterChip.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/local/FolderSubcard.qml b/crates/qbz-qt/qml/views/local/FolderSubcard.qml index 97717ed5a..6e6b18e09 100644 --- a/crates/qbz-qt/qml/views/local/FolderSubcard.qml +++ b/crates/qbz-qt/qml/views/local/FolderSubcard.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/local/LocalChrome.qml b/crates/qbz-qt/qml/views/local/LocalChrome.qml index a946703aa..10ac507e3 100644 --- a/crates/qbz-qt/qml/views/local/LocalChrome.qml +++ b/crates/qbz-qt/qml/views/local/LocalChrome.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/local/LocalEphemeralPane.qml b/crates/qbz-qt/qml/views/local/LocalEphemeralPane.qml index 50d48655d..7c1aa5460 100644 --- a/crates/qbz-qt/qml/views/local/LocalEphemeralPane.qml +++ b/crates/qbz-qt/qml/views/local/LocalEphemeralPane.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/local/LocalFilterButton.qml b/crates/qbz-qt/qml/views/local/LocalFilterButton.qml index 304901d74..04dcb64d3 100644 --- a/crates/qbz-qt/qml/views/local/LocalFilterButton.qml +++ b/crates/qbz-qt/qml/views/local/LocalFilterButton.qml @@ -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" diff --git a/crates/qbz-qt/qml/views/local/LocalGenresTab.qml b/crates/qbz-qt/qml/views/local/LocalGenresTab.qml index 0ce85ac5a..a86b604fb 100644 --- a/crates/qbz-qt/qml/views/local/LocalGenresTab.qml +++ b/crates/qbz-qt/qml/views/local/LocalGenresTab.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/local/LocalIconSelect.qml b/crates/qbz-qt/qml/views/local/LocalIconSelect.qml index 2b85c1310..5560c0b20 100644 --- a/crates/qbz-qt/qml/views/local/LocalIconSelect.qml +++ b/crates/qbz-qt/qml/views/local/LocalIconSelect.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/myqbz/MyQbzCard.qml b/crates/qbz-qt/qml/views/myqbz/MyQbzCard.qml index c79aeb4b5..4b08e225d 100644 --- a/crates/qbz-qt/qml/views/myqbz/MyQbzCard.qml +++ b/crates/qbz-qt/qml/views/myqbz/MyQbzCard.qml @@ -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 diff --git a/crates/qbz-qt/qml/views/myqbz/MyQbzGridView.qml b/crates/qbz-qt/qml/views/myqbz/MyQbzGridView.qml index 77524835f..68af97b9f 100644 --- a/crates/qbz-qt/qml/views/myqbz/MyQbzGridView.qml +++ b/crates/qbz-qt/qml/views/myqbz/MyQbzGridView.qml @@ -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" diff --git a/crates/qbz-qt/qml/views/playlistmanager/PmFolderCard.qml b/crates/qbz-qt/qml/views/playlistmanager/PmFolderCard.qml index 635df4196..7b6e7eb31 100644 --- a/crates/qbz-qt/qml/views/playlistmanager/PmFolderCard.qml +++ b/crates/qbz-qt/qml/views/playlistmanager/PmFolderCard.qml @@ -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. diff --git a/crates/qbz-qt/qml/views/playlistmanager/PmFolderChip.qml b/crates/qbz-qt/qml/views/playlistmanager/PmFolderChip.qml index 502fb8f13..2763a27bd 100644 --- a/crates/qbz-qt/qml/views/playlistmanager/PmFolderChip.qml +++ b/crates/qbz-qt/qml/views/playlistmanager/PmFolderChip.qml @@ -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 { diff --git a/crates/qbz-qt/qml/views/purchases/PurchasesToolbar.qml b/crates/qbz-qt/qml/views/purchases/PurchasesToolbar.qml index 27b72bd57..a6e7febfc 100644 --- a/crates/qbz-qt/qml/views/purchases/PurchasesToolbar.qml +++ b/crates/qbz-qt/qml/views/purchases/PurchasesToolbar.qml @@ -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