Add extended colors to SignalTheme.

main
Alex Hart 2023-02-03 15:50:10 -04:00 zatwierdzone przez Greyson Parrelli
rodzic f20d929292
commit c8e6ccc0c0
3 zmienionych plików z 125 dodań i 6 usunięć

Wyświetl plik

@ -130,7 +130,7 @@ object Buttons {
enabled: Boolean = true,
shape: Shape = ButtonDefaults.shape,
colors: ButtonColors = ButtonDefaults.buttonColors(
containerColor = MaterialTheme.colorScheme.secondaryContainer, // TODO -- need extended colors
containerColor = SignalTheme.colors.colorSurface2,
contentColor = MaterialTheme.colorScheme.onSurface
),
elevation: ButtonElevation? = ButtonDefaults.buttonElevation(),

Wyświetl plik

@ -0,0 +1,58 @@
package org.signal.core.ui.theme
import androidx.compose.runtime.Immutable
import androidx.compose.runtime.staticCompositionLocalOf
import androidx.compose.ui.graphics.Color
@Immutable
data class ExtendedColors(
val neutralSurface: Color,
val colorOnCustom: Color,
val colorOnCustomVariant: Color,
val colorSurface1: Color,
val colorSurface2: Color,
val colorSurface3: Color,
val colorSurface4: Color,
val colorSurface5: Color,
val colorTransparent1: Color,
val colorTransparent2: Color,
val colorTransparent3: Color,
val colorTransparent4: Color,
val colorTransparent5: Color,
val colorNeutral: Color,
val colorNeutralVariant: Color,
val colorTransparentInverse1: Color,
val colorTransparentInverse2: Color,
val colorTransparentInverse3: Color,
val colorTransparentInverse4: Color,
val colorTransparentInverse5: Color,
val colorNeutralInverse: Color,
val colorNeutralVariantInverse: Color
)
val LocalExtendedColors = staticCompositionLocalOf {
ExtendedColors(
neutralSurface = Color.Unspecified,
colorOnCustom = Color.Unspecified,
colorOnCustomVariant = Color.Unspecified,
colorSurface1 = Color.Unspecified,
colorSurface2 = Color.Unspecified,
colorSurface3 = Color.Unspecified,
colorSurface4 = Color.Unspecified,
colorSurface5 = Color.Unspecified,
colorTransparent1 = Color.Unspecified,
colorTransparent2 = Color.Unspecified,
colorTransparent3 = Color.Unspecified,
colorTransparent4 = Color.Unspecified,
colorTransparent5 = Color.Unspecified,
colorNeutral = Color.Unspecified,
colorNeutralVariant = Color.Unspecified,
colorTransparentInverse1 = Color.Unspecified,
colorTransparentInverse2 = Color.Unspecified,
colorTransparentInverse3 = Color.Unspecified,
colorTransparentInverse4 = Color.Unspecified,
colorTransparentInverse5 = Color.Unspecified,
colorNeutralInverse = Color.Unspecified,
colorNeutralVariantInverse = Color.Unspecified
)
}

Wyświetl plik

@ -5,6 +5,7 @@ import androidx.compose.material3.Typography
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle
@ -85,6 +86,56 @@ private val lightColorScheme = lightColorScheme(
outline = Color(0xFF808389)
)
private val lightExtendedColors = ExtendedColors(
neutralSurface = Color(0x99FFFFFF),
colorOnCustom = Color(0xFFFFFFFF),
colorOnCustomVariant = Color(0xB3FFFFFF),
colorSurface1 = Color(0xFFF2F5F9),
colorSurface2 = Color(0xFFEDF0F6),
colorSurface3 = Color(0xFFE8ECF4),
colorSurface4 = Color(0xFFE6EAF3),
colorSurface5 = Color(0xFFE3E7F1),
colorTransparent1 = Color(0x14FFFFFF),
colorTransparent2 = Color(0x29FFFFFF),
colorTransparent3 = Color(0x8FFFFFFF),
colorTransparent4 = Color(0xB8FFFFFF),
colorTransparent5 = Color(0xF5FFFFFF),
colorNeutral = Color(0xFFFFFFFF),
colorNeutralVariant = Color(0xB8FFFFFF),
colorTransparentInverse1 = Color(0x0A000000),
colorTransparentInverse2 = Color(0x14000000),
colorTransparentInverse3 = Color(0x66000000),
colorTransparentInverse4 = Color(0xB8000000),
colorTransparentInverse5 = Color(0xE0000000),
colorNeutralInverse = Color(0xFF121212),
colorNeutralVariantInverse = Color(0xFF5C5C5C)
)
private val darkExtendedColors = ExtendedColors(
neutralSurface = Color(0x14FFFFFF),
colorOnCustom = Color(0xFFFFFFFF),
colorOnCustomVariant = Color(0xB3FFFFFF),
colorSurface1 = Color(0xFF23242A),
colorSurface2 = Color(0xFF272A31),
colorSurface3 = Color(0xFF2C2F37),
colorSurface4 = Color(0xFF2E3039),
colorSurface5 = Color(0xFF31343E),
colorTransparent1 = Color(0x0AFFFFFF),
colorTransparent2 = Color(0x1FFFFFFF),
colorTransparent3 = Color(0x29FFFFFF),
colorTransparent4 = Color(0x7AFFFFFF),
colorTransparent5 = Color(0xB8FFFFFF),
colorNeutral = Color(0xFF121212),
colorNeutralVariant = Color(0xFF5C5C5C),
colorTransparentInverse1 = Color(0x0A000000),
colorTransparentInverse2 = Color(0x14000000),
colorTransparentInverse3 = Color(0x29000000),
colorTransparentInverse4 = Color(0xB8000000),
colorTransparentInverse5 = Color(0xF5000000),
colorNeutralInverse = Color(0xE0FFFFFF),
colorNeutralVariantInverse = Color(0xA3FFFFFF)
)
private val darkColorScheme = darkColorScheme(
primary = Color(0xFFB6C5FA),
primaryContainer = Color(0xFF464B5C),
@ -110,9 +161,19 @@ fun SignalTheme(
isDarkMode: Boolean,
content: @Composable () -> Unit
) {
MaterialTheme(
colorScheme = if (isDarkMode) darkColorScheme else lightColorScheme,
typography = typography,
content = content
)
val extendedColors = if (isDarkMode) darkExtendedColors else lightExtendedColors
CompositionLocalProvider(LocalExtendedColors provides extendedColors) {
MaterialTheme(
colorScheme = if (isDarkMode) darkColorScheme else lightColorScheme,
typography = typography,
content = content
)
}
}
object SignalTheme {
val colors: ExtendedColors
@Composable
get() = LocalExtendedColors.current
}