diff --git a/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt b/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt index 9163ae2..215ee86 100644 --- a/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt +++ b/app/src/main/java/hu/bbara/purefin/PurefinActivity.kt @@ -40,7 +40,7 @@ import hu.bbara.purefin.navigation.NavigationCommand import hu.bbara.purefin.navigation.NavigationManager import hu.bbara.purefin.navigation.Route import hu.bbara.purefin.session.UserSessionRepository -import hu.bbara.purefin.ui.theme.PurefinTheme +import hu.bbara.purefin.ui.theme.AppTheme import kotlinx.coroutines.launch import okhttp3.OkHttpClient import okio.Path.Companion.toPath @@ -75,7 +75,7 @@ class PurefinActivity : ComponentActivity() { configureImageLoader() enableEdgeToEdge() setContent { - PurefinTheme() { + AppTheme() { MainApp( userSessionRepository = userSessionRepository, entryBuilders = entryBuilders, diff --git a/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt b/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt index 1068d23..71c464a 100644 --- a/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt +++ b/app/src/main/java/hu/bbara/purefin/player/PlayerActivity.kt @@ -13,7 +13,7 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle import dagger.hilt.android.AndroidEntryPoint import hu.bbara.purefin.player.ui.PlayerScreen import hu.bbara.purefin.player.viewmodel.PlayerViewModel -import hu.bbara.purefin.ui.theme.PurefinTheme +import hu.bbara.purefin.ui.theme.AppTheme @AndroidEntryPoint class PlayerActivity : ComponentActivity() { @@ -23,7 +23,7 @@ class PlayerActivity : ComponentActivity() { enterImmersiveMode() setContent { - PurefinTheme(darkTheme = true) { + AppTheme(darkTheme = true) { val viewModel = hiltViewModel() val uiState = viewModel.uiState.collectAsStateWithLifecycle() diff --git a/app/src/main/java/hu/bbara/purefin/ui/theme/Color.kt b/app/src/main/java/hu/bbara/purefin/ui/theme/Color.kt index 9d7f6e0..3282bd7 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/theme/Color.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/theme/Color.kt @@ -1,53 +1,225 @@ package hu.bbara.purefin.ui.theme - import androidx.compose.ui.graphics.Color -import androidx.core.graphics.ColorUtils -/** - * HSL Color Palette - * Primary: Purple (270°) - * Secondary: Teal (180°) - * Tertiary: Orange (30°) - */ +val primaryLight = Color(0xFF8A5021) +val onPrimaryLight = Color(0xFFFFFFFF) +val primaryContainerLight = Color(0xFFFFDCC5) +val onPrimaryContainerLight = Color(0xFF6D390B) +val secondaryLight = Color(0xFF755945) +val onSecondaryLight = Color(0xFFFFFFFF) +val secondaryContainerLight = Color(0xFFFFDCC5) +val onSecondaryContainerLight = Color(0xFF5B412F) +val tertiaryLight = Color(0xFF5E6135) +val onTertiaryLight = Color(0xFFFFFFFF) +val tertiaryContainerLight = Color(0xFFE4E6AE) +val onTertiaryContainerLight = Color(0xFF464920) +val errorLight = Color(0xFFBA1A1A) +val onErrorLight = Color(0xFFFFFFFF) +val errorContainerLight = Color(0xFFFFDAD6) +val onErrorContainerLight = Color(0xFF93000A) +val backgroundLight = Color(0xFFFFF8F5) +val onBackgroundLight = Color(0xFF221A15) +val surfaceLight = Color(0xFFFFF8F5) +val onSurfaceLight = Color(0xFF221A15) +val surfaceVariantLight = Color(0xFFF3DFD2) +val onSurfaceVariantLight = Color(0xFF52443B) +val outlineLight = Color(0xFF84746A) +val outlineVariantLight = Color(0xFFD6C3B7) +val scrimLight = Color(0xFF000000) +val inverseSurfaceLight = Color(0xFF382F29) +val inverseOnSurfaceLight = Color(0xFFFEEEE4) +val inversePrimaryLight = Color(0xFFFFB783) +val surfaceDimLight = Color(0xFFE7D7CE) +val surfaceBrightLight = Color(0xFFFFF8F5) +val surfaceContainerLowestLight = Color(0xFFFFFFFF) +val surfaceContainerLowLight = Color(0xFFFFF1E9) +val surfaceContainerLight = Color(0xFFFBEBE1) +val surfaceContainerHighLight = Color(0xFFF5E5DC) +val surfaceContainerHighestLight = Color(0xFFF0DFD6) -// Light Mode Palette -val LightPrimary = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.65f, 0.45f))) -val LightOnPrimary = Color(ColorUtils.HSLToColor(floatArrayOf(0f, 0f, 1f))) -val LightPrimaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.60f, 0.90f))) -val LightOnPrimaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.70f, 0.15f))) +val primaryLightMediumContrast = Color(0xFF572A00) +val onPrimaryLightMediumContrast = Color(0xFFFFFFFF) +val primaryContainerLightMediumContrast = Color(0xFF9B5E2E) +val onPrimaryContainerLightMediumContrast = Color(0xFFFFFFFF) +val secondaryLightMediumContrast = Color(0xFF493120) +val onSecondaryLightMediumContrast = Color(0xFFFFFFFF) +val secondaryContainerLightMediumContrast = Color(0xFF856753) +val onSecondaryContainerLightMediumContrast = Color(0xFFFFFFFF) +val tertiaryLightMediumContrast = Color(0xFF363911) +val onTertiaryLightMediumContrast = Color(0xFFFFFFFF) +val tertiaryContainerLightMediumContrast = Color(0xFF6D7042) +val onTertiaryContainerLightMediumContrast = Color(0xFFFFFFFF) +val errorLightMediumContrast = Color(0xFF740006) +val onErrorLightMediumContrast = Color(0xFFFFFFFF) +val errorContainerLightMediumContrast = Color(0xFFCF2C27) +val onErrorContainerLightMediumContrast = Color(0xFFFFFFFF) +val backgroundLightMediumContrast = Color(0xFFFFF8F5) +val onBackgroundLightMediumContrast = Color(0xFF221A15) +val surfaceLightMediumContrast = Color(0xFFFFF8F5) +val onSurfaceLightMediumContrast = Color(0xFF17100B) +val surfaceVariantLightMediumContrast = Color(0xFFF3DFD2) +val onSurfaceVariantLightMediumContrast = Color(0xFF40342B) +val outlineLightMediumContrast = Color(0xFF5E5046) +val outlineVariantLightMediumContrast = Color(0xFF7A6A60) +val scrimLightMediumContrast = Color(0xFF000000) +val inverseSurfaceLightMediumContrast = Color(0xFF382F29) +val inverseOnSurfaceLightMediumContrast = Color(0xFFFEEEE4) +val inversePrimaryLightMediumContrast = Color(0xFFFFB783) +val surfaceDimLightMediumContrast = Color(0xFFD3C4BB) +val surfaceBrightLightMediumContrast = Color(0xFFFFF8F5) +val surfaceContainerLowestLightMediumContrast = Color(0xFFFFFFFF) +val surfaceContainerLowLightMediumContrast = Color(0xFFFFF1E9) +val surfaceContainerLightMediumContrast = Color(0xFFF5E5DC) +val surfaceContainerHighLightMediumContrast = Color(0xFFEADAD1) +val surfaceContainerHighestLightMediumContrast = Color(0xFFDECFC6) + +val primaryLightHighContrast = Color(0xFF492200) +val onPrimaryLightHighContrast = Color(0xFFFFFFFF) +val primaryContainerLightHighContrast = Color(0xFF703C0D) +val onPrimaryContainerLightHighContrast = Color(0xFFFFFFFF) +val secondaryLightHighContrast = Color(0xFF3D2717) +val onSecondaryLightHighContrast = Color(0xFFFFFFFF) +val secondaryContainerLightHighContrast = Color(0xFF5D4431) +val onSecondaryContainerLightHighContrast = Color(0xFFFFFFFF) +val tertiaryLightHighContrast = Color(0xFF2C2E07) +val onTertiaryLightHighContrast = Color(0xFFFFFFFF) +val tertiaryContainerLightHighContrast = Color(0xFF494C22) +val onTertiaryContainerLightHighContrast = Color(0xFFFFFFFF) +val errorLightHighContrast = Color(0xFF600004) +val onErrorLightHighContrast = Color(0xFFFFFFFF) +val errorContainerLightHighContrast = Color(0xFF98000A) +val onErrorContainerLightHighContrast = Color(0xFFFFFFFF) +val backgroundLightHighContrast = Color(0xFFFFF8F5) +val onBackgroundLightHighContrast = Color(0xFF221A15) +val surfaceLightHighContrast = Color(0xFFFFF8F5) +val onSurfaceLightHighContrast = Color(0xFF000000) +val surfaceVariantLightHighContrast = Color(0xFFF3DFD2) +val onSurfaceVariantLightHighContrast = Color(0xFF000000) +val outlineLightHighContrast = Color(0xFF362A22) +val outlineVariantLightHighContrast = Color(0xFF54463E) +val scrimLightHighContrast = Color(0xFF000000) +val inverseSurfaceLightHighContrast = Color(0xFF382F29) +val inverseOnSurfaceLightHighContrast = Color(0xFFFFFFFF) +val inversePrimaryLightHighContrast = Color(0xFFFFB783) +val surfaceDimLightHighContrast = Color(0xFFC5B6AD) +val surfaceBrightLightHighContrast = Color(0xFFFFF8F5) +val surfaceContainerLowestLightHighContrast = Color(0xFFFFFFFF) +val surfaceContainerLowLightHighContrast = Color(0xFFFEEEE4) +val surfaceContainerLightHighContrast = Color(0xFFF0DFD6) +val surfaceContainerHighLightHighContrast = Color(0xFFE1D1C8) +val surfaceContainerHighestLightHighContrast = Color(0xFFD3C4BB) + +val primaryDark = Color(0xFFFFB783) +val onPrimaryDark = Color(0xFF4F2500) +val primaryContainerDark = Color(0xFF6D390B) +val onPrimaryContainerDark = Color(0xFFFFDCC5) +val secondaryDark = Color(0xFFE4BFA7) +val onSecondaryDark = Color(0xFF422B1B) +val secondaryContainerDark = Color(0xFF5B412F) +val onSecondaryContainerDark = Color(0xFFFFDCC5) +val tertiaryDark = Color(0xFFC7CA94) +val onTertiaryDark = Color(0xFF30330B) +val tertiaryContainerDark = Color(0xFF464920) +val onTertiaryContainerDark = Color(0xFFE4E6AE) +val errorDark = Color(0xFFFFB4AB) +val onErrorDark = Color(0xFF690005) +val errorContainerDark = Color(0xFF93000A) +val onErrorContainerDark = Color(0xFFFFDAD6) +val backgroundDark = Color(0xFF19120D) +val onBackgroundDark = Color(0xFFF0DFD6) +val surfaceDark = Color(0xFF19120D) +val onSurfaceDark = Color(0xFFF0DFD6) +val surfaceVariantDark = Color(0xFF52443B) +val onSurfaceVariantDark = Color(0xFFD6C3B7) +val outlineDark = Color(0xFF9F8D83) +val outlineVariantDark = Color(0xFF52443B) +val scrimDark = Color(0xFF000000) +val inverseSurfaceDark = Color(0xFFF0DFD6) +val inverseOnSurfaceDark = Color(0xFF382F29) +val inversePrimaryDark = Color(0xFF8A5021) +val surfaceDimDark = Color(0xFF19120D) +val surfaceBrightDark = Color(0xFF413731) +val surfaceContainerLowestDark = Color(0xFF140D08) +val surfaceContainerLowDark = Color(0xFF221A15) +val surfaceContainerDark = Color(0xFF261E18) +val surfaceContainerHighDark = Color(0xFF312822) +val surfaceContainerHighestDark = Color(0xFF3C332D) + +val primaryDarkMediumContrast = Color(0xFFFFD4B7) +val onPrimaryDarkMediumContrast = Color(0xFF3F1C00) +val primaryContainerDarkMediumContrast = Color(0xFFC5814E) +val onPrimaryContainerDarkMediumContrast = Color(0xFF000000) +val secondaryDarkMediumContrast = Color(0xFFFBD5BC) +val onSecondaryDarkMediumContrast = Color(0xFF362111) +val secondaryContainerDarkMediumContrast = Color(0xFFAB8A74) +val onSecondaryContainerDarkMediumContrast = Color(0xFF000000) +val tertiaryDarkMediumContrast = Color(0xFFDDE0A9) +val onTertiaryDarkMediumContrast = Color(0xFF252803) +val tertiaryContainerDarkMediumContrast = Color(0xFF919463) +val onTertiaryContainerDarkMediumContrast = Color(0xFF000000) +val errorDarkMediumContrast = Color(0xFFFFD2CC) +val onErrorDarkMediumContrast = Color(0xFF540003) +val errorContainerDarkMediumContrast = Color(0xFFFF5449) +val onErrorContainerDarkMediumContrast = Color(0xFF000000) +val backgroundDarkMediumContrast = Color(0xFF19120D) +val onBackgroundDarkMediumContrast = Color(0xFFF0DFD6) +val surfaceDarkMediumContrast = Color(0xFF19120D) +val onSurfaceDarkMediumContrast = Color(0xFFFFFFFF) +val surfaceVariantDarkMediumContrast = Color(0xFF52443B) +val onSurfaceVariantDarkMediumContrast = Color(0xFFEDD8CC) +val outlineDarkMediumContrast = Color(0xFFC1AEA3) +val outlineVariantDarkMediumContrast = Color(0xFF9E8D82) +val scrimDarkMediumContrast = Color(0xFF000000) +val inverseSurfaceDarkMediumContrast = Color(0xFFF0DFD6) +val inverseOnSurfaceDarkMediumContrast = Color(0xFF312822) +val inversePrimaryDarkMediumContrast = Color(0xFF6F3A0C) +val surfaceDimDarkMediumContrast = Color(0xFF19120D) +val surfaceBrightDarkMediumContrast = Color(0xFF4D423C) +val surfaceContainerLowestDarkMediumContrast = Color(0xFF0C0603) +val surfaceContainerLowDarkMediumContrast = Color(0xFF241C16) +val surfaceContainerDarkMediumContrast = Color(0xFF2F2620) +val surfaceContainerHighDarkMediumContrast = Color(0xFF3A312B) +val surfaceContainerHighestDarkMediumContrast = Color(0xFF463C35) + +val primaryDarkHighContrast = Color(0xFFFFECE2) +val onPrimaryDarkHighContrast = Color(0xFF000000) +val primaryContainerDarkHighContrast = Color(0xFFFEB27A) +val onPrimaryContainerDarkHighContrast = Color(0xFF170700) +val secondaryDarkHighContrast = Color(0xFFFFECE2) +val onSecondaryDarkHighContrast = Color(0xFF000000) +val secondaryContainerDarkHighContrast = Color(0xFFE0BBA3) +val onSecondaryContainerDarkHighContrast = Color(0xFF170700) +val tertiaryDarkHighContrast = Color(0xFFF1F4BB) +val onTertiaryDarkHighContrast = Color(0xFF000000) +val tertiaryContainerDarkHighContrast = Color(0xFFC3C691) +val onTertiaryContainerDarkHighContrast = Color(0xFF0B0C00) +val errorDarkHighContrast = Color(0xFFFFECE9) +val onErrorDarkHighContrast = Color(0xFF000000) +val errorContainerDarkHighContrast = Color(0xFFFFAEA4) +val onErrorContainerDarkHighContrast = Color(0xFF220001) +val backgroundDarkHighContrast = Color(0xFF19120D) +val onBackgroundDarkHighContrast = Color(0xFFF0DFD6) +val surfaceDarkHighContrast = Color(0xFF19120D) +val onSurfaceDarkHighContrast = Color(0xFFFFFFFF) +val surfaceVariantDarkHighContrast = Color(0xFF52443B) +val onSurfaceVariantDarkHighContrast = Color(0xFFFFFFFF) +val outlineDarkHighContrast = Color(0xFFFFECE2) +val outlineVariantDarkHighContrast = Color(0xFFD2BFB3) +val scrimDarkHighContrast = Color(0xFF000000) +val inverseSurfaceDarkHighContrast = Color(0xFFF0DFD6) +val inverseOnSurfaceDarkHighContrast = Color(0xFF000000) +val inversePrimaryDarkHighContrast = Color(0xFF6F3A0C) +val surfaceDimDarkHighContrast = Color(0xFF19120D) +val surfaceBrightDarkHighContrast = Color(0xFF594E47) +val surfaceContainerLowestDarkHighContrast = Color(0xFF000000) +val surfaceContainerLowDarkHighContrast = Color(0xFF261E18) +val surfaceContainerDarkHighContrast = Color(0xFF382F29) +val surfaceContainerHighDarkHighContrast = Color(0xFF433933) +val surfaceContainerHighestDarkHighContrast = Color(0xFF4F453E) -val LightSecondary = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.55f, 0.40f))) -val LightOnSecondary = Color(ColorUtils.HSLToColor(floatArrayOf(0f, 0f, 1f))) -val LightSecondaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.50f, 0.88f))) -val LightOnSecondaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.65f, 0.15f))) -val LightTertiary = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.75f, 0.50f))) -val LightOnTertiary = Color(ColorUtils.HSLToColor(floatArrayOf(0f, 0f, 1f))) -val LightTertiaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.70f, 0.92f))) -val LightOnTertiaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.80f, 0.18f))) -val LightBackground = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.15f, 0.98f))) -val LightOnBackground = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.20f, 0.12f))) -val LightSurface = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.15f, 0.98f))) -val LightOnSurface = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.20f, 0.12f))) -// Dark Mode Palette -val DarkPrimary = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.60f, 0.75f))) -val DarkOnPrimary = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.70f, 0.20f))) -val DarkPrimaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.55f, 0.30f))) -val DarkOnPrimaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.50f, 0.92f))) -val DarkSecondary = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.50f, 0.70f))) -val DarkOnSecondary = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.65f, 0.18f))) -val DarkSecondaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.50f, 0.28f))) -val DarkOnSecondaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(180f, 0.45f, 0.90f))) -val DarkTertiary = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.70f, 0.72f))) -val DarkOnTertiary = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.80f, 0.22f))) -val DarkTertiaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.65f, 0.32f))) -val DarkOnTertiaryContainer = Color(ColorUtils.HSLToColor(floatArrayOf(30f, 0.65f, 0.93f))) -val DarkBackground = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.18f, 0.08f))) -val DarkOnBackground = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.10f, 0.92f))) -val DarkSurface = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.18f, 0.14f))) -val DarkOnSurface = Color(ColorUtils.HSLToColor(floatArrayOf(270f, 0.10f, 0.86f))) \ No newline at end of file diff --git a/app/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt b/app/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt index 2743167..e367a59 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/theme/Theme.kt @@ -1,5 +1,4 @@ package hu.bbara.purefin.ui.theme - import android.os.Build import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.material3.MaterialTheme @@ -8,65 +7,271 @@ import androidx.compose.material3.dynamicDarkColorScheme import androidx.compose.material3.dynamicLightColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.runtime.Composable +import androidx.compose.runtime.Immutable +import androidx.compose.ui.graphics.Color import androidx.compose.ui.platform.LocalContext -private val LightColorScheme = lightColorScheme( - primary = LightPrimary, - onPrimary = LightOnPrimary, - primaryContainer = LightPrimaryContainer, - onPrimaryContainer = LightOnPrimaryContainer, - secondary = LightSecondary, - onSecondary = LightOnSecondary, - secondaryContainer = LightSecondaryContainer, - onSecondaryContainer = LightOnSecondaryContainer, - tertiary = LightTertiary, - onTertiary = LightOnTertiary, - tertiaryContainer = LightTertiaryContainer, - onTertiaryContainer = LightOnTertiaryContainer, - background = LightBackground, - onBackground = LightOnBackground, - surface = LightSurface, - onSurface = LightOnSurface, +private val lightScheme = lightColorScheme( + primary = primaryLight, + onPrimary = onPrimaryLight, + primaryContainer = primaryContainerLight, + onPrimaryContainer = onPrimaryContainerLight, + secondary = secondaryLight, + onSecondary = onSecondaryLight, + secondaryContainer = secondaryContainerLight, + onSecondaryContainer = onSecondaryContainerLight, + tertiary = tertiaryLight, + onTertiary = onTertiaryLight, + tertiaryContainer = tertiaryContainerLight, + onTertiaryContainer = onTertiaryContainerLight, + error = errorLight, + onError = onErrorLight, + errorContainer = errorContainerLight, + onErrorContainer = onErrorContainerLight, + background = backgroundLight, + onBackground = onBackgroundLight, + surface = surfaceLight, + onSurface = onSurfaceLight, + surfaceVariant = surfaceVariantLight, + onSurfaceVariant = onSurfaceVariantLight, + outline = outlineLight, + outlineVariant = outlineVariantLight, + scrim = scrimLight, + inverseSurface = inverseSurfaceLight, + inverseOnSurface = inverseOnSurfaceLight, + inversePrimary = inversePrimaryLight, + surfaceDim = surfaceDimLight, + surfaceBright = surfaceBrightLight, + surfaceContainerLowest = surfaceContainerLowestLight, + surfaceContainerLow = surfaceContainerLowLight, + surfaceContainer = surfaceContainerLight, + surfaceContainerHigh = surfaceContainerHighLight, + surfaceContainerHighest = surfaceContainerHighestLight, ) -private val DarkColorScheme = darkColorScheme( - primary = DarkPrimary, - onPrimary = DarkOnPrimary, - primaryContainer = DarkPrimaryContainer, - onPrimaryContainer = DarkOnPrimaryContainer, - secondary = DarkSecondary, - onSecondary = DarkOnSecondary, - secondaryContainer = DarkSecondaryContainer, - onSecondaryContainer = DarkOnSecondaryContainer, - tertiary = DarkTertiary, - onTertiary = DarkOnTertiary, - tertiaryContainer = DarkTertiaryContainer, - onTertiaryContainer = DarkOnTertiaryContainer, - background = DarkBackground, - onBackground = DarkOnBackground, - surface = DarkSurface, - onSurface = DarkOnSurface, +private val darkScheme = darkColorScheme( + primary = primaryDark, + onPrimary = onPrimaryDark, + primaryContainer = primaryContainerDark, + onPrimaryContainer = onPrimaryContainerDark, + secondary = secondaryDark, + onSecondary = onSecondaryDark, + secondaryContainer = secondaryContainerDark, + onSecondaryContainer = onSecondaryContainerDark, + tertiary = tertiaryDark, + onTertiary = onTertiaryDark, + tertiaryContainer = tertiaryContainerDark, + onTertiaryContainer = onTertiaryContainerDark, + error = errorDark, + onError = onErrorDark, + errorContainer = errorContainerDark, + onErrorContainer = onErrorContainerDark, + background = backgroundDark, + onBackground = onBackgroundDark, + surface = surfaceDark, + onSurface = onSurfaceDark, + surfaceVariant = surfaceVariantDark, + onSurfaceVariant = onSurfaceVariantDark, + outline = outlineDark, + outlineVariant = outlineVariantDark, + scrim = scrimDark, + inverseSurface = inverseSurfaceDark, + inverseOnSurface = inverseOnSurfaceDark, + inversePrimary = inversePrimaryDark, + surfaceDim = surfaceDimDark, + surfaceBright = surfaceBrightDark, + surfaceContainerLowest = surfaceContainerLowestDark, + surfaceContainerLow = surfaceContainerLowDark, + surfaceContainer = surfaceContainerDark, + surfaceContainerHigh = surfaceContainerHighDark, + surfaceContainerHighest = surfaceContainerHighestDark, +) + +private val mediumContrastLightColorScheme = lightColorScheme( + primary = primaryLightMediumContrast, + onPrimary = onPrimaryLightMediumContrast, + primaryContainer = primaryContainerLightMediumContrast, + onPrimaryContainer = onPrimaryContainerLightMediumContrast, + secondary = secondaryLightMediumContrast, + onSecondary = onSecondaryLightMediumContrast, + secondaryContainer = secondaryContainerLightMediumContrast, + onSecondaryContainer = onSecondaryContainerLightMediumContrast, + tertiary = tertiaryLightMediumContrast, + onTertiary = onTertiaryLightMediumContrast, + tertiaryContainer = tertiaryContainerLightMediumContrast, + onTertiaryContainer = onTertiaryContainerLightMediumContrast, + error = errorLightMediumContrast, + onError = onErrorLightMediumContrast, + errorContainer = errorContainerLightMediumContrast, + onErrorContainer = onErrorContainerLightMediumContrast, + background = backgroundLightMediumContrast, + onBackground = onBackgroundLightMediumContrast, + surface = surfaceLightMediumContrast, + onSurface = onSurfaceLightMediumContrast, + surfaceVariant = surfaceVariantLightMediumContrast, + onSurfaceVariant = onSurfaceVariantLightMediumContrast, + outline = outlineLightMediumContrast, + outlineVariant = outlineVariantLightMediumContrast, + scrim = scrimLightMediumContrast, + inverseSurface = inverseSurfaceLightMediumContrast, + inverseOnSurface = inverseOnSurfaceLightMediumContrast, + inversePrimary = inversePrimaryLightMediumContrast, + surfaceDim = surfaceDimLightMediumContrast, + surfaceBright = surfaceBrightLightMediumContrast, + surfaceContainerLowest = surfaceContainerLowestLightMediumContrast, + surfaceContainerLow = surfaceContainerLowLightMediumContrast, + surfaceContainer = surfaceContainerLightMediumContrast, + surfaceContainerHigh = surfaceContainerHighLightMediumContrast, + surfaceContainerHighest = surfaceContainerHighestLightMediumContrast, +) + +private val highContrastLightColorScheme = lightColorScheme( + primary = primaryLightHighContrast, + onPrimary = onPrimaryLightHighContrast, + primaryContainer = primaryContainerLightHighContrast, + onPrimaryContainer = onPrimaryContainerLightHighContrast, + secondary = secondaryLightHighContrast, + onSecondary = onSecondaryLightHighContrast, + secondaryContainer = secondaryContainerLightHighContrast, + onSecondaryContainer = onSecondaryContainerLightHighContrast, + tertiary = tertiaryLightHighContrast, + onTertiary = onTertiaryLightHighContrast, + tertiaryContainer = tertiaryContainerLightHighContrast, + onTertiaryContainer = onTertiaryContainerLightHighContrast, + error = errorLightHighContrast, + onError = onErrorLightHighContrast, + errorContainer = errorContainerLightHighContrast, + onErrorContainer = onErrorContainerLightHighContrast, + background = backgroundLightHighContrast, + onBackground = onBackgroundLightHighContrast, + surface = surfaceLightHighContrast, + onSurface = onSurfaceLightHighContrast, + surfaceVariant = surfaceVariantLightHighContrast, + onSurfaceVariant = onSurfaceVariantLightHighContrast, + outline = outlineLightHighContrast, + outlineVariant = outlineVariantLightHighContrast, + scrim = scrimLightHighContrast, + inverseSurface = inverseSurfaceLightHighContrast, + inverseOnSurface = inverseOnSurfaceLightHighContrast, + inversePrimary = inversePrimaryLightHighContrast, + surfaceDim = surfaceDimLightHighContrast, + surfaceBright = surfaceBrightLightHighContrast, + surfaceContainerLowest = surfaceContainerLowestLightHighContrast, + surfaceContainerLow = surfaceContainerLowLightHighContrast, + surfaceContainer = surfaceContainerLightHighContrast, + surfaceContainerHigh = surfaceContainerHighLightHighContrast, + surfaceContainerHighest = surfaceContainerHighestLightHighContrast, +) + +private val mediumContrastDarkColorScheme = darkColorScheme( + primary = primaryDarkMediumContrast, + onPrimary = onPrimaryDarkMediumContrast, + primaryContainer = primaryContainerDarkMediumContrast, + onPrimaryContainer = onPrimaryContainerDarkMediumContrast, + secondary = secondaryDarkMediumContrast, + onSecondary = onSecondaryDarkMediumContrast, + secondaryContainer = secondaryContainerDarkMediumContrast, + onSecondaryContainer = onSecondaryContainerDarkMediumContrast, + tertiary = tertiaryDarkMediumContrast, + onTertiary = onTertiaryDarkMediumContrast, + tertiaryContainer = tertiaryContainerDarkMediumContrast, + onTertiaryContainer = onTertiaryContainerDarkMediumContrast, + error = errorDarkMediumContrast, + onError = onErrorDarkMediumContrast, + errorContainer = errorContainerDarkMediumContrast, + onErrorContainer = onErrorContainerDarkMediumContrast, + background = backgroundDarkMediumContrast, + onBackground = onBackgroundDarkMediumContrast, + surface = surfaceDarkMediumContrast, + onSurface = onSurfaceDarkMediumContrast, + surfaceVariant = surfaceVariantDarkMediumContrast, + onSurfaceVariant = onSurfaceVariantDarkMediumContrast, + outline = outlineDarkMediumContrast, + outlineVariant = outlineVariantDarkMediumContrast, + scrim = scrimDarkMediumContrast, + inverseSurface = inverseSurfaceDarkMediumContrast, + inverseOnSurface = inverseOnSurfaceDarkMediumContrast, + inversePrimary = inversePrimaryDarkMediumContrast, + surfaceDim = surfaceDimDarkMediumContrast, + surfaceBright = surfaceBrightDarkMediumContrast, + surfaceContainerLowest = surfaceContainerLowestDarkMediumContrast, + surfaceContainerLow = surfaceContainerLowDarkMediumContrast, + surfaceContainer = surfaceContainerDarkMediumContrast, + surfaceContainerHigh = surfaceContainerHighDarkMediumContrast, + surfaceContainerHighest = surfaceContainerHighestDarkMediumContrast, +) + +private val highContrastDarkColorScheme = darkColorScheme( + primary = primaryDarkHighContrast, + onPrimary = onPrimaryDarkHighContrast, + primaryContainer = primaryContainerDarkHighContrast, + onPrimaryContainer = onPrimaryContainerDarkHighContrast, + secondary = secondaryDarkHighContrast, + onSecondary = onSecondaryDarkHighContrast, + secondaryContainer = secondaryContainerDarkHighContrast, + onSecondaryContainer = onSecondaryContainerDarkHighContrast, + tertiary = tertiaryDarkHighContrast, + onTertiary = onTertiaryDarkHighContrast, + tertiaryContainer = tertiaryContainerDarkHighContrast, + onTertiaryContainer = onTertiaryContainerDarkHighContrast, + error = errorDarkHighContrast, + onError = onErrorDarkHighContrast, + errorContainer = errorContainerDarkHighContrast, + onErrorContainer = onErrorContainerDarkHighContrast, + background = backgroundDarkHighContrast, + onBackground = onBackgroundDarkHighContrast, + surface = surfaceDarkHighContrast, + onSurface = onSurfaceDarkHighContrast, + surfaceVariant = surfaceVariantDarkHighContrast, + onSurfaceVariant = onSurfaceVariantDarkHighContrast, + outline = outlineDarkHighContrast, + outlineVariant = outlineVariantDarkHighContrast, + scrim = scrimDarkHighContrast, + inverseSurface = inverseSurfaceDarkHighContrast, + inverseOnSurface = inverseOnSurfaceDarkHighContrast, + inversePrimary = inversePrimaryDarkHighContrast, + surfaceDim = surfaceDimDarkHighContrast, + surfaceBright = surfaceBrightDarkHighContrast, + surfaceContainerLowest = surfaceContainerLowestDarkHighContrast, + surfaceContainerLow = surfaceContainerLowDarkHighContrast, + surfaceContainer = surfaceContainerDarkHighContrast, + surfaceContainerHigh = surfaceContainerHighDarkHighContrast, + surfaceContainerHighest = surfaceContainerHighestDarkHighContrast, +) + +@Immutable +data class ColorFamily( + val color: Color, + val onColor: Color, + val colorContainer: Color, + val onColorContainer: Color +) + +val unspecified_scheme = ColorFamily( + Color.Unspecified, Color.Unspecified, Color.Unspecified, Color.Unspecified ) @Composable -fun PurefinTheme( +fun AppTheme( darkTheme: Boolean = isSystemInDarkTheme(), + // Dynamic color is available on Android 12+ dynamicColor: Boolean = false, - content: @Composable () -> Unit + content: @Composable() () -> Unit ) { - val colorScheme = when { - dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { - val context = LocalContext.current - if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) - } + val colorScheme = when { + dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> { + val context = LocalContext.current + if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context) + } + + darkTheme -> darkScheme + else -> lightScheme + } - darkTheme -> DarkColorScheme - else -> LightColorScheme - } - - MaterialTheme( - colorScheme = colorScheme, - typography = Typography, - content = content - ) + MaterialTheme( + colorScheme = colorScheme, + typography = AppTypography, + content = content + ) } + diff --git a/app/src/main/java/hu/bbara/purefin/ui/theme/Type.kt b/app/src/main/java/hu/bbara/purefin/ui/theme/Type.kt index a804e54..d7a6cb2 100644 --- a/app/src/main/java/hu/bbara/purefin/ui/theme/Type.kt +++ b/app/src/main/java/hu/bbara/purefin/ui/theme/Type.kt @@ -1,34 +1,5 @@ package hu.bbara.purefin.ui.theme import androidx.compose.material3.Typography -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 -// Set of Material typography styles to start with -val Typography = Typography( - bodyLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 16.sp, - lineHeight = 24.sp, - letterSpacing = 0.5.sp - ) - /* Other default text styles to override - titleLarge = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Normal, - fontSize = 22.sp, - lineHeight = 28.sp, - letterSpacing = 0.sp - ), - labelSmall = TextStyle( - fontFamily = FontFamily.Default, - fontWeight = FontWeight.Medium, - fontSize = 11.sp, - lineHeight = 16.sp, - letterSpacing = 0.5.sp - ) - */ -) \ No newline at end of file +val AppTypography = Typography()