From cc6d3af3a376f3182eb691a406686f920bb5b664 Mon Sep 17 00:00:00 2001 From: brianhu72 Date: Thu, 20 Nov 2025 19:27:41 -0500 Subject: [PATCH 1/2] created object with colors imported from figma, allowed for colors to be used in all screens. Have not put the colors in each screen yet --- .../android/eatery/MainActivity.kt | 3 +- .../android/eatery/ui/screens/HomeScreen.kt | 4 +- .../android/eatery/ui/theme/Color.kt | 42 +++++++++++ .../android/eatery/ui/theme/Theme.kt | 72 +++++++++++++++++++ 4 files changed, 119 insertions(+), 2 deletions(-) create mode 100644 app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Theme.kt diff --git a/app/src/main/java/com/cornellappdev/android/eatery/MainActivity.kt b/app/src/main/java/com/cornellappdev/android/eatery/MainActivity.kt index ee46a886..21dc60bd 100644 --- a/app/src/main/java/com/cornellappdev/android/eatery/MainActivity.kt +++ b/app/src/main/java/com/cornellappdev/android/eatery/MainActivity.kt @@ -9,6 +9,7 @@ import androidx.lifecycle.LifecycleOwner import com.cornellappdev.android.eatery.data.repositories.EateryRepository import com.cornellappdev.android.eatery.data.repositories.UserPreferencesRepository import com.cornellappdev.android.eatery.ui.navigation.NavigationSetup +import com.cornellappdev.android.eatery.ui.theme.AppColorTheme import com.cornellappdev.android.eatery.util.LockScreenOrientation import dagger.hilt.android.AndroidEntryPoint import kotlinx.coroutines.runBlocking @@ -35,7 +36,7 @@ class MainActivity : ComponentActivity() { setContent { LockScreenOrientation() - androidx.compose.material3.MaterialTheme(typography = typography) { + AppColorTheme { NavigationSetup(hasOnboarded) } } diff --git a/app/src/main/java/com/cornellappdev/android/eatery/ui/screens/HomeScreen.kt b/app/src/main/java/com/cornellappdev/android/eatery/ui/screens/HomeScreen.kt index 260a1a18..03ff43f5 100644 --- a/app/src/main/java/com/cornellappdev/android/eatery/ui/screens/HomeScreen.kt +++ b/app/src/main/java/com/cornellappdev/android/eatery/ui/screens/HomeScreen.kt @@ -92,6 +92,7 @@ import com.cornellappdev.android.eatery.ui.components.home.MainLoadingItem import com.cornellappdev.android.eatery.ui.components.home.MainLoadingItem.Companion.CreateMainLoadingItem import com.cornellappdev.android.eatery.ui.theme.EateryBlue import com.cornellappdev.android.eatery.ui.theme.EateryBlueTypography +import com.cornellappdev.android.eatery.ui.theme.currentColors import com.cornellappdev.android.eatery.ui.viewmodels.HomeViewModel import com.cornellappdev.android.eatery.ui.viewmodels.state.EateryApiResponse import com.cornellappdev.android.eatery.util.EateryPreview @@ -117,6 +118,7 @@ fun HomeScreen( onCompareMenusClick: (selectedEateriesIds: List) -> Unit, onNotificationsClick: () -> Unit ) { + val colors = currentColors val context = LocalContext.current val favorites = homeViewModel.favoriteEateries.collectAsState().value val nearestEateries = homeViewModel.eateriesByDistance.collectAsState().value @@ -197,7 +199,7 @@ fun HomeScreen( content = { paddingValues -> Box( modifier = Modifier - .background(Color.White) + .background(colors.backgroundDefault) .padding(paddingValues) ) { ModalBottomSheetLayout( diff --git a/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Color.kt b/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Color.kt index 2f5e7dc2..e666e8a2 100644 --- a/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Color.kt +++ b/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Color.kt @@ -16,6 +16,48 @@ val Red = Color(0xFFF2655D) val Green = Color(0xFF63C774) val Yellow = Color(0xFFFEC50E) val Orange = Color(0xFFFF990E) +// Error colors +val ErrorLight = Color(0xFFF2655D) +val ErrorDark = Color(0xFFF2655D) + +// Success colors +val SuccessLight = Color(0xFF63C774) +val SuccessDark = Color(0xFF76CE85) + +// Background colors +val BgDefaultLight = Color(0xFFFFFFFF) +val BgDefaultDark = Color(0xFF141414) + +val BgSecondaryLight = Color(0xFF4A90E2) +val BgSecondaryDark = Color(0xFF609EE6) + +val BgDefault10Light = Color(0x1AFFFFFF) // FFFFFF with 10% opacity +val BgDefault10Dark = Color(0x1A141414) // 141414 with 10% opacity + +val BgDefault92Light = Color(0xEBFFFFFF) // FFFFFF with 92% opacity +val BgDefault92Dark = Color(0xEB141414) // 141414 with 92% opacity + +val BgSurfaceLight = Color(0xFFFAFAFA) +val BgSurfaceDark = Color(0xFF121212) + +// Text colors +val TextPrimaryLight = Color(0xFF050505) +val TextPrimaryDark = Color(0xFFFFFFFF) + +val TextSecondaryLight = Color(0xFF586069) +val TextSecondaryDark = Color(0xFF9EA8B5) + +// Accent colors +val AccentPrimaryLight = Color(0xFFEFF1F4) +val AccentPrimaryDark = Color(0xFF272727) + +val AccentPressedLight = Color(0xFFE8EFF8) +val AccentPressedDark = Color(0xFF1C1C1C) + +// Border colors +val BorderDefaultLight = Color(0xFFE1E4E8) +val BorderDefaultDark = Color(0xFF282828) + /** * Interpolates a color between [color1] and [color2] by choosing a color a [fraction] in between. diff --git a/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Theme.kt b/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Theme.kt new file mode 100644 index 00000000..4d7265e8 --- /dev/null +++ b/app/src/main/java/com/cornellappdev/android/eatery/ui/theme/Theme.kt @@ -0,0 +1,72 @@ +package com.cornellappdev.android.eatery.ui.theme + +import androidx.compose.foundation.isSystemInDarkTheme +import androidx.compose.material3.darkColorScheme +import androidx.compose.runtime.Composable +import androidx.compose.runtime.CompositionLocalProvider +import androidx.compose.runtime.staticCompositionLocalOf +import androidx.compose.ui.graphics.Color + +val LocalColorMode = staticCompositionLocalOf { ColorTheme.darkMode } + +@Composable +fun AppColorTheme( + darkTheme: Boolean = isSystemInDarkTheme(), + content: @Composable () -> Unit +) { + val colors = if (darkTheme) ColorTheme.darkMode else ColorTheme.lightMode + CompositionLocalProvider(LocalColorMode provides colors) { + content() + } +} + +val currentColors: ColorMode + @Composable get() = LocalColorMode.current + +object ColorTheme +{ + val lightMode = ColorMode( + error = ErrorLight, + success = SuccessLight, + backgroundDefault = BgDefaultLight, + backgroundSecondary = BgSecondaryLight, + backgroundDefault10 = BgDefault10Light, + backgroundDefault92 = BgDefault92Light, + backgroundSurface = BgSurfaceLight, + textPrimary = TextPrimaryLight, + textSecondary = TextSecondaryLight, + accentPrimary = AccentPrimaryLight, + accentPressed = AccentPressedLight, + borderDefault = BorderDefaultLight + ) + val darkMode = ColorMode( + error = ErrorDark, + success = SuccessDark, + backgroundDefault = BgDefaultDark, + backgroundSecondary = BgSecondaryDark, + backgroundDefault10 = BgDefault10Dark, + backgroundDefault92 = BgDefault92Dark, + backgroundSurface = BgSurfaceDark, + textPrimary = TextPrimaryDark, + textSecondary = TextSecondaryDark, + accentPrimary = AccentPrimaryDark, + accentPressed = AccentPressedDark, + borderDefault = BorderDefaultDark + ) + +} + +data class ColorMode( + val error : Color, + val success : Color, + val backgroundDefault : Color, + val backgroundSecondary : Color, + val backgroundDefault10 : Color, + val backgroundDefault92 : Color, + val backgroundSurface : Color, + val textPrimary : Color, + val textSecondary : Color, + val accentPrimary : Color, + val accentPressed : Color, + val borderDefault : Color +) From 88ab59dbcc49e16a1f54bbbef57647a4d4b1959f Mon Sep 17 00:00:00 2001 From: Caleb Shim Date: Fri, 17 Apr 2026 20:39:54 -0400 Subject: [PATCH 2/2] Fix --- .../java/com/cornellappdev/android/eatery/util/PreviewUtil.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/cornellappdev/android/eatery/util/PreviewUtil.kt b/app/src/main/java/com/cornellappdev/android/eatery/util/PreviewUtil.kt index fe084672..69731e8b 100644 --- a/app/src/main/java/com/cornellappdev/android/eatery/util/PreviewUtil.kt +++ b/app/src/main/java/com/cornellappdev/android/eatery/util/PreviewUtil.kt @@ -5,11 +5,11 @@ import androidx.compose.foundation.layout.Column import androidx.compose.runtime.Composable import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color -import com.cornellappdev.android.eatery.ui.theme.EateryBlueTheme +import com.cornellappdev.android.eatery.ui.theme.AppColorTheme @Composable fun EateryPreview(modifier: Modifier = Modifier, content: @Composable () -> Unit) { - EateryBlueTheme { + AppColorTheme { Column( modifier = modifier .background(Color.White)