Files
omarchycn/default/quickshell/omarchy-shell/Widgets/NSpinBox.qml
T
Jake Weaver ae70db3c53 Restyle Quickshell settings inputs to match Omarchy aesthetic
Settings dialogs were rendering text/spin/combo controls with Qt's
default light style, which clashed with the dark Omarchy theme — black
text on dark fills, white dropdown popups, rounded corners, and a
pill-style toggle that didn't match the native StyleToggleRow switch.

- Style.qml: collapse all radius tokens to 0 so Noctalia-compat widgets
  inherit Omarchy's sharp-corner convention
- NToggle: rewrite to mirror the native 48x22 switch with accent fill
  and a sliding 16x16 thumb
- NComboBox: skin contentItem, indicator, popup, and delegate so the
  dropdown reads on dark themes
- NSpinBox: add a styled background, contentItem, and up/down indicators
- SettingsPanel calendar form + DynamicSettingsForm string field: drop
  default TextField chrome for the same translucent foreground fill used
  by WidgetCard, accent border on focus
2026-05-15 16:46:56 -04:00

76 lines
2.1 KiB
QML

import QtQuick
import QtQuick.Controls
import qs.Commons
SpinBox {
id: root
property string label: ""
font.family: "JetBrainsMono Nerd Font"
font.pixelSize: Style.fontSizeS
editable: true
implicitHeight: 32
leftPadding: 10
rightPadding: 24
topPadding: 4
bottomPadding: 4
background: Rectangle {
color: Color.mSurfaceVariant
border.color: root.activeFocus ? Color.mPrimary : Color.mOutline
border.width: Style.borderS
radius: Style.radiusS
}
contentItem: TextInput {
text: root.displayText
font: root.font
color: Color.mOnSurface
selectionColor: Qt.rgba(Color.mOnSurface.r, Color.mOnSurface.g, Color.mOnSurface.b, 0.35)
selectedTextColor: Color.mOnSurface
horizontalAlignment: Qt.AlignLeft
verticalAlignment: Qt.AlignVCenter
readOnly: !root.editable
validator: root.validator
inputMethodHints: Qt.ImhFormattedNumbersOnly
}
up.indicator: Rectangle {
x: root.mirrored ? 0 : root.width - width
width: 20
height: root.height / 2
color: root.up.pressed
? Qt.rgba(Color.mOnSurface.r, Color.mOnSurface.g, Color.mOnSurface.b, 0.16)
: root.up.hovered
? Qt.rgba(Color.mOnSurface.r, Color.mOnSurface.g, Color.mOnSurface.b, 0.08)
: "transparent"
radius: Style.radiusS
Text {
anchors.centerIn: parent
text: "▲"
font.family: root.font.family
font.pixelSize: 7
color: root.up.hovered ? Color.mOnSurface : Color.mOnSurfaceVariant
}
}
down.indicator: Rectangle {
x: root.mirrored ? 0 : root.width - width
y: root.height / 2
width: 20
height: root.height / 2
color: root.down.pressed
? Qt.rgba(Color.mOnSurface.r, Color.mOnSurface.g, Color.mOnSurface.b, 0.16)
: root.down.hovered
? Qt.rgba(Color.mOnSurface.r, Color.mOnSurface.g, Color.mOnSurface.b, 0.08)
: "transparent"
radius: Style.radiusS
Text {
anchors.centerIn: parent
text: "▼"
font.family: root.font.family
font.pixelSize: 7
color: root.down.hovered ? Color.mOnSurface : Color.mOnSurfaceVariant
}
}
}