diff --git a/frontend/core/design-system/src/commonMain/kotlin/at/mocode/frontend/core/designsystem/theme/Colors.kt b/frontend/core/design-system/src/commonMain/kotlin/at/mocode/frontend/core/designsystem/theme/Colors.kt new file mode 100644 index 00000000..bdbe6ea9 --- /dev/null +++ b/frontend/core/design-system/src/commonMain/kotlin/at/mocode/frontend/core/designsystem/theme/Colors.kt @@ -0,0 +1,36 @@ +package at.mocode.frontend.core.designsystem.theme + +import androidx.compose.ui.graphics.Color + +/** + * Zentrale Farbdefinitionen (Palette) für das Projekt. + * Keine "Magic Colors" (wie Color.Red) in den UIs! + * Stattdessen immer AppColors.Primary oder MaterialTheme.colorScheme.primary nutzen. + */ +object AppColors { + // Enterprise Blue (Hauptaktion, starke Akzente) + val Primary = Color(0xFF0052CC) + val OnPrimary = Color.White + val PrimaryContainer = Color(0xFFDEEBFF) + val OnPrimaryContainer = Color(0xFF0052CC) + + // Helleres Blau für sekundäre Akzente + val Secondary = Color(0xFF2684FF) + val OnSecondary = Color.White + + // Neutral- & Hintergrund (Light Mode) + val BackgroundLight = Color(0xFFF4F5F7) // Helles Grau (nicht hartes Weiß) + val SurfaceLight = Color.White + val OnBackgroundLight = Color(0xFF172B4D) // Fast Schwarz (besser lesbar) + + // Neutral & Hintergrund (Dark Mode) + val BackgroundDark = Color(0xFF1E1E1E) // Angenehmes, dunkles Grau + val SurfaceDark = Color(0xFF2C2C2C) + val OnBackgroundDark = Color(0xFFEBECF0) + + // System Status + val Error = Color(0xFFDE350B) + val OnError = Color.White + val Success = Color(0xFF4CAF50) + val Warning = Color(0xFFE67E22) +} diff --git a/frontend/core/design-system/src/commonMain/kotlin/at/mocode/frontend/core/designsystem/theme/Typography.kt b/frontend/core/design-system/src/commonMain/kotlin/at/mocode/frontend/core/designsystem/theme/Typography.kt new file mode 100644 index 00000000..b7b63c31 --- /dev/null +++ b/frontend/core/design-system/src/commonMain/kotlin/at/mocode/frontend/core/designsystem/theme/Typography.kt @@ -0,0 +1,46 @@ +package at.mocode.frontend.core.designsystem.theme + +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.sp + +/** + * Zentrale Typografie (Schriftgrößen und Stile) für das gesamte Projekt. + * Die Idee: Im UI-Code schreiben wir nie "fontSize = 16.sp", + * sondern nutzen die festgelegten Stile des AppTypography Objekts oder MaterialTheme.typography. + */ +object AppTypography { + + // Große Überschriften (z. B. Screen-Titel) + val TitleLarge = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Bold, + fontSize = 22.sp, + lineHeight = 28.sp + ) + + // Mittlere Überschriften (z.B. Card-Titel, Sektionen) + val TitleMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.SemiBold, + fontSize = 16.sp, + lineHeight = 24.sp + ) + + // Standard Fließtext (z.B. Beschreibungen, Dialog-Texte) + val BodyMedium = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Normal, + fontSize = 14.sp, + lineHeight = 20.sp + ) + + // Kleiner Text / Labels (z. B. Tabellenköpfe, dichte Informationen) + val LabelSmall = TextStyle( + fontFamily = FontFamily.Default, + fontWeight = FontWeight.Medium, + fontSize = 11.sp, + lineHeight = 16.sp + ) +}