mirror of
https://github.com/johndoe6345789/metabuilder.git
synced 2026-04-30 00:34:56 +00:00
update: qt6,qml,frontpage (1 files)
This commit is contained in:
@@ -2,12 +2,32 @@ import QtQuick 2.15
|
||||
import QtQuick.Controls 2.15
|
||||
import QtQuick.Layouts 1.15
|
||||
|
||||
import "qmllib/MetaBuilder" as MetaBuilder
|
||||
|
||||
Rectangle {
|
||||
id: root
|
||||
width: 1280
|
||||
height: 900
|
||||
color: "#03030a"
|
||||
|
||||
property var featureHighlights: [
|
||||
{ title: "Visual stacks", desc: "Compose landing, admin, and observability panels through drag-and-drop sections." },
|
||||
{ title: "Observability built in", desc: "Monitor DBAL, Prisma, and daemon health from a single cockpit." },
|
||||
{ title: "Config-first", desc: "Declarative seeds keep designers and developers aligned." }
|
||||
]
|
||||
|
||||
property var ciRuns: [
|
||||
{ name: "frontends-nextjs-build", status: "passing" },
|
||||
{ name: "dbal-unit-tests", status: "passing" },
|
||||
{ name: "prisma-migrations", status: "running" }
|
||||
]
|
||||
|
||||
property var statusItems: [
|
||||
{ label: "DBAL stack", value: "healthy" },
|
||||
{ label: "Prisma migrations", value: "pending" },
|
||||
{ label: "Daemon progress", value: "building" }
|
||||
]
|
||||
|
||||
Rectangle {
|
||||
anchors.fill: parent
|
||||
gradient: Gradient {
|
||||
@@ -17,103 +37,34 @@ Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
id: navBar
|
||||
MetaBuilder.NavBar {
|
||||
anchors {
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
}
|
||||
height: 64
|
||||
color: "#050613"
|
||||
border.color: "#1e2b4a"
|
||||
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
anchors.margins: 16
|
||||
spacing: 24
|
||||
|
||||
Text {
|
||||
text: "MetaBuilder"
|
||||
color: "#f8fbff"
|
||||
font.pixelSize: 20
|
||||
font.bold: true
|
||||
}
|
||||
|
||||
Item { Layout.fillWidth: true }
|
||||
|
||||
Button { text: "Home"; font.pixelSize: 14 }
|
||||
Button { text: "Docs"; font.pixelSize: 14 }
|
||||
Button { text: "Login"; font.pixelSize: 14 }
|
||||
}
|
||||
onActionTriggered: console.log("navbar action:", action)
|
||||
}
|
||||
|
||||
ScrollView {
|
||||
anchors {
|
||||
top: navBar.bottom
|
||||
top: parent.top
|
||||
left: parent.left
|
||||
right: parent.right
|
||||
bottom: parent.bottom
|
||||
}
|
||||
anchors.margins: 24
|
||||
clip: true
|
||||
anchors.topMargin: navBar.height
|
||||
|
||||
ColumnLayout {
|
||||
width: parent.width - 24
|
||||
spacing: 28
|
||||
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
radius: 16
|
||||
color: "#11172d"
|
||||
border.color: "#25315b"
|
||||
border.width: 1
|
||||
padding: 32
|
||||
|
||||
ColumnLayout {
|
||||
spacing: 18
|
||||
|
||||
Text {
|
||||
text: "Build entire stacks visually, from public sites to secure admin panels."
|
||||
font.pixelSize: 36
|
||||
font.bold: true
|
||||
color: "#ffffff"
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
Text {
|
||||
text: "MetaBuilder layers marketing, observability, and runtime tooling into a single declarative canvas."
|
||||
font.pixelSize: 18
|
||||
color: "#b1bfd7"
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 12
|
||||
|
||||
Button {
|
||||
text: "Explore levels"
|
||||
font.pixelSize: 15
|
||||
background: Rectangle {
|
||||
radius: 12
|
||||
color: "#5a7dff"
|
||||
border.color: "#4b6ef9"
|
||||
border.width: 1
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "View live demo"
|
||||
font.pixelSize: 15
|
||||
background: Rectangle {
|
||||
radius: 12
|
||||
color: "#11162b"
|
||||
border.color: "#5a7dff"
|
||||
border.width: 1
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
MetaBuilder.HeroSection {
|
||||
Layout.fillWidth: true
|
||||
onPrimaryAction: console.log("Hero primary action")
|
||||
onSecondaryAction: console.log("Hero secondary action")
|
||||
}
|
||||
|
||||
TabView {
|
||||
@@ -146,35 +97,16 @@ Rectangle {
|
||||
color: "#f6f9ff"
|
||||
}
|
||||
RowLayout {
|
||||
width: parent.width
|
||||
spacing: 16
|
||||
Repeater {
|
||||
model: [
|
||||
{ title: "Visual stacks", desc: "Compose landing, admin, and observability panels through drag-and-drop sections." },
|
||||
{ title: "Observability built in", desc: "Monitor DBAL, Prisma, and daemon health in one cockpit." },
|
||||
{ title: "Config-first", desc: "Declarative seeds keep designers and developers aligned." }
|
||||
]
|
||||
delegate: Rectangle {
|
||||
width: (parent.width - (spacing * 2) - 4) / 3
|
||||
radius: 10
|
||||
color: "#11152b"
|
||||
border.color: "#1f2b45"
|
||||
border.width: 1
|
||||
padding: 14
|
||||
|
||||
ColumnLayout {
|
||||
spacing: 6
|
||||
Text {
|
||||
text: title
|
||||
font.pixelSize: 16
|
||||
color: "#f5f8ff"
|
||||
}
|
||||
Text {
|
||||
text: desc
|
||||
font.pixelSize: 13
|
||||
color: "#aeb8cf"
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
}
|
||||
Repeater {
|
||||
model: featureHighlights
|
||||
delegate: MetaBuilder.FeatureCard {
|
||||
Layout.fillWidth: true
|
||||
Layout.preferredWidth: (parent.width - 32) / 3
|
||||
title: modelData.title
|
||||
description: modelData.desc
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -216,11 +148,7 @@ Rectangle {
|
||||
ColumnLayout {
|
||||
spacing: 16
|
||||
Repeater {
|
||||
model: [
|
||||
{ name: "frontends-nextjs-build", status: "passing" },
|
||||
{ name: "dbal-unit-tests", status: "passing" },
|
||||
{ name: "prisma-migrations", status: "running" }
|
||||
]
|
||||
model: ciRuns
|
||||
delegate: Rectangle {
|
||||
width: parent.width
|
||||
height: 56
|
||||
@@ -234,7 +162,7 @@ Rectangle {
|
||||
anchors.margins: 12
|
||||
spacing: 16
|
||||
Text {
|
||||
text: name
|
||||
text: modelData.name
|
||||
color: "#eef2ff"
|
||||
font.pixelSize: 16
|
||||
}
|
||||
@@ -242,12 +170,12 @@ Rectangle {
|
||||
width: 8
|
||||
height: 8
|
||||
radius: 4
|
||||
color: status === "passing" ? "#39d98a" : "#facc15"
|
||||
color: modelData.status === "passing" ? "#39d98a" : "#facc15"
|
||||
anchors.right: parent.right
|
||||
}
|
||||
Text {
|
||||
text: status
|
||||
color: status === "passing" ? "#39d98a" : "#facc15"
|
||||
text: modelData.status
|
||||
color: modelData.status === "passing" ? "#39d98a" : "#facc15"
|
||||
font.pixelSize: 15
|
||||
anchors.rightMargin: 0
|
||||
}
|
||||
@@ -266,34 +194,11 @@ Rectangle {
|
||||
ColumnLayout {
|
||||
spacing: 16
|
||||
Repeater {
|
||||
model: [
|
||||
{ label: "DBAL stack", value: "healthy" },
|
||||
{ label: "Prisma migrations", value: "pending" },
|
||||
{ label: "Daemon progress", value: "building" }
|
||||
]
|
||||
delegate: Rectangle {
|
||||
width: parent.width
|
||||
height: 60
|
||||
radius: 12
|
||||
color: "#0f1324"
|
||||
border.color: "#1f2b46"
|
||||
border.width: 1
|
||||
padding: 16
|
||||
RowLayout {
|
||||
anchors.fill: parent
|
||||
spacing: 12
|
||||
Text {
|
||||
text: label
|
||||
color: "#d9e1ff"
|
||||
font.pixelSize: 17
|
||||
}
|
||||
Item { Layout.fillWidth: true }
|
||||
Text {
|
||||
text: value
|
||||
font.pixelSize: 16
|
||||
color: value === "healthy" ? "#39d98a" : "#facc15"
|
||||
}
|
||||
}
|
||||
model: statusItems
|
||||
delegate: MetaBuilder.StatusCard {
|
||||
Layout.fillWidth: true
|
||||
label: modelData.label
|
||||
value: modelData.value
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -301,53 +206,9 @@ Rectangle {
|
||||
}
|
||||
}
|
||||
|
||||
Rectangle {
|
||||
width: parent.width
|
||||
radius: 14
|
||||
color: "#0b1121"
|
||||
border.color: "#1d2a42"
|
||||
border.width: 1
|
||||
padding: 22
|
||||
|
||||
ColumnLayout {
|
||||
spacing: 16
|
||||
Text {
|
||||
text: "Start a project"
|
||||
font.pixelSize: 22
|
||||
color: "#ffffff"
|
||||
}
|
||||
Text {
|
||||
text: "Share your stack vision and MetaBuilder will map it to seeds, workflows, and runtime automation."
|
||||
font.pixelSize: 16
|
||||
color: "#aeb8cf"
|
||||
wrapMode: Text.Wrap
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
spacing: 10
|
||||
TextField {
|
||||
placeholderText: "Your name"
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
TextField {
|
||||
placeholderText: "Company"
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
TextField {
|
||||
placeholderText: "Email"
|
||||
Layout.fillWidth: true
|
||||
}
|
||||
}
|
||||
|
||||
Button {
|
||||
text: "Schedule a call"
|
||||
font.pixelSize: 16
|
||||
background: Rectangle {
|
||||
radius: 10
|
||||
color: "#5a7dff"
|
||||
}
|
||||
}
|
||||
}
|
||||
MetaBuilder.ContactForm {
|
||||
Layout.fillWidth: true
|
||||
onSubmitRequested: console.log("contact form submitted", name, company, email)
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
|
||||
Reference in New Issue
Block a user