From 06ea7373f7743ee573f5bc1c81ef346c4ff177f8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tri=E1=BB=87u=20Kha?= Date: Thu, 12 Mar 2026 19:54:00 +0700 Subject: [PATCH] parity(danktoggle): follow m3 disabled state color specs (#1973) --- quickshell/Widgets/DankToggle.qml | 29 +++++++++++++++++------------ 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/quickshell/Widgets/DankToggle.qml b/quickshell/Widgets/DankToggle.qml index 9e6710b6..3476f514 100644 --- a/quickshell/Widgets/DankToggle.qml +++ b/quickshell/Widgets/DankToggle.qml @@ -99,10 +99,12 @@ Item { anchors.verticalCenter: parent.verticalCenter radius: Theme.cornerRadius - color: (checked && enabled) ? Theme.primary : Theme.surfaceVariantAlpha - opacity: toggling ? 0.6 : (enabled ? 1 : 0.4) + // M3 disabled track: on surface 12% opacity + color: !toggle.enabled ? Qt.alpha(Theme.surfaceText, 0.12) : (toggle.checked ? Theme.primary : Theme.surfaceVariantAlpha) + opacity: toggle.toggling ? 0.6 : 1 - border.color: (!checked || !enabled) ? Theme.outline : "transparent" + // M3 disabled unchecked border: on surface 12% opacity + border.color: toggle.checked ? "transparent" : (!toggle.enabled ? Qt.alpha(Theme.surfaceText, 0.12) : Theme.outline) readonly property int pad: Math.round((height - thumb.width) / 2) readonly property int edgeLeft: pad @@ -111,16 +113,18 @@ Item { StyledRect { id: thumb - width: (checked && enabled) ? insetCircle : insetCircle - 4 - height: (checked && enabled) ? insetCircle : insetCircle - 4 + width: toggle.checked ? insetCircle : insetCircle - 4 + height: toggle.checked ? insetCircle : insetCircle - 4 radius: Theme.cornerRadius anchors.verticalCenter: parent.verticalCenter - color: (checked && enabled) ? Theme.surface : Theme.outline - border.color: (checked && enabled) ? Theme.outline : Theme.outline - border.width: (checked && enabled) ? 1 : 2 + // M3 disabled thumb: + // checked = solid surface | unchecked = on surface 38% + color: !toggle.enabled ? (toggle.checked ? Theme.surface : Qt.alpha(Theme.surfaceText, 0.38)) : (toggle.checked ? Theme.surface : Theme.outline) + border.color: !toggle.enabled ? (toggle.checked ? "transparent" : Qt.alpha(Theme.surfaceText, 0.38)) : Theme.outline + border.width: (toggle.checked && toggle.enabled) ? 1 : 2 - x: (checked && enabled) ? toggleTrack.edgeRight : toggleTrack.edgeLeft + x: toggle.checked ? toggleTrack.edgeRight : toggleTrack.edgeLeft Behavior on x { SequentialAnimation { @@ -158,10 +162,11 @@ Item { anchors.centerIn: parent name: "check" size: 20 - color: Theme.surfaceText + // M3 disabled icon: on surface 38% + color: toggle.enabled ? Theme.surfaceText : Qt.alpha(Theme.surfaceText, 0.38) filled: true - opacity: checked && enabled ? 1 : 0 - scale: checked && enabled ? 1 : 0.6 + opacity: toggle.checked ? 1 : 0 + scale: toggle.checked ? 1 : 0.6 Behavior on opacity { NumberAnimation {