import QtQuick Item { id: root anchors.fill: parent Rectangle { anchors.fill: parent gradient: Gradient { GradientStop { position: 0.0; color: "#050A17" } GradientStop { position: 0.55; color: "#0E1630" } GradientStop { position: 1.0; color: "#1A1342" } } } Repeater { model: 48 Rectangle { width: (index % 5) + 1 height: width radius: width / 2 color: index % 3 === 0 ? "#88FFFFFF" : "#44B8D4FF" x: (index * 137) % root.width y: (index * 89) % root.height opacity: 0.35 + (index % 7) * 0.05 SequentialAnimation on opacity { loops: Animation.Infinite running: true NumberAnimation { from: 0.2 to: 0.7 duration: 2000 + (index % 5) * 400 } NumberAnimation { from: 0.7 to: 0.2 duration: 2000 + (index % 5) * 400 } } } } Rectangle { anchors.fill: parent opacity: 0.35 gradient: Gradient { orientation: Gradient.Vertical GradientStop { position: 0.0; color: "transparent" } GradientStop { position: 1.0; color: "#CC000000" } } } }