63 lines
1.6 KiB
QML
63 lines
1.6 KiB
QML
import QtQuick
|
|
import QtQuick.Effects
|
|
import "." as M
|
|
|
|
Item {
|
|
id: root
|
|
|
|
default property alias content: row.children
|
|
property color borderColor: M.Theme.base02
|
|
|
|
visible: row.visibleChildren.length > 0
|
|
|
|
implicitWidth: row.implicitWidth + _pad * 2
|
|
implicitHeight: row.implicitHeight + _pad * 2
|
|
|
|
readonly property int _pad: 6
|
|
|
|
// Shadow source — rendered offscreen, only its glow is visible
|
|
Rectangle {
|
|
id: shadowSource
|
|
anchors.fill: parent
|
|
color: "transparent"
|
|
border.color: root.borderColor
|
|
border.width: 1
|
|
radius: M.Theme.radius
|
|
visible: false
|
|
}
|
|
|
|
MultiEffect {
|
|
source: shadowSource
|
|
anchors.fill: shadowSource
|
|
shadowEnabled: true
|
|
shadowColor: root.borderColor
|
|
shadowBlur: 1.0
|
|
shadowVerticalOffset: 0
|
|
shadowHorizontalOffset: 0
|
|
}
|
|
|
|
// Background gradient — accent color fading down, connects to bar's top gradient
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
radius: M.Theme.radius
|
|
gradient: Gradient {
|
|
GradientStop { position: 0; color: Qt.rgba(root.borderColor.r, root.borderColor.g, root.borderColor.b, 0.15) }
|
|
GradientStop { position: 1; color: "transparent" }
|
|
}
|
|
}
|
|
|
|
// Visible border (on top of the glow)
|
|
Rectangle {
|
|
anchors.fill: parent
|
|
color: "transparent"
|
|
border.color: root.borderColor
|
|
border.width: 1
|
|
radius: M.Theme.radius
|
|
}
|
|
|
|
Row {
|
|
id: row
|
|
anchors.centerIn: parent
|
|
spacing: M.Theme.moduleSpacing + 2
|
|
}
|
|
}
|