feat(theme): add centralized typography and color definitions
- Introduced `AppTypography` for standardized text styles across the project. - Added `AppColors` with centralized color palette for consistent theming. Signed-off-by: Stefan Mogeritsch <stefan.mo.co@gmail.com>
This commit is contained in:
+36
@@ -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)
|
||||||
|
}
|
||||||
+46
@@ -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
|
||||||
|
)
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user