// NavigationRailTabArray.qml from end-4 https://github.com/end-4/dots-hyprland/blob/eac4ab3e3c249008d9596023f79dbc2d31012600/.config/quickshell/ii/modules/common/widgets/NavigationRailTabArray.qml import qs.common import QtQuick import QtQuick.Layouts Item { id: root property int currentIndex: 0 property bool expanded: false default property alias data: tabBarColumn.data implicitHeight: tabBarColumn.implicitHeight implicitWidth: tabBarColumn.implicitWidth Layout.topMargin: 25 Rectangle { property real itemHeight: tabBarColumn.children[0].baseSize property real baseHighlightHeight: tabBarColumn.children[0].baseHighlightHeight anchors { top: tabBarColumn.top left: tabBarColumn.left topMargin: itemHeight * root.currentIndex + (root.expanded ? 0 : ((itemHeight - baseHighlightHeight) / 2)) } radius: Appearance.rounding.full color: Appearance.colors.colSecondaryContainer implicitHeight: root.expanded ? itemHeight : baseHighlightHeight implicitWidth: tabBarColumn.children[root.currentIndex].visualWidth Behavior on anchors.topMargin { NumberAnimation { duration: Appearance.animationCurves.expressiveFastSpatialDuration easing.type: Appearance.animation.elementMove.type easing.bezierCurve: Appearance.animationCurves.expressiveFastSpatial } } } ColumnLayout { id: tabBarColumn anchors.fill: parent spacing: 0 } }