Add new surface colors to color schemes

This commit is contained in:
MM20 2023-06-28 23:24:38 +02:00
parent 863626d30c
commit b39d59e070
No known key found for this signature in database
GPG Key ID: 0B61A8F2DEAFA389
11 changed files with 387 additions and 166 deletions

View File

@ -362,6 +362,99 @@ fun CustomColorSchemeSettingsScreen() {
}
)
ColorPreference(
title = "Surface Dim",
value = lightScheme?.let { Color(it.surfaceDim) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceDim(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Bright",
value = lightScheme?.let { Color(it.surfaceBright) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceBright(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container Lowest",
value = lightScheme?.let { Color(it.surfaceContainerLowest) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceContainerLowest(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container Low",
value = lightScheme?.let { Color(it.surfaceContainerLow) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceContainerLow(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container",
value = lightScheme?.let { Color(it.surfaceContainer) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceContainer(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container High",
value = lightScheme?.let { Color(it.surfaceContainerHigh) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceContainerHigh(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container Highest",
value = lightScheme?.let { Color(it.surfaceContainerHighest) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = lightScheme ?: return@ColorPreference
viewModel.setLightScheme(
colors.toBuilder()
.setSurfaceContainerHighest(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Tint",
value = lightScheme?.let { Color(it.surfaceTint) },
@ -739,6 +832,101 @@ fun CustomColorSchemeSettingsScreen() {
)
}
)
ColorPreference(
title = "Surface Dim",
value = darkScheme?.let { Color(it.surfaceDim) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceDim(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Bright",
value = darkScheme?.let { Color(it.surfaceBright) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceBright(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container Lowest",
value = darkScheme?.let { Color(it.surfaceContainerLowest) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceContainerLowest(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container Low",
value = darkScheme?.let { Color(it.surfaceContainerLow) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceContainerLow(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container",
value = darkScheme?.let { Color(it.surfaceContainer) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceContainer(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container High",
value = darkScheme?.let { Color(it.surfaceContainerHigh) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceContainerHigh(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Container Highest",
value = darkScheme?.let { Color(it.surfaceContainerHighest) },
onValueChanged = {
if (it == null) return@ColorPreference
val colors = darkScheme ?: return@ColorPreference
viewModel.setDarkScheme(
colors.toBuilder()
.setSurfaceContainerHighest(it.toArgb())
.build()
)
}
)
ColorPreference(
title = "Surface Tint",
value = darkScheme?.let { Color(it.surfaceTint) },

View File

@ -11,6 +11,7 @@ import kotlinx.coroutines.flow.stateIn
import kotlinx.coroutines.launch
import org.koin.core.component.KoinComponent
import org.koin.core.component.inject
import palettes.CorePalette
import palettes.TonalPalette
import scheme.Scheme
@ -57,7 +58,7 @@ class CustomColorSchemeSettingsScreenVM : ViewModel(), KoinComponent {
.setAccent2(scheme.secondary)
.setAccent3(scheme.tertiary)
.setNeutral1(scheme.surface)
.setNeutral2(scheme.surfaceVariant)
.setNeutral2(scheme.outline)
.setError(scheme.error)
.build()
)
@ -128,37 +129,8 @@ class CustomColorSchemeSettingsScreenVM : ViewModel(), KoinComponent {
val n2 = TonalPalette.fromInt(baseColors.neutral2)
val error = TonalPalette.fromInt(baseColors.error)
return CustomColors.Scheme.newBuilder()
.setPrimary(a1.tone(80))
.setSurfaceTint(a1.tone(80))
.setOnPrimary(a1.tone(20))
.setPrimaryContainer(a1.tone(30))
.setOnPrimaryContainer(a1.tone(90))
.setSecondary(a2.tone(80))
.setOnSecondary(a2.tone(20))
.setSecondaryContainer(a2.tone(30))
.setOnSecondaryContainer(a2.tone(90))
.setTertiary(a3.tone(80))
.setOnTertiary(a3.tone(20))
.setTertiaryContainer(a3.tone(30))
.setOnTertiaryContainer(a3.tone(90))
.setError(error.tone(80))
.setOnError(error.tone(20))
.setErrorContainer(error.tone(30))
.setOnErrorContainer(error.tone(80))
.setBackground(n1.tone(10))
.setOnBackground(n1.tone(90))
.setSurface(n1.tone(10))
.setOnSurface(n1.tone(90))
.setSurfaceVariant(n2.tone(30))
.setOnSurfaceVariant(n2.tone(80))
.setOutline(n2.tone(60))
.setOutlineVariant(n2.tone(30))
.setInverseSurface(n1.tone(90))
.setInverseOnSurface(n1.tone(20))
.setInversePrimary(a1.tone(40))
.setScrim(n1.tone(0))
.build()
val scheme = Scheme.darkFromCorePalette(CorePalette(a1, a2, a3, n1, n2, error))
return scheme.toSettingsColorsScheme()
}
private fun baseColorsToLightScheme(baseColors: CustomColors.BaseColors): CustomColors.Scheme {
@ -169,36 +141,49 @@ class CustomColorSchemeSettingsScreenVM : ViewModel(), KoinComponent {
val n2 = TonalPalette.fromInt(baseColors.neutral2)
val error = TonalPalette.fromInt(baseColors.error)
val scheme = Scheme.lightFromCorePalette(CorePalette(a1, a2, a3, n1, n2, error))
return scheme.toSettingsColorsScheme()
}
private fun Scheme.toSettingsColorsScheme(): CustomColors.Scheme {
val scheme = this
return CustomColors.Scheme.newBuilder()
.setPrimary(a1.tone(40))
.setSurfaceTint(a1.tone(40))
.setOnPrimary(a1.tone(100))
.setPrimaryContainer(a1.tone(90))
.setOnPrimaryContainer(a1.tone(10))
.setSecondary(a2.tone(40))
.setOnSecondary(a2.tone(100))
.setSecondaryContainer(a2.tone(90))
.setOnSecondaryContainer(a2.tone(10))
.setTertiary(a3.tone(40))
.setOnTertiary(a3.tone(100))
.setTertiaryContainer(a3.tone(90))
.setOnTertiaryContainer(a3.tone(10))
.setError(error.tone(40))
.setOnError(error.tone(100))
.setErrorContainer(error.tone(90))
.setOnErrorContainer(error.tone(10))
.setBackground(n1.tone(99))
.setOnBackground(n1.tone(10))
.setSurface(n1.tone(99))
.setOnSurface(n1.tone(10))
.setSurfaceVariant(n2.tone(90))
.setOnSurfaceVariant(n2.tone(30))
.setOutline(n2.tone(50))
.setOutlineVariant(n2.tone(80))
.setInverseSurface(n1.tone(20))
.setInverseOnSurface(n1.tone(95))
.setInversePrimary(a1.tone(80))
.setScrim(n1.tone(0))
.setPrimary(scheme.primary)
.setSurfaceTint(scheme.primary)
.setOnPrimary(scheme.onPrimary)
.setPrimaryContainer(scheme.primaryContainer)
.setOnPrimaryContainer(scheme.onPrimaryContainer)
.setSecondary(scheme.secondary)
.setOnSecondary(scheme.onSecondary)
.setSecondaryContainer(scheme.secondaryContainer)
.setOnSecondaryContainer(scheme.onSecondaryContainer)
.setTertiary(scheme.tertiary)
.setOnTertiary(scheme.onTertiary)
.setTertiaryContainer(scheme.tertiaryContainer)
.setOnTertiaryContainer(scheme.onTertiaryContainer)
.setError(scheme.error)
.setOnError(scheme.onError)
.setErrorContainer(scheme.errorContainer)
.setOnErrorContainer(scheme.onErrorContainer)
.setBackground(scheme.background)
.setOnBackground(scheme.onBackground)
.setSurface(scheme.surface)
.setOnSurface(scheme.onSurface)
.setSurfaceVariant(scheme.surfaceVariant)
.setOnSurfaceVariant(scheme.onSurfaceVariant)
.setOutline(scheme.outline)
.setOutlineVariant(scheme.outlineVariant)
.setInverseSurface(scheme.inverseSurface)
.setInverseOnSurface(scheme.inverseOnSurface)
.setInversePrimary(scheme.inversePrimary)
.setScrim(scheme.scrim)
.setSurfaceDim(scheme.surfaceDim)
.setSurfaceBright(scheme.surfaceBright)
.setSurfaceContainerLowest(scheme.surfaceContainerLowest)
.setSurfaceContainerLow(scheme.surfaceContainerLow)
.setSurfaceContainer(scheme.surfaceContainer)
.setSurfaceContainerHigh(scheme.surfaceContainerHigh)
.setSurfaceContainerHighest(scheme.surfaceContainerHighest)
.build()
}
}

View File

@ -138,13 +138,9 @@ fun colorSchemeAsState(
return remember(darkTheme) {
mutableStateOf(
if (darkTheme) {
dynamicDarkColorScheme(context).copy(
outlineVariant = Color(context.getColor(android.R.color.system_neutral2_700))
)
dynamicDarkColorScheme(context)
} else {
dynamicLightColorScheme(context).copy(
outlineVariant = Color(context.getColor(android.R.color.system_neutral2_200))
)
dynamicLightColorScheme(context)
}
)
}

View File

@ -34,7 +34,14 @@ val LightBlackAndWhiteColorScheme = lightColorScheme(
outline = Color.Black,
surfaceTint = Color.White,
outlineVariant = Color.Black,
scrim = Color.Black
scrim = Color.Black,
surfaceDim = Color.White,
surfaceBright = Color.White,
surfaceContainer = Color.White,
surfaceContainerHigh = Color.White,
surfaceContainerHighest = Color.White,
surfaceContainerLow = Color.White,
surfaceContainerLowest = Color.White,
)
val DarkBlackAndWhiteColorScheme = darkColorScheme(
primary = Color.White,
@ -65,5 +72,12 @@ val DarkBlackAndWhiteColorScheme = darkColorScheme(
outline = Color.White,
surfaceTint = Color.White,
outlineVariant = Color.White,
scrim = Color.White
scrim = Color.White,
surfaceDim = Color.Black,
surfaceBright = Color.Black,
surfaceContainer = Color.Black,
surfaceContainerHigh = Color.Black,
surfaceContainerHighest = Color.Black,
surfaceContainerLow = Color.Black,
surfaceContainerLowest = Color.Black,
)

View File

@ -35,5 +35,12 @@ fun CustomColorScheme(colors: Settings.AppearanceSettings.CustomColors.Scheme) :
onErrorContainer = Color(colors.onErrorContainer),
outlineVariant = Color(colors.outlineVariant),
scrim = Color(colors.scrim),
surfaceBright = Color(colors.surfaceBright),
surfaceDim = Color(colors.surfaceDim),
surfaceContainer = Color(colors.surfaceContainer),
surfaceContainerHigh = Color(colors.surfaceContainerHigh),
surfaceContainerHighest = Color(colors.surfaceContainerHighest),
surfaceContainerLow = Color(colors.surfaceContainerLow),
surfaceContainerLowest = Color(colors.surfaceContainerLowest),
)
}

View File

@ -5,59 +5,63 @@ import androidx.compose.material3.lightColorScheme
import androidx.compose.ui.graphics.Color
val LightDefaultColorScheme = lightColorScheme(
primary = Color(0xFF3C6089),
primary = Color(0xFF3D608A),
onPrimary = Color(0xFFFFFFFF),
primaryContainer = Color(0xFFD1E4FF),
onPrimaryContainer = Color(0xFF101C2B),
inversePrimary = Color(0xFFA6C9F8),
secondary = Color(0xFF41617E),
primaryContainer = Color(0xFFD2E4FF),
onPrimaryContainer = Color(0xFF001C37),
inversePrimary = Color(0xFFA5C9F8),
secondary = Color(0xFF535F70),
onSecondary = Color(0xFFFFFFFF),
secondaryContainer = Color(0xFFCCE5FF),
onSecondaryContainer = Color(0xFF001D33),
tertiary = Color(0xFF2C6674),
secondaryContainer = Color(0xFFD7E3F8),
onSecondaryContainer = Color(0xFF101C2B),
tertiary = Color(0xFF6B5778),
onTertiary = Color(0xFFFFFFFF),
tertiaryContainer = Color(0xFFB2EBFC),
onTertiaryContainer = Color(0xFF001F26),
background = Color(0xFFFDFCFF),
onBackground = Color(0xFF161C27),
surface = Color(0xFFFDFCFF),
onSurface = Color(0xFF161C27),
surfaceVariant = Color(0xFFD8E2FA),
onSurfaceVariant = Color(0xFF3D475A),
inverseSurface = Color(0xFF2B313C),
inverseOnSurface = Color(0xFFEBF0FF),
error = Color(0xFF98434C),
tertiaryContainer = Color(0xFFF3DAFF),
onTertiaryContainer = Color(0xFF251431),
surface = Color(0xFFFAF9FC),
onSurface = Color(0xFF1A1C1E),
onSurfaceVariant = Color(0xFF43474E),
inverseSurface = Color(0xFF2F3033),
inverseOnSurface = Color(0xFFF1F0F3),
error = Color(0xFFBA1A1A),
onError = Color(0xFFFFFFFF),
errorContainer = Color(0xFFFFDADD),
onErrorContainer = Color(0xFF40000E),
outline = Color(0xFF6D778C),
errorContainer = Color(0xFFFFDAD5),
onErrorContainer = Color(0xFF410002),
outline = Color(0xFF73777F),
outlineVariant = Color(0xFFC3C6CF),
scrim = Color(0xFF000000),
background = Color(0xFFFDFCFF),
onBackground = Color(0xFF1A1C1E),
surfaceVariant = Color(0xFFDFE2EB),
)
val DarkDefaultColorScheme = darkColorScheme(
primary = Color(0xFFA6C9F8),
onPrimary = Color(0xFF033259),
primaryContainer = Color(0xFF234870),
onPrimaryContainer = Color(0xFFD1E4FF),
inversePrimary = Color(0xFF3C6089),
secondary = Color(0xFFA9CAEC),
onSecondary = Color(0xFF0E334E),
secondaryContainer = Color(0xFF284965),
onSecondaryContainer = Color(0xFFCCE5FF),
tertiary = Color(0xFF97CFDF),
onTertiary = Color(0xFF003641),
tertiaryContainer = Color(0xFF094E5C),
onTertiaryContainer = Color(0xFFB2EBFC),
background = Color(0xFF161C27),
onBackground = Color(0xFFDDE2F2),
surface = Color(0xFF161C27),
onSurface = Color(0xFFDDE2F2),
surfaceVariant = Color(0xFF3D475A),
onSurfaceVariant = Color(0xFFBDC7DF),
inverseSurface = Color(0xFFDDE2F2),
inverseOnSurface = Color(0xFF2B313C),
error = Color(0xFFFFB3B9),
onError = Color(0xFF5D1521),
errorContainer = Color(0xFF7A2C36),
onErrorContainer = Color(0xFFFFB3B9),
outline = Color(0xFF8791A7),
primary = Color(0xFFA5C9F8),
onPrimary = Color(0xFF023258),
primaryContainer = Color(0xFF224970),
onPrimaryContainer = Color(0xFFD2E4FF),
inversePrimary = Color(0xFF3D608A),
secondary = Color(0xFFBBC7DB),
onSecondary = Color(0xFF253141),
secondaryContainer = Color(0xFF3C4858),
onSecondaryContainer = Color(0xFFD7E3F8),
tertiary = Color(0xFFD6BEE4),
onTertiary = Color(0xFF3B2947),
tertiaryContainer = Color(0xFF523F5F),
onTertiaryContainer = Color(0xFFF3DAFF),
surface = Color(0xFF1A1C1E),
onSurface = Color(0xFFE3E2E5),
onSurfaceVariant = Color(0xFFC3C6CF),
inverseSurface = Color(0xFFE3E2E5),
inverseOnSurface = Color(0xFF2F3033),
error = Color(0xFFFFB4AB),
onError = Color(0xFF690004),
errorContainer = Color(0xFF930009),
onErrorContainer = Color(0xFFFFB4AB),
outline = Color(0xFF8D9199),
outlineVariant = Color(0xFF43474E),
scrim = Color(0xFF000000),
background = Color(0xFF1A1C1E),
onBackground = Color(0xFFE3E2E5),
surfaceVariant = Color(0xFF43474E),
)

View File

@ -5,59 +5,63 @@ import androidx.compose.material3.lightColorScheme
import androidx.compose.ui.graphics.Color
val LightEasterEggColorScheme = lightColorScheme(
primary = Color(0xFFB30080),
primary = Color(0xFFB40180),
onPrimary = Color(0xFFFFFFFF),
primaryContainer = Color(0xFFFFD8EB),
onPrimaryContainer = Color(0xFF3C002A),
inversePrimary = Color(0xFFFFAEDA),
secondary = Color(0xFF9E00C6),
primaryContainer = Color(0xFFFFD8E9),
onPrimaryContainer = Color(0xFF3C0029),
inversePrimary = Color(0xFFFFAFD7),
secondary = Color(0xFF725763),
onSecondary = Color(0xFFFFFFFF),
secondaryContainer = Color(0xFFFED6FF),
onSecondaryContainer = Color(0xFF340044),
tertiary = Color(0xFF8F4E00),
secondaryContainer = Color(0xFFFDD9E7),
onSecondaryContainer = Color(0xFF29151F),
tertiary = Color(0xFF7F543B),
onTertiary = Color(0xFFFFFFFF),
tertiaryContainer = Color(0xFFFFDCBE),
onTertiaryContainer = Color(0xFF2E1500),
background = Color(0xFFFCFCF6),
onBackground = Color(0xFF1A1C19),
surface = Color(0xFFFCFCF6),
onSurface = Color(0xFF1A1C19),
surfaceVariant = Color(0xFFFFD6F5),
onSurfaceVariant = Color(0xFF6F2E67),
inverseSurface = Color(0xFF2F312D),
inverseOnSurface = Color(0xFFF1F1EB),
error = Color(0xFFB4271F),
tertiaryContainer = Color(0xFFFFDBC9),
onTertiaryContainer = Color(0xFF311302),
surface = Color(0xFFFCF8FC),
onSurface = Color(0xFF1C1B1E),
onSurfaceVariant = Color(0xFF4F4448),
inverseSurface = Color(0xFF313033),
inverseOnSurface = Color(0xFFF3EFF3),
error = Color(0xFFBA1A1A),
onError = Color(0xFFFFFFFF),
errorContainer = Color(0xFFFFDAD3),
onErrorContainer = Color(0xFF410001),
outline = Color(0xFFA55E9A),
errorContainer = Color(0xFFFFDAD5),
onErrorContainer = Color(0xFF410002),
outline = Color(0xFF817379),
outlineVariant = Color(0xFFD3C2C8),
scrim = Color(0xFF000000),
background = Color(0xFFFFFBFF),
onBackground = Color(0xFF1C1B1E),
surfaceVariant = Color(0xFFF0DEE4),
)
val DarkEasterEggColorScheme = darkColorScheme(
primary = Color(0xFFFFAEDA),
primary = Color(0xFFFFAFD7),
onPrimary = Color(0xFF620044),
primaryContainer = Color(0xFF890061),
onPrimaryContainer = Color(0xFFFFD8EB),
inversePrimary = Color(0xFFB30080),
secondary = Color(0xFFF5ADFF),
onSecondary = Color(0xFF55006C),
secondaryContainer = Color(0xFF780097),
onSecondaryContainer = Color(0xFFFED6FF),
tertiary = Color(0xFFFFB773),
onTertiary = Color(0xFF4C2700),
tertiaryContainer = Color(0xFF6D3A00),
onTertiaryContainer = Color(0xFFFFDCBE),
background = Color(0xFF1A1C19),
onBackground = Color(0xFFE2E3DC),
surface = Color(0xFF1A1C19),
onSurface = Color(0xFFE2E3DC),
surfaceVariant = Color(0xFF6F2E67),
onSurfaceVariant = Color(0xFFFEACEE),
inverseSurface = Color(0xFFE2E3DC),
inverseOnSurface = Color(0xFF2F312D),
error = Color(0xFFFFB4A8),
onError = Color(0xFF690001),
errorContainer = Color(0xFF910809),
onErrorContainer = Color(0xFFFFB4A8),
outline = Color(0xFFC277B5),
primaryContainer = Color(0xFF8A0061),
onPrimaryContainer = Color(0xFFFFD8E9),
inversePrimary = Color(0xFFB40180),
secondary = Color(0xFFE0BDCB),
onSecondary = Color(0xFF402A35),
secondaryContainer = Color(0xFF59404B),
onSecondaryContainer = Color(0xFFFDD9E7),
tertiary = Color(0xFFF3BA9B),
onTertiary = Color(0xFF4A2812),
tertiaryContainer = Color(0xFF643D26),
onTertiaryContainer = Color(0xFFFFDBC9),
surface = Color(0xFF1C1B1E),
onSurface = Color(0xFFE5E1E5),
onSurfaceVariant = Color(0xFFD3C2C8),
inverseSurface = Color(0xFFE5E1E5),
inverseOnSurface = Color(0xFF313033),
error = Color(0xFFFFB4AB),
onError = Color(0xFF690004),
errorContainer = Color(0xFF930009),
onErrorContainer = Color(0xFFFFB4AB),
outline = Color(0xFF9C8D92),
outlineVariant = Color(0xFF4F4448),
scrim = Color(0xFF000000),
background = Color(0xFF1C1B1E),
onBackground = Color(0xFFE5E1E5),
surfaceVariant = Color(0xFF4F4448),
)

View File

@ -45,5 +45,12 @@ fun MaterialYouCompatScheme(wallpaperColors: WallpaperColors, darkTheme: Boolean
onErrorContainer = Color(scheme.onErrorContainer),
scrim = Color(scheme.scrim),
outlineVariant = Color(scheme.outlineVariant),
surfaceBright = Color(scheme.surfaceBright),
surfaceContainer = Color(scheme.surfaceContainer),
surfaceContainerHigh = Color(scheme.surfaceContainerHigh),
surfaceContainerHighest = Color(scheme.surfaceContainerHighest),
surfaceContainerLow = Color(scheme.surfaceContainerLow),
surfaceContainerLowest = Color(scheme.surfaceContainerLowest),
surfaceDim = Color(scheme.surfaceDim),
)
}

View File

@ -61,6 +61,13 @@ message Settings {
uint32 outline_variant = 27;
uint32 scrim = 28;
uint32 surface_tint = 29;
uint32 surface_dim = 30;
uint32 surface_bright = 31;
uint32 surface_container_lowest = 32;
uint32 surface_container_low = 33;
uint32 surface_container = 34;
uint32 surface_container_high = 35;
uint32 surface_container_highest = 36;
}
Scheme light_scheme = 3;
Scheme dark_scheme = 4;

View File

@ -51,6 +51,15 @@ public final class CorePalette {
return new CorePalette(argb, true);
}
public CorePalette(TonalPalette a1, TonalPalette a2, TonalPalette a3, TonalPalette n1, TonalPalette n2, TonalPalette error) {
this.a1 = a1;
this.a2 = a2;
this.a3 = a3;
this.n1 = n1;
this.n2 = n2;
this.error = error;
}
private CorePalette(int argb, boolean isContent) {
Hct hct = Hct.fromInt(argb);
double hue = hct.getHue();

View File

@ -157,7 +157,7 @@ public class Scheme {
return darkFromCorePalette(CorePalette.contentOf(argb));
}
private static Scheme lightFromCorePalette(CorePalette core) {
public static Scheme lightFromCorePalette(CorePalette core) {
return new Scheme()
.withPrimary(core.a1.tone(40))
.withOnPrimary(core.a1.tone(100))
@ -197,7 +197,7 @@ public class Scheme {
.withSurfaceContainerHighest(core.n1.tone(90));
}
private static Scheme darkFromCorePalette(CorePalette core) {
public static Scheme darkFromCorePalette(CorePalette core) {
return new Scheme()
.withPrimary(core.a1.tone(80))
.withOnPrimary(core.a1.tone(20))