Update theme and style again to make it look like it used to look

This commit is contained in:
Ricki Hirner 2024-05-17 18:04:56 +02:00
parent 621a8c419b
commit 76a47fd017
12 changed files with 184 additions and 459 deletions

View file

@ -269,7 +269,7 @@ fun BrandingHeader() {
@Composable
@Preview
fun BrandingHeader_Preview_Light() {
AppTheme(useDarkTheme = false) {
AppTheme(darkTheme = false) {
BrandingHeader()
}
}
@ -277,7 +277,7 @@ fun BrandingHeader_Preview_Light() {
@Composable
@Preview
fun BrandingHeader_Preview_Dark() {
AppTheme(useDarkTheme = true) {
AppTheme(darkTheme = true) {
BrandingHeader()
}
}

View file

@ -361,8 +361,8 @@ fun AccountList(
for ((account, progress) in accounts)
Card(
colors = CardDefaults.cardColors(
containerColor = MaterialTheme.colorScheme.tertiary,
contentColor = MaterialTheme.colorScheme.onTertiary
containerColor = MaterialTheme.colorScheme.primary,
contentColor = MaterialTheme.colorScheme.onPrimary
),
elevation = CardDefaults.cardElevation(1.dp),
modifier = Modifier

View file

@ -4,22 +4,36 @@
package at.bitfire.davdroid.ui
import android.app.Activity
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalView
import androidx.core.view.WindowCompat
@Composable
fun AppTheme(
useDarkTheme: Boolean = isSystemInDarkTheme(),
darkTheme: Boolean = isSystemInDarkTheme(),
content: @Composable () -> Unit
) {
val colors = if (!useDarkTheme)
val colorScheme = if (!darkTheme)
M3ColorScheme.lightScheme
else
M3ColorScheme.darkScheme
val view = LocalView.current
if (!view.isInEditMode) {
SideEffect {
val window = (view.context as Activity).window
window.statusBarColor = colorScheme.primary.toArgb()
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = darkTheme
}
}
MaterialTheme(
colorScheme = colors,
colorScheme = colorScheme,
content = content
)
}

View file

@ -21,6 +21,7 @@ import androidx.compose.material.icons.filled.Sync
import androidx.compose.material.icons.filled.SyncProblem
import androidx.compose.material.icons.outlined.RuleFolder
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.Checkbox
import androidx.compose.material3.DropdownMenu
import androidx.compose.material3.DropdownMenuItem
@ -30,6 +31,7 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.SnackbarDuration
import androidx.compose.material3.SnackbarHost
@ -664,12 +666,12 @@ fun DeleteAccountDialog(
title = { Text(stringResource(R.string.account_delete_confirmation_title)) },
text = { Text(stringResource(R.string.account_delete_confirmation_text)) },
confirmButton = {
TextButton(onClick = onConfirm) {
Button(onClick = onConfirm) {
Text(stringResource(android.R.string.ok))
}
},
dismissButton = {
TextButton(onClick = onDismiss) {
OutlinedButton(onClick = onDismiss) {
Text(stringResource(android.R.string.cancel))
}
}

View file

@ -36,6 +36,7 @@ import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue
import androidx.compose.runtime.mutableStateOf

View file

@ -11,13 +11,16 @@ import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.ExperimentalLayoutApi
import androidx.compose.foundation.layout.FlowRow
import androidx.compose.foundation.layout.IntrinsicSize
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
import androidx.compose.foundation.layout.width
import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.icons.Icons
@ -26,11 +29,10 @@ import androidx.compose.material.icons.filled.Contacts
import androidx.compose.material.icons.filled.RemoveCircle
import androidx.compose.material.icons.filled.Task
import androidx.compose.material.icons.filled.Today
import androidx.compose.material3.CardDefaults
import androidx.compose.material3.ElevatedCard
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.OutlinedCard
import androidx.compose.material3.Switch
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
@ -49,6 +51,7 @@ import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.itemKey
import at.bitfire.davdroid.R
import at.bitfire.davdroid.db.Collection
import at.bitfire.davdroid.ui.AppTheme
import okhttp3.HttpUrl.Companion.toHttpUrl
@Composable
@ -61,7 +64,7 @@ fun CollectionsList(
) {
LazyColumn(
contentPadding = PaddingValues(8.dp),
verticalArrangement = Arrangement.spacedBy(16.dp, Alignment.Top),
verticalArrangement = Arrangement.spacedBy(12.dp, Alignment.Top),
modifier = modifier
) {
items(
@ -108,48 +111,43 @@ fun CollectionList_Item(
if (onShowDetails != null)
modifier = modifier.clickable(onClick = onShowDetails)
OutlinedCard(
elevation = CardDefaults.cardElevation(1.dp),
ElevatedCard(
modifier = modifier
) {
Box {
Column {
if (color != null)
Box(
Modifier
.background(color)
.fillMaxWidth()
.height(8.dp)
)
Row(Modifier.height(IntrinsicSize.Max)) {
Box(
Modifier
.background(color ?: Color.Transparent)
.width(8.dp)
.fillMaxHeight())
Column(Modifier.padding(8.dp)) {
Row(verticalAlignment = Alignment.CenterVertically) {
Column(Modifier.weight(1f)) {
Text(title, style = MaterialTheme.typography.bodyLarge.copy(fontWeight = FontWeight.Bold))
Column(Modifier.padding(8.dp)) {
Row(verticalAlignment = Alignment.CenterVertically) {
Column(Modifier.weight(1f)) {
Text(title, style = MaterialTheme.typography.bodyLarge.copy(fontWeight = FontWeight.Bold))
if (description != null)
Text(description, style = MaterialTheme.typography.bodyMedium)
}
syncControl()
if (description != null)
Text(description, style = MaterialTheme.typography.bodyMedium)
}
FlowRow(
horizontalArrangement = Arrangement.spacedBy(4.dp),
modifier = Modifier
) {
if (addressBook)
CollectionList_Item_Chip(Icons.Default.Contacts, stringResource(R.string.account_contacts))
if (calendar)
CollectionList_Item_Chip(Icons.Default.Today, stringResource(R.string.account_calendar))
if (todoList)
CollectionList_Item_Chip(Icons.Default.Task, stringResource(R.string.account_task_list))
if (journal)
CollectionList_Item_Chip(Icons.AutoMirrored.Default.EventNote, stringResource(R.string.account_journal))
syncControl()
}
FlowRow(
horizontalArrangement = Arrangement.spacedBy(4.dp),
verticalArrangement = Arrangement.spacedBy(4.dp)
) {
if (addressBook)
CollectionList_Item_Chip(Icons.Default.Contacts, stringResource(R.string.account_contacts))
if (readOnly)
CollectionList_Item_Chip(Icons.Default.RemoveCircle, stringResource(R.string.account_read_only))
}
if (calendar)
CollectionList_Item_Chip(Icons.Default.Today, stringResource(R.string.account_calendar))
if (todoList)
CollectionList_Item_Chip(Icons.Default.Task, stringResource(R.string.account_task_list))
if (journal)
CollectionList_Item_Chip(Icons.AutoMirrored.Default.EventNote, stringResource(R.string.account_journal))
if (readOnly)
CollectionList_Item_Chip(Icons.Default.RemoveCircle, stringResource(R.string.account_read_only))
}
}
}
@ -190,22 +188,24 @@ fun CollectionsList_Item_Standard(
}
@Composable
@Preview
@Preview(locale = "de")
fun CollectionsList_Item_Standard_Preview() {
CollectionsList_Item_Standard(
Collection(
type = Collection.TYPE_CALENDAR,
url = "https://example.com/caldav/sample".toHttpUrl(),
displayName = "Sample Calendar",
description = "This Sample Calendar even has some lengthy description.",
color = 0xffff0000.toInt(),
sync = true,
forceReadOnly = true,
supportsVEVENT = true,
supportsVTODO = true,
supportsVJOURNAL = true
AppTheme {
CollectionsList_Item_Standard(
Collection(
type = Collection.TYPE_CALENDAR,
url = "https://example.com/caldav/sample".toHttpUrl(),
displayName = "Sample Calendar",
description = "This Sample Calendar even has some lengthy description.",
color = 0xffff0000.toInt(),
sync = true,
forceReadOnly = true,
supportsVEVENT = true,
supportsVTODO = true,
supportsVJOURNAL = true
)
)
)
}
}
@Composable
@ -232,15 +232,17 @@ fun CollectionsList_Item_Webcal(
@Composable
@Preview
fun CollectionList_Item_Webcal_Preview() {
CollectionsList_Item_Webcal(
Collection(
type = Collection.TYPE_WEBCAL,
url = "https://example.com/caldav/sample".toHttpUrl(),
displayName = "Sample Subscription",
description = "This Sample Subscription even has some lengthy description.",
color = 0xffff0000.toInt()
AppTheme {
CollectionsList_Item_Webcal(
Collection(
type = Collection.TYPE_WEBCAL,
url = "https://example.com/caldav/sample".toHttpUrl(),
displayName = "Sample Subscription",
description = "This Sample Subscription even has some lengthy description.",
color = 0xffff0000.toInt()
)
)
)
}
}
@Composable
@ -248,7 +250,7 @@ fun CollectionList_Item_Chip(icon: ImageVector, text: String) {
Row(
verticalAlignment = Alignment.CenterVertically,
modifier = Modifier
.background(MaterialTheme.colorScheme.surfaceVariant, shape = RoundedCornerShape(8.dp))
.background(MaterialTheme.colorScheme.surfaceContainerHighest, shape = RoundedCornerShape(8.dp))
.padding(horizontal = 8.dp, vertical = 4.dp)
) {
Icon(

View file

@ -11,8 +11,10 @@ import androidx.compose.foundation.layout.padding
import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.Error
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.runtime.Composable
@ -66,7 +68,7 @@ fun ExceptionInfoDialog(
)
},
dismissButton = {
TextButton(
OutlinedButton(
onClick = {
val intent = DebugInfoActivity.IntentBuilder(context).withCause(exception)
if (account != null)
@ -80,7 +82,7 @@ fun ExceptionInfoDialog(
}
},
confirmButton = {
TextButton(onClick = onDismiss) {
Button(onClick = onDismiss) {
Text(stringResource(android.R.string.ok))
}
}

View file

@ -13,11 +13,12 @@ import androidx.compose.foundation.lazy.LazyColumn
import androidx.compose.foundation.text.KeyboardActions
import androidx.compose.foundation.text.KeyboardOptions
import androidx.compose.material3.AlertDialog
import androidx.compose.material3.Button
import androidx.compose.material3.Card
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.RadioButton
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
import androidx.compose.material3.TextField
import androidx.compose.runtime.Composable
import androidx.compose.runtime.LaunchedEffect
@ -94,21 +95,21 @@ fun EditTextInputDialog(
}
},
confirmButton = {
TextButton(
Button(
onClick = {
onValueEntered(textValue.text)
onDismiss()
},
enabled = textValue.text != initialValue
) {
Text(stringResource(android.R.string.ok).uppercase())
Text(stringResource(android.R.string.ok))
}
},
dismissButton = {
TextButton(
OutlinedButton(
onClick = onDismiss
) {
Text(stringResource(android.R.string.cancel).uppercase())
Text(stringResource(android.R.string.cancel))
}
}
)

View file

@ -13,6 +13,7 @@ import androidx.compose.material.icons.filled.Check
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Switch
import androidx.compose.material3.SwitchDefaults
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment
@ -21,6 +22,7 @@ import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import at.bitfire.davdroid.ui.AppTheme
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.rememberMultiplePermissionsState
@ -64,6 +66,7 @@ fun PermissionSwitchRow(
)
}
} else null,
colors = SwitchDefaults.colors(checkedIconColor = MaterialTheme.colorScheme.onSurface),
onCheckedChange = { checked ->
if (checked) {
onLaunchRequest()
@ -112,23 +115,27 @@ fun PermissionSwitchRow(
@Preview(showBackground = true)
@Composable
fun PermissionSwitchRow_Preview_NotGranted() {
PermissionSwitchRow(
text = "Contacts",
allPermissionsGranted = false,
summaryWhenGranted = "Granted",
summaryWhenNotGranted = "Not granted",
onLaunchRequest = {}
)
AppTheme {
PermissionSwitchRow(
text = "Contacts",
allPermissionsGranted = false,
summaryWhenGranted = "Granted",
summaryWhenNotGranted = "Not granted",
onLaunchRequest = {}
)
}
}
@Preview(showBackground = true)
@Composable
fun PermissionSwitchRow_Preview_Granted() {
PermissionSwitchRow(
text = "Contacts",
allPermissionsGranted = true,
summaryWhenGranted = "Granted",
summaryWhenNotGranted = "Not granted",
onLaunchRequest = {}
)
AppTheme {
PermissionSwitchRow(
text = "Contacts",
allPermissionsGranted = true,
summaryWhenGranted = "Granted",
summaryWhenNotGranted = "Not granted",
onLaunchRequest = {}
)
}
}

View file

@ -101,7 +101,7 @@ class WelcomePage: IntroPage {
showSystemUi = true
)
fun Preview_ContentPortrait_Light() {
AppTheme(useDarkTheme = false) {
AppTheme(darkTheme = false) {
ContentPortrait()
}
}
@ -112,7 +112,7 @@ class WelcomePage: IntroPage {
showSystemUi = true
)
fun Preview_ContentPortrait_Dark() {
AppTheme(useDarkTheme = true) {
AppTheme(darkTheme = true) {
ContentPortrait()
}
}

View file

@ -36,6 +36,7 @@ import androidx.compose.material3.Icon
import androidx.compose.material3.IconButton
import androidx.compose.material3.LinearProgressIndicator
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.OutlinedButton
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.material3.TextButton
@ -240,7 +241,7 @@ fun WebdavMountsItem(
title = { Text(stringResource(R.string.webdav_remove_mount_title)) },
text = { Text(stringResource(R.string.webdav_remove_mount_text)) },
confirmButton = {
TextButton(
Button(
onClick = {
onRemoveMount(info.mount)
}
@ -249,7 +250,7 @@ fun WebdavMountsItem(
}
},
dismissButton = {
TextButton(
OutlinedButton(
onClick = { showingDialog = false }
) {
Text(stringResource(R.string.dialog_deny))

View file

@ -6,7 +6,6 @@ package at.bitfire.davdroid.ui
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.Color
@Suppress("MemberVisibilityCanBePrivate")
@ -14,221 +13,77 @@ object M3ColorScheme {
// copied from Material Theme Builder: Color.kt
val primaryLight = Color(0xFF4B662C)
val onPrimaryLight = Color(0xFFFFFFFF)
val primaryContainerLight = Color(0xFFCCEDA4)
val onPrimaryContainerLight = Color(0xFF0F2000)
val secondaryLight = Color(0xFF2F628C)
val primaryLight = Color(0xFF7cb342)
val onPrimaryLight = Color(0xFFffffff)
val primaryContainerLight = Color(0xFF7cb342)
val onPrimaryContainerLight = Color(0xFFffffff)
val secondaryLight = Color(0xFFFF7F2A)
val onSecondaryLight = Color(0xFFFFFFFF)
val secondaryContainerLight = Color(0xFFCEE5FF)
val onSecondaryContainerLight = Color(0xFF001D32)
val tertiaryLight = Color(0xFF3F6837)
val secondaryContainerLight = Color(0xFFFF7F2A)
val onSecondaryContainerLight = Color(0xFFFFFFFF)
val tertiaryLight = Color(0xFF4b830d)
val onTertiaryLight = Color(0xFFFFFFFF)
val tertiaryContainerLight = Color(0xFFBFF0B1)
val tertiaryContainerLight = Color(0xFF4b830d)
val onTertiaryContainerLight = Color(0xFF002201)
val errorLight = Color(0xFFBA1A1A)
val errorLight = Color(0xFFD71717)
val onErrorLight = Color(0xFFFFFFFF)
val errorContainerLight = Color(0xFFFFDAD6)
val onErrorContainerLight = Color(0xFF410002)
val backgroundLight = Color(0xFFF9FAEF)
val onBackgroundLight = Color(0xFF1A1C16)
val surfaceLight = Color(0xFFF9FAEF)
val onSurfaceLight = Color(0xFF1A1C16)
val surfaceVariantLight = Color(0xFFE1E4D5)
val onSurfaceVariantLight = Color(0xFF44483D)
val outlineLight = Color(0xFF75796C)
val outlineVariantLight = Color(0xFFC5C8BA)
val errorContainerLight = Color(0xFFFE9393)
val onErrorContainerLight = Color(0xFFffffff)
val backgroundLight = Color(0xFFfcfcfc)
val onBackgroundLight = Color(0xFF191D17)
val surfaceLight = Color(0xFFf5f5f5)
val onSurfaceLight = Color(0xFF191D17)
val surfaceVariantLight = Color(0xFFf0f0f0)
val onSurfaceVariantLight = Color(0xFF42493F)
val outlineLight = Color(0xFF73796E)
val outlineVariantLight = Color(0xFFC2C8BC)
val scrimLight = Color(0xFF000000)
val inverseSurfaceLight = Color(0xFF2F312A)
val inverseOnSurfaceLight = Color(0xFFF0F2E6)
val inversePrimaryLight = Color(0xFFB1D18A)
val surfaceDimLight = Color(0xFFDADBD0)
val surfaceBrightLight = Color(0xFFF9FAEF)
val inverseSurfaceLight = Color(0xFF2E322B)
val inverseOnSurfaceLight = Color(0xFFEFF2E8)
val inversePrimaryLight = Color(0xFFaee571)
val surfaceDimLight = Color(0xFFD8DBD2)
val surfaceBrightLight = Color(0xFFF8FBF1)
val surfaceContainerLowestLight = Color(0xFFFFFFFF)
val surfaceContainerLowLight = Color(0xFFF3F4E9)
val surfaceContainerLight = Color(0xFFEEEFE4)
val surfaceContainerHighLight = Color(0xFFE8E9DE)
val surfaceContainerHighestLight = Color(0xFFE2E3D8)
val surfaceContainerLowLight = Color(0xFFF2F5EB)
val surfaceContainerLight = Color(0xFFECEFE5)
val surfaceContainerHighLight = Color(0xFFE6E9E0)
val surfaceContainerHighestLight = Color(0xFFE0E4DA)
val primaryLightMediumContrast = Color(0xFF314A12)
val onPrimaryLightMediumContrast = Color(0xFFFFFFFF)
val primaryContainerLightMediumContrast = Color(0xFF617D40)
val onPrimaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val secondaryLightMediumContrast = Color(0xFF05466E)
val onSecondaryLightMediumContrast = Color(0xFFFFFFFF)
val secondaryContainerLightMediumContrast = Color(0xFF4779A4)
val onSecondaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val tertiaryLightMediumContrast = Color(0xFF234C1D)
val onTertiaryLightMediumContrast = Color(0xFFFFFFFF)
val tertiaryContainerLightMediumContrast = Color(0xFF547F4B)
val onTertiaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val errorLightMediumContrast = Color(0xFF8C0009)
val onErrorLightMediumContrast = Color(0xFFFFFFFF)
val errorContainerLightMediumContrast = Color(0xFFDA342E)
val onErrorContainerLightMediumContrast = Color(0xFFFFFFFF)
val backgroundLightMediumContrast = Color(0xFFF9FAEF)
val onBackgroundLightMediumContrast = Color(0xFF1A1C16)
val surfaceLightMediumContrast = Color(0xFFF9FAEF)
val onSurfaceLightMediumContrast = Color(0xFF1A1C16)
val surfaceVariantLightMediumContrast = Color(0xFFE1E4D5)
val onSurfaceVariantLightMediumContrast = Color(0xFF404439)
val outlineLightMediumContrast = Color(0xFF5D6155)
val outlineVariantLightMediumContrast = Color(0xFF787C70)
val scrimLightMediumContrast = Color(0xFF000000)
val inverseSurfaceLightMediumContrast = Color(0xFF2F312A)
val inverseOnSurfaceLightMediumContrast = Color(0xFFF0F2E6)
val inversePrimaryLightMediumContrast = Color(0xFFB1D18A)
val surfaceDimLightMediumContrast = Color(0xFFDADBD0)
val surfaceBrightLightMediumContrast = Color(0xFFF9FAEF)
val surfaceContainerLowestLightMediumContrast = Color(0xFFFFFFFF)
val surfaceContainerLowLightMediumContrast = Color(0xFFF3F4E9)
val surfaceContainerLightMediumContrast = Color(0xFFEEEFE4)
val surfaceContainerHighLightMediumContrast = Color(0xFFE8E9DE)
val surfaceContainerHighestLightMediumContrast = Color(0xFFE2E3D8)
val primaryLightHighContrast = Color(0xFF142700)
val onPrimaryLightHighContrast = Color(0xFFFFFFFF)
val primaryContainerLightHighContrast = Color(0xFF314A12)
val onPrimaryContainerLightHighContrast = Color(0xFFFFFFFF)
val secondaryLightHighContrast = Color(0xFF00243D)
val onSecondaryLightHighContrast = Color(0xFFFFFFFF)
val secondaryContainerLightHighContrast = Color(0xFF05466E)
val onSecondaryContainerLightHighContrast = Color(0xFFFFFFFF)
val tertiaryLightHighContrast = Color(0xFF002901)
val onTertiaryLightHighContrast = Color(0xFFFFFFFF)
val tertiaryContainerLightHighContrast = Color(0xFF234C1D)
val onTertiaryContainerLightHighContrast = Color(0xFFFFFFFF)
val errorLightHighContrast = Color(0xFF4E0002)
val onErrorLightHighContrast = Color(0xFFFFFFFF)
val errorContainerLightHighContrast = Color(0xFF8C0009)
val onErrorContainerLightHighContrast = Color(0xFFFFFFFF)
val backgroundLightHighContrast = Color(0xFFF9FAEF)
val onBackgroundLightHighContrast = Color(0xFF1A1C16)
val surfaceLightHighContrast = Color(0xFFF9FAEF)
val onSurfaceLightHighContrast = Color(0xFF000000)
val surfaceVariantLightHighContrast = Color(0xFFE1E4D5)
val onSurfaceVariantLightHighContrast = Color(0xFF21251C)
val outlineLightHighContrast = Color(0xFF404439)
val outlineVariantLightHighContrast = Color(0xFF404439)
val scrimLightHighContrast = Color(0xFF000000)
val inverseSurfaceLightHighContrast = Color(0xFF2F312A)
val inverseOnSurfaceLightHighContrast = Color(0xFFFFFFFF)
val inversePrimaryLightHighContrast = Color(0xFFD6F7AD)
val surfaceDimLightHighContrast = Color(0xFFDADBD0)
val surfaceBrightLightHighContrast = Color(0xFFF9FAEF)
val surfaceContainerLowestLightHighContrast = Color(0xFFFFFFFF)
val surfaceContainerLowLightHighContrast = Color(0xFFF3F4E9)
val surfaceContainerLightHighContrast = Color(0xFFEEEFE4)
val surfaceContainerHighLightHighContrast = Color(0xFFE8E9DE)
val surfaceContainerHighestLightHighContrast = Color(0xFFE2E3D8)
val primaryDark = Color(0xFFB1D18A)
val onPrimaryDark = Color(0xFF1F3701)
val primaryContainerDark = Color(0xFF344E16)
val onPrimaryContainerDark = Color(0xFFCCEDA4)
val secondaryDark = Color(0xFF9BCBFB)
val onSecondaryDark = Color(0xFF003353)
val secondaryContainerDark = Color(0xFF0D4A73)
val onSecondaryContainerDark = Color(0xFFCEE5FF)
val tertiaryDark = Color(0xFFA4D396)
val onTertiaryDark = Color(0xFF10380C)
val tertiaryContainerDark = Color(0xFF275021)
val onTertiaryContainerDark = Color(0xFFBFF0B1)
val primaryDark = Color(0xFF7cb342)
val onPrimaryDark = Color(0xFFFFFFFF)
val primaryContainerDark = Color(0xFF7cb342)
val onPrimaryContainerDark = Color(0xFFFFFFFF)
val secondaryDark = Color(0xFFFF7F2A)
val onSecondaryDark = Color(0xFFFFFFFF)
val secondaryContainerDark = Color(0xFFFF7F2A)
val onSecondaryContainerDark = Color(0xFFFFFFFF)
val tertiaryDark = Color(0xFF4b830d)
val onTertiaryDark = Color(0xFFFFFFFF)
val tertiaryContainerDark = Color(0xFF4b830d)
val onTertiaryContainerDark = Color(0xFF002201)
val errorDark = Color(0xFFFFB4AB)
val onErrorDark = Color(0xFF690005)
val errorContainerDark = Color(0xFF93000A)
val onErrorContainerDark = Color(0xFFFFDAD6)
val backgroundDark = Color(0xFF12140E)
val onBackgroundDark = Color(0xFFE2E3D8)
val surfaceDark = Color(0xFF12140E)
val onSurfaceDark = Color(0xFFE2E3D8)
val surfaceVariantDark = Color(0xFF44483D)
val onSurfaceVariantDark = Color(0xFFC5C8BA)
val outlineDark = Color(0xFF8E9285)
val outlineVariantDark = Color(0xFF44483D)
val backgroundDark = Color(0xFF11140F)
val onBackgroundDark = Color(0xFFE0E4DA)
val surfaceDark = Color(0xFF1c1c1c)
val onSurfaceDark = Color(0xFFE0E4DA)
val surfaceVariantDark = Color(0xFF2a2a2a)
val onSurfaceVariantDark = Color(0xFFC2C8BC)
val outlineDark = Color(0xFF8C9387)
val outlineVariantDark = Color(0xFF42493F)
val scrimDark = Color(0xFF000000)
val inverseSurfaceDark = Color(0xFFE2E3D8)
val inverseOnSurfaceDark = Color(0xFF2F312A)
val inversePrimaryDark = Color(0xFF4B662C)
val surfaceDimDark = Color(0xFF12140E)
val surfaceBrightDark = Color(0xFF383A32)
val surfaceContainerLowestDark = Color(0xFF0C0F09)
val surfaceContainerLowDark = Color(0xFF1A1C16)
val surfaceContainerDark = Color(0xFF1E201A)
val surfaceContainerHighDark = Color(0xFF282B24)
val surfaceContainerHighestDark = Color(0xFF33362E)
val primaryDarkMediumContrast = Color(0xFFB5D58E)
val onPrimaryDarkMediumContrast = Color(0xFF0C1A00)
val primaryContainerDarkMediumContrast = Color(0xFF7C9A59)
val onPrimaryContainerDarkMediumContrast = Color(0xFF000000)
val secondaryDarkMediumContrast = Color(0xFF9FCFFF)
val onSecondaryDarkMediumContrast = Color(0xFF00182A)
val secondaryContainerDarkMediumContrast = Color(0xFF6595C2)
val onSecondaryContainerDarkMediumContrast = Color(0xFF000000)
val tertiaryDarkMediumContrast = Color(0xFFA8D79A)
val onTertiaryDarkMediumContrast = Color(0xFF001C01)
val tertiaryContainerDarkMediumContrast = Color(0xFF709C65)
val onTertiaryContainerDarkMediumContrast = Color(0xFF000000)
val errorDarkMediumContrast = Color(0xFFFFBAB1)
val onErrorDarkMediumContrast = Color(0xFF370001)
val errorContainerDarkMediumContrast = Color(0xFFFF5449)
val onErrorContainerDarkMediumContrast = Color(0xFF000000)
val backgroundDarkMediumContrast = Color(0xFF12140E)
val onBackgroundDarkMediumContrast = Color(0xFFE2E3D8)
val surfaceDarkMediumContrast = Color(0xFF12140E)
val onSurfaceDarkMediumContrast = Color(0xFFFBFCF0)
val surfaceVariantDarkMediumContrast = Color(0xFF44483D)
val onSurfaceVariantDarkMediumContrast = Color(0xFFC9CCBE)
val outlineDarkMediumContrast = Color(0xFFA1A497)
val outlineVariantDarkMediumContrast = Color(0xFF818578)
val scrimDarkMediumContrast = Color(0xFF000000)
val inverseSurfaceDarkMediumContrast = Color(0xFFE2E3D8)
val inverseOnSurfaceDarkMediumContrast = Color(0xFF282B24)
val inversePrimaryDarkMediumContrast = Color(0xFF354F17)
val surfaceDimDarkMediumContrast = Color(0xFF12140E)
val surfaceBrightDarkMediumContrast = Color(0xFF383A32)
val surfaceContainerLowestDarkMediumContrast = Color(0xFF0C0F09)
val surfaceContainerLowDarkMediumContrast = Color(0xFF1A1C16)
val surfaceContainerDarkMediumContrast = Color(0xFF1E201A)
val surfaceContainerHighDarkMediumContrast = Color(0xFF282B24)
val surfaceContainerHighestDarkMediumContrast = Color(0xFF33362E)
val primaryDarkHighContrast = Color(0xFFF4FFE0)
val onPrimaryDarkHighContrast = Color(0xFF000000)
val primaryContainerDarkHighContrast = Color(0xFFB5D58E)
val onPrimaryContainerDarkHighContrast = Color(0xFF000000)
val secondaryDarkHighContrast = Color(0xFFFAFAFF)
val onSecondaryDarkHighContrast = Color(0xFF000000)
val secondaryContainerDarkHighContrast = Color(0xFF9FCFFF)
val onSecondaryContainerDarkHighContrast = Color(0xFF000000)
val tertiaryDarkHighContrast = Color(0xFFF1FFE8)
val onTertiaryDarkHighContrast = Color(0xFF000000)
val tertiaryContainerDarkHighContrast = Color(0xFFA8D79A)
val onTertiaryContainerDarkHighContrast = Color(0xFF000000)
val errorDarkHighContrast = Color(0xFFFFF9F9)
val onErrorDarkHighContrast = Color(0xFF000000)
val errorContainerDarkHighContrast = Color(0xFFFFBAB1)
val onErrorContainerDarkHighContrast = Color(0xFF000000)
val backgroundDarkHighContrast = Color(0xFF12140E)
val onBackgroundDarkHighContrast = Color(0xFFE2E3D8)
val surfaceDarkHighContrast = Color(0xFF12140E)
val onSurfaceDarkHighContrast = Color(0xFFFFFFFF)
val surfaceVariantDarkHighContrast = Color(0xFF44483D)
val onSurfaceVariantDarkHighContrast = Color(0xFFF9FCED)
val outlineDarkHighContrast = Color(0xFFC9CCBE)
val outlineVariantDarkHighContrast = Color(0xFFC9CCBE)
val scrimDarkHighContrast = Color(0xFF000000)
val inverseSurfaceDarkHighContrast = Color(0xFFE2E3D8)
val inverseOnSurfaceDarkHighContrast = Color(0xFF000000)
val inversePrimaryDarkHighContrast = Color(0xFF1A3000)
val surfaceDimDarkHighContrast = Color(0xFF12140E)
val surfaceBrightDarkHighContrast = Color(0xFF383A32)
val surfaceContainerLowestDarkHighContrast = Color(0xFF0C0F09)
val surfaceContainerLowDarkHighContrast = Color(0xFF1A1C16)
val surfaceContainerDarkHighContrast = Color(0xFF1E201A)
val surfaceContainerHighDarkHighContrast = Color(0xFF282B24)
val surfaceContainerHighestDarkHighContrast = Color(0xFF33362E)
val inverseSurfaceDark = Color(0xFFE0E4DA)
val inverseOnSurfaceDark = Color(0xFF2E322B)
val inversePrimaryDark = Color(0xFF3E6837)
val surfaceDimDark = Color(0xFF11140F)
val surfaceBrightDark = Color(0xFF363A34)
val surfaceContainerLowestDark = Color(0xFF0B0F0A)
val surfaceContainerLowDark = Color(0xFF191D17)
val surfaceContainerDark = Color(0xFF1D211B)
val surfaceContainerHighDark = Color(0xFF272B25)
val surfaceContainerHighestDark = Color(0xFF32362F)
// copied from Material Theme Builder: Theme.kt
@ -309,164 +164,4 @@ object M3ColorScheme {
surfaceContainerHighest = surfaceContainerHighestDark,
)
val mediumContrastLightColorScheme = lightColorScheme(
primary = primaryLightMediumContrast,
onPrimary = onPrimaryLightMediumContrast,
primaryContainer = primaryContainerLightMediumContrast,
onPrimaryContainer = onPrimaryContainerLightMediumContrast,
secondary = secondaryLightMediumContrast,
onSecondary = onSecondaryLightMediumContrast,
secondaryContainer = secondaryContainerLightMediumContrast,
onSecondaryContainer = onSecondaryContainerLightMediumContrast,
tertiary = tertiaryLightMediumContrast,
onTertiary = onTertiaryLightMediumContrast,
tertiaryContainer = tertiaryContainerLightMediumContrast,
onTertiaryContainer = onTertiaryContainerLightMediumContrast,
error = errorLightMediumContrast,
onError = onErrorLightMediumContrast,
errorContainer = errorContainerLightMediumContrast,
onErrorContainer = onErrorContainerLightMediumContrast,
background = backgroundLightMediumContrast,
onBackground = onBackgroundLightMediumContrast,
surface = surfaceLightMediumContrast,
onSurface = onSurfaceLightMediumContrast,
surfaceVariant = surfaceVariantLightMediumContrast,
onSurfaceVariant = onSurfaceVariantLightMediumContrast,
outline = outlineLightMediumContrast,
outlineVariant = outlineVariantLightMediumContrast,
scrim = scrimLightMediumContrast,
inverseSurface = inverseSurfaceLightMediumContrast,
inverseOnSurface = inverseOnSurfaceLightMediumContrast,
inversePrimary = inversePrimaryLightMediumContrast,
surfaceDim = surfaceDimLightMediumContrast,
surfaceBright = surfaceBrightLightMediumContrast,
surfaceContainerLowest = surfaceContainerLowestLightMediumContrast,
surfaceContainerLow = surfaceContainerLowLightMediumContrast,
surfaceContainer = surfaceContainerLightMediumContrast,
surfaceContainerHigh = surfaceContainerHighLightMediumContrast,
surfaceContainerHighest = surfaceContainerHighestLightMediumContrast,
)
val highContrastLightColorScheme = lightColorScheme(
primary = primaryLightHighContrast,
onPrimary = onPrimaryLightHighContrast,
primaryContainer = primaryContainerLightHighContrast,
onPrimaryContainer = onPrimaryContainerLightHighContrast,
secondary = secondaryLightHighContrast,
onSecondary = onSecondaryLightHighContrast,
secondaryContainer = secondaryContainerLightHighContrast,
onSecondaryContainer = onSecondaryContainerLightHighContrast,
tertiary = tertiaryLightHighContrast,
onTertiary = onTertiaryLightHighContrast,
tertiaryContainer = tertiaryContainerLightHighContrast,
onTertiaryContainer = onTertiaryContainerLightHighContrast,
error = errorLightHighContrast,
onError = onErrorLightHighContrast,
errorContainer = errorContainerLightHighContrast,
onErrorContainer = onErrorContainerLightHighContrast,
background = backgroundLightHighContrast,
onBackground = onBackgroundLightHighContrast,
surface = surfaceLightHighContrast,
onSurface = onSurfaceLightHighContrast,
surfaceVariant = surfaceVariantLightHighContrast,
onSurfaceVariant = onSurfaceVariantLightHighContrast,
outline = outlineLightHighContrast,
outlineVariant = outlineVariantLightHighContrast,
scrim = scrimLightHighContrast,
inverseSurface = inverseSurfaceLightHighContrast,
inverseOnSurface = inverseOnSurfaceLightHighContrast,
inversePrimary = inversePrimaryLightHighContrast,
surfaceDim = surfaceDimLightHighContrast,
surfaceBright = surfaceBrightLightHighContrast,
surfaceContainerLowest = surfaceContainerLowestLightHighContrast,
surfaceContainerLow = surfaceContainerLowLightHighContrast,
surfaceContainer = surfaceContainerLightHighContrast,
surfaceContainerHigh = surfaceContainerHighLightHighContrast,
surfaceContainerHighest = surfaceContainerHighestLightHighContrast,
)
val mediumContrastDarkColorScheme = darkColorScheme(
primary = primaryDarkMediumContrast,
onPrimary = onPrimaryDarkMediumContrast,
primaryContainer = primaryContainerDarkMediumContrast,
onPrimaryContainer = onPrimaryContainerDarkMediumContrast,
secondary = secondaryDarkMediumContrast,
onSecondary = onSecondaryDarkMediumContrast,
secondaryContainer = secondaryContainerDarkMediumContrast,
onSecondaryContainer = onSecondaryContainerDarkMediumContrast,
tertiary = tertiaryDarkMediumContrast,
onTertiary = onTertiaryDarkMediumContrast,
tertiaryContainer = tertiaryContainerDarkMediumContrast,
onTertiaryContainer = onTertiaryContainerDarkMediumContrast,
error = errorDarkMediumContrast,
onError = onErrorDarkMediumContrast,
errorContainer = errorContainerDarkMediumContrast,
onErrorContainer = onErrorContainerDarkMediumContrast,
background = backgroundDarkMediumContrast,
onBackground = onBackgroundDarkMediumContrast,
surface = surfaceDarkMediumContrast,
onSurface = onSurfaceDarkMediumContrast,
surfaceVariant = surfaceVariantDarkMediumContrast,
onSurfaceVariant = onSurfaceVariantDarkMediumContrast,
outline = outlineDarkMediumContrast,
outlineVariant = outlineVariantDarkMediumContrast,
scrim = scrimDarkMediumContrast,
inverseSurface = inverseSurfaceDarkMediumContrast,
inverseOnSurface = inverseOnSurfaceDarkMediumContrast,
inversePrimary = inversePrimaryDarkMediumContrast,
surfaceDim = surfaceDimDarkMediumContrast,
surfaceBright = surfaceBrightDarkMediumContrast,
surfaceContainerLowest = surfaceContainerLowestDarkMediumContrast,
surfaceContainerLow = surfaceContainerLowDarkMediumContrast,
surfaceContainer = surfaceContainerDarkMediumContrast,
surfaceContainerHigh = surfaceContainerHighDarkMediumContrast,
surfaceContainerHighest = surfaceContainerHighestDarkMediumContrast,
)
val highContrastDarkColorScheme = darkColorScheme(
primary = primaryDarkHighContrast,
onPrimary = onPrimaryDarkHighContrast,
primaryContainer = primaryContainerDarkHighContrast,
onPrimaryContainer = onPrimaryContainerDarkHighContrast,
secondary = secondaryDarkHighContrast,
onSecondary = onSecondaryDarkHighContrast,
secondaryContainer = secondaryContainerDarkHighContrast,
onSecondaryContainer = onSecondaryContainerDarkHighContrast,
tertiary = tertiaryDarkHighContrast,
onTertiary = onTertiaryDarkHighContrast,
tertiaryContainer = tertiaryContainerDarkHighContrast,
onTertiaryContainer = onTertiaryContainerDarkHighContrast,
error = errorDarkHighContrast,
onError = onErrorDarkHighContrast,
errorContainer = errorContainerDarkHighContrast,
onErrorContainer = onErrorContainerDarkHighContrast,
background = backgroundDarkHighContrast,
onBackground = onBackgroundDarkHighContrast,
surface = surfaceDarkHighContrast,
onSurface = onSurfaceDarkHighContrast,
surfaceVariant = surfaceVariantDarkHighContrast,
onSurfaceVariant = onSurfaceVariantDarkHighContrast,
outline = outlineDarkHighContrast,
outlineVariant = outlineVariantDarkHighContrast,
scrim = scrimDarkHighContrast,
inverseSurface = inverseSurfaceDarkHighContrast,
inverseOnSurface = inverseOnSurfaceDarkHighContrast,
inversePrimary = inversePrimaryDarkHighContrast,
surfaceDim = surfaceDimDarkHighContrast,
surfaceBright = surfaceBrightDarkHighContrast,
surfaceContainerLowest = surfaceContainerLowestDarkHighContrast,
surfaceContainerLow = surfaceContainerLowDarkHighContrast,
surfaceContainer = surfaceContainerDarkHighContrast,
surfaceContainerHigh = surfaceContainerHighDarkHighContrast,
surfaceContainerHighest = surfaceContainerHighestDarkHighContrast,
)
@Immutable
data class ColorFamily(
val color: Color,
val onColor: Color,
val colorContainer: Color,
val onColorContainer: Color
)
}