Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Main] 컬러 테마 시스템 적용 #118

Merged
merged 3 commits into from
Jul 27, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,13 +1,18 @@
package com.droidknights.app2023.core.designsystem.theme

import android.app.Activity
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.ColorScheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.Composable
import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.SideEffect
import androidx.compose.runtime.compositionLocalOf
import androidx.compose.ui.platform.LocalInspectionMode
import androidx.compose.ui.platform.LocalView
import androidx.core.view.WindowCompat

private val DarkColorScheme = darkColorScheme(
primary = White,
Expand Down Expand Up @@ -80,12 +85,25 @@ val ColorScheme.tertiaryFixedDim get() = DuskGray
val ColorScheme.onTertiaryFixed get() = Yellow01
val ColorScheme.onTertiaryFixedVariant get() = LightGray

val ColorScheme.surfaceDim
@Composable
get() = if (LocalDarkTheme.current) Black else PaleGray

@Composable
fun KnightsTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
content: @Composable () -> Unit,
) {
val colorScheme = if (darkTheme) DarkColorScheme else LightColorScheme

if (!LocalInspectionMode.current) {
val view = LocalView.current
SideEffect {
val window = (view.context as Activity).window
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
}
}

CompositionLocalProvider(
LocalDarkTheme provides darkTheme,
LocalTypography provides Typography
Expand Down
Original file line number Diff line number Diff line change
@@ -1,13 +1,11 @@
package com.droidknights.app2023.feature.home

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.padding
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp

@Composable
Expand All @@ -18,7 +16,6 @@ internal fun HomeScreen(
) {
Column(
Modifier
.background(color = Color(0xFFF9F9F9))
.padding(padding)
.padding(horizontal = 8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -22,18 +22,20 @@ import androidx.compose.foundation.layout.size
import androidx.compose.foundation.selection.selectable
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.Icon
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Scaffold
import androidx.compose.material3.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.IntOffset
import androidx.compose.ui.unit.dp
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
import com.droidknights.app2023.core.designsystem.theme.primaryFixedDim
import com.droidknights.app2023.core.designsystem.theme.surfaceDim
import com.droidknights.app2023.feature.contributor.navigation.contributorNavGraph
import com.droidknights.app2023.feature.home.navigation.homeNavGraph
import com.droidknights.app2023.feature.session.navigation.sessionNavGraph
Expand All @@ -46,7 +48,7 @@ internal fun MainScreen(navigator: MainNavigator = rememberMainNavigator()) {
Box(
modifier = Modifier
.fillMaxSize()
.background(Color(0xFFF9F9F9))
.background(MaterialTheme.colorScheme.surfaceDim)
) {
NavHost(
navController = navigator.navController,
Expand Down Expand Up @@ -111,10 +113,13 @@ private fun MainBottomBar(
.height(56.dp)
.border(
width = 1.dp,
color = Color(0xFFDCDCDC), // lightgray
color = MaterialTheme.colorScheme.outline,
shape = RoundedCornerShape(size = 28.dp)
)
.background(color = Color(0xFFFFFFFF), shape = RoundedCornerShape(28.dp))
.background(
color = MaterialTheme.colorScheme.surface,
shape = RoundedCornerShape(28.dp)
)
.padding(horizontal = 28.dp),
horizontalArrangement = Arrangement.spacedBy(8.dp),
) {
Expand Down Expand Up @@ -151,7 +156,11 @@ private fun RowScope.MainBottomBarItem(
Icon(
painter = painterResource(tab.iconResId),
contentDescription = tab.contentDescription,
tint = if (selected) Color(0xFF49F300) else Color(0xFFDCDCDC),
tint = if (selected) {
MaterialTheme.colorScheme.primaryFixedDim
} else {
MaterialTheme.colorScheme.outline
},
modifier = Modifier.size(34.dp),
)
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,6 @@ import androidx.annotation.DrawableRes
import androidx.annotation.StringRes
import androidx.appcompat.app.AppCompatDelegate
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.Column
import androidx.compose.foundation.layout.PaddingValues
Expand All @@ -16,7 +15,6 @@ import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material3.LocalContentColor
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.RadioButton
import androidx.compose.material3.RadioButtonDefaults
import androidx.compose.material3.Surface
Expand All @@ -38,7 +36,6 @@ import com.droidknights.app2023.core.designsystem.theme.LocalDarkTheme
internal fun SettingScreen(padding: PaddingValues) {
Column(
Modifier
.background(color = Color(0xFFF9F9F9))
.padding(padding)
.padding(8.dp),
verticalArrangement = Arrangement.spacedBy(8.dp),
Expand Down