diff --git a/components/controls/IconTextButton.qml b/components/controls/IconTextButton.qml index 8d1bf264..6859cb68 100644 --- a/components/controls/IconTextButton.qml +++ b/components/controls/IconTextButton.qml @@ -13,10 +13,27 @@ ButtonBase { readonly property alias iconLabel: iconLabel readonly property alias label: label - activeColour: type === IconTextButton.Filled ? Colours.palette.m3primary : Colours.palette.m3secondary - inactiveColour: type === IconTextButton.Filled ? Colours.tPalette.m3surfaceContainer : Colours.palette.m3secondaryContainer - activeOnColour: type === IconTextButton.Filled ? Colours.palette.m3onPrimary : Colours.palette.m3onSecondary - inactiveOnColour: type === IconTextButton.Filled ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer + horizontalPadding: Tokens.padding.medium + verticalPadding: Tokens.padding.small + + activeColour: type === TextButton.Filled ? Colours.palette.m3primary : Colours.palette.m3secondary + inactiveColour: { + if (!isToggle && type === TextButton.Filled) + return Colours.palette.m3primary; + return type === TextButton.Filled ? Colours.tPalette.m3surfaceContainer : Colours.palette.m3secondaryContainer; + } + activeOnColour: { + if (type === TextButton.Text) + return Colours.palette.m3primary; + return type === TextButton.Filled ? Colours.palette.m3onPrimary : Colours.palette.m3onSecondary; + } + inactiveOnColour: { + if (!isToggle && type === TextButton.Filled) + return Colours.palette.m3onPrimary; + if (type === TextButton.Text) + return Colours.palette.m3primary; + return type === TextButton.Filled ? Colours.palette.m3onSurface : Colours.palette.m3onSecondaryContainer; + } implicitWidth: row.implicitWidth + horizontalPadding * 2 implicitHeight: row.implicitHeight + verticalPadding * 2 @@ -34,6 +51,11 @@ ButtonBase { Layout.topMargin: Math.round(fontInfo.pointSize * 0.0575) color: root.onColour fill: root.internalChecked ? 1 : 0 + fontStyle: { + const f = Qt.font(root.font); + f.pointSize = Math.round(root.font.pointSize * 1.1); + return f; + } Behavior on fill { Anim { @@ -48,6 +70,7 @@ ButtonBase { Layout.alignment: Qt.AlignVCenter Layout.topMargin: -Math.round(iconLabel.fontInfo.pointSize * 0.0575) color: root.onColour + font: root.font } } }