feat(ui): add LandingPagePreview with Compose-based design preview

- Introduced `LandingPagePreview` composable for live UI previews in IntelliJ (Hot-Reload).
- Included fallback `main()` for standalone preview in the Design Preview Sandbox.

Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
2026-03-21 16:57:42 +01:00
parent a0b7d5aa34
commit c0389558bb
@@ -0,0 +1,52 @@
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.padding
import androidx.compose.material3.Button
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.window.Window
import androidx.compose.ui.window.application
import at.mocode.frontend.core.designsystem.theme.AppTheme
import at.mocode.frontend.core.designsystem.theme.Dimens
@Preview
@Composable
fun LandingPagePreview() {
AppTheme {
Surface(
modifier = Modifier.fillMaxSize(),
color = MaterialTheme.colorScheme.background
) {
Column(
modifier = Modifier.padding(Dimens.SpacingM),
verticalArrangement = Arrangement.spacedBy(Dimens.SpacingM)
) {
Text(
text = "Landing Page Preview",
style = MaterialTheme.typography.titleLarge,
color = MaterialTheme.colorScheme.primary
)
Text(
text = "Dies ist eine Live-Vorschau. Du kannst hier deine UI-Komponenten isoliert bauen und sofort sehen, wie sie aussehen. Ändere Text, Farben oder Layouts im Code die Preview aktualisiert sich automatisch in IntelliJ (Hot-Reload).",
style = MaterialTheme.typography.bodyMedium,
color = MaterialTheme.colorScheme.onBackground
)
Button(onClick = {}) {
Text("Ein Button im Primary-Design")
}
}
}
}
}
// Fallback für IntelliJ, falls das Compose Plugin die Preview nicht erkennt
fun main() = application {
Window(onCloseRequest = ::exitApplication, title = "Design Preview Sandbox") {
LandingPagePreview()
}
}