Files
euri-packages/packages/calamares-branding-antergos-next/show.qml
T
c-ludenberg 09bff48d8b feat: complete Material Design 3 QML branding rework + antergos-lsb-release
Complete rewrite of the Calamares QML branding with a pure Material
Design 3 (Material You) dark theme. No longer KaOS-derived — all QML
written from scratch for Antergos NeXT.

calamares-sidebar.qml:
  — M3 CenterAlignedTopAppBar at 64dp height with #20252B surface
  — Left: 34dp product logo + "Antergos NeXT" wordmark (17dp Medium,
    0.3 letter-spacing)
  — Right: step indicator dots (7dp circles, active 10dp pill #4A9EFF)
  — Bottom: 3dp animated linear progress bar (400ms OutCubic easing)
  — Subtle level-1 drop shadow (4dp radius, rgba(0,0,0,0.4))

calamares-navigation.qml:
  — M3 Navigation Bar at 68dp height
  — Buttons at 42dp height, 21dp pill radius (per M3 Label Large)
  — Sentence case text ("Back", "Next", "Cancel") in Roboto Medium 14px
  — Back: text button with ← arrow, on-surface hover rgba(0.89,0.89,0.90,0.06)
  — Cancel: text button in error #FFB4AB, error hover rgba(1.0,0.71,0.67,0.07)
  — Next: filled pill 120x42dp in primary #4A9EFF, hover #3B8BDE
  — 120ms ColorAnimation on all button backgrounds
  — Inline Unicode arrows (← →) instead of missing SVG icon files

show.qml:
  — Full-bleed background image with 55% dark overlay + vertical
    gradient (top 15% → transparent → bottom 30%)
  — M3 Elevated Card: 460x380dp, 12dp corner (M3 CornerMedium),
    #2B2930 fill (M3 Surface Container High), 32dp content padding
  — Card shadow: 40dp blur, 56 samples, rgba(0,0,0,0.5)
  — Subtle 1px border at rgba(255,255,255,0.04) for edge definition
  — Title: 26dp Roboto Medium #FFFFFF
  — Body: 14dp Roboto Normal #C4C6D0, 1.55 line-height
  — Footer: 12dp Roboto Medium #8E9099 (M3 Outline)
  — 5 slides with auto-advance every 12s
  — Crossfade transition: 100ms out + 160ms in with OutQuad/InQuad
  — Bottom-left: 140dp wordmark logo at 45% opacity
  — Center-bottom: animated dot indicators matching sidebar style

Slider.qml:
  — Crossfade between Dia slides using SequentialAnimation
  — Removed Animator types (Qt6 render-thread safe)
  — Clean Column layout with centered content

Dia.qml:
  — Unchanged data model (title, body, footer, image)

antergos-lsb-release:
  — New package replacing lsb-release with Antergos NeXT branding
  — /etc/lsb-release shows DISTRIB_ID="Antergos"
  — Added to packages.yaml for CI builds
2026-07-03 23:43:02 +02:00

159 lines
4.6 KiB
QML

import QtQuick 2.15
import Qt5Compat.GraphicalEffects
Item {
id: root
width: 920
height: 630
function onActivate() {
timer.restart()
slider.reset()
}
function onLeave() {
}
Timer {
id: timer
interval: 12000
running: true
repeat: true
onTriggered: slider.currentSlideIndex++
}
MouseArea {
anchors.fill: parent
cursorShape: Qt.PointingHandCursor
onClicked: {
timer.restart()
slider.currentSlideIndex++
}
}
Image {
id: background
anchors.fill: parent
source: "background.jpg"
sourceSize.width: parent.width
sourceSize.height: parent.height
fillMode: Image.PreserveAspectCrop
}
Rectangle {
anchors.fill: parent
color: Qt.rgba(0, 0, 0, 0.55)
}
Rectangle {
anchors.fill: parent
gradient: Gradient {
GradientStop { position: 0.0; color: Qt.rgba(0, 0, 0, 0.15) }
GradientStop { position: 0.5; color: "transparent" }
GradientStop { position: 1.0; color: Qt.rgba(0, 0, 0, 0.3) }
}
}
Rectangle {
id: card
width: 460
height: 380
radius: 12
anchors.centerIn: parent
anchors.horizontalCenterOffset: 40
color: "#2B2930"
layer.enabled: true
layer.effect: DropShadow {
transparentBorder: true
radius: 40
samples: 56
color: Qt.rgba(0, 0, 0, 0.5)
}
Rectangle {
anchors.fill: parent
radius: 12
color: "transparent"
border { color: Qt.rgba(1, 1, 1, 0.04); width: 1 }
}
Item {
anchors {
fill: parent
margins: 32
}
Slider {
id: slider
anchors.fill: parent
slides: [
Dia {
title: qsTr("Welcome to Antergos NeXT")
body: qsTr("A modern Arch Linux experience built on Artix Linux. Rolling release, OpenRC init, and the latest software.")
footer: qsTr("Choose your preferred desktop environment during setup")
},
Dia {
title: qsTr("Desktop Environments")
body: qsTr("Select from KDE Plasma, GNOME, Xfce, Budgie, Cinnamon, MATE, LXQt, i3, Sway, or Hyprland.")
footer: qsTr("A curated selection of the best Linux desktops")
},
Dia {
title: qsTr("Antergos Tools")
body: qsTr("Welcome app for system configuration, Calamares installer with offline and online modes, and full access to Arch Linux repositories and the AUR.")
footer: qsTr("Everything you need to get started")
},
Dia {
title: qsTr("Open Source")
body: qsTr("Free and open source software built by the community for the community.")
footer: qsTr("github.com/Antergos-NeXT")
},
Dia {
title: qsTr("Almost Done")
body: qsTr("Your system is being configured with your selected desktop environment, drivers, and applications.")
footer: qsTr("Reboot and enjoy Antergos NeXT")
}
]
}
}
}
Image {
id: logo
source: "antergos-logo.png"
width: 140
height: 40
fillMode: Image.PreserveAspectFit
anchors {
bottom: parent.bottom
bottomMargin: 20
left: parent.left
leftMargin: 24
}
opacity: 0.45
}
Row {
anchors {
bottom: parent.bottom
bottomMargin: 20
horizontalCenter: parent.horizontalCenter
}
spacing: 6
Repeater {
model: slider.slides.length
Rectangle {
width: index == slider.currentSlideIndex ? 22 : 7
height: 7
radius: 3.5
color: index == slider.currentSlideIndex ? "#4A9EFF" : "#8E9099"
opacity: index == slider.currentSlideIndex ? 1 : 0.35
Behavior on width { NumberAnimation { duration: 250 } }
Behavior on color { ColorAnimation { duration: 200 } }
}
}
}
}