From afc02abd0a890c20ef61c08c04f7fbfecf3a1aa1 Mon Sep 17 00:00:00 2001 From: Marek Lenczewski Date: Sat, 11 Apr 2026 14:11:23 +0200 Subject: [PATCH] Base module --- .../main/java/de/haushalt/app/MainScreen.kt | 51 +++++++++++++++++++ .../main/java/de/haushalt/app/StartScreen.kt | 7 +++ frontend/src/App.vue | 46 ++++++++++++++++- frontend/src/router/index.js | 8 ++- frontend/src/style.css | 26 ++++++++++ frontend/src/views/Startpage.vue | 3 ++ 6 files changed, 139 insertions(+), 2 deletions(-) create mode 100644 app/app/src/main/java/de/haushalt/app/StartScreen.kt create mode 100644 frontend/src/views/Startpage.vue diff --git a/app/app/src/main/java/de/haushalt/app/MainScreen.kt b/app/app/src/main/java/de/haushalt/app/MainScreen.kt index 4339cdb..7f6250d 100644 --- a/app/app/src/main/java/de/haushalt/app/MainScreen.kt +++ b/app/app/src/main/java/de/haushalt/app/MainScreen.kt @@ -1,7 +1,58 @@ package de.haushalt.app +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.material3.CenterAlignedTopAppBar +import androidx.compose.material3.ExperimentalMaterial3Api +import androidx.compose.material3.MaterialTheme +import androidx.compose.material3.Scaffold +import androidx.compose.material3.Surface +import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.unit.dp +import androidx.navigation.compose.NavHost +import androidx.navigation.compose.composable +import androidx.navigation.compose.rememberNavController +@OptIn(ExperimentalMaterial3Api::class) @Composable fun MainScreen() { + val navController = rememberNavController() + Scaffold( + topBar = { + Column { + Navigation() + Subnavigation() + } + } + ) { innerPadding -> + NavHost( + navController = navController, + startDestination = "start", + modifier = Modifier.padding(innerPadding) + ) { + composable("start") { StartScreen() } + } + } +} + +@OptIn(ExperimentalMaterial3Api::class) +@Composable +private fun Navigation() { + CenterAlignedTopAppBar( + title = { Text("Haushalt") } + ) +} + +@Composable +private fun Subnavigation() { + Surface( + modifier = Modifier + .fillMaxWidth() + .height(32.dp), + color = MaterialTheme.colorScheme.surfaceVariant + ) {} } diff --git a/app/app/src/main/java/de/haushalt/app/StartScreen.kt b/app/app/src/main/java/de/haushalt/app/StartScreen.kt new file mode 100644 index 0000000..ed4991d --- /dev/null +++ b/app/app/src/main/java/de/haushalt/app/StartScreen.kt @@ -0,0 +1,7 @@ +package de.haushalt.app + +import androidx.compose.runtime.Composable + +@Composable +fun StartScreen() { +} diff --git a/frontend/src/App.vue b/frontend/src/App.vue index 13ee9ea..9a43bff 100644 --- a/frontend/src/App.vue +++ b/frontend/src/App.vue @@ -3,5 +3,49 @@ import { RouterView } from 'vue-router' + + diff --git a/frontend/src/router/index.js b/frontend/src/router/index.js index 835241d..4621a77 100644 --- a/frontend/src/router/index.js +++ b/frontend/src/router/index.js @@ -2,7 +2,13 @@ import { createRouter, createWebHistory } from 'vue-router' const router = createRouter({ history: createWebHistory(), - routes: [], + routes: [ + { + path: '/', + name: 'start', + component: () => import('../views/Startpage.vue'), + }, + ], }) export default router diff --git a/frontend/src/style.css b/frontend/src/style.css index e69de29..2bd4d5c 100644 --- a/frontend/src/style.css +++ b/frontend/src/style.css @@ -0,0 +1,26 @@ +:root { + --bg: #ffffff; + --text: #1a1a1a; + --border: #e5e5e5; + --nav-bg: #f7f7f8; + --subnav-bg: #f0f0f2; + color-scheme: light dark; +} + +* { + box-sizing: border-box; +} + +body { + margin: 0; + font-family: system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; + color: var(--text); + background: var(--bg); +} + +.container { + width: 100%; + max-width: 1280px; + margin: 0 auto; + padding: 0 1rem; +} diff --git a/frontend/src/views/Startpage.vue b/frontend/src/views/Startpage.vue new file mode 100644 index 0000000..61e11d9 --- /dev/null +++ b/frontend/src/views/Startpage.vue @@ -0,0 +1,3 @@ +