Add extended colors to SignalTheme.
This commit is contained in:
parent
f20d929292
commit
c8e6ccc0c0
3 changed files with 125 additions and 6 deletions
|
@ -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(),
|
||||
|
|
|
@ -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
|
||||
)
|
||||
}
|
|
@ -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
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue