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 @@
+
+
+