Replace tons of hardcoded stuff

This commit is contained in:
Ly-sec 2025-08-16 01:17:44 +02:00
parent 2a5a3a1b78
commit c673b897cb
27 changed files with 155 additions and 161 deletions

View file

@ -253,7 +253,7 @@ NLoader {
anchors.centerIn: parent anchors.centerIn: parent
width: Math.min(700 * scaling, parent.width * 0.75) width: Math.min(700 * scaling, parent.width * 0.75)
height: Math.min(550 * scaling, parent.height * 0.8) height: Math.min(550 * scaling, parent.height * 0.8)
radius: 32 * scaling radius: Style.radiusLarge * scaling
color: Colors.mSurface color: Colors.mSurface
border.color: Colors.mOutline border.color: Colors.mOutline
border.width: Style.borderThin * scaling border.width: Style.borderThin * scaling
@ -278,22 +278,22 @@ NLoader {
// Search bar // Search bar
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 40 * scaling Layout.preferredHeight: Style.barHeight * scaling
Layout.bottomMargin: Style.marginMedium * scaling Layout.bottomMargin: Style.marginMedium * scaling
radius: 20 * scaling radius: Style.radiusMedium * scaling
color: Colors.mSurface color: Colors.mSurface
border.color: searchInput.activeFocus ? Colors.mPrimary : Colors.mOutline border.color: searchInput.activeFocus ? Colors.mPrimary : Colors.mOutline
border.width: searchInput.activeFocus ? 2 : 1 border.width: Math.max(1, searchInput.activeFocus ? Style.borderMedium * scaling : Style.borderThin * scaling)
Row { Row {
anchors.fill: parent anchors.fill: parent
anchors.margins: 12 * scaling anchors.margins: Style.marginMedium * scaling
spacing: 10 * scaling spacing: Style.marginSmall * scaling
Text { Text {
text: "search" text: "search"
font.family: "Material Symbols Outlined" font.family: "Material Symbols Outlined"
font.pointSize: 16 * scaling font.pointSize: Style.fontSizeLarger * scaling
color: searchInput.activeFocus ? Colors.mPrimary : Colors.mOnSurface color: searchInput.activeFocus ? Colors.mPrimary : Colors.mOnSurface
} }
@ -303,7 +303,7 @@ NLoader {
color: Colors.mOnSurface color: Colors.mOnSurface
placeholderTextColor: Colors.mOnSurface placeholderTextColor: Colors.mOnSurface
background: null background: null
font.pointSize: 13 * scaling font.pointSize: Style.fontSizeLarge * scaling
Layout.fillWidth: true Layout.fillWidth: true
onTextChanged: { onTextChanged: {
searchText = text searchText = text
@ -338,13 +338,13 @@ NLoader {
Behavior on border.color { Behavior on border.color {
ColorAnimation { ColorAnimation {
duration: 120 duration: Style.animationFast
} }
} }
Behavior on border.width { Behavior on border.width {
NumberAnimation { NumberAnimation {
duration: 120 duration: Style.animationFast
} }
} }
} }
@ -360,35 +360,35 @@ NLoader {
ListView { ListView {
id: appsList id: appsList
anchors.fill: parent anchors.fill: parent
spacing: 4 * scaling spacing: Style.marginTiniest * scaling
model: filteredEntries model: filteredEntries
currentIndex: selectedIndex currentIndex: selectedIndex
delegate: Rectangle { delegate: Rectangle {
width: appsList.width - Style.marginSmall * scaling width: appsList.width - Style.marginSmall * scaling
height: 65 * scaling height: 65 * scaling
radius: 16 * scaling radius: Style.radiusMedium * scaling
property bool isSelected: index === selectedIndex property bool isSelected: index === selectedIndex
color: (appCardArea.containsMouse || isSelected) ? Qt.darker(Colors.mPrimary, color: (appCardArea.containsMouse || isSelected) ? Qt.darker(Colors.mPrimary,
1.1) : Colors.mSurface 1.1) : Colors.mSurface
border.color: (appCardArea.containsMouse || isSelected) ? Colors.mPrimary : "transparent" border.color: (appCardArea.containsMouse || isSelected) ? Colors.mPrimary : "transparent"
border.width: (appCardArea.containsMouse || isSelected) ? 2 : 0 border.width: Math.max(1, (appCardArea.containsMouse || isSelected) ? Style.borderMedium * scaling : 0)
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 150 duration: Style.animationFast
} }
} }
Behavior on border.color { Behavior on border.color {
ColorAnimation { ColorAnimation {
duration: 150 duration: Style.animationFast
} }
} }
Behavior on border.width { Behavior on border.width {
NumberAnimation { NumberAnimation {
duration: 150 duration: Style.animationFast
} }
} }
@ -399,9 +399,9 @@ NLoader {
// App icon with background // App icon with background
Rectangle { Rectangle {
Layout.preferredWidth: 40 * scaling Layout.preferredWidth: Style.baseWidgetSize * 1.25 * scaling
Layout.preferredHeight: 40 * scaling Layout.preferredHeight: Style.baseWidgetSize * 1.25 * scaling
radius: 14 * scaling radius: Style.radiusSmall * scaling
color: appCardArea.containsMouse ? Qt.darker(Colors.mPrimary, color: appCardArea.containsMouse ? Qt.darker(Colors.mPrimary,
1.1) : Colors.mSurfaceVariant 1.1) : Colors.mSurfaceVariant
property bool iconLoaded: (modelData.isCalculator || modelData.isClipboard property bool iconLoaded: (modelData.isCalculator || modelData.isClipboard
@ -414,9 +414,9 @@ NLoader {
// Clipboard image display // Clipboard image display
Image { Image {
id: clipboardImage id: clipboardImage
anchors.fill: parent anchors.fill: parent
anchors.margins: 6 * scaling anchors.margins: Style.marginTiny * scaling
visible: modelData.type === 'image' visible: modelData.type === 'image'
source: modelData.data || "" source: modelData.data || ""
fillMode: Image.PreserveAspectCrop fillMode: Image.PreserveAspectCrop
asynchronous: true asynchronous: true
@ -426,7 +426,7 @@ NLoader {
IconImage { IconImage {
id: iconImg id: iconImg
anchors.fill: parent anchors.fill: parent
anchors.margins: 6 * scaling anchors.margins: Style.marginTiny * scaling
asynchronous: true asynchronous: true
source: modelData.isCalculator ? "calculate" : modelData.isClipboard ? (modelData.type === 'image' ? "" : "content_paste") : modelData.isCommand ? modelData.icon : (modelData.icon ? Quickshell.iconPath(modelData.icon, "application-x-executable") : "") source: modelData.isCalculator ? "calculate" : modelData.isClipboard ? (modelData.type === 'image' ? "" : "content_paste") : modelData.isCommand ? modelData.icon : (modelData.icon ? Quickshell.iconPath(modelData.icon, "application-x-executable") : "")
visible: (modelData.isCalculator || modelData.isClipboard || modelData.isCommand visible: (modelData.isCalculator || modelData.isClipboard || modelData.isCommand
@ -436,10 +436,10 @@ NLoader {
// Fallback icon container // Fallback icon container
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
anchors.margins: 6 * scaling anchors.margins: Style.marginTiny * scaling
radius: 10 * scaling radius: Style.radiusTiny * scaling
color: Colors.mPrimary color: Colors.mPrimary
opacity: 0.3 opacity: Style.opacityMedium
visible: !parent.iconLoaded visible: !parent.iconLoaded
} }
@ -448,14 +448,14 @@ NLoader {
visible: !parent.iconLoaded && !(modelData.isCalculator || modelData.isClipboard visible: !parent.iconLoaded && !(modelData.isCalculator || modelData.isClipboard
|| modelData.isCommand) || modelData.isCommand)
text: modelData.name ? modelData.name.charAt(0).toUpperCase() : "?" text: modelData.name ? modelData.name.charAt(0).toUpperCase() : "?"
font.pointSize: 18 * scaling font.pointSize: Style.fontSizeXL * scaling
font.weight: Font.Bold font.weight: Font.Bold
color: Colors.mPrimary color: Colors.mPrimary
} }
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 150 duration: Style.animationFast
} }
} }
} }
@ -463,11 +463,11 @@ NLoader {
// App info // App info
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
spacing: 2 * scaling spacing: Style.marginTiniest * scaling
NText { NText {
text: modelData.name || "Unknown" text: modelData.name || "Unknown"
font.pointSize: 14 * scaling font.pointSize: Style.fontSizeLarge * scaling
font.weight: Font.Bold font.weight: Font.Bold
color: Colors.mOnSurface color: Colors.mOnSurface
elide: Text.ElideRight elide: Text.ElideRight
@ -476,7 +476,7 @@ NLoader {
NText { NText {
text: modelData.isCalculator ? (modelData.expr + " = " + modelData.result) : modelData.isClipboard ? modelData.content : modelData.isCommand ? modelData.content : (modelData.genericName || modelData.comment || "") text: modelData.isCalculator ? (modelData.expr + " = " + modelData.result) : modelData.isClipboard ? modelData.content : modelData.isCommand ? modelData.content : (modelData.genericName || modelData.comment || "")
font.pointSize: 11 * scaling font.pointSize: Style.fontSizeMedium * scaling
color: (appCardArea.containsMouse color: (appCardArea.containsMouse
|| isSelected) ? Colors.mOnSurface : Colors.mOnSurface || isSelected) ? Colors.mOnSurface : Colors.mOnSurface
elide: Text.ElideRight elide: Text.ElideRight

View file

@ -45,7 +45,7 @@ Item {
Behavior on height { Behavior on height {
SmoothedAnimation { SmoothedAnimation {
duration: 120 duration: Style.animationFast
} }
} }
} }

View file

@ -16,7 +16,7 @@ Row {
// Timer to hide full title after window switch // Timer to hide full title after window switch
Timer { Timer {
id: fullTitleTimer id: fullTitleTimer
interval: 2000 // Show full title for 2 seconds interval: Style.animationSlow * 4 // Show full title for 2 seconds
repeat: false repeat: false
onTriggered: { onTriggered: {
showingFullTitle = false showingFullTitle = false
@ -59,7 +59,7 @@ Row {
Behavior on width { Behavior on width {
NumberAnimation { NumberAnimation {
duration: 300 duration: Style.animationNormal
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }

View file

@ -13,7 +13,7 @@ PopupWindow {
property real anchorX property real anchorX
property real anchorY property real anchorY
implicitWidth: 180 * scaling implicitWidth: Style.baseWidgetSize * 5.625 * scaling
implicitHeight: Math.max(60 * scaling, listView.contentHeight + (Style.marginMedium * 2 * scaling)) implicitHeight: Math.max(60 * scaling, listView.contentHeight + (Style.marginMedium * 2 * scaling))
visible: false visible: false
color: "transparent" color: "transparent"
@ -250,7 +250,7 @@ PopupWindow {
PopupWindow { PopupWindow {
id: subMenu id: subMenu
implicitWidth: 180 * scaling implicitWidth: Style.baseWidgetSize * 5.625 * scaling
implicitHeight: Math.max(40, listView.contentHeight + 12) implicitHeight: Math.max(40, listView.contentHeight + 12)
visible: false visible: false
color: "transparent" color: "transparent"

View file

@ -86,9 +86,9 @@ NLoader {
Rectangle { Rectangle {
id: wifiMenuRect id: wifiMenuRect
color: Colors.mSurface color: Colors.mSurface
radius: Style.radiusMedium * scaling radius: Style.radiusLarge * scaling
border.color: Colors.mOutline border.color: Colors.mOutlineVariant
border.width: Math.max(1, Style.borderMedium * scaling) border.width: Math.max(1, Style.borderThin * scaling)
width: 340 * scaling width: 340 * scaling
height: 320 * scaling height: 320 * scaling
anchors.top: parent.top anchors.top: parent.top
@ -306,8 +306,8 @@ NLoader {
} }
Item { Item {
Layout.preferredWidth: 22 Layout.preferredWidth: Style.baseWidgetSize * 0.7 * scaling
Layout.preferredHeight: 22 Layout.preferredHeight: Style.baseWidgetSize * 0.7 * scaling
visible: network.connectStatusSsid === modelData.ssid visible: network.connectStatusSsid === modelData.ssid
&& (network.connectStatus !== "" || network.connectingSsid === modelData.ssid) && (network.connectStatus !== "" || network.connectingSsid === modelData.ssid)
@ -324,7 +324,7 @@ NLoader {
visible: network.connectStatus === "success" && !network.connectingSsid visible: network.connectStatus === "success" && !network.connectingSsid
text: "check_circle" text: "check_circle"
font.family: "Material Symbols Outlined" font.family: "Material Symbols Outlined"
font.pointSize: 18 * scaling font.pointSize: Style.fontSizeXL * scaling
color: "#43a047" // TBC: No! color: "#43a047" // TBC: No!
anchors.centerIn: parent anchors.centerIn: parent
} }
@ -374,7 +374,7 @@ NLoader {
id: passwordPromptSection id: passwordPromptSection
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: modelData.ssid === passwordPromptSsid && showPasswordPrompt ? 60 : 0 Layout.preferredHeight: modelData.ssid === passwordPromptSsid && showPasswordPrompt ? 60 : 0
Layout.margins: 8 Layout.margins: Style.marginSmall * scaling
visible: modelData.ssid === passwordPromptSsid && showPasswordPrompt visible: modelData.ssid === passwordPromptSsid && showPasswordPrompt
color: Colors.mSurfaceVariant color: Colors.mSurfaceVariant
radius: Style.radiusSmall * scaling radius: Style.radiusSmall * scaling
@ -386,14 +386,14 @@ NLoader {
Item { Item {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 36 Layout.preferredHeight: Style.barHeight * scaling
Rectangle { Rectangle {
anchors.fill: parent anchors.fill: parent
radius: 8 radius: Style.radiusTiny * scaling
color: "transparent" color: "transparent"
border.color: passwordInputField.activeFocus ? Colors.mPrimary : Colors.mOutline border.color: passwordInputField.activeFocus ? Colors.mPrimary : Colors.mOutline
border.width: 1 border.width: Math.max(1, Style.borderThin * scaling)
TextInput { TextInput {
id: passwordInputField id: passwordInputField
@ -425,12 +425,10 @@ NLoader {
} }
Rectangle { Rectangle {
Layout.preferredWidth: 80 Layout.preferredWidth: Style.baseWidgetSize * 2.5 * scaling
Layout.preferredHeight: 36 Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusMedium * scaling radius: Style.radiusMedium * scaling
color: Colors.mPrimary color: Colors.mPrimary
border.color: Colors.mPrimary
border.width: 0
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {

View file

@ -221,7 +221,7 @@ NLoader {
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 150 duration: Style.animationFast
} }
} }
} }

View file

@ -26,11 +26,11 @@ NLoader {
property bool hidden: autoHide // Start hidden only if auto-hide is enabled property bool hidden: autoHide // Start hidden only if auto-hide is enabled
property int hideDelay: 500 property int hideDelay: 500
property int showDelay: 100 property int showDelay: 100
property int hideAnimationDuration: 200 property int hideAnimationDuration: Style.animationFast
property int showAnimationDuration: 150 property int showAnimationDuration: Style.animationFast
property int peekHeight: 2 property int peekHeight: 2
property int fullHeight: dockContainer.height property int fullHeight: dockContainer.height
property int iconSize: 48 property int iconSize: 36
// Track hover state // Track hover state
property bool dockHovered: false property bool dockHovered: false
@ -51,7 +51,7 @@ NLoader {
anchors.right: true anchors.right: true
focusable: false focusable: false
color: "transparent" color: "transparent"
implicitHeight: iconSize * 1.5 * scaling implicitHeight: iconSize * 1.4 * scaling
// Timer for auto-hide delay // Timer for auto-hide delay
Timer { Timer {
@ -110,8 +110,8 @@ NLoader {
Rectangle { Rectangle {
id: dockContainer id: dockContainer
width: dock.width + 48 * scaling width: dock.width + 48 * scaling
height: iconSize * 1.5 * scaling height: iconSize * 1.4 * scaling
color: Colors.mSurfaceVariant color: Colors.mSurface
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
topLeftRadius: Style.radiusLarge * scaling topLeftRadius: Style.radiusLarge * scaling
@ -258,7 +258,7 @@ NLoader {
radius: Style.radiusTiny radius: Style.radiusTiny
anchors.top: parent.bottom anchors.top: parent.bottom
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
anchors.topMargin: 2 * scaling anchors.topMargin: Style.marginTiniest * scaling
} }
} }
} }
@ -290,12 +290,12 @@ NLoader {
Rectangle { Rectangle {
id: contextMenuContainer id: contextMenuContainer
width: 80 width: Style.baseWidgetSize * 2.5 * scaling
height: 32 height: Style.baseWidgetSize * scaling
radius: 8 radius: Style.radiusTiny * scaling
color: closeMouseArea.containsMouse ? Colors.mTertiary : Colors.mSurface color: closeMouseArea.containsMouse ? Colors.mTertiary : Colors.mSurface
border.color: Colors.mOutline border.color: Colors.mOutline
border.width: 1 border.width: Math.max(1, Style.borderThin * scaling)
x: { x: {
if (!contextMenuTarget) if (!contextMenuTarget)
@ -315,7 +315,7 @@ NLoader {
Text { Text {
anchors.centerIn: parent anchors.centerIn: parent
text: "Close" text: "Close"
font.pixelSize: 14 font.pointSize: Style.fontSizeMedium * scaling
color: Colors.mOnSurface color: Colors.mOnSurface
} }
@ -340,14 +340,14 @@ NLoader {
Behavior on scale { Behavior on scale {
NumberAnimation { NumberAnimation {
duration: 150 duration: Style.animationFast
easing.type: Easing.OutBack easing.type: Easing.OutBack
} }
} }
Behavior on opacity { Behavior on opacity {
NumberAnimation { NumberAnimation {
duration: 100 duration: Style.animationFast
} }
} }
} }

View file

@ -174,7 +174,7 @@ WlSessionLock {
// Time display - Large and prominent with pulse animation // Time display - Large and prominent with pulse animation
Column { Column {
spacing: 8 * scaling spacing: Style.marginSmall * scaling
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
Text { Text {
@ -216,7 +216,7 @@ WlSessionLock {
// User section with animated avatar // User section with animated avatar
Column { Column {
spacing: 16 * scaling spacing: Style.marginMedium * scaling
Layout.alignment: Qt.AlignHCenter Layout.alignment: Qt.AlignHCenter
// Animated avatar with glow effect // Animated avatar with glow effect
@ -226,7 +226,7 @@ WlSessionLock {
radius: width * 0.5 radius: width * 0.5
color: "transparent" color: "transparent"
border.color: Colors.mPrimary border.color: Colors.mPrimary
border.width: 3 * scaling border.width: Math.max(1, Style.borderThick * scaling)
anchors.horizontalCenter: parent.horizontalCenter anchors.horizontalCenter: parent.horizontalCenter
// Glow effect // Glow effect
@ -237,7 +237,7 @@ WlSessionLock {
radius: width * 0.5 radius: width * 0.5
color: "transparent" color: "transparent"
border.color: Qt.rgba(Colors.mPrimary.r, Colors.mPrimary.g, Colors.mPrimary.b, 0.3) border.color: Qt.rgba(Colors.mPrimary.r, Colors.mPrimary.g, Colors.mPrimary.b, 0.3)
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
z: -1 z: -1
SequentialAnimation on scale { SequentialAnimation on scale {
@ -274,7 +274,7 @@ WlSessionLock {
Behavior on scale { Behavior on scale {
NumberAnimation { NumberAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutBack easing.type: Easing.OutBack
} }
} }
@ -303,10 +303,10 @@ WlSessionLock {
Rectangle { Rectangle {
id: terminalBackground id: terminalBackground
anchors.fill: parent anchors.fill: parent
radius: 16 radius: Style.radiusMedium * scaling
color: Colors.applyOpacity(Colors.mSurface, "E6") color: Colors.applyOpacity(Colors.mSurface, "E6")
border.color: Colors.mPrimary border.color: Colors.mPrimary
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
// Scanline effect // Scanline effect
Repeater { Repeater {
@ -316,7 +316,7 @@ WlSessionLock {
height: 1 height: 1
color: Colors.applyOpacity(Colors.mPrimary, "1A") color: Colors.applyOpacity(Colors.mPrimary, "1A")
y: index * 10 y: index * 10
opacity: 0.3 opacity: Style.opacityMedium
SequentialAnimation on opacity { SequentialAnimation on opacity {
loops: Animation.Infinite loops: Animation.Infinite
@ -337,13 +337,13 @@ WlSessionLock {
width: parent.width width: parent.width
height: 40 * scaling height: 40 * scaling
color: Colors.applyOpacity(Colors.mPrimary, "33") color: Colors.applyOpacity(Colors.mPrimary, "33")
topLeftRadius: 14 topLeftRadius: Style.radiusSmall * scaling
topRightRadius: 14 topRightRadius: Style.radiusSmall * scaling
RowLayout { RowLayout {
anchors.fill: parent anchors.fill: parent
anchors.margins: 12 * scaling anchors.margins: Style.marginMedium * scaling
spacing: 12 * scaling spacing: Style.marginMedium * scaling
Text { Text {
text: "SECURE TERMINAL" text: "SECURE TERMINAL"
@ -363,13 +363,13 @@ WlSessionLock {
anchors.right: parent.right anchors.right: parent.right
anchors.bottom: parent.bottom anchors.bottom: parent.bottom
anchors.topMargin: 70 * scaling anchors.topMargin: 70 * scaling
anchors.margins: 12 * scaling anchors.margins: Style.marginMedium * scaling
spacing: 12 * scaling spacing: Style.marginMedium * scaling
// Welcome back typing effect // Welcome back typing effect
RowLayout { RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
spacing: 12 * scaling spacing: Style.marginMedium * scaling
Text { Text {
text: "root@noctalia:~$" text: "root@noctalia:~$"
@ -389,7 +389,7 @@ WlSessionLock {
property string fullText: "Welcome back, " + Quickshell.env("USER") + "!" property string fullText: "Welcome back, " + Quickshell.env("USER") + "!"
Timer { Timer {
interval: 100 interval: Style.animationFast
running: true running: true
repeat: true repeat: true
onTriggered: { onTriggered: {
@ -407,7 +407,7 @@ WlSessionLock {
// Command line with integrated password input // Command line with integrated password input
RowLayout { RowLayout {
Layout.fillWidth: true Layout.fillWidth: true
spacing: 12 * scaling spacing: Style.marginMedium * scaling
Text { Text {
text: "root@noctalia:~$" text: "root@noctalia:~$"
@ -489,7 +489,7 @@ WlSessionLock {
color: Colors.mPrimary color: Colors.mPrimary
visible: passwordInput.activeFocus visible: passwordInput.activeFocus
anchors.left: asterisksText.right anchors.left: asterisksText.right
anchors.leftMargin: 2 * scaling anchors.leftMargin: Style.marginTiniest * scaling
anchors.verticalCenter: asterisksText.verticalCenter anchors.verticalCenter: asterisksText.verticalCenter
SequentialAnimation on opacity { SequentialAnimation on opacity {
@ -532,10 +532,10 @@ WlSessionLock {
Rectangle { Rectangle {
width: 120 * scaling width: 120 * scaling
height: 40 * scaling height: 40 * scaling
radius: 12 radius: Style.radiusSmall * scaling
color: executeButtonArea.containsMouse ? Colors.mPrimary : Colors.applyOpacity(Colors.mPrimary, "33") color: executeButtonArea.containsMouse ? Colors.mPrimary : Colors.applyOpacity(Colors.mPrimary, "33")
border.color: Colors.mPrimary border.color: Colors.mPrimary
border.width: 1 border.width: Math.max(1, Style.borderThin * scaling)
enabled: !lock.authenticating enabled: !lock.authenticating
Layout.alignment: Qt.AlignRight Layout.alignment: Qt.AlignRight
Layout.bottomMargin: -12 * scaling Layout.bottomMargin: -12 * scaling
@ -559,7 +559,7 @@ WlSessionLock {
running: containsMouse running: containsMouse
NumberAnimation { NumberAnimation {
to: 1.05 to: 1.05
duration: 150 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -568,7 +568,7 @@ WlSessionLock {
running: !containsMouse running: !containsMouse
NumberAnimation { NumberAnimation {
to: 1.0 to: 1.0
duration: 150 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -598,7 +598,7 @@ WlSessionLock {
radius: parent.radius radius: parent.radius
color: "transparent" color: "transparent"
border.color: Colors.applyOpacity(Colors.mPrimary, "4D") border.color: Colors.applyOpacity(Colors.mPrimary, "4D")
border.width: 1 border.width: Math.max(1, Style.borderThin * scaling)
z: -1 z: -1
SequentialAnimation on opacity { SequentialAnimation on opacity {
@ -632,10 +632,10 @@ WlSessionLock {
Rectangle { Rectangle {
width: 64 * scaling width: 64 * scaling
height: 64 * scaling height: 64 * scaling
radius: 32 radius: Style.radiusLarge * scaling
color: Qt.rgba(Colors.mError.r, Colors.mError.g, Colors.mError.b, shutdownArea.containsMouse ? 0.9 : 0.2) color: Qt.rgba(Colors.mError.r, Colors.mError.g, Colors.mError.b, shutdownArea.containsMouse ? 0.9 : 0.2)
border.color: Colors.mError border.color: Colors.mError
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
// Glow effect // Glow effect
Rectangle { Rectangle {
@ -645,13 +645,13 @@ WlSessionLock {
radius: width * 0.5 radius: width * 0.5
color: "transparent" color: "transparent"
border.color: Qt.rgba(Colors.mError.r, Colors.mError.g, Colors.mError.b, 0.3) border.color: Qt.rgba(Colors.mError.r, Colors.mError.g, Colors.mError.b, 0.3)
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
opacity: shutdownArea.containsMouse ? 1 : 0 opacity: shutdownArea.containsMouse ? 1 : 0
z: -1 z: -1
Behavior on opacity { Behavior on opacity {
NumberAnimation { NumberAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -672,13 +672,13 @@ WlSessionLock {
anchors.centerIn: parent anchors.centerIn: parent
text: "power_settings_new" text: "power_settings_new"
font.family: "Material Symbols Outlined" font.family: "Material Symbols Outlined"
font.pixelSize: 28 * scaling font.pointSize: Style.fontSizeXXL * scaling
color: shutdownArea.containsMouse ? Colors.onAccent : Colors.mError color: shutdownArea.containsMouse ? Colors.onAccent : Colors.mError
} }
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -689,10 +689,10 @@ WlSessionLock {
Rectangle { Rectangle {
width: 64 * scaling width: 64 * scaling
height: 64 * scaling height: 64 * scaling
radius: 32 radius: Style.radiusLarge * scaling
color: Qt.rgba(Colors.mPrimary.r, Colors.mPrimary.g, Colors.mPrimary.b, rebootArea.containsMouse ? 0.9 : 0.2) color: Qt.rgba(Colors.mPrimary.r, Colors.mPrimary.g, Colors.mPrimary.b, rebootArea.containsMouse ? 0.9 : 0.2)
border.color: Colors.mPrimary border.color: Colors.mPrimary
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
// Glow effect // Glow effect
Rectangle { Rectangle {
@ -702,13 +702,13 @@ WlSessionLock {
radius: width * 0.5 radius: width * 0.5
color: "transparent" color: "transparent"
border.color: Qt.rgba(Colors.mPrimary.r, Colors.mPrimary.g, Colors.mPrimary.b, 0.3) border.color: Qt.rgba(Colors.mPrimary.r, Colors.mPrimary.g, Colors.mPrimary.b, 0.3)
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
opacity: rebootArea.containsMouse ? 1 : 0 opacity: rebootArea.containsMouse ? 1 : 0
z: -1 z: -1
Behavior on opacity { Behavior on opacity {
NumberAnimation { NumberAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -728,13 +728,13 @@ WlSessionLock {
anchors.centerIn: parent anchors.centerIn: parent
text: "refresh" text: "refresh"
font.family: "Material Symbols Outlined" font.family: "Material Symbols Outlined"
font.pixelSize: 28 * scaling font.pointSize: Style.fontSizeXXL * scaling
color: rebootArea.containsMouse ? Colors.onAccent : Colors.mPrimary color: rebootArea.containsMouse ? Colors.onAccent : Colors.mPrimary
} }
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -745,11 +745,11 @@ WlSessionLock {
Rectangle { Rectangle {
width: 64 * scaling width: 64 * scaling
height: 64 * scaling height: 64 * scaling
radius: 32 radius: Style.radiusLarge * scaling
color: Qt.rgba(Colors.mSecondary.r, Colors.mSecondary.g, Colors.mSecondary.b, color: Qt.rgba(Colors.mSecondary.r, Colors.mSecondary.g, Colors.mSecondary.b,
logoutArea.containsMouse ? 0.9 : 0.2) logoutArea.containsMouse ? 0.9 : 0.2)
border.color: Colors.mSecondary border.color: Colors.mSecondary
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
// Glow effect // Glow effect
Rectangle { Rectangle {
@ -759,13 +759,13 @@ WlSessionLock {
radius: width * 0.5 radius: width * 0.5
color: "transparent" color: "transparent"
border.color: Qt.rgba(Colors.mSecondary.r, Colors.mSecondary.g, Colors.mSecondary.b, 0.3) border.color: Qt.rgba(Colors.mSecondary.r, Colors.mSecondary.g, Colors.mSecondary.b, 0.3)
border.width: 2 * scaling border.width: Math.max(1, Style.borderMedium * scaling)
opacity: logoutArea.containsMouse ? 1 : 0 opacity: logoutArea.containsMouse ? 1 : 0
z: -1 z: -1
Behavior on opacity { Behavior on opacity {
NumberAnimation { NumberAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }
@ -787,13 +787,13 @@ WlSessionLock {
anchors.centerIn: parent anchors.centerIn: parent
text: "exit_to_app" text: "exit_to_app"
font.family: "Material Symbols Outlined" font.family: "Material Symbols Outlined"
font.pixelSize: 28 * scaling font.pointSize: Style.fontSizeXXL * scaling
color: logoutArea.containsMouse ? Colors.onAccent : Colors.mSecondary color: logoutArea.containsMouse ? Colors.onAccent : Colors.mSecondary
} }
Behavior on color { Behavior on color {
ColorAnimation { ColorAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }

View file

@ -58,7 +58,7 @@ Variants {
id: notificationStack id: notificationStack
anchors.top: parent.top anchors.top: parent.top
anchors.right: parent.right anchors.right: parent.right
spacing: 8 * scaling spacing: Style.marginSmall * scaling
width: 360 * scaling width: 360 * scaling
visible: true visible: true
@ -146,7 +146,7 @@ Variants {
Rectangle { Rectangle {
width: 6 * scaling width: 6 * scaling
height: 6 * scaling height: 6 * scaling
radius: 3 * scaling radius: Style.radiusTiny * scaling
color: (model.urgency === NotificationUrgency.Critical) ? Colors.mError : (model.urgency === NotificationUrgency.Low) ? Colors.mOnSurface : Colors.mPrimary color: (model.urgency === NotificationUrgency.Critical) ? Colors.mError : (model.urgency === NotificationUrgency.Low) ? Colors.mOnSurface : Colors.mPrimary
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
} }

View file

@ -65,10 +65,10 @@ NLoader {
Rectangle { Rectangle {
id: notificationRect id: notificationRect
color: Colors.mSurfaceVariant color: Colors.mSurface
radius: Style.radiusMedium * scaling radius: Style.radiusLarge * scaling
border.color: Colors.mOutlineVariant border.color: Colors.mOutlineVariant
border.width: Math.max(1, Style.borderMedium * scaling) border.width: Math.max(1, Style.borderThin * scaling)
width: 400 * scaling width: 400 * scaling
height: 500 * scaling height: 500 * scaling
anchors.top: parent.top anchors.top: parent.top
@ -165,16 +165,16 @@ NLoader {
RowLayout { RowLayout {
anchors { anchors {
fill: parent fill: parent
margins: 15 margins: Style.marginMedium * scaling
} }
spacing: 15 spacing: Style.marginMedium * scaling
// Notification content // Notification content
Column { Column {
id: notificationContent id: notificationContent
Layout.fillWidth: true Layout.fillWidth: true
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
spacing: 5 spacing: Style.marginTiniest * scaling
NText { NText {
text: (summary || "No summary").substring(0, 100) text: (summary || "No summary").substring(0, 100)
@ -220,7 +220,7 @@ NLoader {
MouseArea { MouseArea {
id: notificationMouseArea id: notificationMouseArea
anchors.fill: parent anchors.fill: parent
anchors.rightMargin: 50 * scaling anchors.rightMargin: Style.marginLarge * 3 * scaling
hoverEnabled: true hoverEnabled: true
// Remove the onClicked handler since we now have a dedicated delete button // Remove the onClicked handler since we now have a dedicated delete button
} }

View file

@ -234,7 +234,7 @@ NLoader {
Rectangle { Rectangle {
id: sidebar id: sidebar
Layout.preferredWidth: 260 * scaling Layout.preferredWidth: Style.sliderWidth * 1.3 * scaling
Layout.fillHeight: true Layout.fillHeight: true
color: Colors.mSurfaceVariant color: Colors.mSurfaceVariant
border.color: Colors.mOutlineVariant border.color: Colors.mOutlineVariant

View file

@ -107,11 +107,11 @@ ColumnLayout {
Layout.alignment: Qt.AlignCenter Layout.alignment: Qt.AlignCenter
Layout.topMargin: Style.marginSmall * scaling Layout.topMargin: Style.marginSmall * scaling
Layout.preferredWidth: updateText.implicitWidth + 46 * scaling Layout.preferredWidth: updateText.implicitWidth + 46 * scaling
Layout.preferredHeight: 32 * scaling Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusLarge * scaling radius: Style.radiusLarge * scaling
color: updateArea.containsMouse ? Colors.mPrimary : "transparent" color: updateArea.containsMouse ? Colors.mPrimary : "transparent"
border.color: Colors.mPrimary border.color: Colors.mPrimary
border.width: 1 border.width: Math.max(1, Style.borderThin * scaling)
visible: { visible: {
if (root.currentVersion === "Unknown" || root.latestVersion === "Unknown") if (root.currentVersion === "Unknown" || root.latestVersion === "Unknown")
return false return false
@ -132,19 +132,19 @@ ColumnLayout {
RowLayout { RowLayout {
anchors.centerIn: parent anchors.centerIn: parent
spacing: 8 spacing: Style.marginSmall * scaling
NText { NText {
text: "system_update" text: "system_update"
font.family: "Material Symbols Outlined" font.family: "Material Symbols Outlined"
font.pointSize: 18 * scaling font.pointSize: Style.fontSizeXL * scaling
color: updateArea.containsMouse ? Colors.mSurface : Colors.mPrimary color: updateArea.containsMouse ? Colors.mSurface : Colors.mPrimary
} }
NText { NText {
id: updateText id: updateText
text: "Download latest release" text: "Download latest release"
font.pointSize: 14 * scaling font.pointSize: Style.fontSizeLarge * scaling
color: updateArea.containsMouse ? Colors.mSurface : Colors.mPrimary color: updateArea.containsMouse ? Colors.mSurface : Colors.mPrimary
} }
} }
@ -191,8 +191,8 @@ ColumnLayout {
anchors.fill: parent anchors.fill: parent
width: 200 * 4 * scaling width: 200 * 4 * scaling
height: Math.ceil(root.contributors.length / 4) * 100 height: Math.ceil(root.contributors.length / 4) * 100
cellWidth: 200 * scaling cellWidth: Style.baseWidgetSize * 6.25 * scaling
cellHeight: 100 * scaling cellHeight: Style.baseWidgetSize * 3.125 * scaling
model: root.contributors model: root.contributors
delegate: Rectangle { delegate: Rectangle {
@ -208,8 +208,8 @@ ColumnLayout {
Item { Item {
Layout.alignment: Qt.AlignVCenter Layout.alignment: Qt.AlignVCenter
Layout.preferredWidth: 64 * scaling Layout.preferredWidth: Style.baseWidgetSize * 2 * scaling
Layout.preferredHeight: 64 * scaling Layout.preferredHeight: Style.baseWidgetSize * 2 * scaling
NImageRounded { NImageRounded {
imagePath: modelData.avatar_url || "" imagePath: modelData.avatar_url || ""

View file

@ -86,7 +86,7 @@ ColumnLayout {
// Probably because they have some quick fades in and out to avoid clipping // Probably because they have some quick fades in and out to avoid clipping
// We use a timer to space out the updates, to avoid lock up // We use a timer to space out the updates, to avoid lock up
Timer { Timer {
interval: 100 interval: Style.animationFast
running: true running: true
repeat: true repeat: true
onTriggered: { onTriggered: {

View file

@ -30,6 +30,10 @@ ColumnLayout {
// Array to hold FileView objects // Array to hold FileView objects
property var fileViews: [] property var fileViews: []
// Scale properties for card animations
property real cardScaleLow: 0.95
property real cardScaleHigh: 1.0
// Load color scheme data when schemes are available // Load color scheme data when schemes are available
Connections { Connections {
target: ColorSchemes target: ColorSchemes
@ -100,8 +104,6 @@ ColumnLayout {
} }
function schemeLoaded(schemeName, jsonData) { function schemeLoaded(schemeName, jsonData) {
console.log("Loading scheme colors for:", schemeName)
var colors = {} var colors = {}
// Extract colors from JSON data // Extract colors from JSON data
@ -130,8 +132,6 @@ ColumnLayout {
var newCache = schemeColorsCache var newCache = schemeColorsCache
newCache[schemeName] = colors newCache[schemeName] = colors
schemeColorsCache = newCache schemeColorsCache = newCache
console.log("Cached colors for", schemeName, ":", JSON.stringify(colors))
} }
ScrollView { ScrollView {
@ -212,9 +212,6 @@ ColumnLayout {
Repeater { Repeater {
model: ColorSchemes.schemes model: ColorSchemes.schemes
property real cardScaleLow: 0.95
property real cardScaleHigh: 1.00
Rectangle { Rectangle {
id: schemeCard id: schemeCard
Layout.fillWidth: true Layout.fillWidth: true
@ -223,7 +220,7 @@ ColumnLayout {
color: getSchemeColor(modelData, "mSurface") color: getSchemeColor(modelData, "mSurface")
border.width: Math.max(1, Style.borderThick * scaling) border.width: Math.max(1, Style.borderThick * scaling)
border.color: Settings.data.colorSchemes.predefinedScheme === modelData ? Colors.mPrimary : Colors.mOutline border.color: Settings.data.colorSchemes.predefinedScheme === modelData ? Colors.mPrimary : Colors.mOutline
scale: cardScaleLow scale: root.cardScaleLow
property string schemePath: modelData property string schemePath: modelData
@ -240,11 +237,11 @@ ColumnLayout {
cursorShape: Qt.PointingHandCursor cursorShape: Qt.PointingHandCursor
onEntered: { onEntered: {
schemeCard.scale = cardScaleHight schemeCard.scale = root.cardScaleHigh
} }
onExited: { onExited: {
schemeCard.scale = cardScaleLow schemeCard.scale = root.cardScaleLow
} }
} }
@ -287,7 +284,7 @@ ColumnLayout {
Rectangle { Rectangle {
width: 28 * scaling width: 28 * scaling
height: 28 * scaling height: 28 * scaling
radius: 14 * scaling radius: Style.radiusSmall * scaling
color: getSchemeColor(modelData, "mSecondary") color: getSchemeColor(modelData, "mSecondary")
} }

View file

@ -74,7 +74,7 @@ ColumnLayout {
font.pointSize: Style.fontSizeXL * scaling font.pointSize: Style.fontSizeXL * scaling
font.weight: Style.fontWeightBold font.weight: Style.fontWeightBold
color: Colors.mOnSurface color: Colors.mOnSurface
Layout.bottomMargin: 8 Layout.bottomMargin: Style.marginSmall * scaling
} }
NToggle { NToggle {

View file

@ -149,8 +149,7 @@ Item {
anchors.margins: Style.marginTiny * scaling anchors.margins: Style.marginTiny * scaling
imagePath: wallpaperPath imagePath: wallpaperPath
fallbackIcon: "image" fallbackIcon: "image"
borderColor: "transparent"
borderWidth: 0
imageRadius: Style.radiusMedium * scaling imageRadius: Style.radiusMedium * scaling
} }
@ -185,7 +184,7 @@ Item {
Behavior on opacity { Behavior on opacity {
NumberAnimation { NumberAnimation {
duration: 150 duration: Style.animationFast
} }
} }
} }
@ -235,7 +234,7 @@ Item {
color: Colors.mOnSurface color: Colors.mOnSurface
wrapMode: Text.WordWrap wrapMode: Text.WordWrap
horizontalAlignment: Text.AlignHCenter horizontalAlignment: Text.AlignHCenter
Layout.preferredWidth: 300 * scaling Layout.preferredWidth: Style.sliderWidth * 1.5 * scaling
} }
} }
} }

View file

@ -149,7 +149,7 @@ ColumnLayout {
font.pointSize: Style.fontSizeXL * scaling font.pointSize: Style.fontSizeXL * scaling
font.weight: Style.fontWeightBold font.weight: Style.fontWeightBold
color: Colors.mOnSurface color: Colors.mOnSurface
Layout.bottomMargin: 8 Layout.bottomMargin: Style.marginSmall * scaling
} }
// Use SWWW // Use SWWW

View file

@ -65,7 +65,7 @@ NBox {
ComboBox { ComboBox {
id: playerSelector id: playerSelector
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 30 * scaling Layout.preferredHeight: Style.barHeight * 0.83 * scaling
visible: MediaPlayer.getAvailablePlayers().length > 1 visible: MediaPlayer.getAvailablePlayers().length > 1
model: MediaPlayer.getAvailablePlayers() model: MediaPlayer.getAvailablePlayers()
textRole: "identity" textRole: "identity"
@ -252,7 +252,7 @@ NBox {
Behavior on width { Behavior on width {
NumberAnimation { NumberAnimation {
duration: 200 duration: Style.animationFast
} }
} }
} }
@ -273,7 +273,7 @@ NBox {
Behavior on scale { Behavior on scale {
NumberAnimation { NumberAnimation {
duration: 150 duration: Style.animationFast
} }
} }
} }

View file

@ -38,7 +38,7 @@ NBox {
ColumnLayout { ColumnLayout {
Layout.fillWidth: true Layout.fillWidth: true
spacing: 2 * scaling spacing: Style.marginTiniest * scaling
NText { NText {
text: Quickshell.env("USER") || "user" text: Quickshell.env("USER") || "user"
font.weight: Style.fontWeightBold font.weight: Style.fontWeightBold

View file

@ -7,7 +7,7 @@ import qs.Widgets
NBox { NBox {
id: root id: root
Layout.preferredWidth: 84 * scaling Layout.preferredWidth: Style.baseWidgetSize * 2.625 * scaling
implicitHeight: content.implicitHeight + Style.marginTiny * 2 * scaling implicitHeight: content.implicitHeight + Style.marginTiny * 2 * scaling
Column { Column {

View file

@ -54,7 +54,7 @@ NPanel {
// Lock // Lock
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 36 * scaling Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusSmall * scaling radius: Style.radiusSmall * scaling
color: lockButtonArea.containsMouse ? Colors.mTertiary : "transparent" color: lockButtonArea.containsMouse ? Colors.mTertiary : "transparent"
@ -114,7 +114,7 @@ NPanel {
// Suspend // Suspend
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 36 * scaling Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusSmall * scaling radius: Style.radiusSmall * scaling
color: suspendButtonArea.containsMouse ? Colors.mTertiary : "transparent" color: suspendButtonArea.containsMouse ? Colors.mTertiary : "transparent"
@ -172,7 +172,7 @@ NPanel {
// Reboot // Reboot
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 36 * scaling Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusSmall * scaling radius: Style.radiusSmall * scaling
color: rebootButtonArea.containsMouse ? Colors.mTertiary : "transparent" color: rebootButtonArea.containsMouse ? Colors.mTertiary : "transparent"
@ -230,7 +230,7 @@ NPanel {
// Logout // Logout
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 36 * scaling Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusSmall * scaling radius: Style.radiusSmall * scaling
color: logoutButtonArea.containsMouse ? Colors.mTertiary : "transparent" color: logoutButtonArea.containsMouse ? Colors.mTertiary : "transparent"
@ -288,7 +288,7 @@ NPanel {
// Shutdown // Shutdown
Rectangle { Rectangle {
Layout.fillWidth: true Layout.fillWidth: true
Layout.preferredHeight: 36 * scaling Layout.preferredHeight: Style.barHeight * scaling
radius: Style.radiusSmall * scaling radius: Style.radiusSmall * scaling
color: shutdownButtonArea.containsMouse ? Colors.mTertiary : "transparent" color: shutdownButtonArea.containsMouse ? Colors.mTertiary : "transparent"

View file

@ -94,7 +94,7 @@ Rectangle {
anchors.right: parent.right anchors.right: parent.right
anchors.top: parent.top anchors.top: parent.top
anchors.rightMargin: -6 * scaling * contentScale anchors.rightMargin: -6 * scaling * contentScale
anchors.topMargin: 4 * scaling * contentScale anchors.topMargin: Style.marginTiniest * scaling * contentScale
Text { Text {
anchors.centerIn: parent anchors.centerIn: parent

View file

@ -58,7 +58,7 @@ ColumnLayout {
} }
background: Rectangle { background: Rectangle {
implicitWidth: 120 * scaling implicitWidth: Style.baseWidgetSize * 3.75 * scaling
implicitHeight: preferredHeight implicitHeight: preferredHeight
color: Colors.mSurface color: Colors.mSurface
border.color: combo.activeFocus ? Colors.mTertiary : Colors.mOutline border.color: combo.activeFocus ? Colors.mTertiary : Colors.mOutline

View file

@ -9,12 +9,12 @@ RadioButton {
indicator: Rectangle { indicator: Rectangle {
id: outerCircle id: outerCircle
implicitWidth: 20 * scaling implicitWidth: Style.baseWidgetSize * 0.625 * scaling
implicitHeight: 20 * scaling implicitHeight: Style.baseWidgetSize * 0.625 * scaling
radius: width * 0.5 radius: width * 0.5
color: "transparent" color: "transparent"
border.color: root.checked ? Colors.mPrimary : Colors.mOnSurface border.color: root.checked ? Colors.mPrimary : Colors.mOnSurface
border.width: 2 border.width: Math.max(1, Style.borderMedium * scaling)
anchors.verticalCenter: parent.verticalCenter anchors.verticalCenter: parent.verticalCenter
Rectangle { Rectangle {

View file

@ -17,7 +17,7 @@ Item {
signal editingFinished signal editingFinished
// Sizing // Sizing
implicitWidth: 320 * scaling implicitWidth: Style.sliderWidth * 1.6 * scaling
implicitHeight: Style.baseWidgetSize * 2.75 * scaling implicitHeight: Style.baseWidgetSize * 2.75 * scaling
ColumnLayout { ColumnLayout {

View file

@ -60,7 +60,7 @@ RowLayout {
Behavior on x { Behavior on x {
NumberAnimation { NumberAnimation {
duration: 200 duration: Style.animationFast
easing.type: Easing.OutCubic easing.type: Easing.OutCubic
} }
} }

View file

@ -121,7 +121,7 @@ Window {
// Timer to trigger show animation // Timer to trigger show animation
Timer { Timer {
id: showTimer id: showTimer
interval: 10 // Very short delay to ensure component is visible interval: Style.animationFast / 15 // Very short delay to ensure component is visible
repeat: false repeat: false
onTriggered: { onTriggered: {
// Animate to final values // Animate to final values