From 3be8706ce61161d5316c2dca177e4c9dfa3cde60 Mon Sep 17 00:00:00 2001 From: Damontecres Date: Tue, 23 Sep 2025 01:30:12 -0400 Subject: [PATCH] Update theme --- .../damontecres/dolphin/ui/theme/Color.kt | 59 +++++++-- .../damontecres/dolphin/ui/theme/Theme.kt | 113 ++++++++++++++---- .../damontecres/dolphin/ui/theme/Type.kt | 33 +---- 3 files changed, 146 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Color.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Color.kt index 5311e78b..456c27ca 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Color.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Color.kt @@ -1,11 +1,56 @@ package com.github.damontecres.dolphin.ui.theme - import androidx.compose.ui.graphics.Color -val Purple80 = Color(0xFFD0BCFF) -val PurpleGrey80 = Color(0xFFCCC2DC) -val Pink80 = Color(0xFFEFB8C8) +val primaryLight = Color(0xFF5F00D6) +val onPrimaryLight = Color(0xFFFFFFFF) +val primaryContainerLight = Color(0xFF7A28FE) +val onPrimaryContainerLight = Color(0xFFEADCFF) +val secondaryLight = Color(0xFF6B4BAE) +val onSecondaryLight = Color(0xFFFFFFFF) +val secondaryContainerLight = Color(0xFFB594FD) +val onSecondaryContainerLight = Color(0xFF472489) +val tertiaryLight = Color(0xFF8F007E) +val onTertiaryLight = Color(0xFFFFFFFF) +val tertiaryContainerLight = Color(0xFFB800A3) +val onTertiaryContainerLight = Color(0xFFFFD7F0) +val errorLight = Color(0xFFBA1A1A) +val onErrorLight = Color(0xFFFFFFFF) +val errorContainerLight = Color(0xFFFFDAD6) +val onErrorContainerLight = Color(0xFF93000A) +val backgroundLight = Color(0xFFFEF7FF) +val onBackgroundLight = Color(0xFF1D1A25) +val surfaceLight = Color(0xFFFEF7FF) +val onSurfaceLight = Color(0xFF1D1A25) +val surfaceVariantLight = Color(0xFFE9DEF6) +val onSurfaceVariantLight = Color(0xFF4A4456) +val scrimLight = Color(0xFF000000) +val inverseSurfaceLight = Color(0xFF332E3A) +val inverseOnSurfaceLight = Color(0xFFF6EDFE) +val inversePrimaryLight = Color(0xFFD2BCFF) -val Purple40 = Color(0xFF6650a4) -val PurpleGrey40 = Color(0xFF625b71) -val Pink40 = Color(0xFF7D5260) \ No newline at end of file +val primaryDark = Color(0xFFD2BCFF) +val onPrimaryDark = Color(0xFF3D008F) +val primaryContainerDark = Color(0xFF7A28FE) +val onPrimaryContainerDark = Color(0xFFEADCFF) +val secondaryDark = Color(0xFFD2BCFF) +val onSecondaryDark = Color(0xFF3B167D) +val secondaryContainerDark = Color(0xFF533295) +val onSecondaryContainerDark = Color(0xFFC2A6FF) +val tertiaryDark = Color(0xFFFFACE7) +val onTertiaryDark = Color(0xFF5E0052) +val tertiaryContainerDark = Color(0xFFB800A3) +val onTertiaryContainerDark = Color(0xFFFFD7F0) +val errorDark = Color(0xFFFFB4AB) +val onErrorDark = Color(0xFF690005) +val errorContainerDark = Color(0xFF93000A) +val onErrorContainerDark = Color(0xFFFFDAD6) +val backgroundDark = Color(0xFF15121C) +val onBackgroundDark = Color(0xFFE8DFF0) +val surfaceDark = Color(0xFF15121C) +val onSurfaceDark = Color(0xFFE8DFF0) +val surfaceVariantDark = Color(0xFF4A4456) +val onSurfaceVariantDark = Color(0xFFCCC3D9) +val scrimDark = Color(0xFF000000) +val inverseSurfaceDark = Color(0xFFE8DFF0) +val inverseOnSurfaceDark = Color(0xFF332E3A) +val inversePrimaryDark = Color(0xFF741BF8) diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Theme.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Theme.kt index 41ef702b..aa9c3e5c 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Theme.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Theme.kt @@ -2,33 +2,106 @@ package com.github.damontecres.dolphin.ui.theme import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.runtime.Composable -import androidx.tv.material3.ExperimentalTvMaterial3Api +import androidx.compose.runtime.Immutable +import androidx.compose.ui.graphics.Color import androidx.tv.material3.MaterialTheme import androidx.tv.material3.darkColorScheme import androidx.tv.material3.lightColorScheme -@OptIn(ExperimentalTvMaterial3Api::class) +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, + scrim = scrimLight, + inverseSurface = inverseSurfaceLight, + inverseOnSurface = inverseOnSurfaceLight, + inversePrimary = inversePrimaryLight, + border = inversePrimaryLight, + ) + +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, + scrim = scrimDark, + inverseSurface = inverseSurfaceDark, + inverseOnSurface = inverseOnSurfaceDark, + inversePrimary = inversePrimaryDark, + border = inversePrimaryDark.copy(alpha = .5f), + ) + +@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 DolphinTheme( - isInDarkTheme: Boolean = isSystemInDarkTheme(), - content: @Composable () -> Unit, + darkTheme: Boolean = isSystemInDarkTheme(), + content: + @Composable() + () -> Unit, ) { - val colorScheme = if (isInDarkTheme) { - darkColorScheme( - primary = Purple80, - secondary = PurpleGrey80, - tertiary = Pink80 - ) - } else { - lightColorScheme( - primary = Purple40, - secondary = PurpleGrey40, - tertiary = Pink40 - ) - } + val colorScheme = + when { + darkTheme -> darkScheme + else -> lightScheme + } + MaterialTheme( colorScheme = colorScheme, - typography = Typography, - content = content + typography = AppTypography, + content = content, ) -} \ No newline at end of file +} diff --git a/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Type.kt b/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Type.kt index cfc72fe7..62083999 100644 --- a/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Type.kt +++ b/app/src/main/java/com/github/damontecres/dolphin/ui/theme/Type.kt @@ -1,36 +1,5 @@ package com.github.damontecres.dolphin.ui.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 -import androidx.tv.material3.ExperimentalTvMaterial3Api import androidx.tv.material3.Typography -// Set of Material typography styles to start with -@OptIn(ExperimentalTvMaterial3Api::class) -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()