Use color tokens for settings UI
This commit is contained in:
committed by
Niels van Velzen
parent
5ae1347ec0
commit
75b5f62e6b
@@ -3,10 +3,11 @@ package org.jellyfin.androidtv.ui.base
|
||||
import androidx.compose.runtime.Immutable
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import org.jellyfin.design.Tokens
|
||||
|
||||
fun colorScheme(): ColorScheme = ColorScheme(
|
||||
background = Color(0xFF101010),
|
||||
onBackground = Color(0xFFFFFFFF),
|
||||
background = Tokens.Color.colorGrey975,
|
||||
onBackground = Tokens.Color.colorBluegrey25,
|
||||
button = Color(0xB3747474),
|
||||
onButton = Color(0xFFDDDDDD),
|
||||
buttonFocused = Color(0xE6CCCCCC),
|
||||
@@ -19,23 +20,22 @@ fun colorScheme(): ColorScheme = ColorScheme(
|
||||
onInput = Color(0xE6CCCCCC),
|
||||
inputFocused = Color(0xE6CCCCCC),
|
||||
onInputFocused = Color(0xFFDDDDDD),
|
||||
rangeControlBackground = Color(0xCC4B4B4B),
|
||||
rangeControlFill = Color(0xFF00A4DC),
|
||||
rangeControlKnob = Color(0xFFFFFFFF),
|
||||
seekbarBuffer = Color(0x40FFFFFF),
|
||||
recording = Color(0xB3FF7474),
|
||||
onRecording = Color(0xFFDDDDDD),
|
||||
badge = Color(0xFF62676F),
|
||||
onBadge = Color(0xFFE8EAED),
|
||||
listHeader = Color(0xFFE0E0E0),
|
||||
listOverline = Color(0x66FFFFFF),
|
||||
listHeadline = Color(0xFFFFFFFF),
|
||||
listCaption = Color(0x99FFFFFF),
|
||||
listButton = Color(0x00000000),
|
||||
listButtonFocused = Color(0xFF36363B),
|
||||
listButtonDisabled = Color(0xFF1B1B1E),
|
||||
surface = Color(0xFF212225),
|
||||
scrim = Color(0xAB000000),
|
||||
rangeControlBackground = Tokens.Color.colorBluegrey700,
|
||||
rangeControlFill = Tokens.Color.colorCyan500,
|
||||
rangeControlKnob = Tokens.Color.colorBluegrey100,
|
||||
seekbarBuffer = Tokens.Color.colorBluegrey300,
|
||||
recording = Tokens.Color.colorRed300,
|
||||
onRecording = Tokens.Color.colorRed25,
|
||||
badge = Tokens.Color.colorCyan500,
|
||||
onBadge = Tokens.Color.colorBluegrey100,
|
||||
listHeader = Tokens.Color.colorGrey50,
|
||||
listOverline = Tokens.Color.colorGrey500,
|
||||
listHeadline = Tokens.Color.colorGrey25,
|
||||
listCaption = Tokens.Color.colorGrey200,
|
||||
listButton = Color.Transparent,
|
||||
listButtonFocused = Tokens.Color.colorBluegrey800,
|
||||
surface = Tokens.Color.colorBluegrey900,
|
||||
scrim = Tokens.Color.colorBlack.copy(alpha = 0.67f),
|
||||
)
|
||||
|
||||
@Immutable
|
||||
@@ -74,7 +74,6 @@ data class ColorScheme(
|
||||
val listCaption: Color,
|
||||
val listButton: Color,
|
||||
val listButtonFocused: Color,
|
||||
val listButtonDisabled: Color,
|
||||
|
||||
val surface: Color,
|
||||
val scrim: Color,
|
||||
|
||||
@@ -12,6 +12,7 @@ import androidx.compose.runtime.ReadOnlyComposable
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import org.jellyfin.androidtv.ui.base.JellyfinTheme
|
||||
@@ -23,11 +24,9 @@ object ListControlDefaults {
|
||||
fun colors(
|
||||
containerColor: Color = JellyfinTheme.colorScheme.listButton,
|
||||
focusedContainerColor: Color = JellyfinTheme.colorScheme.listButtonFocused,
|
||||
disabledContainerColor: Color = JellyfinTheme.colorScheme.listButtonDisabled,
|
||||
) = ListControlColors(
|
||||
containerColor = containerColor,
|
||||
focusedContainerColor = focusedContainerColor,
|
||||
disabledContainerColor = disabledContainerColor,
|
||||
)
|
||||
}
|
||||
|
||||
@@ -50,7 +49,7 @@ fun ListControl(
|
||||
val pressed by interactionSource.collectIsPressedAsState()
|
||||
|
||||
val backgroundColor = when {
|
||||
!enabled -> colors.disabledContainerColor
|
||||
!enabled -> colors.containerColor
|
||||
pressed -> colors.focusedContainerColor
|
||||
focused -> colors.focusedContainerColor
|
||||
else -> colors.containerColor
|
||||
@@ -60,7 +59,8 @@ fun ListControl(
|
||||
modifier = modifier
|
||||
.fillMaxWidth()
|
||||
.background(backgroundColor, LocalShapes.current.large)
|
||||
.clip(LocalShapes.current.large),
|
||||
.clip(LocalShapes.current.large)
|
||||
.alpha(if (enabled) 1f else 0.4f),
|
||||
) {
|
||||
ListItemContent(
|
||||
headingContent = headingContent,
|
||||
|
||||
@@ -7,5 +7,4 @@ import androidx.compose.ui.graphics.Color
|
||||
data class ListControlColors(
|
||||
val containerColor: Color,
|
||||
val focusedContainerColor: Color,
|
||||
val disabledContainerColor: Color,
|
||||
)
|
||||
|
||||
@@ -29,7 +29,7 @@ fun SettingsMainScreen() {
|
||||
ListButton(
|
||||
leadingContent = { Icon(painterResource(R.drawable.ic_users), contentDescription = null) },
|
||||
headingContent = { Text(stringResource(R.string.pref_login)) },
|
||||
onClick = { router.push(Routes.AUTHENTICATION) }
|
||||
onClick = { router.push(Routes.AUTHENTICATION) },
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ fun SubtitleStylePreview(
|
||||
edgeColor = subtitleTextStrokeColor.toInt(),
|
||||
typeface = TypefaceCompat.create(context, Typeface.DEFAULT, subtitlesTextWeight, false),
|
||||
modifier = Modifier
|
||||
.background(Tokens.Color.colorNeutralDark, JellyfinTheme.shapes.large)
|
||||
.background(Tokens.Color.colorBluegrey800, JellyfinTheme.shapes.large)
|
||||
.fillMaxWidth()
|
||||
.height(75.dp)
|
||||
.clip(JellyfinTheme.shapes.large)
|
||||
|
||||
Reference in New Issue
Block a user