diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/badge/RecordyLocationBadge.kt b/core/designsystem/src/main/java/com/record/designsystem/component/badge/RecordyLocationBadge.kt index 7cb6c6a1..5dc24eb1 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/badge/RecordyLocationBadge.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/badge/RecordyLocationBadge.kt @@ -53,7 +53,7 @@ fun RecordyLocationBadge( text = location, maxLines = 1, overflow = TextOverflow.Ellipsis, - style = RecordyTheme.typography.caption1, + style = RecordyTheme.typography.caption1R, color = RecordyTheme.colors.white, textAlign = TextAlign.Center, ) diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyButton.kt b/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyButton.kt index 92c1bdd2..832b03a4 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyButton.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyButton.kt @@ -17,8 +17,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.record.designsystem.theme.Black -import com.record.designsystem.theme.Main import com.record.designsystem.theme.RecordyTheme +import com.record.designsystem.theme.ViskitYellow500 import timber.log.Timber @Composable @@ -30,7 +30,7 @@ fun RecordyButton( enabled: Boolean = true, clickable: Boolean = true, onClick: () -> Unit = {}, - backgroundColor: Color = Main, + backgroundColor: Color = ViskitYellow500, textColor: Color = RecordyTheme.colors.gray09, borderWidth: Dp = 0.dp, borderColor: Color = Color.Transparent, @@ -44,7 +44,7 @@ fun RecordyButton( onClick = onClick, backgroundColor = if (enabled) backgroundColor else RecordyTheme.colors.gray08, rippleColor = rippleColor, - textColor = if (enabled) textColor else RecordyTheme.colors.gray04, + textColor = if (enabled) textColor else RecordyTheme.colors.gray06, clickable = clickable, padding = PaddingValues(15.dp), textStyle = textStyle, diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyChipButton.kt b/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyChipButton.kt index 90e458f1..34585853 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyChipButton.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyChipButton.kt @@ -22,8 +22,8 @@ import com.record.designsystem.theme.Gray01 import com.record.designsystem.theme.Gray03 import com.record.designsystem.theme.Gray08 import com.record.designsystem.theme.Gray09 -import com.record.designsystem.theme.Main import com.record.designsystem.theme.RecordyTheme +import com.record.designsystem.theme.ViskitYellow500 import com.record.ui.extension.customClickable import timber.log.Timber @@ -42,13 +42,13 @@ fun RecordyChipButton( onClick: () -> Unit = {}, ) { val (borderLineColor, contentColor, backGroundColor) = if (isActive) { - if (isCheckSmall) Triple(Gray01, Gray09, Gray01) else Triple(Main, Main, Gray08) + if (isCheckSmall) Triple(Gray01, Gray09, Gray01) else Triple(ViskitYellow500, ViskitYellow500, Gray08) } else { Triple(Color.Transparent, Gray03, if (isCheckSmall) Gray09 else Gray08) } val textStyle = when { - isCheckSmall -> RecordyTheme.typography.caption1 + isCheckSmall -> RecordyTheme.typography.caption1R isActive -> RecordyTheme.typography.button2 else -> RecordyTheme.typography.body2M } diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyMiddleButton.kt b/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyMiddleButton.kt index 9ebe94e4..3511b087 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyMiddleButton.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/button/RecordyMiddleButton.kt @@ -17,8 +17,8 @@ import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.record.designsystem.theme.Black -import com.record.designsystem.theme.Main import com.record.designsystem.theme.RecordyTheme +import com.record.designsystem.theme.ViskitYellow500 import timber.log.Timber @Composable @@ -30,7 +30,7 @@ fun RecordyMiddleButton( enabled: Boolean = true, clickable: Boolean = true, onClick: () -> Unit = {}, - backgroundColor: Color = Main, + backgroundColor: Color = ViskitYellow500, textColor: Color = RecordyTheme.colors.gray09, borderWidth: Dp = 0.dp, borderColor: Color = Color.Transparent, @@ -44,7 +44,7 @@ fun RecordyMiddleButton( onClick = onClick, backgroundColor = if (enabled) backgroundColor else RecordyTheme.colors.gray08, rippleColor = rippleColor, - textColor = if (enabled) textColor else RecordyTheme.colors.gray04, + textColor = if (enabled) textColor else RecordyTheme.colors.gray06, clickable = clickable, padding = PaddingValues(vertical = 12.dp, horizontal = 38.dp), textStyle = textStyle, diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/dialog/RecordyDialog.kt b/core/designsystem/src/main/java/com/record/designsystem/component/dialog/RecordyDialog.kt index 1d9c6a5f..44f41a3c 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/dialog/RecordyDialog.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/dialog/RecordyDialog.kt @@ -64,7 +64,7 @@ fun RecordyDialog( Text( modifier = Modifier.padding(top = 6.dp, bottom = 20.dp), text = subTitle, - style = RecordyTheme.typography.caption1, + style = RecordyTheme.typography.caption1R, color = RecordyTheme.colors.gray01, textAlign = TextAlign.Center, ) diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/progressbar/RecordyProgressBar.kt b/core/designsystem/src/main/java/com/record/designsystem/component/progressbar/RecordyProgressBar.kt index 29abe604..d475c789 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/progressbar/RecordyProgressBar.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/progressbar/RecordyProgressBar.kt @@ -60,13 +60,13 @@ fun RecordyProgressBar( .fillMaxWidth() .height(4.dp) .align(Alignment.Center) - .background(RecordyTheme.colors.sub01), + .background(RecordyTheme.colors.gray01), ) Box( modifier = Modifier .fillMaxWidth(size) .height(6.dp) - .background(RecordyTheme.colors.main) + .background(RecordyTheme.colors.viskitYellow500) .animateContentSize(), ) } diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/snackbar/RecordySnackBar.kt b/core/designsystem/src/main/java/com/record/designsystem/component/snackbar/RecordySnackBar.kt index d6e83131..add9a11e 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/snackbar/RecordySnackBar.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/snackbar/RecordySnackBar.kt @@ -70,7 +70,7 @@ fun RecordySnackBarContent( bottom = 16.dp, ) .background( - color = RecordyTheme.colors.sub01, + color = RecordyTheme.colors.background, shape = RoundedCornerShape(8.dp), ), verticalAlignment = Alignment.CenterVertically, @@ -82,7 +82,7 @@ fun RecordySnackBarContent( .padding(start = 16.dp, top = 10.dp, bottom = 10.dp, end = 4.dp), painter = painterResource(id = R.drawable.ic_exclamation_24), contentDescription = "warning", - tint = RecordyTheme.colors.alert, + tint = RecordyTheme.colors.alert01, ) } @@ -92,7 +92,7 @@ fun RecordySnackBarContent( .padding(start = 16.dp, top = 10.dp, bottom = 10.dp, end = 4.dp), painter = painterResource(id = R.drawable.ic_check_small_24), contentDescription = "check", - tint = RecordyTheme.colors.main, + tint = RecordyTheme.colors.viskitYellow500, ) } } diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyBasicTextField.kt b/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyBasicTextField.kt index abc9c662..8062efdf 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyBasicTextField.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyBasicTextField.kt @@ -32,14 +32,15 @@ import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp -import com.record.designsystem.theme.Alert +import com.record.designsystem.theme.Alert01 import com.record.designsystem.theme.Black import com.record.designsystem.theme.Gray01 import com.record.designsystem.theme.Gray03 -import com.record.designsystem.theme.Gray04 +import com.record.designsystem.theme.Gray06 import com.record.designsystem.theme.Gray08 -import com.record.designsystem.theme.Main import com.record.designsystem.theme.RecordyTheme +import com.record.designsystem.theme.ViskitYellow500 + /** * design system small text field / Large text field 2가지 타입 구현 가능 * */ @@ -65,14 +66,14 @@ fun RecordyBasicTextField( val isFocused by interactionSource.collectIsFocusedAsState() val borderLineColor = when { - isError -> Alert - isFocused -> Main + isError -> Alert01 + isFocused -> ViskitYellow500 value.isEmpty() -> Color.Transparent else -> Color.Transparent } val labelTextColor = when { - isError -> Alert + isError -> Alert01 else -> Gray03 } @@ -87,7 +88,7 @@ fun RecordyBasicTextField( maxLines = if (minLines > maxLines) minLines else maxLines, minLines = minLines, interactionSource = interactionSource, - cursorBrush = SolidColor(Main), + cursorBrush = SolidColor(ViskitYellow500), keyboardOptions = keyboardOptions, keyboardActions = keyboardActions, visualTransformation = visualTransformation, @@ -113,7 +114,7 @@ fun RecordyBasicTextField( if (value.isEmpty()) { Text( text = placeholder, - color = Gray04, + color = Gray06, style = RecordyTheme.typography.body2M, maxLines = 1, overflow = TextOverflow.Clip, @@ -130,14 +131,14 @@ fun RecordyBasicTextField( text = labelText, modifier = Modifier.align(Alignment.CenterStart), color = labelTextColor, - style = RecordyTheme.typography.caption2, + style = RecordyTheme.typography.caption2R, maxLines = 1, ) Text( text = "${value.length} / $maxLength", modifier = Modifier.align(Alignment.CenterEnd), - color = Gray04, - style = RecordyTheme.typography.caption2, + color = Gray06, + style = RecordyTheme.typography.caption2R, maxLines = 1, ) } diff --git a/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyValidateTextfield.kt b/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyValidateTextfield.kt index 245287d6..012bbac9 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyValidateTextfield.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/component/textfield/RecordyValidateTextfield.kt @@ -71,9 +71,9 @@ fun RecordyValidateTextfield( width = 1.dp, color = if (isFocused) { if (errorState == ValidateResult.OverlapError || errorState == ValidateResult.ValidationError) { - RecordyTheme.colors.alert + RecordyTheme.colors.alert01 } else { - RecordyTheme.colors.main + RecordyTheme.colors.viskitYellow500 } } else { Color.Transparent @@ -106,7 +106,7 @@ fun RecordyValidateTextfield( if (value.isEmpty() && !isFocused) { Text( text = placeholder, - style = RecordyTheme.typography.body2M.copy(color = RecordyTheme.colors.gray04), + style = RecordyTheme.typography.body2M.copy(color = RecordyTheme.colors.gray06), ) } innerTextField() @@ -128,16 +128,16 @@ fun RecordyValidateTextfield( ValidateResult.Inputting -> inputtingMessage }, color = when (errorState) { - ValidateResult.OverlapError, ValidateResult.ValidationError -> RecordyTheme.colors.alert + ValidateResult.OverlapError, ValidateResult.ValidationError -> RecordyTheme.colors.alert01 ValidateResult.Success -> RecordyTheme.colors.gray03 ValidateResult.Inputting -> RecordyTheme.colors.gray03 }, - style = RecordyTheme.typography.caption2, + style = RecordyTheme.typography.caption2R, ) Text( text = "${value.length} / $maxLength", - style = RecordyTheme.typography.caption2, - color = RecordyTheme.colors.gray04, + style = RecordyTheme.typography.caption2R, + color = RecordyTheme.colors.gray06, ) } } diff --git a/core/designsystem/src/main/java/com/record/designsystem/theme/Theme.kt b/core/designsystem/src/main/java/com/record/designsystem/theme/Theme.kt index 9c42fcae..183bde25 100644 --- a/core/designsystem/src/main/java/com/record/designsystem/theme/Theme.kt +++ b/core/designsystem/src/main/java/com/record/designsystem/theme/Theme.kt @@ -14,15 +14,15 @@ import androidx.compose.ui.graphics.Color @Stable class RecordyColors( - ViskitYellow500: Color, - ViskitYellow400: Color, - ViskitYellow300: Color, - ViskitYellow200: Color, - ViskitYellow100: Color, - ViskitYellow80: Color, - ViskitYellow60: Color, - ViskitYellow40: Color, - ViskitYellow20: Color, + viskitYellow500: Color, + viskitYellow400: Color, + viskitYellow300: Color, + viskitYellow200: Color, + viskitYellow100: Color, + viskitYellow80: Color, + viskitYellow60: Color, + viskitYellow40: Color, + viskitYellow20: Color, alert01: Color, alert02: Color, kakaoyellow: Color, @@ -45,23 +45,23 @@ class RecordyColors( black50: Color, black70: Color, ) { - var ViskitYellow500 by mutableStateOf(ViskitYellow500) + var viskitYellow500 by mutableStateOf(ViskitYellow500) private set - var ViskitYellow400 by mutableStateOf(ViskitYellow400) + var viskitYellow400 by mutableStateOf(ViskitYellow400) private set - var ViskitYellow300 by mutableStateOf(ViskitYellow300) + var viskitYellow300 by mutableStateOf(ViskitYellow300) private set - var ViskitYellow200 by mutableStateOf(ViskitYellow200) + var viskitYellow200 by mutableStateOf(ViskitYellow200) private set - var ViskitYellow100 by mutableStateOf(ViskitYellow100) + var viskitYellow100 by mutableStateOf(ViskitYellow100) private set - var ViskitYellow80 by mutableStateOf(ViskitYellow80) + var viskitYellow80 by mutableStateOf(ViskitYellow80) private set - var ViskitYellow60 by mutableStateOf(ViskitYellow60) + var viskitYellow60 by mutableStateOf(ViskitYellow60) private set - var ViskitYellow40 by mutableStateOf(ViskitYellow40) + var viskitYellow40 by mutableStateOf(ViskitYellow40) private set - var ViskitYellow20 by mutableStateOf(ViskitYellow20) + var viskitYellow20 by mutableStateOf(ViskitYellow20) private set var alert01 by mutableStateOf(alert01) private set @@ -140,15 +140,15 @@ class RecordyColors( ) fun update(other: RecordyColors) { - ViskitYellow500 = other.ViskitYellow500 - ViskitYellow400 = other.ViskitYellow400 - ViskitYellow300 = other.ViskitYellow300 - ViskitYellow200 = other.ViskitYellow200 - ViskitYellow100 = other.ViskitYellow100 - ViskitYellow80 = other.ViskitYellow80 - ViskitYellow60 = other.ViskitYellow60 - ViskitYellow40 = other.ViskitYellow40 - ViskitYellow20 = other.ViskitYellow20 + viskitYellow500 = other.viskitYellow500 + viskitYellow400 = other.viskitYellow400 + viskitYellow300 = other.viskitYellow300 + viskitYellow200 = other.viskitYellow200 + viskitYellow100 = other.viskitYellow100 + viskitYellow80 = other.viskitYellow80 + viskitYellow60 = other.viskitYellow60 + viskitYellow40 = other.viskitYellow40 + viskitYellow20 = other.viskitYellow20 alert01 = other.alert01 alert02 = other.alert02 kakaoyellow = other.kakaoyellow diff --git a/core/designsystem/src/main/res/drawable/ic_tab_home.xml b/core/designsystem/src/main/res/drawable/ic_tab_home.xml new file mode 100644 index 00000000..f7c6a508 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_tab_home.xml @@ -0,0 +1,10 @@ + + + diff --git a/core/designsystem/src/main/res/drawable/ic_tab_mypage.xml b/core/designsystem/src/main/res/drawable/ic_tab_mypage.xml new file mode 100644 index 00000000..6be0a8a1 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_tab_mypage.xml @@ -0,0 +1,9 @@ + + + diff --git a/core/designsystem/src/main/res/drawable/ic_tab_search.xml b/core/designsystem/src/main/res/drawable/ic_tab_search.xml new file mode 100644 index 00000000..b0d7b489 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_tab_search.xml @@ -0,0 +1,17 @@ + + + + diff --git a/core/designsystem/src/main/res/drawable/ic_tab_upload.xml b/core/designsystem/src/main/res/drawable/ic_tab_upload.xml new file mode 100644 index 00000000..673faba9 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_tab_upload.xml @@ -0,0 +1,15 @@ + + + + diff --git a/core/designsystem/src/main/res/drawable/ic_tab_video.xml b/core/designsystem/src/main/res/drawable/ic_tab_video.xml new file mode 100644 index 00000000..5cc24475 --- /dev/null +++ b/core/designsystem/src/main/res/drawable/ic_tab_video.xml @@ -0,0 +1,12 @@ + + + + diff --git a/core/designsystem/src/main/res/values/strings.xml b/core/designsystem/src/main/res/values/strings.xml index 2f4581ff..7b730dd9 100644 --- a/core/designsystem/src/main/res/values/strings.xml +++ b/core/designsystem/src/main/res/values/strings.xml @@ -1,7 +1,8 @@ 유영 + 검색 영상 - 기록 + 업로드 프로필 diff --git a/feature/login/src/main/java/com/record/login/LoginScreen.kt b/feature/login/src/main/java/com/record/login/LoginScreen.kt index dcf4d509..80a7d1c2 100644 --- a/feature/login/src/main/java/com/record/login/LoginScreen.kt +++ b/feature/login/src/main/java/com/record/login/LoginScreen.kt @@ -41,7 +41,7 @@ import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.record.designsystem.R import com.record.designsystem.component.indicator.LoadingIndicator -import com.record.designsystem.theme.Kakao +import com.record.designsystem.theme.Kakaoyellow import com.record.designsystem.theme.RecordyTheme import com.record.ui.lifecycle.LaunchedEffectWithLifecycle import dagger.hilt.android.EntryPointAccessors @@ -222,7 +222,7 @@ fun LoginScreen( .alpha(alpha), textAlign = TextAlign.Center, style = RecordyTheme.typography.body1M, - color = RecordyTheme.colors.main, + color = RecordyTheme.colors.viskitYellow500, ) } @@ -235,7 +235,7 @@ fun LoginScreen( .fillMaxWidth() .height(48.dp) .padding(horizontal = 16.dp), - colors = ButtonDefaults.buttonColors(containerColor = Kakao), + colors = ButtonDefaults.buttonColors(containerColor = Kakaoyellow), shape = RoundedCornerShape(10.dp), ) { Image(painterResource(id = R.drawable.ic_kakao_16), null, modifier = Modifier.padding(end = 8.dp)) diff --git a/feature/login/src/main/java/com/record/login/singup/screen/PolicyScreen.kt b/feature/login/src/main/java/com/record/login/singup/screen/PolicyScreen.kt index 98c9de77..effa2745 100644 --- a/feature/login/src/main/java/com/record/login/singup/screen/PolicyScreen.kt +++ b/feature/login/src/main/java/com/record/login/singup/screen/PolicyScreen.kt @@ -135,7 +135,7 @@ fun RecordyCheckBox( Spacer(modifier = Modifier.width(16.dp)) Text( text = contentText, - style = RecordyTheme.typography.caption1.copy(color = RecordyTheme.colors.gray03), + style = RecordyTheme.typography.caption1R.copy(color = RecordyTheme.colors.gray03), ) Spacer(modifier = Modifier.weight(1f)) if (moreUrl != null && onMoreClick != null) { diff --git a/feature/login/src/main/java/com/record/login/singup/screen/SignUpSuccessScreen.kt b/feature/login/src/main/java/com/record/login/singup/screen/SignUpSuccessScreen.kt index 345c6926..174d07ac 100644 --- a/feature/login/src/main/java/com/record/login/singup/screen/SignUpSuccessScreen.kt +++ b/feature/login/src/main/java/com/record/login/singup/screen/SignUpSuccessScreen.kt @@ -39,7 +39,7 @@ fun SignUpSuccessScreen() { Spacer(modifier = Modifier.height(8.dp)) Text( "지금 영상을 둘러보고 나만의 공간 취향을 발견해 보세요.", - style = RecordyTheme.typography.caption2, + style = RecordyTheme.typography.caption2R, color = RecordyTheme.colors.gray03, ) } diff --git a/feature/mypage/src/main/java/com/record/mypage/MypageScreen.kt b/feature/mypage/src/main/java/com/record/mypage/MypageScreen.kt index ba52d3fd..4e6e765a 100644 --- a/feature/mypage/src/main/java/com/record/mypage/MypageScreen.kt +++ b/feature/mypage/src/main/java/com/record/mypage/MypageScreen.kt @@ -292,7 +292,7 @@ fun CustomTabRow( ) { MypageTab.entries.forEachIndexed { index, tab -> val selected = index == selectedTabIndex - val textColor = if (selected) RecordyTheme.colors.gray01 else RecordyTheme.colors.gray04 + val textColor = if (selected) RecordyTheme.colors.gray01 else RecordyTheme.colors.gray06 val textStyle = if (selected) RecordyTheme.typography.body2L else RecordyTheme.typography.body2M Column( diff --git a/feature/mypage/src/main/java/com/record/mypage/screen/EmptyDataScreen.kt b/feature/mypage/src/main/java/com/record/mypage/screen/EmptyDataScreen.kt index c10ac7fd..9afcd835 100644 --- a/feature/mypage/src/main/java/com/record/mypage/screen/EmptyDataScreen.kt +++ b/feature/mypage/src/main/java/com/record/mypage/screen/EmptyDataScreen.kt @@ -81,7 +81,7 @@ fun EmptyDataScreen(imageRes: Int, message: String, showButton: Boolean, onButto Text( text = "서로 다른 키워드 3개를 입력하면 그래프가 보여요", color = RecordyTheme.colors.gray03, - style = RecordyTheme.typography.caption1, + style = RecordyTheme.typography.caption1R, modifier = Modifier.padding(bottom = 22.dp), ) } diff --git a/feature/mypage/src/main/java/com/record/mypage/screen/TasteScreen.kt b/feature/mypage/src/main/java/com/record/mypage/screen/TasteScreen.kt index 07b10856..2d407035 100644 --- a/feature/mypage/src/main/java/com/record/mypage/screen/TasteScreen.kt +++ b/feature/mypage/src/main/java/com/record/mypage/screen/TasteScreen.kt @@ -123,9 +123,9 @@ fun BoxScope.TasteScreen( Text( text = "${pair.second}%", style = when (index) { - 0 -> RecordyTheme.typography.number1 - 1 -> RecordyTheme.typography.number2 - else -> RecordyTheme.typography.number3 + 0 -> RecordyTheme.typography.caption1R + 1 -> RecordyTheme.typography.caption1R + else -> RecordyTheme.typography.caption1R }, color = RecordyTheme.colors.gray01, ) diff --git a/feature/navigator/build.gradle.kts b/feature/navigator/build.gradle.kts index 32cd858a..9b2935f6 100644 --- a/feature/navigator/build.gradle.kts +++ b/feature/navigator/build.gradle.kts @@ -14,5 +14,7 @@ dependencies { implementation(projects.feature.upload) implementation(projects.feature.video) implementation(projects.feature.setting) + implementation(projects.feature.search) + implementation(projects.feature.detail) implementation(projects.core.common) } diff --git a/feature/navigator/src/main/java/com/record/navigator/InMainNavTab.kt b/feature/navigator/src/main/java/com/record/navigator/InMainNavTab.kt index 2da7f211..82ad98ce 100644 --- a/feature/navigator/src/main/java/com/record/navigator/InMainNavTab.kt +++ b/feature/navigator/src/main/java/com/record/navigator/InMainNavTab.kt @@ -7,7 +7,7 @@ import com.record.video.navigation.VideoRoute enum class InMainNavTab( val route: String, ) { - VIDEO_DETAIL(VideoRoute.detailRoute), + VIDEO_DETAIL(VideoRoute.videoDetailRoute), FOLLOWING(MypageRoute.followingRoute), FOLLOWER(MypageRoute.followerRoute), PROFILE(ProfileRoute.route), diff --git a/feature/navigator/src/main/java/com/record/navigator/MainNavTab.kt b/feature/navigator/src/main/java/com/record/navigator/MainNavTab.kt index 78526a94..3c8a2e73 100644 --- a/feature/navigator/src/main/java/com/record/navigator/MainNavTab.kt +++ b/feature/navigator/src/main/java/com/record/navigator/MainNavTab.kt @@ -5,29 +5,37 @@ import androidx.annotation.StringRes import com.record.designsystem.R import com.record.home.navigation.HomeRoute import com.record.mypage.navigation.MypageRoute +import com.record.search.navigation.SearchRoute +import com.record.upload.navigation.UploadRoute import com.record.video.navigation.VideoRoute enum class MainNavTab( @DrawableRes val iconId: Int, - @DrawableRes val selectedIconId: Int, @StringRes val titleId: Int, val route: String, ) { HOME( - iconId = R.drawable.ic_tab_place_28, - selectedIconId = R.drawable.ic_tab_place_pressed_28, + iconId = R.drawable.ic_tab_home, titleId = R.string.home, route = HomeRoute.route, ), + SEARCH( + iconId = R.drawable.ic_tab_search, + titleId = R.string.search, + route = SearchRoute.route, + ), + UPLOAD( + iconId = R.drawable.ic_tab_upload, + titleId = R.string.upload, + route = UploadRoute.ROUTE, + ), VIDEO( - iconId = R.drawable.ic_tab_video_28, - selectedIconId = R.drawable.ic_tab_video_pressed_28, + iconId = R.drawable.ic_tab_video, titleId = R.string.video, route = VideoRoute.route, ), MYPAGE( - iconId = R.drawable.ic_tab_profile_28, - selectedIconId = R.drawable.ic_tab_profile_pressed_28, + iconId = R.drawable.ic_tab_mypage, titleId = R.string.profile, route = MypageRoute.route, ), diff --git a/feature/navigator/src/main/java/com/record/navigator/MainNavigator.kt b/feature/navigator/src/main/java/com/record/navigator/MainNavigator.kt index 4fa9ee27..892e8e4e 100644 --- a/feature/navigator/src/main/java/com/record/navigator/MainNavigator.kt +++ b/feature/navigator/src/main/java/com/record/navigator/MainNavigator.kt @@ -7,6 +7,7 @@ import androidx.navigation.NavHostController import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.rememberNavController import androidx.navigation.navOptions +import com.record.detail.navigation.navigateDetail import com.record.home.navigation.HomeRoute import com.record.home.navigation.navigateHome import com.record.login.navigation.LoginRoute @@ -17,7 +18,9 @@ import com.record.mypage.navigation.navigateToFollower import com.record.mypage.navigation.navigateToFollowing import com.record.profile.navigation.ProfileRoute import com.record.profile.navigation.navigateProfile +import com.record.search.navigation.navigateSearch import com.record.setting.navigate.navigateSetting +import com.record.upload.navigation.UploadRoute import com.record.upload.navigation.navigateToUpload import com.record.video.navigation.navigateVideo import com.record.video.navigation.navigateVideoDetail @@ -53,6 +56,8 @@ internal class MainNavigator( MainNavTab.HOME -> false MainNavTab.VIDEO -> false MainNavTab.MYPAGE -> true + MainNavTab.SEARCH -> true + MainNavTab.UPLOAD -> true } } @@ -60,6 +65,8 @@ internal class MainNavigator( MainNavTab.HOME -> navController.navigateHome(navOptions) MainNavTab.VIDEO -> navController.navigateVideo(navOptions) MainNavTab.MYPAGE -> navController.navigateMypage(navOptions) + MainNavTab.SEARCH -> navController.navigateSearch(navOptions) + MainNavTab.UPLOAD -> navController.navigateToUpload() } } @@ -119,6 +126,14 @@ internal class MainNavigator( navController.navigateSetting(navOptions { }) } + fun navigateDetail() { + navController.navigateDetail(navOptions { }) + } + + fun navigateSearch() { + navController.navigateSearch(navOptions { }) + } + fun popBackStackIfNotHome() { if (!isSameCurrentDestination(HomeRoute.route)) { navController.popBackStack() @@ -131,6 +146,7 @@ internal class MainNavigator( @Composable fun shouldShowBottomBar(): Boolean { val currentRoute = currentDestination?.route ?: return false + if (currentRoute == UploadRoute.ROUTE) return false return currentRoute in MainNavTab || currentRoute in InMainNavTab || currentRoute.contains("detail") || currentRoute.contains( ProfileRoute.route, ) diff --git a/feature/navigator/src/main/java/com/record/navigator/MainScreen.kt b/feature/navigator/src/main/java/com/record/navigator/MainScreen.kt index 175767d4..f4e0ace1 100644 --- a/feature/navigator/src/main/java/com/record/navigator/MainScreen.kt +++ b/feature/navigator/src/main/java/com/record/navigator/MainScreen.kt @@ -9,7 +9,6 @@ import androidx.compose.animation.EnterTransition import androidx.compose.animation.ExitTransition import androidx.compose.animation.fadeIn import androidx.compose.animation.fadeOut -import androidx.compose.foundation.Image import androidx.compose.foundation.background import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.Arrangement @@ -21,6 +20,7 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.material3.HorizontalDivider +import androidx.compose.material3.Icon import androidx.compose.material3.Scaffold import androidx.compose.material3.Text import androidx.compose.runtime.Composable @@ -40,10 +40,12 @@ import androidx.navigation.compose.NavHost import androidx.navigation.compose.currentBackStackEntryAsState import com.record.designsystem.component.snackbar.RecordySnackBar import com.record.designsystem.theme.RecordyTheme +import com.record.detail.navigation.detailNavGraph import com.record.home.navigation.homeNavGraph import com.record.login.navigation.loginNavGraph import com.record.mypage.navigation.mypageNavGraph import com.record.profile.navigation.profileNavGraph +import com.record.search.navigation.searchNavGraph import com.record.setting.navigate.settingNavGraph import com.record.upload.navigation.uploadNavGraph import com.record.video.navigation.videoNavGraph @@ -132,6 +134,14 @@ internal fun MainScreen( padding = innerPadding, navigateToLogin = { navigator.navigateLogin() }, ) + + searchNavGraph( + padding = innerPadding, + ) + + detailNavGraph( + padding = innerPadding, + ) } RecordySnackBar( modifier = Modifier.padding(innerPadding), @@ -191,7 +201,6 @@ private fun MainBottomNavigationBar( selected = tab == currentTab, label = stringResource(id = titleId), iconId = iconId, - selectedIconId = selectedIconId, onClick = { onClickItem(tab) }, ) } @@ -207,7 +216,6 @@ fun RowScope.NavItem( selected: Boolean, label: String, @DrawableRes iconId: Int, - @DrawableRes selectedIconId: Int, onClick: () -> Unit, ) { Column( @@ -218,16 +226,16 @@ fun RowScope.NavItem( horizontalAlignment = Alignment.CenterHorizontally, verticalArrangement = Arrangement.Center, ) { - val icon = if (selected) selectedIconId else iconId - Image( + Icon( modifier = modifier.padding(bottom = 2.dp), - painter = painterResource(id = icon), + painter = painterResource(id = iconId), contentDescription = label, + tint = if (selected) RecordyTheme.colors.viskitYellow500 else RecordyTheme.colors.gray06, ) Text( text = label, - color = if (selected) RecordyTheme.colors.main else RecordyTheme.colors.gray04, - style = RecordyTheme.typography.caption1, + color = if (selected) RecordyTheme.colors.viskitYellow500 else RecordyTheme.colors.gray06, + style = RecordyTheme.typography.caption1R, ) } } diff --git a/feature/setting/src/main/java/com/record/setting/SettingScreen.kt b/feature/setting/src/main/java/com/record/setting/SettingScreen.kt index 1a4d2f6a..b44e6b3d 100644 --- a/feature/setting/src/main/java/com/record/setting/SettingScreen.kt +++ b/feature/setting/src/main/java/com/record/setting/SettingScreen.kt @@ -147,8 +147,8 @@ fun SettingScreen( modifier = Modifier .padding(start = 16.dp) .padding(top = 4.dp), - style = RecordyTheme.typography.caption2, - color = RecordyTheme.colors.gray04, + style = RecordyTheme.typography.caption2R, + color = RecordyTheme.colors.gray06, ) } } diff --git a/feature/upload/src/main/java/com/record/upload/VideoPickerScreen.kt b/feature/upload/src/main/java/com/record/upload/VideoPickerScreen.kt index d3062e0a..0993a380 100644 --- a/feature/upload/src/main/java/com/record/upload/VideoPickerScreen.kt +++ b/feature/upload/src/main/java/com/record/upload/VideoPickerScreen.kt @@ -230,7 +230,7 @@ fun VideoPickerScreen( Text( text = "ⓘ 주제와 무관한 기록은 무통보로 삭제될 수 있습니다", color = RecordyTheme.colors.gray03, - style = RecordyTheme.typography.caption2, + style = RecordyTheme.typography.caption2R, maxLines = 1, modifier = Modifier.fillMaxWidth(), textAlign = TextAlign.Center, diff --git a/feature/upload/src/main/java/com/record/upload/component/bottomsheet/DefinedContentBottomSheet.kt b/feature/upload/src/main/java/com/record/upload/component/bottomsheet/DefinedContentBottomSheet.kt index 875978e5..8593eedc 100644 --- a/feature/upload/src/main/java/com/record/upload/component/bottomsheet/DefinedContentBottomSheet.kt +++ b/feature/upload/src/main/java/com/record/upload/component/bottomsheet/DefinedContentBottomSheet.kt @@ -71,7 +71,7 @@ fun DefinedContentBottomSheet( ) Text( text = "키워드 1~3개 선택 시, 프로필에서 취향을 분석해 드립니다.", - style = RecordyTheme.typography.caption1, + style = RecordyTheme.typography.caption1R, color = RecordyTheme.colors.gray03, ) FlowRow( diff --git a/feature/upload/src/main/java/com/record/upload/component/bottomsheet/SelectedVideoBottomSheet.kt b/feature/upload/src/main/java/com/record/upload/component/bottomsheet/SelectedVideoBottomSheet.kt index d5365107..2ac61ef9 100644 --- a/feature/upload/src/main/java/com/record/upload/component/bottomsheet/SelectedVideoBottomSheet.kt +++ b/feature/upload/src/main/java/com/record/upload/component/bottomsheet/SelectedVideoBottomSheet.kt @@ -77,7 +77,7 @@ fun SelectedVideoBottomSheet( Text( text = "ⓘ 1080p 이하의 최대 15초 영상을 올려주세요.", color = Gray03, - style = RecordyTheme.typography.caption2, + style = RecordyTheme.typography.caption2R, maxLines = 1, modifier = Modifier .fillMaxWidth() diff --git a/feature/video/src/main/java/com/record/video/navigation/VideoNavigation.kt b/feature/video/src/main/java/com/record/video/navigation/VideoNavigation.kt index f9ebcf64..25160ef4 100644 --- a/feature/video/src/main/java/com/record/video/navigation/VideoNavigation.kt +++ b/feature/video/src/main/java/com/record/video/navigation/VideoNavigation.kt @@ -61,6 +61,6 @@ object VideoRoute { const val VIDEO_INDEX = "video-index" const val VIDEO_KEYWORD = "video-keyword" const val VIDEO_USER_ID = "video-user-id" - const val detailRoute = "detail" - fun detailRoute(type: String, id: String, keyword: String?, userId: String) = "$detailRoute/$type/$id/${keyword ?: "all"}/$userId" + const val videoDetailRoute = "video-detail" + fun detailRoute(type: String, id: String, keyword: String?, userId: String) = "$videoDetailRoute/$type/$id/${keyword ?: "all"}/$userId" }