Starting to define the app's theme

This commit is contained in:
Z. Charles Dziura 2024-11-10 13:22:24 -05:00
parent 39da8e66ef
commit da1cebe02d
5 changed files with 104 additions and 340 deletions

View file

@ -83,7 +83,7 @@ fun LoginScreen(
@Composable @Composable
private fun LoginScreenTopAppBar(modifier: Modifier = Modifier) { private fun LoginScreenTopAppBar(modifier: Modifier = Modifier) {
Box(modifier = modifier.background(MaterialTheme.colorScheme.primaryContainer)) { Box(modifier = modifier) {
Text( Text(
text = "Hello from Login! I'm in a box!", text = "Hello from Login! I'm in a box!",
modifier = Modifier.align(Alignment.Center) modifier = Modifier.align(Alignment.Center)
@ -103,9 +103,9 @@ private fun LoginComponent(
Column(modifier.verticalScroll(rememberScrollState())) { Column(modifier.verticalScroll(rememberScrollState())) {
OutlinedTextField( OutlinedTextField(
value = emailAddress.value, value = emailAddress.value,
label = { Text(text = stringResource(R.string.auth__email)) }, label = { Text("Email") },
placeholder = { Text(text = stringResource(R.string.auth__email)) }, placeholder = { Text("Email") },
leadingIcon = { Icon(Icons.Outlined.Mail, stringResource(R.string.auth__email)) }, leadingIcon = { Icon(Icons.Outlined.Mail, "Email") },
singleLine = true, singleLine = true,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
capitalization = KeyboardCapitalization.None, capitalization = KeyboardCapitalization.None,
@ -118,12 +118,12 @@ private fun LoginComponent(
OutlinedTextField( OutlinedTextField(
value = password.value, value = password.value,
label = { Text(text = stringResource(R.string.auth__password)) }, label = { Text("Password") },
placeholder = { Text(text = stringResource(R.string.auth__password)) }, placeholder = { Text("Password") },
leadingIcon = { leadingIcon = {
Icon( Icon(
Icons.Outlined.Password, Icons.Outlined.Password,
stringResource(R.string.auth__password) "Password"
) )
}, },
singleLine = true, singleLine = true,
@ -160,14 +160,14 @@ private fun Separator(modifier: Modifier = Modifier) {
modifier = Modifier modifier = Modifier
.height(2.dp) .height(2.dp)
.weight(4.5f) .weight(4.5f)
.background(Color.LightGray) .background(MaterialTheme.colorScheme.onSurfaceVariant)
) {} ) {}
Text( Text(
text = "OR", text = "OR",
style = TextStyle( style = TextStyle(
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
color = Color.Gray color = MaterialTheme.colorScheme.onSurface
), ),
modifier = Modifier.weight(1f) modifier = Modifier.weight(1f)
) )
@ -176,7 +176,7 @@ private fun Separator(modifier: Modifier = Modifier) {
modifier = Modifier modifier = Modifier
.height(2.dp) .height(2.dp)
.weight(4.5f) .weight(4.5f)
.background(Color.LightGray) .background(MaterialTheme.colorScheme.onSurfaceVariant)
) {} ) {}
} }
} }
@ -189,9 +189,9 @@ private fun RegisterButton(viewModel: LoginScreenViewModel) {
.fillMaxWidth() .fillMaxWidth()
) { ) {
Box(modifier = Modifier.fillMaxWidth()) { Box(modifier = Modifier.fillMaxWidth()) {
Icon(Icons.Outlined.PersonAdd, "register") Icon(Icons.Outlined.PersonAdd, null)
Text( Text(
"Register", "Sign Up",
textAlign = TextAlign.Center, textAlign = TextAlign.Center,
modifier = Modifier modifier = Modifier
.fillMaxWidth() .fillMaxWidth()

View file

@ -34,6 +34,7 @@ import androidx.compose.ui.input.nestedscroll.nestedScroll
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.SpanStyle import androidx.compose.ui.text.SpanStyle
import androidx.compose.ui.text.buildAnnotatedString import androidx.compose.ui.text.buildAnnotatedString
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.input.ImeAction import androidx.compose.ui.text.input.ImeAction
import androidx.compose.ui.text.input.KeyboardCapitalization import androidx.compose.ui.text.input.KeyboardCapitalization
import androidx.compose.ui.text.input.KeyboardType import androidx.compose.ui.text.input.KeyboardType
@ -42,6 +43,7 @@ import androidx.compose.ui.text.style.TextDecoration
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.text.withStyle import androidx.compose.ui.text.withStyle
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import ing.bikeshedengineer.debtpirate.R import ing.bikeshedengineer.debtpirate.R
@ -106,12 +108,15 @@ fun RegistrationScreen(viewModel: RegistrationScreenViewModel = hiltViewModel<Re
private fun RegistrationTopAppBar(onNavigateUp: () -> Unit, modifier: Modifier = Modifier) { private fun RegistrationTopAppBar(onNavigateUp: () -> Unit, modifier: Modifier = Modifier) {
TopAppBar( TopAppBar(
colors = TopAppBarDefaults.topAppBarColors( colors = TopAppBarDefaults.topAppBarColors(
containerColor = MaterialTheme.colorScheme.primaryContainer, containerColor = MaterialTheme.colorScheme.surface,
titleContentColor = MaterialTheme.colorScheme.primary, titleContentColor = MaterialTheme.colorScheme.onSurface,
), ),
title = { title = {
Text( Text(
stringResource(R.string.auth__createAccount), text = "Sign Up".uppercase(),
fontWeight = FontWeight.Bold,
style = MaterialTheme.typography.bodyLarge,
letterSpacing = 1.25f.sp,
maxLines = 1, maxLines = 1,
overflow = TextOverflow.Ellipsis overflow = TextOverflow.Ellipsis
) )
@ -151,10 +156,10 @@ private fun RegistrationComponent(
Column(modifier = modifier.verticalScroll(rememberScrollState())) { Column(modifier = modifier.verticalScroll(rememberScrollState())) {
OutlinedTextField( OutlinedTextField(
value = emailAddress.value, value = emailAddress.value,
label = { Text(text = stringResource(R.string.auth__email)) }, label = { Text("Email") },
placeholder = { Text(text = stringResource(R.string.auth__email)) }, placeholder = { Text("Email") },
supportingText = { Text(text = emailAddressError.value) }, supportingText = { Text(text = emailAddressError.value) },
leadingIcon = { Icon(Icons.Outlined.Mail, stringResource(R.string.auth__email)) }, leadingIcon = { Icon(Icons.Outlined.Mail, "Email") },
singleLine = true, singleLine = true,
isError = isInvalidEmailAddress.value, isError = isInvalidEmailAddress.value,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
@ -168,10 +173,10 @@ private fun RegistrationComponent(
OutlinedTextField( OutlinedTextField(
value = name.value, value = name.value,
label = { Text(text = stringResource(R.string.auth__name)) }, label = { Text("Name") },
placeholder = { Text(text = stringResource(R.string.auth__name)) }, placeholder = { Text("Name") },
supportingText = { Text(text = nameError.value) }, supportingText = { Text(text = nameError.value) },
leadingIcon = { Icon(Icons.Outlined.Person, stringResource(R.string.auth__name)) }, leadingIcon = { Icon(Icons.Outlined.Person, "Name") },
singleLine = true, singleLine = true,
isError = isInvalidName.value, isError = isInvalidName.value,
keyboardOptions = KeyboardOptions( keyboardOptions = KeyboardOptions(
@ -187,13 +192,13 @@ private fun RegistrationComponent(
OutlinedTextField( OutlinedTextField(
value = password.value, value = password.value,
label = { Text(text = stringResource(R.string.auth__password)) }, label = { Text("Password") },
placeholder = { Text(text = stringResource(R.string.auth__password)) }, placeholder = { Text("Password") },
supportingText = { Text(text = passwordError.value) }, supportingText = { Text(text = passwordError.value) },
leadingIcon = { leadingIcon = {
Icon( Icon(
Icons.Outlined.Password, Icons.Outlined.Password,
stringResource(R.string.auth__password) "Password"
) )
}, },
singleLine = true, singleLine = true,
@ -212,13 +217,13 @@ private fun RegistrationComponent(
OutlinedTextField( OutlinedTextField(
value = confirmPassword.value, value = confirmPassword.value,
label = { Text(text = stringResource(R.string.auth__confirmPassword)) }, label = { Text("Confirm Password") },
placeholder = { Text(text = stringResource(R.string.auth__confirmPassword)) }, placeholder = { Text("Confirm Password") },
supportingText = { Text(text = confirmPasswordError.value) }, supportingText = { Text(text = confirmPasswordError.value) },
leadingIcon = { leadingIcon = {
Icon( Icon(
Icons.Outlined.Password, Icons.Outlined.Password,
stringResource(R.string.auth__confirmPassword) "Confirm Password"
) )
}, },
singleLine = true, singleLine = true,
@ -239,20 +244,22 @@ private fun RegistrationComponent(
Text( Text(
modifier = Modifier.padding(paddingValues = PaddingValues(top = 16.dp, bottom = 16.dp)), modifier = Modifier.padding(paddingValues = PaddingValues(top = 16.dp, bottom = 16.dp)),
text = buildAnnotatedString { text = buildAnnotatedString {
append("By registering, you agree to the ") append("By registering, you agree to the ")
withStyle(style = linkStyle) { withStyle(style = linkStyle.copy(color = MaterialTheme.colorScheme.primary)) {
append("Terms & Conditions") append("Terms & Conditions")
} }
append(" and ") append(" and ")
withStyle(style = linkStyle) { withStyle(style = linkStyle.copy(color = MaterialTheme.colorScheme.primary)) {
append("Privacy Policy") append("Privacy Policy")
} }
append(".") append(".")
}, },
color = MaterialTheme.colorScheme.onSurface,
softWrap = true softWrap = true
) )

View file

@ -2,218 +2,37 @@ package ing.bikeshedengineer.debtpirate.theme
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
val primaryLight = Color(0xFF1E6A4F) val primary = Color(0xFF86D6BF)
val onPrimaryLight = Color(0xFFFFFFFF) val onPrimary = Color(0xFF00382D)
val primaryContainerLight = Color(0xFFA8F2CF) val primaryContainer = Color(0xFF005142)
val onPrimaryContainerLight = Color(0xFF002115) val onPrimaryContainer = Color(0xFFA2F2DA)
val secondaryLight = Color(0xFF37618E) val secondary = Color(0xFF9CCBFB)
val onSecondaryLight = Color(0xFFFFFFFF) val onSecondary = Color(0xFF003354)
val secondaryContainerLight = Color(0xFFD2E4FF) val secondaryContainer = Color(0xFF104A73)
val onSecondaryContainerLight = Color(0xFF001C37) val onSecondaryContainer = Color(0xFFCEE5FF)
val tertiaryLight = Color(0xFF835414) val tertiary = Color(0xFF98D5A4)
val onTertiaryLight = Color(0xFFFFFFFF) val onTertiary = Color(0xFF00391A)
val tertiaryContainerLight = Color(0xFFFFDDBA) val tertiaryContainer = Color(0xFF16512C)
val onTertiaryContainerLight = Color(0xFF2B1700) val onTertiaryContainer = Color(0xFFB3F1BF)
val errorLight = Color(0xFF8E4D30) val error = Color(0xFFFFB4A9)
val onErrorLight = Color(0xFFFFFFFF) val onError = Color(0xFF561E17)
val errorContainerLight = Color(0xFFFFDBCE) val errorContainer = Color(0xFF73342B)
val onErrorContainerLight = Color(0xFF370E00) val onErrorContainer = Color(0xFFFFDAD5)
val backgroundLight = Color(0xFFF5FBF5) val background = Color(0xFF101418)
val onBackgroundLight = Color(0xFF171D1A) val onBackground = Color(0xFFE0E2E8)
val surfaceLight = Color(0xFFF5FBF5) val surface = Color(0xFF101418)
val onSurfaceLight = Color(0xFF171D1A) val onSurface = Color(0xFFE0E2E8)
val surfaceVariantLight = Color(0xFFDBE5DD) val surfaceVariant = Color(0xFF42474E)
val onSurfaceVariantLight = Color(0xFF404944) val onSurfaceVariant = Color(0xFFC2C7CF)
val outlineLight = Color(0xFF707973) val outline = Color(0xFF8C9199)
val outlineVariantLight = Color(0xFFBFC9C2) val outlineVariant = Color(0xFF42474E)
val scrimLight = Color(0xFF000000) val scrim = Color(0xFF000000)
val inverseSurfaceLight = Color(0xFF2C322E) val inverseSurface = Color(0xFFE0E2E8)
val inverseOnSurfaceLight = Color(0xFFECF2ED) val inverseOnSurface = Color(0xFF2D3135)
val inversePrimaryLight = Color(0xFF8CD5B4) val surfaceDim = Color(0xFF101418)
val surfaceDimLight = Color(0xFFD6DBD6) val surfaceBright = Color(0xFF36393E)
val surfaceBrightLight = Color(0xFFF5FBF5) val surfaceContainerLowest = Color(0xFF0B0E12)
val surfaceContainerLowestLight = Color(0xFFFFFFFF) val surfaceContainerLow = Color(0xFF181C20)
val surfaceContainerLowLight = Color(0xFFEFF5EF) val surfaceContainer = Color(0xFF1C2024)
val surfaceContainerLight = Color(0xFFEAEFEA) val surfaceContainerHigh = Color(0xFF272A2F)
val surfaceContainerHighLight = Color(0xFFE4EAE4) val surfaceContainerHighest = Color(0xFF323539)
val surfaceContainerHighestLight = Color(0xFFDEE4DE)
val primaryLightMediumContrast = Color(0xFF004D36)
val onPrimaryLightMediumContrast = Color(0xFFFFFFFF)
val primaryContainerLightMediumContrast = Color(0xFF398164)
val onPrimaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val secondaryLightMediumContrast = Color(0xFF164571)
val onSecondaryLightMediumContrast = Color(0xFFFFFFFF)
val secondaryContainerLightMediumContrast = Color(0xFF4F77A6)
val onSecondaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val tertiaryLightMediumContrast = Color(0xFF613A00)
val onTertiaryLightMediumContrast = Color(0xFFFFFFFF)
val tertiaryContainerLightMediumContrast = Color(0xFF9D6A29)
val onTertiaryContainerLightMediumContrast = Color(0xFFFFFFFF)
val errorLightMediumContrast = Color(0xFF6C3218)
val onErrorLightMediumContrast = Color(0xFFFFFFFF)
val errorContainerLightMediumContrast = Color(0xFFA96244)
val onErrorContainerLightMediumContrast = Color(0xFFFFFFFF)
val backgroundLightMediumContrast = Color(0xFFF5FBF5)
val onBackgroundLightMediumContrast = Color(0xFF171D1A)
val surfaceLightMediumContrast = Color(0xFFF5FBF5)
val onSurfaceLightMediumContrast = Color(0xFF171D1A)
val surfaceVariantLightMediumContrast = Color(0xFFDBE5DD)
val onSurfaceVariantLightMediumContrast = Color(0xFF3C4540)
val outlineLightMediumContrast = Color(0xFF58615C)
val outlineVariantLightMediumContrast = Color(0xFF747D77)
val scrimLightMediumContrast = Color(0xFF000000)
val inverseSurfaceLightMediumContrast = Color(0xFF2C322E)
val inverseOnSurfaceLightMediumContrast = Color(0xFFECF2ED)
val inversePrimaryLightMediumContrast = Color(0xFF8CD5B4)
val surfaceDimLightMediumContrast = Color(0xFFD6DBD6)
val surfaceBrightLightMediumContrast = Color(0xFFF5FBF5)
val surfaceContainerLowestLightMediumContrast = Color(0xFFFFFFFF)
val surfaceContainerLowLightMediumContrast = Color(0xFFEFF5EF)
val surfaceContainerLightMediumContrast = Color(0xFFEAEFEA)
val surfaceContainerHighLightMediumContrast = Color(0xFFE4EAE4)
val surfaceContainerHighestLightMediumContrast = Color(0xFFDEE4DE)
val primaryLightHighContrast = Color(0xFF00281B)
val onPrimaryLightHighContrast = Color(0xFFFFFFFF)
val primaryContainerLightHighContrast = Color(0xFF004D36)
val onPrimaryContainerLightHighContrast = Color(0xFFFFFFFF)
val secondaryLightHighContrast = Color(0xFF002342)
val onSecondaryLightHighContrast = Color(0xFFFFFFFF)
val secondaryContainerLightHighContrast = Color(0xFF164571)
val onSecondaryContainerLightHighContrast = Color(0xFFFFFFFF)
val tertiaryLightHighContrast = Color(0xFF341D00)
val onTertiaryLightHighContrast = Color(0xFFFFFFFF)
val tertiaryContainerLightHighContrast = Color(0xFF613A00)
val onTertiaryContainerLightHighContrast = Color(0xFFFFFFFF)
val errorLightHighContrast = Color(0xFF421300)
val onErrorLightHighContrast = Color(0xFFFFFFFF)
val errorContainerLightHighContrast = Color(0xFF6C3218)
val onErrorContainerLightHighContrast = Color(0xFFFFFFFF)
val backgroundLightHighContrast = Color(0xFFF5FBF5)
val onBackgroundLightHighContrast = Color(0xFF171D1A)
val surfaceLightHighContrast = Color(0xFFF5FBF5)
val onSurfaceLightHighContrast = Color(0xFF000000)
val surfaceVariantLightHighContrast = Color(0xFFDBE5DD)
val onSurfaceVariantLightHighContrast = Color(0xFF1D2621)
val outlineLightHighContrast = Color(0xFF3C4540)
val outlineVariantLightHighContrast = Color(0xFF3C4540)
val scrimLightHighContrast = Color(0xFF000000)
val inverseSurfaceLightHighContrast = Color(0xFF2C322E)
val inverseOnSurfaceLightHighContrast = Color(0xFFFFFFFF)
val inversePrimaryLightHighContrast = Color(0xFFB1FCD8)
val surfaceDimLightHighContrast = Color(0xFFD6DBD6)
val surfaceBrightLightHighContrast = Color(0xFFF5FBF5)
val surfaceContainerLowestLightHighContrast = Color(0xFFFFFFFF)
val surfaceContainerLowLightHighContrast = Color(0xFFEFF5EF)
val surfaceContainerLightHighContrast = Color(0xFFEAEFEA)
val surfaceContainerHighLightHighContrast = Color(0xFFE4EAE4)
val surfaceContainerHighestLightHighContrast = Color(0xFFDEE4DE)
val primaryDark = Color(0xFF8CD5B4)
val onPrimaryDark = Color(0xFF003826)
val primaryContainerDark = Color(0xFF005139)
val onPrimaryContainerDark = Color(0xFFA8F2CF)
val secondaryDark = Color(0xFFA1C9FD)
val onSecondaryDark = Color(0xFF003259)
val secondaryContainerDark = Color(0xFF1B4975)
val onSecondaryContainerDark = Color(0xFFD2E4FF)
val tertiaryDark = Color(0xFFF9BA72)
val onTertiaryDark = Color(0xFF482A00)
val tertiaryContainerDark = Color(0xFF663E00)
val onTertiaryContainerDark = Color(0xFFFFDDBA)
val errorDark = Color(0xFFFFB598)
val onErrorDark = Color(0xFF552007)
val errorContainerDark = Color(0xFF71361C)
val onErrorContainerDark = Color(0xFFFFDBCE)
val backgroundDark = Color(0xFF0F1512)
val onBackgroundDark = Color(0xFFDEE4DE)
val surfaceDark = Color(0xFF0F1512)
val onSurfaceDark = Color(0xFFDEE4DE)
val surfaceVariantDark = Color(0xFF404944)
val onSurfaceVariantDark = Color(0xFFBFC9C2)
val outlineDark = Color(0xFF8A938D)
val outlineVariantDark = Color(0xFF404944)
val scrimDark = Color(0xFF000000)
val inverseSurfaceDark = Color(0xFFDEE4DE)
val inverseOnSurfaceDark = Color(0xFF2C322E)
val inversePrimaryDark = Color(0xFF1E6A4F)
val surfaceDimDark = Color(0xFF0F1512)
val surfaceBrightDark = Color(0xFF353B37)
val surfaceContainerLowestDark = Color(0xFF0A0F0C)
val surfaceContainerLowDark = Color(0xFF171D1A)
val surfaceContainerDark = Color(0xFF1B211E)
val surfaceContainerHighDark = Color(0xFF252B28)
val surfaceContainerHighestDark = Color(0xFF303632)
val primaryDarkMediumContrast = Color(0xFF90DAB8)
val onPrimaryDarkMediumContrast = Color(0xFF001B10)
val primaryContainerDarkMediumContrast = Color(0xFF569E80)
val onPrimaryContainerDarkMediumContrast = Color(0xFF000000)
val secondaryDarkMediumContrast = Color(0xFFA8CEFF)
val onSecondaryDarkMediumContrast = Color(0xFF00172E)
val secondaryContainerDarkMediumContrast = Color(0xFF6B93C4)
val onSecondaryContainerDarkMediumContrast = Color(0xFF000000)
val tertiaryDarkMediumContrast = Color(0xFFFEBF76)
val onTertiaryDarkMediumContrast = Color(0xFF241200)
val tertiaryContainerDarkMediumContrast = Color(0xFFBD8642)
val onTertiaryContainerDarkMediumContrast = Color(0xFF000000)
val errorDarkMediumContrast = Color(0xFFFFBBA0)
val onErrorDarkMediumContrast = Color(0xFF2E0B00)
val errorContainerDarkMediumContrast = Color(0xFFCA7D5D)
val onErrorContainerDarkMediumContrast = Color(0xFF000000)
val backgroundDarkMediumContrast = Color(0xFF0F1512)
val onBackgroundDarkMediumContrast = Color(0xFFDEE4DE)
val surfaceDarkMediumContrast = Color(0xFF0F1512)
val onSurfaceDarkMediumContrast = Color(0xFFF7FCF6)
val surfaceVariantDarkMediumContrast = Color(0xFF404944)
val onSurfaceVariantDarkMediumContrast = Color(0xFFC4CDC6)
val outlineDarkMediumContrast = Color(0xFF9CA59F)
val outlineVariantDarkMediumContrast = Color(0xFF7C857F)
val scrimDarkMediumContrast = Color(0xFF000000)
val inverseSurfaceDarkMediumContrast = Color(0xFFDEE4DE)
val inverseOnSurfaceDarkMediumContrast = Color(0xFF252B28)
val inversePrimaryDarkMediumContrast = Color(0xFF00533A)
val surfaceDimDarkMediumContrast = Color(0xFF0F1512)
val surfaceBrightDarkMediumContrast = Color(0xFF353B37)
val surfaceContainerLowestDarkMediumContrast = Color(0xFF0A0F0C)
val surfaceContainerLowDarkMediumContrast = Color(0xFF171D1A)
val surfaceContainerDarkMediumContrast = Color(0xFF1B211E)
val surfaceContainerHighDarkMediumContrast = Color(0xFF252B28)
val surfaceContainerHighestDarkMediumContrast = Color(0xFF303632)
val primaryDarkHighContrast = Color(0xFFEDFFF4)
val onPrimaryDarkHighContrast = Color(0xFF000000)
val primaryContainerDarkHighContrast = Color(0xFF90DAB8)
val onPrimaryContainerDarkHighContrast = Color(0xFF000000)
val secondaryDarkHighContrast = Color(0xFFFAFAFF)
val onSecondaryDarkHighContrast = Color(0xFF000000)
val secondaryContainerDarkHighContrast = Color(0xFFA8CEFF)
val onSecondaryContainerDarkHighContrast = Color(0xFF000000)
val tertiaryDarkHighContrast = Color(0xFFFFFAF8)
val onTertiaryDarkHighContrast = Color(0xFF000000)
val tertiaryContainerDarkHighContrast = Color(0xFFFEBF76)
val onTertiaryContainerDarkHighContrast = Color(0xFF000000)
val errorDarkHighContrast = Color(0xFFFFF9F8)
val onErrorDarkHighContrast = Color(0xFF000000)
val errorContainerDarkHighContrast = Color(0xFFFFBBA0)
val onErrorContainerDarkHighContrast = Color(0xFF000000)
val backgroundDarkHighContrast = Color(0xFF0F1512)
val onBackgroundDarkHighContrast = Color(0xFFDEE4DE)
val surfaceDarkHighContrast = Color(0xFF0F1512)
val onSurfaceDarkHighContrast = Color(0xFFFFFFFF)
val surfaceVariantDarkHighContrast = Color(0xFF404944)
val onSurfaceVariantDarkHighContrast = Color(0xFFF4FDF5)
val outlineDarkHighContrast = Color(0xFFC4CDC6)
val outlineVariantDarkHighContrast = Color(0xFFC4CDC6)
val scrimDarkHighContrast = Color(0xFF000000)
val inverseSurfaceDarkHighContrast = Color(0xFFDEE4DE)
val inverseOnSurfaceDarkHighContrast = Color(0xFF000000)
val inversePrimaryDarkHighContrast = Color(0xFF003121)
val surfaceDimDarkHighContrast = Color(0xFF0F1512)
val surfaceBrightDarkHighContrast = Color(0xFF353B37)
val surfaceContainerLowestDarkHighContrast = Color(0xFF0A0F0C)
val surfaceContainerLowDarkHighContrast = Color(0xFF171D1A)
val surfaceContainerDarkHighContrast = Color(0xFF1B211E)
val surfaceContainerHighDarkHighContrast = Color(0xFF252B28)
val surfaceContainerHighestDarkHighContrast = Color(0xFF303632)

View file

@ -1,111 +1,54 @@
package ing.bikeshedengineer.debtpirate.theme package ing.bikeshedengineer.debtpirate.theme
import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.darkColorScheme import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.dynamicDarkColorScheme
import androidx.compose.material3.dynamicLightColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.Immutable
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
private val lightScheme = lightColorScheme(
primary = primaryLight,
onPrimary = onPrimaryLight,
primaryContainer = primaryContainerLight,
onPrimaryContainer = onPrimaryContainerLight,
secondary = secondaryLight,
onSecondary = onSecondaryLight,
secondaryContainer = secondaryContainerLight,
onSecondaryContainer = onSecondaryContainerLight,
tertiary = tertiaryLight,
onTertiary = onTertiaryLight,
tertiaryContainer = tertiaryContainerLight,
onTertiaryContainer = onTertiaryContainerLight,
error = errorLight,
onError = onErrorLight,
errorContainer = errorContainerLight,
onErrorContainer = onErrorContainerLight,
background = backgroundLight,
onBackground = onBackgroundLight,
surface = surfaceLight,
onSurface = onSurfaceLight,
surfaceVariant = surfaceVariantLight,
onSurfaceVariant = onSurfaceVariantLight,
outline = outlineLight,
outlineVariant = outlineVariantLight,
scrim = scrimLight,
inverseSurface = inverseSurfaceLight,
inverseOnSurface = inverseOnSurfaceLight,
inversePrimary = inversePrimaryLight,
surfaceDim = surfaceDimLight,
surfaceBright = surfaceBrightLight,
surfaceContainerLowest = surfaceContainerLowestLight,
surfaceContainerLow = surfaceContainerLowLight,
surfaceContainer = surfaceContainerLight,
surfaceContainerHigh = surfaceContainerHighLight,
surfaceContainerHighest = surfaceContainerHighestLight,
)
private val darkScheme = darkColorScheme( private val darkScheme = darkColorScheme(
primary = primaryDark, primary = primary,
onPrimary = onPrimaryDark, onPrimary = onPrimary,
primaryContainer = primaryContainerDark, primaryContainer = primaryContainer,
onPrimaryContainer = onPrimaryContainerDark, onPrimaryContainer = onPrimaryContainer,
secondary = secondaryDark, secondary = secondary,
onSecondary = onSecondaryDark, onSecondary = onSecondary,
secondaryContainer = secondaryContainerDark, secondaryContainer = secondaryContainer,
onSecondaryContainer = onSecondaryContainerDark, onSecondaryContainer = onSecondaryContainer,
tertiary = tertiaryDark, tertiary = tertiary,
onTertiary = onTertiaryDark, onTertiary = onTertiary,
tertiaryContainer = tertiaryContainerDark, tertiaryContainer = tertiaryContainer,
onTertiaryContainer = onTertiaryContainerDark, onTertiaryContainer = onTertiaryContainer,
error = errorDark, error = error,
onError = onErrorDark, onError = onError,
errorContainer = errorContainerDark, errorContainer = errorContainer,
onErrorContainer = onErrorContainerDark, onErrorContainer = onErrorContainer,
background = backgroundDark, background = background,
onBackground = onBackgroundDark, onBackground = onBackground,
surface = surfaceDark, surface = surface,
onSurface = onSurfaceDark, onSurface = onSurface,
surfaceVariant = surfaceVariantDark, surfaceVariant = surfaceVariant,
onSurfaceVariant = onSurfaceVariantDark, onSurfaceVariant = onSurfaceVariant,
outline = outlineDark, outline = outline,
outlineVariant = outlineVariantDark, outlineVariant = outlineVariant,
scrim = scrimDark, scrim = scrim,
inverseSurface = inverseSurfaceDark, inverseSurface = inverseSurface,
inverseOnSurface = inverseOnSurfaceDark, inverseOnSurface = inverseOnSurface,
inversePrimary = inversePrimaryDark, surfaceDim = surfaceDim,
surfaceDim = surfaceDimDark, surfaceBright = surfaceBright,
surfaceBright = surfaceBrightDark, surfaceContainerLowest = surfaceContainerLowest,
surfaceContainerLowest = surfaceContainerLowestDark, surfaceContainerLow = surfaceContainerLow,
surfaceContainerLow = surfaceContainerLowDark, surfaceContainer = surfaceContainer,
surfaceContainer = surfaceContainerDark, surfaceContainerHigh = surfaceContainerHigh,
surfaceContainerHigh = surfaceContainerHighDark, surfaceContainerHighest = surfaceContainerHighest,
surfaceContainerHighest = surfaceContainerHighestDark,
) )
@Composable @Composable
fun DebtPirateTheme( fun DebtPirateTheme(
darkTheme: Boolean = isSystemInDarkTheme(), darkTheme: Boolean = isSystemInDarkTheme(),
// Dynamic color is available on Android 12+
dynamicColor: Boolean = true, dynamicColor: Boolean = true,
content: @Composable() () -> Unit content: @Composable() () -> Unit
) { ) {
// val colorScheme = when {
// dynamicColor -> {
// val context = LocalContext.current
// if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
// }
// darkTheme -> darkScheme
// else -> lightScheme
// }
val colorScheme = darkScheme val colorScheme = darkScheme
MaterialTheme( MaterialTheme(
colorScheme = colorScheme, colorScheme = colorScheme,
typography = Typography, typography = Typography,

View file

@ -1,8 +1,3 @@
<resources> <resources>
<string name="app_name">Debt Pirate</string> <string name="app_name">Debt Pirate</string>
<string name="auth__email">Email</string>
<string name="auth__password">Password</string>
<string name="auth__confirmPassword">Confirm Password</string>
<string name="auth__createAccount">Create Account</string>
<string name="auth__name">Name</string>
</resources> </resources>