mirror of
https://github.com/JustinZeus/Wholphin.git
synced 2026-11-07 16:06:35 +01:00
Add two new themes: Red & Brown (#1721)
## Description Adds new two new theme colors: Red & Brown ### Related issues Related to #91, #950 Closes #1646 ### Testing <!-- Describe how this change was tested and on what device(s) --> ## Screenshots <img width="2727" height="2171" alt="image" src="https://github.com/user-attachments/assets/ae19f98d-e782-466a-bafc-6c0502f64e00" /> ## AI or LLM usage None
This commit is contained in:
parent
e7b0be2660
commit
9954365c6f
10 changed files with 452 additions and 3 deletions
|
|
@ -45,6 +45,8 @@ fun WatchedIconBackground(): Color =
|
||||||
AppThemeColors.GREEN,
|
AppThemeColors.GREEN,
|
||||||
AppThemeColors.ORANGE,
|
AppThemeColors.ORANGE,
|
||||||
AppThemeColors.BOLD_BLUE,
|
AppThemeColors.BOLD_BLUE,
|
||||||
|
AppThemeColors.RED,
|
||||||
|
AppThemeColors.BROWN,
|
||||||
-> MaterialTheme.colorScheme.border.copy(alpha = 1f)
|
-> MaterialTheme.colorScheme.border.copy(alpha = 1f)
|
||||||
|
|
||||||
AppThemeColors.OLED_BLACK -> MaterialTheme.colorScheme.secondaryContainer
|
AppThemeColors.OLED_BLACK -> MaterialTheme.colorScheme.secondaryContainer
|
||||||
|
|
@ -60,6 +62,8 @@ fun WatchedIconColor(): Color =
|
||||||
AppThemeColors.ORANGE,
|
AppThemeColors.ORANGE,
|
||||||
AppThemeColors.BOLD_BLUE,
|
AppThemeColors.BOLD_BLUE,
|
||||||
AppThemeColors.OLED_BLACK,
|
AppThemeColors.OLED_BLACK,
|
||||||
|
AppThemeColors.RED,
|
||||||
|
AppThemeColors.BROWN,
|
||||||
-> Color.White // MaterialTheme.colorScheme.onSurface
|
-> Color.White // MaterialTheme.colorScheme.onSurface
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -146,6 +146,8 @@ fun sliderActiveColor(focused: Boolean): Color {
|
||||||
AppThemeColors.BLUE,
|
AppThemeColors.BLUE,
|
||||||
AppThemeColors.GREEN,
|
AppThemeColors.GREEN,
|
||||||
AppThemeColors.ORANGE,
|
AppThemeColors.ORANGE,
|
||||||
|
AppThemeColors.RED,
|
||||||
|
AppThemeColors.BROWN,
|
||||||
-> {
|
-> {
|
||||||
MaterialTheme.colorScheme.border
|
MaterialTheme.colorScheme.border
|
||||||
}
|
}
|
||||||
|
|
@ -188,6 +190,8 @@ fun sliderInactiveColor(focused: Boolean): Color {
|
||||||
AppThemeColors.GREEN,
|
AppThemeColors.GREEN,
|
||||||
AppThemeColors.ORANGE,
|
AppThemeColors.ORANGE,
|
||||||
AppThemeColors.BOLD_BLUE,
|
AppThemeColors.BOLD_BLUE,
|
||||||
|
AppThemeColors.RED,
|
||||||
|
AppThemeColors.BROWN,
|
||||||
-> {
|
-> {
|
||||||
MaterialTheme.colorScheme.secondaryContainer.copy(alpha = .66f)
|
MaterialTheme.colorScheme.secondaryContainer.copy(alpha = .66f)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -772,6 +772,8 @@ fun navItemColor(
|
||||||
AppThemeColors.BLUE,
|
AppThemeColors.BLUE,
|
||||||
AppThemeColors.GREEN,
|
AppThemeColors.GREEN,
|
||||||
AppThemeColors.ORANGE,
|
AppThemeColors.ORANGE,
|
||||||
|
AppThemeColors.RED,
|
||||||
|
AppThemeColors.BROWN,
|
||||||
-> MaterialTheme.colorScheme.border
|
-> MaterialTheme.colorScheme.border
|
||||||
|
|
||||||
AppThemeColors.BOLD_BLUE,
|
AppThemeColors.BOLD_BLUE,
|
||||||
|
|
|
||||||
|
|
@ -79,6 +79,8 @@ fun SwitchColors(): SwitchColors {
|
||||||
AppThemeColors.ORANGE,
|
AppThemeColors.ORANGE,
|
||||||
AppThemeColors.BOLD_BLUE,
|
AppThemeColors.BOLD_BLUE,
|
||||||
AppThemeColors.OLED_BLACK,
|
AppThemeColors.OLED_BLACK,
|
||||||
|
AppThemeColors.RED,
|
||||||
|
AppThemeColors.BROWN,
|
||||||
-> {
|
-> {
|
||||||
SwitchDefaults.colors(
|
SwitchDefaults.colors(
|
||||||
checkedThumbColor = MaterialTheme.colorScheme.onPrimary,
|
checkedThumbColor = MaterialTheme.colorScheme.onPrimary,
|
||||||
|
|
|
||||||
|
|
@ -7,10 +7,12 @@ import androidx.tv.material3.MaterialTheme
|
||||||
import com.github.damontecres.wholphin.preferences.AppThemeColors
|
import com.github.damontecres.wholphin.preferences.AppThemeColors
|
||||||
import com.github.damontecres.wholphin.ui.theme.colors.BlueThemeColors
|
import com.github.damontecres.wholphin.ui.theme.colors.BlueThemeColors
|
||||||
import com.github.damontecres.wholphin.ui.theme.colors.BoldBlueThemeColors
|
import com.github.damontecres.wholphin.ui.theme.colors.BoldBlueThemeColors
|
||||||
|
import com.github.damontecres.wholphin.ui.theme.colors.BrownThemeColors
|
||||||
import com.github.damontecres.wholphin.ui.theme.colors.GreenThemeColors
|
import com.github.damontecres.wholphin.ui.theme.colors.GreenThemeColors
|
||||||
import com.github.damontecres.wholphin.ui.theme.colors.OledThemeColors
|
import com.github.damontecres.wholphin.ui.theme.colors.OledThemeColors
|
||||||
import com.github.damontecres.wholphin.ui.theme.colors.OrangeThemeColors
|
import com.github.damontecres.wholphin.ui.theme.colors.OrangeThemeColors
|
||||||
import com.github.damontecres.wholphin.ui.theme.colors.PurpleThemeColors
|
import com.github.damontecres.wholphin.ui.theme.colors.PurpleThemeColors
|
||||||
|
import com.github.damontecres.wholphin.ui.theme.colors.RedThemeColors
|
||||||
|
|
||||||
val LocalTheme =
|
val LocalTheme =
|
||||||
compositionLocalOf<AppThemeColors> { AppThemeColors.PURPLE }
|
compositionLocalOf<AppThemeColors> { AppThemeColors.PURPLE }
|
||||||
|
|
@ -23,6 +25,8 @@ fun getThemeColors(appThemeColors: AppThemeColors): ThemeColors =
|
||||||
AppThemeColors.ORANGE -> OrangeThemeColors
|
AppThemeColors.ORANGE -> OrangeThemeColors
|
||||||
AppThemeColors.OLED_BLACK -> OledThemeColors
|
AppThemeColors.OLED_BLACK -> OledThemeColors
|
||||||
AppThemeColors.BOLD_BLUE -> BoldBlueThemeColors
|
AppThemeColors.BOLD_BLUE -> BoldBlueThemeColors
|
||||||
|
AppThemeColors.RED -> RedThemeColors
|
||||||
|
AppThemeColors.BROWN -> BrownThemeColors
|
||||||
AppThemeColors.UNRECOGNIZED -> PurpleThemeColors
|
AppThemeColors.UNRECOGNIZED -> PurpleThemeColors
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.PaddingValues
|
import androidx.compose.foundation.layout.PaddingValues
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.lazy.grid.GridCells
|
import androidx.compose.foundation.lazy.grid.GridCells
|
||||||
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
|
||||||
import androidx.compose.foundation.lazy.grid.items
|
import androidx.compose.foundation.lazy.grid.items
|
||||||
|
|
@ -19,6 +20,7 @@ import androidx.compose.runtime.remember
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.graphics.Color
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.compose.ui.text.font.FontWeight
|
||||||
import androidx.compose.ui.tooling.preview.Preview
|
import androidx.compose.ui.tooling.preview.Preview
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.tv.material3.ListItem
|
import androidx.tv.material3.ListItem
|
||||||
|
|
@ -42,26 +44,37 @@ import kotlinx.coroutines.flow.Flow
|
||||||
import kotlinx.coroutines.flow.flowOf
|
import kotlinx.coroutines.flow.flowOf
|
||||||
|
|
||||||
@Preview(
|
@Preview(
|
||||||
device = "spec:width=1200dp,height=2500dp",
|
device = "spec:width=1200dp,height=3000dp",
|
||||||
backgroundColor = 0xFF383535,
|
backgroundColor = 0xFF383535,
|
||||||
uiMode = UI_MODE_TYPE_TELEVISION,
|
uiMode = UI_MODE_TYPE_TELEVISION,
|
||||||
)
|
)
|
||||||
@Composable
|
@Composable
|
||||||
private fun ThemePreview() {
|
private fun ThemePreview() {
|
||||||
|
val themes = AppThemeColors.entries.filterNot { it == AppThemeColors.UNRECOGNIZED }
|
||||||
Column {
|
Column {
|
||||||
LazyVerticalGrid(
|
LazyVerticalGrid(
|
||||||
columns = GridCells.Fixed(2),
|
columns = GridCells.Fixed(3),
|
||||||
contentPadding = PaddingValues(16.dp),
|
contentPadding = PaddingValues(16.dp),
|
||||||
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
||||||
verticalArrangement = Arrangement.spacedBy(16.dp),
|
verticalArrangement = Arrangement.spacedBy(16.dp),
|
||||||
) {
|
) {
|
||||||
items(AppThemeColors.entries.filterNot { it == AppThemeColors.UNRECOGNIZED }) {
|
items(themes) {
|
||||||
ThemeExample(it)
|
ThemeExample(it)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Composable
|
||||||
|
private fun SectionTitle(text: String) {
|
||||||
|
Text(
|
||||||
|
text = text,
|
||||||
|
color = Color.White,
|
||||||
|
fontWeight = FontWeight.SemiBold,
|
||||||
|
modifier = Modifier.padding(top = 8.dp),
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun ThemeExample(theme: AppThemeColors) {
|
private fun ThemeExample(theme: AppThemeColors) {
|
||||||
val source = remember { PreviewInteractionSource() }
|
val source = remember { PreviewInteractionSource() }
|
||||||
|
|
@ -71,10 +84,13 @@ private fun ThemeExample(theme: AppThemeColors) {
|
||||||
Text(
|
Text(
|
||||||
text = theme.toString(),
|
text = theme.toString(),
|
||||||
color = Color.White,
|
color = Color.White,
|
||||||
|
modifier = Modifier.padding(8.dp),
|
||||||
)
|
)
|
||||||
Column(
|
Column(
|
||||||
verticalArrangement = Arrangement.spacedBy(8.dp),
|
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||||
|
modifier = Modifier.padding(8.dp),
|
||||||
) {
|
) {
|
||||||
|
SectionTitle("Cards")
|
||||||
Row(
|
Row(
|
||||||
horizontalArrangement = Arrangement.SpaceEvenly,
|
horizontalArrangement = Arrangement.SpaceEvenly,
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
|
|
@ -134,6 +150,7 @@ private fun ThemeExample(theme: AppThemeColors) {
|
||||||
aspectRatio = AspectRatios.SQUARE,
|
aspectRatio = AspectRatios.SQUARE,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
SectionTitle("Controls")
|
||||||
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
|
Row(horizontalArrangement = Arrangement.spacedBy(16.dp)) {
|
||||||
SliderPreference(
|
SliderPreference(
|
||||||
preference = AppPreference.AutoPlayNextDelay,
|
preference = AppPreference.AutoPlayNextDelay,
|
||||||
|
|
@ -191,6 +208,7 @@ private fun ThemeExample(theme: AppThemeColors) {
|
||||||
interactionSource = source,
|
interactionSource = source,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
SectionTitle("Nav drawer")
|
||||||
val navScope = NavScope(true)
|
val navScope = NavScope(true)
|
||||||
Row(
|
Row(
|
||||||
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
||||||
|
|
@ -240,6 +258,7 @@ private fun ThemeExample(theme: AppThemeColors) {
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
SectionTitle("Playback controls")
|
||||||
Row(
|
Row(
|
||||||
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
horizontalArrangement = Arrangement.spacedBy(16.dp),
|
||||||
modifier = Modifier.background(MaterialTheme.colorScheme.surfaceVariant),
|
modifier = Modifier.background(MaterialTheme.colorScheme.surfaceVariant),
|
||||||
|
|
@ -271,6 +290,7 @@ private fun ThemeExample(theme: AppThemeColors) {
|
||||||
interactionSource = source,
|
interactionSource = source,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
SectionTitle("List items")
|
||||||
Column(
|
Column(
|
||||||
modifier = Modifier.background(MaterialTheme.colorScheme.surface),
|
modifier = Modifier.background(MaterialTheme.colorScheme.surface),
|
||||||
) {
|
) {
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,204 @@
|
||||||
|
package com.github.damontecres.wholphin.ui.theme.colors
|
||||||
|
|
||||||
|
import androidx.compose.material3.ColorScheme
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.tv.material3.darkColorScheme
|
||||||
|
import androidx.tv.material3.lightColorScheme
|
||||||
|
import com.github.damontecres.wholphin.ui.theme.ThemeColors
|
||||||
|
|
||||||
|
val BrownThemeColors =
|
||||||
|
object : ThemeColors {
|
||||||
|
val primaryLight = Color(0xFF8A5022)
|
||||||
|
val onPrimaryLight = Color(0xFFFFFFFF)
|
||||||
|
val primaryContainerLight = Color(0xFFFFDCC6)
|
||||||
|
val onPrimaryContainerLight = Color(0xFF6D390C)
|
||||||
|
val secondaryLight = Color(0xFF755845)
|
||||||
|
val onSecondaryLight = Color(0xFFFFFFFF)
|
||||||
|
val secondaryContainerLight = Color(0xFFFFDCC6)
|
||||||
|
val onSecondaryContainerLight = Color(0xFF5B412F)
|
||||||
|
val tertiaryLight = Color(0xFF5F6135)
|
||||||
|
val onTertiaryLight = Color(0xFFFFFFFF)
|
||||||
|
val tertiaryContainerLight = Color(0xFFE5E6AE)
|
||||||
|
val onTertiaryContainerLight = Color(0xFF47491F)
|
||||||
|
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(0xFFF3DED3)
|
||||||
|
val onSurfaceVariantLight = Color(0xFF52443B)
|
||||||
|
val outlineLight = Color(0xFF84746A)
|
||||||
|
val outlineVariantLight = Color(0xFFD7C3B7)
|
||||||
|
val scrimLight = Color(0xFF000000)
|
||||||
|
val inverseSurfaceLight = Color(0xFF382F29)
|
||||||
|
val inverseOnSurfaceLight = Color(0xFFFEEDE4)
|
||||||
|
val inversePrimaryLight = Color(0xFFFFB784)
|
||||||
|
val surfaceDimLight = Color(0xFFE7D7CE)
|
||||||
|
val surfaceBrightLight = Color(0xFFFFF8F5)
|
||||||
|
val surfaceContainerLowestLight = Color(0xFFFFFFFF)
|
||||||
|
val surfaceContainerLowLight = Color(0xFFFFF1EA)
|
||||||
|
val surfaceContainerLight = Color(0xFFFBEBE2)
|
||||||
|
val surfaceContainerHighLight = Color(0xFFF6E5DC)
|
||||||
|
val surfaceContainerHighestLight = Color(0xFFF0DFD6)
|
||||||
|
|
||||||
|
val primaryDark = Color(0xFFFFB784)
|
||||||
|
val onPrimaryDark = Color(0xFF4F2500)
|
||||||
|
val primaryContainerDark = Color(0xFF6D390C)
|
||||||
|
val onPrimaryContainerDark = Color(0xFFFFDCC6)
|
||||||
|
val secondaryDark = Color(0xFFE4BFA8)
|
||||||
|
val onSecondaryDark = Color(0xFF422B1B)
|
||||||
|
val secondaryContainerDark = Color(0xFF5B412F)
|
||||||
|
val onSecondaryContainerDark = Color(0xFFFFDCC6)
|
||||||
|
val tertiaryDark = Color(0xFFC8CA94)
|
||||||
|
val onTertiaryDark = Color(0xFF30330B)
|
||||||
|
val tertiaryContainerDark = Color(0xFF47491F)
|
||||||
|
val onTertiaryContainerDark = Color(0xFFE5E6AE)
|
||||||
|
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(0xFFD7C3B7)
|
||||||
|
val outlineDark = Color(0xFF9F8D83)
|
||||||
|
val outlineVariantDark = Color(0xFF52443B)
|
||||||
|
val scrimDark = Color(0xFF000000)
|
||||||
|
val inverseSurfaceDark = Color(0xFFF0DFD6)
|
||||||
|
val inverseOnSurfaceDark = Color(0xFF382F29)
|
||||||
|
val inversePrimaryDark = Color(0xFF6D3B07)
|
||||||
|
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)
|
||||||
|
|
||||||
|
override val lightSchemeMaterial: ColorScheme =
|
||||||
|
androidx.compose.material3.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,
|
||||||
|
)
|
||||||
|
|
||||||
|
override 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,
|
||||||
|
)
|
||||||
|
|
||||||
|
override val darkSchemeMaterial =
|
||||||
|
androidx.compose.material3.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,
|
||||||
|
)
|
||||||
|
|
||||||
|
override 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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,204 @@
|
||||||
|
package com.github.damontecres.wholphin.ui.theme.colors
|
||||||
|
|
||||||
|
import androidx.compose.material3.ColorScheme
|
||||||
|
import androidx.compose.ui.graphics.Color
|
||||||
|
import androidx.tv.material3.darkColorScheme
|
||||||
|
import androidx.tv.material3.lightColorScheme
|
||||||
|
import com.github.damontecres.wholphin.ui.theme.ThemeColors
|
||||||
|
|
||||||
|
val RedThemeColors =
|
||||||
|
object : ThemeColors {
|
||||||
|
val primaryLight = Color(0xFF904A42)
|
||||||
|
val onPrimaryLight = Color(0xFFFFFFFF)
|
||||||
|
val primaryContainerLight = Color(0xFFFFDAD5)
|
||||||
|
val onPrimaryContainerLight = Color(0xFF73342C)
|
||||||
|
val secondaryLight = Color(0xFF775652)
|
||||||
|
val onSecondaryLight = Color(0xFFFFFFFF)
|
||||||
|
val secondaryContainerLight = Color(0xFFFFDAD5)
|
||||||
|
val onSecondaryContainerLight = Color(0xFF5D3F3B)
|
||||||
|
val tertiaryLight = Color(0xFF715C2E)
|
||||||
|
val onTertiaryLight = Color(0xFFFFFFFF)
|
||||||
|
val tertiaryContainerLight = Color(0xFFFDDFA6)
|
||||||
|
val onTertiaryContainerLight = Color(0xFF574419)
|
||||||
|
val errorLight = Color(0xFFBA1A1A)
|
||||||
|
val onErrorLight = Color(0xFFFFFFFF)
|
||||||
|
val errorContainerLight = Color(0xFFFFDAD6)
|
||||||
|
val onErrorContainerLight = Color(0xFF93000A)
|
||||||
|
val backgroundLight = Color(0xFFFFF8F7)
|
||||||
|
val onBackgroundLight = Color(0xFF231918)
|
||||||
|
val surfaceLight = Color(0xFFFFF8F7)
|
||||||
|
val onSurfaceLight = Color(0xFF231918)
|
||||||
|
val surfaceVariantLight = Color(0xFFF5DDDA)
|
||||||
|
val onSurfaceVariantLight = Color(0xFF534341)
|
||||||
|
val outlineLight = Color(0xFF857370)
|
||||||
|
val outlineVariantLight = Color(0xFFD8C2BE)
|
||||||
|
val scrimLight = Color(0xFF000000)
|
||||||
|
val inverseSurfaceLight = Color(0xFF392E2C)
|
||||||
|
val inverseOnSurfaceLight = Color(0xFFFFEDEA)
|
||||||
|
val inversePrimaryLight = Color(0xFFFFB4AA)
|
||||||
|
val surfaceDimLight = Color(0xFFE8D6D4)
|
||||||
|
val surfaceBrightLight = Color(0xFFFFF8F7)
|
||||||
|
val surfaceContainerLowestLight = Color(0xFFFFFFFF)
|
||||||
|
val surfaceContainerLowLight = Color(0xFFFFF0EE)
|
||||||
|
val surfaceContainerLight = Color(0xFFFCEAE7)
|
||||||
|
val surfaceContainerHighLight = Color(0xFFF7E4E2)
|
||||||
|
val surfaceContainerHighestLight = Color(0xFFF1DEDC)
|
||||||
|
|
||||||
|
val primaryDark = Color(0xFFFFB4AA)
|
||||||
|
val onPrimaryDark = Color(0xFF561E18)
|
||||||
|
val primaryContainerDark = Color(0xFF73342C)
|
||||||
|
val onPrimaryContainerDark = Color(0xFFFFDAD5)
|
||||||
|
val secondaryDark = Color(0xFFE7BDB7)
|
||||||
|
val onSecondaryDark = Color(0xFF442926)
|
||||||
|
val secondaryContainerDark = Color(0xFF5D3F3B)
|
||||||
|
val onSecondaryContainerDark = Color(0xFFFFDAD5)
|
||||||
|
val tertiaryDark = Color(0xFFDFC38C)
|
||||||
|
val onTertiaryDark = Color(0xFF3F2E04)
|
||||||
|
val tertiaryContainerDark = Color(0xFF574419)
|
||||||
|
val onTertiaryContainerDark = Color(0xFFFDDFA6)
|
||||||
|
val errorDark = Color(0xFFFFB4AB)
|
||||||
|
val onErrorDark = Color(0xFF690005)
|
||||||
|
val errorContainerDark = Color(0xFF93000A)
|
||||||
|
val onErrorContainerDark = Color(0xFFFFDAD6)
|
||||||
|
val backgroundDark = Color(0xFF1A1110)
|
||||||
|
val onBackgroundDark = Color(0xFFF1DEDC)
|
||||||
|
val surfaceDark = Color(0xFF1A1110)
|
||||||
|
val onSurfaceDark = Color(0xFFF1DEDC)
|
||||||
|
val surfaceVariantDark = Color(0xFF534341)
|
||||||
|
val onSurfaceVariantDark = Color(0xFFD8C2BE)
|
||||||
|
val outlineDark = Color(0xFFA08C8A)
|
||||||
|
val outlineVariantDark = Color(0xFF534341)
|
||||||
|
val scrimDark = Color(0xFF000000)
|
||||||
|
val inverseSurfaceDark = Color(0xFFF1DEDC)
|
||||||
|
val inverseOnSurfaceDark = Color(0xFF392E2C)
|
||||||
|
val inversePrimaryDark = Color(0xFFC0000C)
|
||||||
|
val surfaceDimDark = Color(0xFF1A1110)
|
||||||
|
val surfaceBrightDark = Color(0xFF423735)
|
||||||
|
val surfaceContainerLowestDark = Color(0xFF140C0B)
|
||||||
|
val surfaceContainerLowDark = Color(0xFF231918)
|
||||||
|
val surfaceContainerDark = Color(0xFF271D1C)
|
||||||
|
val surfaceContainerHighDark = Color(0xFF322826)
|
||||||
|
val surfaceContainerHighestDark = Color(0xFF3D3231)
|
||||||
|
|
||||||
|
override val lightSchemeMaterial: ColorScheme =
|
||||||
|
androidx.compose.material3.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,
|
||||||
|
)
|
||||||
|
|
||||||
|
override 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,
|
||||||
|
)
|
||||||
|
|
||||||
|
override val darkSchemeMaterial =
|
||||||
|
androidx.compose.material3.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,
|
||||||
|
)
|
||||||
|
|
||||||
|
override 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,
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
@ -120,6 +120,8 @@ enum AppThemeColors {
|
||||||
ORANGE = 3;
|
ORANGE = 3;
|
||||||
BOLD_BLUE = 4;
|
BOLD_BLUE = 4;
|
||||||
OLED_BLACK = 5;
|
OLED_BLACK = 5;
|
||||||
|
RED = 6;
|
||||||
|
BROWN = 7;
|
||||||
}
|
}
|
||||||
|
|
||||||
enum EdgeStyle{
|
enum EdgeStyle{
|
||||||
|
|
|
||||||
|
|
@ -599,6 +599,7 @@
|
||||||
<string name="orange">Orange</string>
|
<string name="orange">Orange</string>
|
||||||
<string name="bold_blue">Bold Blue</string>
|
<string name="bold_blue">Bold Blue</string>
|
||||||
<string name="black">Black</string>
|
<string name="black">Black</string>
|
||||||
|
<string name="brown">Brown</string>
|
||||||
<string-array name="app_theme_colors">
|
<string-array name="app_theme_colors">
|
||||||
<item>@string/purple</item>
|
<item>@string/purple</item>
|
||||||
<item>@string/blue</item>
|
<item>@string/blue</item>
|
||||||
|
|
@ -606,6 +607,8 @@
|
||||||
<item>@string/orange</item>
|
<item>@string/orange</item>
|
||||||
<item>@string/bold_blue</item>
|
<item>@string/bold_blue</item>
|
||||||
<item>@string/black</item>
|
<item>@string/black</item>
|
||||||
|
<item>@string/red</item>
|
||||||
|
<item>@string/brown</item>
|
||||||
</string-array>
|
</string-array>
|
||||||
|
|
||||||
<string name="skip_ignore">Ignore</string>
|
<string name="skip_ignore">Ignore</string>
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue