diff --git a/composeApp/src/commonMain/composeResources/font/firasans_italic.ttf b/composeApp/src/commonMain/composeResources/font/firasans_italic.ttf new file mode 100644 index 00000000..27d32ed9 Binary files /dev/null and b/composeApp/src/commonMain/composeResources/font/firasans_italic.ttf differ diff --git a/composeApp/src/commonMain/composeResources/font/firasans_regular.ttf b/composeApp/src/commonMain/composeResources/font/firasans_regular.ttf new file mode 100644 index 00000000..6f806474 Binary files /dev/null and b/composeApp/src/commonMain/composeResources/font/firasans_regular.ttf differ diff --git a/composeApp/src/commonMain/composeResources/font/firasans_semibold.ttf b/composeApp/src/commonMain/composeResources/font/firasans_semibold.ttf new file mode 100644 index 00000000..0c93b7e6 Binary files /dev/null and b/composeApp/src/commonMain/composeResources/font/firasans_semibold.ttf differ diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/App.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/App.kt index 3cfd2417..684d4a4f 100644 --- a/composeApp/src/commonMain/kotlin/org/ooni/probe/App.kt +++ b/composeApp/src/commonMain/kotlin/org/ooni/probe/App.kt @@ -11,9 +11,9 @@ import androidx.navigation.compose.rememberNavController import co.touchlab.kermit.Logger import org.jetbrains.compose.ui.tooling.preview.Preview import org.ooni.probe.di.Dependencies -import org.ooni.probe.ui.AppTheme import org.ooni.probe.ui.navigation.BottomNavigationBar import org.ooni.probe.ui.navigation.Navigation +import org.ooni.probe.ui.theme.AppTheme @Composable @Preview diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/Theme.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/Theme.kt deleted file mode 100644 index 796e85ff..00000000 --- a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/Theme.kt +++ /dev/null @@ -1,30 +0,0 @@ -package org.ooni.probe.ui - -import androidx.compose.foundation.isSystemInDarkTheme -import androidx.compose.foundation.shape.RoundedCornerShape -import androidx.compose.material3.MaterialTheme -import androidx.compose.material3.Shapes -import androidx.compose.runtime.Composable -import androidx.compose.ui.unit.dp - -@Composable -fun AppTheme( - useDarkTheme: Boolean = isSystemInDarkTheme(), - content: @Composable () -> Unit, -) { - val colorScheme = ThemeConfig.colorScheme(useDarkTheme) - val shapes = - Shapes( - small = RoundedCornerShape(4.dp), - medium = RoundedCornerShape(8.dp), - large = RoundedCornerShape(12.dp), - ) - val typography = MaterialTheme.typography - - MaterialTheme( - colorScheme, - shapes, - typography, - content, - ) -} diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/dashboard/DashboardScreen.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/dashboard/DashboardScreen.kt index 6e80b7fa..c014ef46 100644 --- a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/dashboard/DashboardScreen.kt +++ b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/dashboard/DashboardScreen.kt @@ -3,14 +3,17 @@ package org.ooni.probe.ui.dashboard import androidx.compose.foundation.Image import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.fillMaxSize +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.rememberScrollState import androidx.compose.foundation.verticalScroll import androidx.compose.material3.Button +import androidx.compose.material3.MaterialTheme import androidx.compose.material3.Text import androidx.compose.material3.TopAppBar import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ColorFilter import ooniprobe.composeapp.generated.resources.Res import ooniprobe.composeapp.generated.resources.app_name import ooniprobe.composeapp.generated.resources.logo @@ -18,14 +21,17 @@ import ooniprobe.composeapp.generated.resources.run_tests import org.jetbrains.compose.resources.painterResource import org.jetbrains.compose.resources.stringResource import org.jetbrains.compose.ui.tooling.preview.Preview -import org.ooni.probe.ui.AppTheme +import org.ooni.probe.ui.theme.AppTheme @Composable fun DashboardScreen( state: DashboardViewModel.State, onEvent: (DashboardViewModel.Event) -> Unit, ) { - Column { + Column( + horizontalAlignment = Alignment.CenterHorizontally, + modifier = Modifier.fillMaxWidth(), + ) { TopAppBar( title = { Text(stringResource(Res.string.app_name)) }, ) @@ -33,7 +39,7 @@ fun DashboardScreen( Image( painterResource(Res.drawable.logo), contentDescription = stringResource(Res.string.app_name), - modifier = Modifier.align(Alignment.CenterHorizontally), + colorFilter = ColorFilter.tint(MaterialTheme.colorScheme.onBackground), ) Button( diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/settings/SettingsScreen.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/settings/SettingsScreen.kt index a5ff4139..d21c93bc 100644 --- a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/settings/SettingsScreen.kt +++ b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/settings/SettingsScreen.kt @@ -8,7 +8,7 @@ import ooniprobe.composeapp.generated.resources.Res import ooniprobe.composeapp.generated.resources.settings import org.jetbrains.compose.resources.stringResource import org.jetbrains.compose.ui.tooling.preview.Preview -import org.ooni.probe.ui.AppTheme +import org.ooni.probe.ui.theme.AppTheme @Composable fun SettingsScreen() { diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/AppTheme.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/AppTheme.kt new file mode 100644 index 00000000..82313439 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/AppTheme.kt @@ -0,0 +1,17 @@ +package org.ooni.probe.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.MaterialTheme +import androidx.compose.runtime.Composable + +@Composable +fun AppTheme( + useDarkTheme: Boolean = isSystemInDarkTheme(), + content: @Composable () -> Unit, +) { + MaterialTheme( + colorScheme = if (useDarkTheme) darkScheme else lightScheme, + typography = AppTypography(), + content = content, + ) +} diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/ColorSchemes.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/ColorSchemes.kt new file mode 100644 index 00000000..b0d54d76 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/ColorSchemes.kt @@ -0,0 +1,152 @@ +package org.ooni.probe.ui.theme + +import androidx.compose.material3.darkColorScheme +import androidx.compose.material3.lightColorScheme +import org.ooni.probe.ui.backgroundDark +import org.ooni.probe.ui.backgroundLight +import org.ooni.probe.ui.errorContainerDark +import org.ooni.probe.ui.errorContainerLight +import org.ooni.probe.ui.errorDark +import org.ooni.probe.ui.errorLight +import org.ooni.probe.ui.inverseOnSurfaceDark +import org.ooni.probe.ui.inverseOnSurfaceLight +import org.ooni.probe.ui.inversePrimaryDark +import org.ooni.probe.ui.inversePrimaryLight +import org.ooni.probe.ui.inverseSurfaceDark +import org.ooni.probe.ui.inverseSurfaceLight +import org.ooni.probe.ui.onBackgroundDark +import org.ooni.probe.ui.onBackgroundLight +import org.ooni.probe.ui.onErrorContainerDark +import org.ooni.probe.ui.onErrorContainerLight +import org.ooni.probe.ui.onErrorDark +import org.ooni.probe.ui.onErrorLight +import org.ooni.probe.ui.onPrimaryContainerDark +import org.ooni.probe.ui.onPrimaryContainerLight +import org.ooni.probe.ui.onPrimaryDark +import org.ooni.probe.ui.onPrimaryLight +import org.ooni.probe.ui.onSecondaryContainerDark +import org.ooni.probe.ui.onSecondaryContainerLight +import org.ooni.probe.ui.onSecondaryDark +import org.ooni.probe.ui.onSecondaryLight +import org.ooni.probe.ui.onSurfaceDark +import org.ooni.probe.ui.onSurfaceLight +import org.ooni.probe.ui.onSurfaceVariantDark +import org.ooni.probe.ui.onSurfaceVariantLight +import org.ooni.probe.ui.onTertiaryContainerDark +import org.ooni.probe.ui.onTertiaryContainerLight +import org.ooni.probe.ui.onTertiaryDark +import org.ooni.probe.ui.onTertiaryLight +import org.ooni.probe.ui.outlineDark +import org.ooni.probe.ui.outlineLight +import org.ooni.probe.ui.outlineVariantDark +import org.ooni.probe.ui.outlineVariantLight +import org.ooni.probe.ui.primaryContainerDark +import org.ooni.probe.ui.primaryContainerLight +import org.ooni.probe.ui.primaryDark +import org.ooni.probe.ui.primaryLight +import org.ooni.probe.ui.scrimDark +import org.ooni.probe.ui.scrimLight +import org.ooni.probe.ui.secondaryContainerDark +import org.ooni.probe.ui.secondaryContainerLight +import org.ooni.probe.ui.secondaryDark +import org.ooni.probe.ui.secondaryLight +import org.ooni.probe.ui.surfaceBrightDark +import org.ooni.probe.ui.surfaceBrightLight +import org.ooni.probe.ui.surfaceContainerDark +import org.ooni.probe.ui.surfaceContainerHighDark +import org.ooni.probe.ui.surfaceContainerHighLight +import org.ooni.probe.ui.surfaceContainerHighestDark +import org.ooni.probe.ui.surfaceContainerHighestLight +import org.ooni.probe.ui.surfaceContainerLight +import org.ooni.probe.ui.surfaceContainerLowDark +import org.ooni.probe.ui.surfaceContainerLowLight +import org.ooni.probe.ui.surfaceContainerLowestDark +import org.ooni.probe.ui.surfaceContainerLowestLight +import org.ooni.probe.ui.surfaceDark +import org.ooni.probe.ui.surfaceDimDark +import org.ooni.probe.ui.surfaceDimLight +import org.ooni.probe.ui.surfaceLight +import org.ooni.probe.ui.surfaceVariantDark +import org.ooni.probe.ui.surfaceVariantLight +import org.ooni.probe.ui.tertiaryContainerDark +import org.ooni.probe.ui.tertiaryContainerLight +import org.ooni.probe.ui.tertiaryDark +import org.ooni.probe.ui.tertiaryLight + +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, + ) + +val darkScheme = + darkColorScheme( + primary = primaryDark, + onPrimary = onPrimaryDark, + primaryContainer = primaryContainerDark, + onPrimaryContainer = onPrimaryContainerDark, + secondary = secondaryDark, + onSecondary = onSecondaryDark, + secondaryContainer = secondaryContainerDark, + onSecondaryContainer = onSecondaryContainerDark, + tertiary = tertiaryDark, + onTertiary = onTertiaryDark, + tertiaryContainer = tertiaryContainerDark, + onTertiaryContainer = onTertiaryContainerDark, + error = errorDark, + onError = onErrorDark, + errorContainer = errorContainerDark, + onErrorContainer = onErrorContainerDark, + background = backgroundDark, + onBackground = onBackgroundDark, + surface = surfaceDark, + onSurface = onSurfaceDark, + surfaceVariant = surfaceVariantDark, + onSurfaceVariant = onSurfaceVariantDark, + outline = outlineDark, + outlineVariant = outlineVariantDark, + scrim = scrimDark, + inverseSurface = inverseSurfaceDark, + inverseOnSurface = inverseOnSurfaceDark, + inversePrimary = inversePrimaryDark, + surfaceDim = surfaceDimDark, + surfaceBright = surfaceBrightDark, + surfaceContainerLowest = surfaceContainerLowestDark, + surfaceContainerLow = surfaceContainerLowDark, + surfaceContainer = surfaceContainerDark, + surfaceContainerHigh = surfaceContainerHighDark, + surfaceContainerHighest = surfaceContainerHighestDark, + ) diff --git a/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/Type.kt b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/Type.kt new file mode 100644 index 00000000..fa80a1e9 --- /dev/null +++ b/composeApp/src/commonMain/kotlin/org/ooni/probe/ui/theme/Type.kt @@ -0,0 +1,54 @@ +package org.ooni.probe.ui.theme + +import androidx.compose.material3.Typography +import androidx.compose.runtime.Composable +import androidx.compose.ui.text.font.FontFamily +import androidx.compose.ui.text.font.FontStyle +import androidx.compose.ui.text.font.FontWeight +import ooniprobe.composeapp.generated.resources.Res +import ooniprobe.composeapp.generated.resources.firasans_italic +import ooniprobe.composeapp.generated.resources.firasans_regular +import ooniprobe.composeapp.generated.resources.firasans_semibold +import org.jetbrains.compose.resources.Font + +@Composable +fun customFontFamily() = + FontFamily( + Font( + resource = Res.font.firasans_regular, + weight = FontWeight.Normal, + style = FontStyle.Normal, + ), + Font( + resource = Res.font.firasans_italic, + weight = FontWeight.Normal, + style = FontStyle.Normal, + ), + Font( + resource = Res.font.firasans_semibold, + weight = FontWeight.Bold, + style = FontStyle.Normal, + ), + ) + +private val defaultTypography = Typography() + +@Composable +fun AppTypography() = + Typography( + displayLarge = defaultTypography.displayLarge.copy(fontFamily = customFontFamily()), + displayMedium = defaultTypography.displayMedium.copy(fontFamily = customFontFamily()), + displaySmall = defaultTypography.displaySmall.copy(fontFamily = customFontFamily()), + headlineLarge = defaultTypography.headlineLarge.copy(fontFamily = customFontFamily()), + headlineMedium = defaultTypography.headlineMedium.copy(fontFamily = customFontFamily()), + headlineSmall = defaultTypography.headlineSmall.copy(fontFamily = customFontFamily()), + titleLarge = defaultTypography.titleLarge.copy(fontFamily = customFontFamily()), + titleMedium = defaultTypography.titleMedium.copy(fontFamily = customFontFamily()), + titleSmall = defaultTypography.titleSmall.copy(fontFamily = customFontFamily()), + bodyLarge = defaultTypography.bodyLarge.copy(fontFamily = customFontFamily()), + bodyMedium = defaultTypography.bodyMedium.copy(fontFamily = customFontFamily()), + bodySmall = defaultTypography.bodySmall.copy(fontFamily = customFontFamily()), + labelLarge = defaultTypography.labelLarge.copy(fontFamily = customFontFamily()), + labelMedium = defaultTypography.labelMedium.copy(fontFamily = customFontFamily()), + labelSmall = defaultTypography.labelSmall.copy(fontFamily = customFontFamily()), + ) diff --git a/composeApp/src/dwMain/kotlin/org/ooni/probe/ui/Colors.kt b/composeApp/src/dwMain/kotlin/org/ooni/probe/ui/Colors.kt index 217ad4dd..36a5ea9e 100644 --- a/composeApp/src/dwMain/kotlin/org/ooni/probe/ui/Colors.kt +++ b/composeApp/src/dwMain/kotlin/org/ooni/probe/ui/Colors.kt @@ -5,60 +5,74 @@ import androidx.compose.material3.darkColorScheme import androidx.compose.material3.lightColorScheme import androidx.compose.ui.graphics.Color -class ThemeConfig { - companion object { - fun colorScheme(isDarkTheme: Boolean) = if (isDarkTheme) darkColors else lightColors - } -} +val primaryLight = Color(0xFF904A43) +val onPrimaryLight = Color(0xFFFFFFFF) +val primaryContainerLight = Color(0xFFFFDAD6) +val onPrimaryContainerLight = Color(0xFF3B0907) +val secondaryLight = Color(0xFF266489) +val onSecondaryLight = Color(0xFFFFFFFF) +val secondaryContainerLight = Color(0xFFC9E6FF) +val onSecondaryContainerLight = Color(0xFF001E2F) +val tertiaryLight = Color(0xFF266489) +val onTertiaryLight = Color(0xFFFFFFFF) +val tertiaryContainerLight = Color(0xFFC9E6FF) +val onTertiaryContainerLight = Color(0xFF001E2F) +val errorLight = Color(0xFFBA1A1A) +val onErrorLight = Color(0xFFFFFFFF) +val errorContainerLight = Color(0xFFFFDAD6) +val onErrorContainerLight = Color(0xFF410002) +val backgroundLight = Color(0xFFFFF8F7) +val onBackgroundLight = Color(0xFF231918) +val surfaceLight = Color(0xFFF5FAFB) +val onSurfaceLight = Color(0xFF171D1E) +val surfaceVariantLight = Color(0xFFE0E2EC) +val onSurfaceVariantLight = Color(0xFF44474E) +val outlineLight = Color(0xFF74777F) +val outlineVariantLight = Color(0xFFC4C6D0) +val scrimLight = Color(0xFF000000) +val inverseSurfaceLight = Color(0xFF2B3133) +val inverseOnSurfaceLight = Color(0xFFECF2F3) +val inversePrimaryLight = Color(0xFFFFB4AB) +val surfaceDimLight = Color(0xFFD5DBDC) +val surfaceBrightLight = Color(0xFFF5FAFB) +val surfaceContainerLowestLight = Color(0xFFFFFFFF) +val surfaceContainerLowLight = Color(0xFFEFF5F6) +val surfaceContainerLight = Color(0xFFE9EFF0) +val surfaceContainerHighLight = Color(0xFFE3E9EA) +val surfaceContainerHighestLight = Color(0xFFDEE3E5) -private val primaryColor = Color(0xffD32625) -private val primaryLightColor = primaryColor.copy(alpha = 0.75f) -private val secondaryColor = Color(0xff5db8fe) -private val secondaryLightColor = secondaryColor.copy(alpha = 0.75f) -private val primaryTextColor = Color(0xffffffff) -private val secondaryTextColor = Color(0xff000000) -private val surfaceDark = Color(0xFF161616) -private val surfaceLight = Color(0xFFFFFFFF) -private val backgroundLightColor = Color(0xffF1F0F5) -private val backgroundDarkColor = Color(0xff010100) -private val errorColor = Color(0xFFFF8989) -private val onErrorColor = Color(0xFF000000) - -val darkColors: ColorScheme = - darkColorScheme( - primary = primaryColor, - onPrimary = primaryTextColor, - secondary = secondaryLightColor, - onSecondary = secondaryTextColor, - tertiary = primaryLightColor, - onTertiary = primaryTextColor, - background = backgroundDarkColor, - onBackground = Color.White, - surface = surfaceDark, - onSurface = Color.White, - surfaceVariant = surfaceDark, - onSurfaceVariant = Color.White, - secondaryContainer = primaryColor, - onSecondaryContainer = Color.White, - error = errorColor, - onError = onErrorColor, - ) -val lightColors: ColorScheme = - lightColorScheme( - primary = primaryColor, - onPrimary = primaryTextColor, - secondary = secondaryColor, - onSecondary = secondaryTextColor, - tertiary = primaryLightColor, - onTertiary = primaryTextColor, - background = backgroundLightColor, - onBackground = Color.Black, - surface = surfaceLight, - onSurface = Color.Black, - surfaceVariant = surfaceLight, - onSurfaceVariant = Color.Black, - secondaryContainer = primaryColor, - onSecondaryContainer = Color.White, - error = errorColor, - onError = onErrorColor, - ) +val primaryDark = Color(0xFFFFB4AB) +val onPrimaryDark = Color(0xFF561E19) +val primaryContainerDark = Color(0xFF73332E) +val onPrimaryContainerDark = Color(0xFFFFDAD6) +val secondaryDark = Color(0xFF95CDF7) +val onSecondaryDark = Color(0xFF00344E) +val secondaryContainerDark = Color(0xFF004B6F) +val onSecondaryContainerDark = Color(0xFFC9E6FF) +val tertiaryDark = Color(0xFF95CDF7) +val onTertiaryDark = Color(0xFF00344E) +val tertiaryContainerDark = Color(0xFF004B6F) +val onTertiaryContainerDark = Color(0xFFC9E6FF) +val errorDark = Color(0xFFFFB4AB) +val onErrorDark = Color(0xFF690005) +val errorContainerDark = Color(0xFF93000A) +val onErrorContainerDark = Color(0xFFFFDAD6) +val backgroundDark = Color(0xFF1A1110) +val onBackgroundDark = Color(0xFFF1DEDC) +val surfaceDark = Color(0xFF0E1415) +val onSurfaceDark = Color(0xFFDEE3E5) +val surfaceVariantDark = Color(0xFF44474E) +val onSurfaceVariantDark = Color(0xFFC4C6D0) +val outlineDark = Color(0xFF8E9099) +val outlineVariantDark = Color(0xFF44474E) +val scrimDark = Color(0xFF000000) +val inverseSurfaceDark = Color(0xFFDEE3E5) +val inverseOnSurfaceDark = Color(0xFF2B3133) +val inversePrimaryDark = Color(0xFF904A43) +val surfaceDimDark = Color(0xFF0E1415) +val surfaceBrightDark = Color(0xFF343A3B) +val surfaceContainerLowestDark = Color(0xFF090F10) +val surfaceContainerLowDark = Color(0xFF171D1E) +val surfaceContainerDark = Color(0xFF1B2122) +val surfaceContainerHighDark = Color(0xFF252B2C) +val surfaceContainerHighestDark = Color(0xFF303637) diff --git a/composeApp/src/ooniMain/kotlin/org/ooni/probe/ui/Colors.kt b/composeApp/src/ooniMain/kotlin/org/ooni/probe/ui/Colors.kt index b74eb8b6..1f2be43d 100644 --- a/composeApp/src/ooniMain/kotlin/org/ooni/probe/ui/Colors.kt +++ b/composeApp/src/ooniMain/kotlin/org/ooni/probe/ui/Colors.kt @@ -1,65 +1,75 @@ package org.ooni.probe.ui -import androidx.compose.material3.ColorScheme -import androidx.compose.material3.darkColorScheme -import androidx.compose.material3.lightColorScheme import androidx.compose.ui.graphics.Color -import org.ooni.probe.shared.ThemeConfigBase -class ThemeConfig { - companion object : ThemeConfigBase { - override fun colorScheme(isDarkTheme: Boolean) = if (isDarkTheme) darkColors else lightColors - } -} +val primaryLight = Color(0xFF2B638B) +val onPrimaryLight = Color(0xFFFFFFFF) +val primaryContainerLight = Color(0xFFCCE5FF) +val onPrimaryContainerLight = Color(0xFF001E31) +val secondaryLight = Color(0xFF2D638B) +val onSecondaryLight = Color(0xFFFFFFFF) +val secondaryContainerLight = Color(0xFFCDE5FF) +val onSecondaryContainerLight = Color(0xFF001D32) +val tertiaryLight = Color(0xFF415F91) +val onTertiaryLight = Color(0xFFFFFFFF) +val tertiaryContainerLight = Color(0xFFD6E3FF) +val onTertiaryContainerLight = Color(0xFF001B3E) +val errorLight = Color(0xFF904A44) +val onErrorLight = Color(0xFFFFFFFF) +val errorContainerLight = Color(0xFFFFDAD6) +val onErrorContainerLight = Color(0xFF3B0908) +val backgroundLight = Color(0xFFF7F9FF) +val onBackgroundLight = Color(0xFF181C20) +val surfaceLight = Color(0xFFF5FAFB) +val onSurfaceLight = Color(0xFF171D1E) +val surfaceVariantLight = Color(0xFFE0E2EC) +val onSurfaceVariantLight = Color(0xFF44474E) +val outlineLight = Color(0xFF74777F) +val outlineVariantLight = Color(0xFFC4C6D0) +val scrimLight = Color(0xFF000000) +val inverseSurfaceLight = Color(0xFF2B3133) +val inverseOnSurfaceLight = Color(0xFFECF2F3) +val inversePrimaryLight = Color(0xFF98CCF9) +val surfaceDimLight = Color(0xFFD5DBDC) +val surfaceBrightLight = Color(0xFFF5FAFB) +val surfaceContainerLowestLight = Color(0xFFFFFFFF) +val surfaceContainerLowLight = Color(0xFFEFF5F6) +val surfaceContainerLight = Color(0xFFE9EFF0) +val surfaceContainerHighLight = Color(0xFFE3E9EA) +val surfaceContainerHighestLight = Color(0xFFDEE3E5) -val primaryColor = Color(0xff0588cb) -val primaryLightColor = primaryColor.copy(alpha = 0.75f) -val secondaryColor = Color(0xff5db8fe) -val secondaryLightColor = secondaryColor.copy(alpha = 0.75f) -val primaryTextColor = Color(0xffffffff) -val secondaryTextColor = Color(0xff000000) -val surfaceDark = Color(0xFF161616) -val surfaceLight = Color(0xFFFFFFFF) -val backgroundLightColor = Color(0xffF1F0F5) -val backgroundDarkColor = Color(0xff010100) -val errorColor = Color(0xFFFF8989) -val onErrorColor = Color(0xFF000000) - -val darkColors: ColorScheme = - darkColorScheme( - primary = primaryColor, - onPrimary = primaryTextColor, - secondary = secondaryLightColor, - onSecondary = secondaryTextColor, - tertiary = primaryLightColor, - onTertiary = primaryTextColor, - background = backgroundDarkColor, - onBackground = Color.White, - surface = surfaceDark, - onSurface = Color.White, - surfaceVariant = surfaceDark, - onSurfaceVariant = Color.White, - secondaryContainer = primaryColor, - onSecondaryContainer = Color.White, - error = errorColor, - onError = onErrorColor, - ) -val lightColors: ColorScheme = - lightColorScheme( - primary = primaryColor, - onPrimary = primaryTextColor, - secondary = secondaryColor, - onSecondary = secondaryTextColor, - tertiary = primaryLightColor, - onTertiary = primaryTextColor, - background = backgroundLightColor, - onBackground = Color.Black, - surface = surfaceLight, - onSurface = Color.Black, - surfaceVariant = surfaceLight, - onSurfaceVariant = Color.Black, - secondaryContainer = primaryColor, - onSecondaryContainer = Color.White, - error = errorColor, - onError = onErrorColor, - ) +val primaryDark = Color(0xFF98CCF9) +val onPrimaryDark = Color(0xFF003351) +val primaryContainerDark = Color(0xFF054B72) +val onPrimaryContainerDark = Color(0xFFCCE5FF) +val secondaryDark = Color(0xFF99CCFA) +val onSecondaryDark = Color(0xFF003351) +val secondaryContainerDark = Color(0xFF084B72) +val onSecondaryContainerDark = Color(0xFFCDE5FF) +val tertiaryDark = Color(0xFFAAC7FF) +val onTertiaryDark = Color(0xFF0A305F) +val tertiaryContainerDark = Color(0xFF274777) +val onTertiaryContainerDark = Color(0xFFD6E3FF) +val errorDark = Color(0xFFFFB3AC) +val onErrorDark = Color(0xFF571E1A) +val errorContainerDark = Color(0xFF73332F) +val onErrorContainerDark = Color(0xFFFFDAD6) +val backgroundDark = Color(0xFF101418) +val onBackgroundDark = Color(0xFFE0E2E8) +val surfaceDark = Color(0xFF0E1415) +val onSurfaceDark = Color(0xFFDEE3E5) +val surfaceVariantDark = Color(0xFF44474E) +val onSurfaceVariantDark = Color(0xFFC4C6D0) +val outlineDark = Color(0xFF8E9099) +val outlineVariantDark = Color(0xFF44474E) +val scrimDark = Color(0xFF000000) +val inverseSurfaceDark = Color(0xFFDEE3E5) +val inverseOnSurfaceDark = Color(0xFF2B3133) +val inversePrimaryDark = Color(0xFF2B638B) +val surfaceDimDark = Color(0xFF0E1415) +val surfaceBrightDark = Color(0xFF343A3B) +val surfaceContainerLowestDark = Color(0xFF090F10) +val surfaceContainerLowDark = Color(0xFF171D1E) +val surfaceContainerDark = Color(0xFF1B2122) +val surfaceContainerHighDark = Color(0xFF252B2C) +val surfaceContainerHighestDark = Color(0xFF303637) diff --git a/gradle.properties b/gradle.properties index 59e98477..52e71f42 100644 --- a/gradle.properties +++ b/gradle.properties @@ -10,4 +10,3 @@ android.useAndroidX=true #MPP kotlin.mpp.androidSourceSetLayoutVersion=2 kotlin.mpp.enableCInteropCommonization=true -