nosignal-shell/components/controls/TextButton.qml
2026-06-09 15:39:12 +10:00

44 lines
1.4 KiB
QML

import QtQuick
import Caelestia.Config
import qs.components
import qs.services
ButtonBase {
id: root
property alias text: label.text
readonly property alias label: label
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: label.implicitWidth + horizontalPadding * 2
implicitHeight: label.implicitHeight + verticalPadding * 2
StyledText {
id: label
anchors.centerIn: parent
color: root.onColour
font: root.font
}
}