From 63cfdd5d3cb5e7246475357210ceca9c73aa6e2c Mon Sep 17 00:00:00 2001 From: Antoine Jaury Date: Wed, 1 Jul 2026 15:35:26 +0200 Subject: [PATCH] new: define light and dark color schemes --- .../gwenedeg/records/ui/RecordsScreen.kt | 1 - .../kotlin/fr/ajaury/gwenedeg/theme/Color.kt | 75 +++++++++++++++++++ .../kotlin/fr/ajaury/gwenedeg/theme/Theme.kt | 70 ++++++++++++++++- 3 files changed, 142 insertions(+), 4 deletions(-) create mode 100644 shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Color.kt diff --git a/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/records/ui/RecordsScreen.kt b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/records/ui/RecordsScreen.kt index 97fdd6d..9b00e18 100644 --- a/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/records/ui/RecordsScreen.kt +++ b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/records/ui/RecordsScreen.kt @@ -41,7 +41,6 @@ fun RecordsScreen( modifier = Modifier .padding(innerPadding) - .background(MaterialTheme.colorScheme.primaryContainer) .fillMaxSize(), ) { itemsIndexed( diff --git a/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Color.kt b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Color.kt new file mode 100644 index 0000000..f756e9b --- /dev/null +++ b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Color.kt @@ -0,0 +1,75 @@ +package fr.ajaury.gwenedeg.theme + +import androidx.compose.ui.graphics.Color + +// region Light +internal val md_light_primary = Color(0xFFFF9201) +internal val md_light_onPrimary = Color(0xFFFFFFFF) +internal val md_light_primaryContainer = Color(0xFFFFEBD1) +internal val md_light_onPrimaryContainer = Color(0xFF1C1613) + +internal val md_light_secondary = Color(0xFF334654) +internal val md_light_onSecondary = Color(0xFFFFFFFF) +internal val md_light_secondaryContainer = Color(0xFFB9CDCD) +internal val md_light_onSecondaryContainer = Color(0xFF141818) + +internal val md_light_tertiary = Color(0xFF7A5900) +internal val md_light_onTertiary = Color(0xFFFFFFFF) +internal val md_light_tertiaryContainer = Color(0xFFFFDF94) +internal val md_light_onTertiaryContainer = Color(0xFF261A00) + +internal val md_light_error = Color(0xFFBA1A1A) +internal val md_light_onError = Color(0xFFFFFFFF) +internal val md_light_errorContainer = Color(0xFFFFDAD6) +internal val md_light_onErrorContainer = Color(0xFF410002) + +internal val md_light_background = Color(0xFFF5FAFB) +internal val md_light_onBackground = Color(0xFF171D1E) +internal val md_light_surface = Color(0xFFF5FAFB) +internal val md_light_onSurface = Color(0xFF171D1E) +internal val md_light_surfaceVariant = Color(0xFFDBE4E6) +internal val md_light_onSurfaceVariant = Color(0xFF3F484A) + +internal val md_light_outline = Color(0xFF6F797B) +internal val md_light_outlineVariant = Color(0xFFBFC8CA) +internal val md_light_scrim = Color(0xFF000000) +internal val md_light_inverseSurface = Color(0xFF2B3133) +internal val md_light_inverseOnSurface = Color(0xFFECF2F3) +internal val md_light_inversePrimary = Color(0xFF82D3DF) +// endregion + +// region Dark +internal val md_dark_primary = Color(0xFFFF9201) +internal val md_dark_onPrimary = Color(0xFF1C1613) +internal val md_dark_primaryContainer = Color(0xFF1C1613) +internal val md_dark_onPrimaryContainer = Color(0xFFFFE2D9) + +internal val md_dark_secondary = Color(0xFFB9CDCD) +internal val md_dark_onSecondary = Color(0xFF141818) +internal val md_dark_secondaryContainer = Color(0xFF334654) +internal val md_dark_onSecondaryContainer = Color(0xFFFFFFFF) + +internal val md_dark_tertiary = Color(0xFFECC069) +internal val md_dark_onTertiary = Color(0xFF402D00) +internal val md_dark_tertiaryContainer = Color(0xFF5C4300) +internal val md_dark_onTertiaryContainer = Color(0xFFFFDF94) + +internal val md_dark_error = Color(0xFFFFB4AB) +internal val md_dark_onError = Color(0xFF690005) +internal val md_dark_errorContainer = Color(0xFF93000A) +internal val md_dark_onErrorContainer = Color(0xFFFFDAD6) + +internal val md_dark_background = Color(0xFF0E1415) +internal val md_dark_onBackground = Color(0xFFDEE3E4) +internal val md_dark_surface = Color(0xFF0E1415) +internal val md_dark_onSurface = Color(0xFFDEE3E4) +internal val md_dark_surfaceVariant = Color(0xFF3F484A) +internal val md_dark_onSurfaceVariant = Color(0xFFBFC8CA) + +internal val md_dark_outline = Color(0xFF899294) +internal val md_dark_outlineVariant = Color(0xFF3F484A) +internal val md_dark_scrim = Color(0xFF000000) +internal val md_dark_inverseSurface = Color(0xFFDEE3E4) +internal val md_dark_inverseOnSurface = Color(0xFF2B3133) +internal val md_dark_inversePrimary = Color(0xFF1F6B75) +// endregion diff --git a/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Theme.kt b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Theme.kt index dc32e34..d9d3aef 100644 --- a/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Theme.kt +++ b/shared/src/commonMain/kotlin/fr/ajaury/gwenedeg/theme/Theme.kt @@ -1,20 +1,84 @@ package fr.ajaury.gwenedeg.theme import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.ColorScheme import androidx.compose.material3.MaterialTheme import androidx.compose.material3.darkColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable -private val DarkColorScheme = darkColorScheme() -private val LightColorScheme = lightColorScheme() +val GwenedegLightColorScheme: ColorScheme = lightColorScheme( + primary = md_light_primary, + onPrimary = md_light_onPrimary, + primaryContainer = md_light_primaryContainer, + onPrimaryContainer = md_light_onPrimaryContainer, + secondary = md_light_secondary, + onSecondary = md_light_onSecondary, + secondaryContainer = md_light_secondaryContainer, + onSecondaryContainer = md_light_onSecondaryContainer, + tertiary = md_light_tertiary, + onTertiary = md_light_onTertiary, + tertiaryContainer = md_light_tertiaryContainer, + onTertiaryContainer = md_light_onTertiaryContainer, + error = md_light_error, + onError = md_light_onError, + errorContainer = md_light_errorContainer, + onErrorContainer = md_light_onErrorContainer, + background = md_light_background, + onBackground = md_light_onBackground, + surface = md_light_surface, + onSurface = md_light_onSurface, + surfaceVariant = md_light_surfaceVariant, + onSurfaceVariant = md_light_onSurfaceVariant, + outline = md_light_outline, + outlineVariant = md_light_outlineVariant, + scrim = md_light_scrim, + inverseSurface = md_light_inverseSurface, + inverseOnSurface = md_light_inverseOnSurface, + inversePrimary = md_light_inversePrimary, + surfaceTint = md_light_primary, +) + +val GwenedegDarkColorScheme: ColorScheme = darkColorScheme( + primary = md_dark_primary, + onPrimary = md_dark_onPrimary, + primaryContainer = md_dark_primaryContainer, + onPrimaryContainer = md_dark_onPrimaryContainer, + secondary = md_dark_secondary, + onSecondary = md_dark_onSecondary, + secondaryContainer = md_dark_secondaryContainer, + onSecondaryContainer = md_dark_onSecondaryContainer, + tertiary = md_dark_tertiary, + onTertiary = md_dark_onTertiary, + tertiaryContainer = md_dark_tertiaryContainer, + onTertiaryContainer = md_dark_onTertiaryContainer, + error = md_dark_error, + onError = md_dark_onError, + errorContainer = md_dark_errorContainer, + onErrorContainer = md_dark_onErrorContainer, + background = md_dark_background, + onBackground = md_dark_onBackground, + surface = md_dark_surface, + onSurface = md_dark_onSurface, + surfaceVariant = md_dark_surfaceVariant, + onSurfaceVariant = md_dark_onSurfaceVariant, + outline = md_dark_outline, + outlineVariant = md_dark_outlineVariant, + scrim = md_dark_scrim, + inverseSurface = md_dark_inverseSurface, + inverseOnSurface = md_dark_inverseOnSurface, + inversePrimary = md_dark_inversePrimary, + surfaceTint = md_dark_primary, +) @Composable fun GwenedegTheme( darkTheme: Boolean = isSystemInDarkTheme(), + lightColorScheme: ColorScheme = GwenedegLightColorScheme, + darkColorScheme: ColorScheme = GwenedegDarkColorScheme, content: @Composable () -> Unit, ) { - val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme + val colorScheme = if (darkTheme) darkColorScheme else lightColorScheme MaterialTheme( colorScheme = colorScheme,