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
91 lines
2.4 KiB
QML
91 lines
2.4 KiB
QML
import io.calamares.ui 1.0
|
|
import io.calamares.core 1.0
|
|
|
|
import QtQuick 2.15
|
|
import QtQuick.Layouts 1.15
|
|
import QtQuick.Controls 2.15
|
|
import Qt5Compat.GraphicalEffects
|
|
|
|
Rectangle {
|
|
id: topBar
|
|
color: "#20252B"
|
|
height: 64
|
|
width: parent ? parent.width : 1024
|
|
|
|
layer.enabled: true
|
|
layer.effect: DropShadow {
|
|
transparentBorder: true
|
|
radius: 4
|
|
samples: 8
|
|
color: Qt.rgba(0, 0, 0, 0.4)
|
|
}
|
|
|
|
RowLayout {
|
|
anchors.fill: parent
|
|
anchors.leftMargin: 20
|
|
anchors.rightMargin: 20
|
|
spacing: 14
|
|
|
|
Image {
|
|
id: logo
|
|
sourceSize.width: 34
|
|
sourceSize.height: 34
|
|
fillMode: Image.PreserveAspectFit
|
|
source: Branding.imagePath(Branding.ProductLogo)
|
|
Layout.alignment: Qt.AlignVCenter
|
|
}
|
|
|
|
Text {
|
|
text: "Antergos NeXT"
|
|
color: "#E3E2E6"
|
|
font {
|
|
family: "Roboto"
|
|
weight: Font.Medium
|
|
pixelSize: 17
|
|
letterSpacing: 0.3
|
|
}
|
|
Layout.alignment: Qt.AlignVCenter
|
|
}
|
|
|
|
Item { Layout.fillWidth: true }
|
|
|
|
Row {
|
|
spacing: 8
|
|
Layout.alignment: Qt.AlignVCenter
|
|
|
|
Repeater {
|
|
id: dotRepeater
|
|
model: ViewManager
|
|
|
|
Rectangle {
|
|
width: index === ViewManager.currentStepIndex ? 10 : 7
|
|
height: 7
|
|
radius: 3.5
|
|
color: index === ViewManager.currentStepIndex
|
|
? "#4A9EFF" : "#8E9099"
|
|
opacity: index === ViewManager.currentStepIndex ? 1 : 0.35
|
|
Behavior on width { NumberAnimation { duration: 200 } }
|
|
Behavior on color { ColorAnimation { duration: 200 } }
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
Rectangle {
|
|
anchors {
|
|
bottom: parent.bottom
|
|
left: parent.left
|
|
right: parent.right
|
|
}
|
|
height: 3
|
|
color: Qt.rgba(0.56, 0.57, 0.60, 0.2)
|
|
|
|
Rectangle {
|
|
height: parent.height
|
|
width: parent.width * ((ViewManager.currentStepIndex + 1) / Math.max(dotRepeater.count, 1))
|
|
color: "#4A9EFF"
|
|
Behavior on width { NumberAnimation { duration: 400; easing.type: Easing.OutCubic } }
|
|
}
|
|
}
|
|
}
|