From 9f845e6fdc17c9247d477256b93a10e692d2554e Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sat, 9 May 2026 15:20:26 +0900 Subject: [PATCH 1/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=EC=A0=95=EB=B3=B4=20=EC=95=88=EB=82=B4=20=EB=AA=A8=EB=8B=AC=20?= =?UTF-8?q?=ED=8A=B8=EB=A6=AC=EA=B1=B0=20=EC=BB=B4=ED=8F=AC=EB=84=8C?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../profile/component/InfoModalTrigger.kt | 45 +++++++++++++++++++ 1 file changed, 45 insertions(+) create mode 100644 app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt diff --git a/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt b/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt new file mode 100644 index 00000000..ecf73436 --- /dev/null +++ b/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt @@ -0,0 +1,45 @@ +package com.flint.presentation.profile.component + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material3.Text +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.flint.core.designsystem.theme.FlintColors +import com.flint.core.designsystem.theme.FlintTheme + +@Composable +fun InfoModalTrigger( + text: String, + modifier: Modifier = Modifier, +) { + Box( + contentAlignment = Alignment.Center, + modifier = modifier + .background( + color = FlintColors.gray800, + shape = RoundedCornerShape(size = 12.dp), + ) + .padding(horizontal = 12.dp, vertical = 14.dp), + ) { + Text( + text = text, + style = FlintTheme.typography.body2R14, + color = FlintColors.gray300, + ) + } +} + +@Preview(showBackground = true, backgroundColor = 0xFF141417) +@Composable +private fun InfoModalTriggerPreview() { + FlintTheme { + InfoModalTrigger(text = "저장한 작품들에서 반복되는 키워드를 분석해 취향 키워드를 만들어요. n개 이상 작품이 쌓이면 업데이트할 수 있어요.") + } +} From 04d58970afa4be0475e5dfc6d80ca1dc11a10ec8 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sat, 9 May 2026 15:25:15 +0900 Subject: [PATCH 2/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EB=82=B4=20=EC=BB=AC=EB=A0=89=EC=85=98=20?= =?UTF-8?q?=EC=84=B9=EC=85=98=20=ED=83=80=EC=9D=B4=ED=8B=80=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../main/java/com/flint/presentation/profile/ProfileScreen.kt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt b/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt index f9b0f971..bec6aa73 100644 --- a/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt +++ b/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt @@ -208,7 +208,7 @@ private fun ProfileScreen( Spacer(Modifier.height(48.dp)) CollectionSection( - title = "생성한 컬렉션", + title = "${userName}님의 컬렉션", description = "${userName}님이 생성한 컬렉션이에요", onItemClick = onCollectionItemClick, isAllVisible = true, From cd57e7edc8022c95a919b6e1c46b0fdf4bdefdd1 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sat, 9 May 2026 17:08:56 +0900 Subject: [PATCH 3/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=ED=99=94=EB=A9=B4=20=EB=82=B4=20=EC=84=A4=EC=A0=95=20=EB=B0=8F?= =?UTF-8?q?=20=EC=B7=A8=ED=96=A5=20=ED=82=A4=EC=9B=8C=EB=93=9C=20=EC=95=88?= =?UTF-8?q?=EB=82=B4=20=EB=AA=A8=EB=8B=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/profile/ProfileScreen.kt | 43 +++++++++++-- .../component/ProfileKeywordSection.kt | 60 ++++++++++++++++--- 2 files changed, 88 insertions(+), 15 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt b/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt index bec6aa73..da91d2f8 100644 --- a/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt +++ b/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt @@ -6,7 +6,6 @@ import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth -import androidx.compose.ui.Alignment import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding import androidx.compose.foundation.lazy.LazyColumn @@ -32,13 +31,17 @@ import androidx.compose.ui.unit.dp import androidx.hilt.navigation.compose.hiltViewModel import androidx.lifecycle.compose.collectAsStateWithLifecycle import com.flint.core.common.extension.findActivity +import com.flint.core.common.extension.noRippleClickable +import com.flint.R +import androidx.compose.material3.Icon +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.vectorResource import com.flint.core.common.util.UiState import com.flint.core.designsystem.component.bottomsheet.OttListBottomSheet import com.flint.core.designsystem.component.indicator.FlintLoadingIndicator import com.flint.core.designsystem.component.listView.CollectionSection import com.flint.core.designsystem.component.listView.SavedContentsSection -import com.flint.core.designsystem.component.topappbar.FlintBackTopAppbar -import com.flint.core.designsystem.theme.Colors +import com.flint.core.designsystem.component.topappbar.FlintBasicTopAppbar import com.flint.core.designsystem.theme.FlintTheme import com.flint.core.designsystem.theme.FlintTheme.colors import com.flint.core.navigation.model.CollectionListRouteType @@ -138,6 +141,7 @@ private fun ProfileScreen( modifier: Modifier = Modifier, onRefreshClick: () -> Unit = {}, onBackClick: () -> Unit = {}, + onSettingsClick: () -> Unit = {}, onCollectionItemClick: (collectionId: String) -> Unit, onContentItemClick: (contentId: String) -> Unit = {}, onContentMoreClick: () -> Unit = {}, @@ -149,6 +153,7 @@ private fun ProfileScreen( var topHeightPx by remember { mutableIntStateOf(0) } val density = LocalDensity.current val topHeightDp = with(density) { topHeightPx.toDp() } + var showInfoModal by remember { mutableStateOf(false) } Box( modifier = modifier @@ -198,6 +203,9 @@ private fun ProfileScreen( ProfileKeywordSection( nickname = uiState.profile.nickname, keywordList = sectionData.data.keywords, + isMyProfile = uiState.userId == null, + showInfoModal = showInfoModal, + onInfoClick = { showInfoModal = !showInfoModal }, onRefreshClick = onRefreshClick, modifier = Modifier.fillMaxWidth(), ) @@ -250,11 +258,34 @@ private fun ProfileScreen( else -> {} } } - if (uiState.userId != null) { - FlintBackTopAppbar( - onClick = onBackClick, + if (showInfoModal) { + Box( + modifier = Modifier + .fillMaxSize() + .noRippleClickable { showInfoModal = false }, ) } + FlintBasicTopAppbar( + backgroundColor = Color.Transparent, + navigationIcon = { + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_back), + contentDescription = null, + tint = FlintTheme.colors.white, + modifier = Modifier.noRippleClickable { onBackClick() }, + ) + }, + action = { + if (uiState.userId == null) { + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_setting), + contentDescription = "설정", + tint = FlintTheme.colors.white, + modifier = Modifier.noRippleClickable { onSettingsClick() }, + ) + } + }, + ) } } diff --git a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt index 6ba4d528..03e09b70 100644 --- a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt +++ b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt @@ -1,6 +1,9 @@ package com.flint.presentation.profile.component import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Box +import androidx.compose.foundation.layout.fillMaxHeight +import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer @@ -8,13 +11,19 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding +import androidx.compose.foundation.layout.size +import androidx.compose.foundation.layout.width import androidx.compose.material3.Icon import androidx.compose.material3.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.getValue +import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember +import androidx.compose.runtime.setValue import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.vectorResource import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.tooling.preview.PreviewParameter @@ -33,9 +42,13 @@ import kotlinx.collections.immutable.toPersistentList fun ProfileKeywordSection( nickname: String, keywordList: KeywordListModel, + isMyProfile: Boolean, + showInfoModal: Boolean, + onInfoClick: () -> Unit, onRefreshClick: () -> Unit, modifier: Modifier = Modifier, ) { + Column( modifier = modifier @@ -49,11 +62,24 @@ fun ProfileKeywordSection( modifier = Modifier.fillMaxWidth(), ) { Column { - Text( - text = "${nickname}님의 취향키워드", - style = FlintTheme.typography.head3Sb18, - color = FlintTheme.colors.white, - ) + Row(verticalAlignment = Alignment.CenterVertically) { + Text( + text = "${nickname}님의 취향키워드", + style = FlintTheme.typography.head3Sb18, + color = FlintTheme.colors.white, + ) + if (isMyProfile) { + Spacer(Modifier.width(4.dp)) + Icon( + painter = painterResource(R.drawable.ic_info), + contentDescription = "취향키워드 정보", + tint = FlintTheme.colors.gray300, + modifier = Modifier + .size(20.dp) + .noRippleClickable { onInfoClick() }, + ) + } + } Spacer(Modifier.height(4.dp)) Text( text = "${nickname}님이 관심있어하는 키워드예요", @@ -61,12 +87,25 @@ fun ProfileKeywordSection( color = FlintTheme.colors.gray100, ) } + if (isMyProfile) { + ProfileRefreshButton(onRefreshClick = onRefreshClick) + } } Spacer(Modifier.height(32.dp)) - KeywordChipsGridLayout( - keywordList = keywordList.keywords, - modifier = Modifier.fillMaxWidth(), - ) + Box { + KeywordChipsGridLayout( + keywordList = keywordList.keywords, + modifier = Modifier.fillMaxWidth(), + ) + if (isMyProfile && showInfoModal) { + InfoModalTrigger( + text = "저장한 작품들에서 반복되는 키워드를 분석해 취향 키워드를 만들어요. 10개 이상 작품이 쌓이면 업데이트할 수 있어요.", + modifier = Modifier + .fillMaxWidth() + .offset(y = (-20).dp), + ) + } + } } } @@ -192,6 +231,9 @@ private fun ProfileKeywordSectionPreview() { nickname = "안두콩", keywordList = KeywordListModel.FakeList3, modifier = Modifier.fillMaxSize(), + isMyProfile = true, + showInfoModal = false, + onInfoClick = {}, onRefreshClick = {}, ) } From 53c98f16b8a5e2ab0d328916145266cb24fe9ed9 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sun, 10 May 2026 18:46:02 +0900 Subject: [PATCH 4/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EA=B7=B8=EB=9E=98=ED=94=84=20?= =?UTF-8?q?=EA=B7=B8=EB=9D=BC=EB=8D=B0=EC=9D=B4=EC=85=98=20=EC=B6=94?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../component/ProfileKeywordGraphItem.kt | 53 +++++++++++++++---- 1 file changed, 42 insertions(+), 11 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt index c3af37e6..f381978b 100644 --- a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt +++ b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt @@ -1,6 +1,7 @@ package com.flint.presentation.profile.component import androidx.compose.foundation.background +import androidx.compose.foundation.border import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.Row @@ -20,6 +21,9 @@ import androidx.compose.runtime.Composable import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip +import androidx.compose.ui.geometry.Offset +import androidx.compose.ui.graphics.Brush +import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp @@ -80,20 +84,47 @@ private fun ProfileKeywordProgressBar( percent: Float, modifier: Modifier = Modifier, ) { + val shape = RoundedCornerShape(4.dp) + + // Track: #4F5669, stop 20%→100% alpha, 레이어 전체 44% opacity + val trackBrush = Brush.linearGradient( + colors = listOf( + Color(0xFF4F5669).copy(alpha = 0.20f * 0.44f), + Color(0xFF4F5669).copy(alpha = 0.44f), + ) + ) + + // Fill: 키워드 색상, stop 20%→100% alpha + val fillBrush = Brush.linearGradient( + colors = listOf( + preferenceType.color.copy(alpha = 0.20f), + preferenceType.color, + ) + ) + + // Border: white→transparent, 상→하 방향 (유리 효과 - 오른쪽 끝까지 border 보임) + val borderBrush = Brush.linearGradient( + colors = listOf( + Color.White.copy(alpha = 0.30f), + Color.Transparent, + ), + start = Offset(0f, 0f), + end = Offset(0f, Float.POSITIVE_INFINITY), + ) + Box( - modifier = - modifier - .height(12.dp) - .clip(RoundedCornerShape(4.dp)) - .background(FlintTheme.colors.gray500), + modifier = modifier + .height(12.dp) + .background(trackBrush, shape) + .border(1.dp, borderBrush, shape) + .clip(shape), ) { Box( - modifier = - Modifier - .fillMaxWidth(percent) - .fillMaxHeight() - .clip(RoundedCornerShape(4.dp)) - .background(preferenceType.color), + modifier = Modifier + .fillMaxWidth(percent) + .fillMaxHeight() + .clip(shape) + .background(fillBrush), ) } } From b15513f98bb42fddfaf090dba08956924299f719 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sun, 10 May 2026 19:30:46 +0900 Subject: [PATCH 5/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EA=B7=B8=EB=9E=98=ED=94=84=20?= =?UTF-8?q?=EC=B6=94=EA=B0=80=20=EB=B0=8F=20=EC=83=81=EC=9C=84=203?= =?UTF-8?q?=EA=B0=9C=20=ED=95=AD=EB=AA=A9=20=EB=85=B8=EC=B6=9C=20=EC=A0=9C?= =?UTF-8?q?=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flint/domain/model/user/KeywordListModel.kt | 14 ++++++++++---- .../profile/component/ProfileKeywordSection.kt | 11 ++++++++--- 2 files changed, 18 insertions(+), 7 deletions(-) diff --git a/app/src/main/java/com/flint/domain/model/user/KeywordListModel.kt b/app/src/main/java/com/flint/domain/model/user/KeywordListModel.kt index 0cc2c890..876ed9f0 100644 --- a/app/src/main/java/com/flint/domain/model/user/KeywordListModel.kt +++ b/app/src/main/java/com/flint/domain/model/user/KeywordListModel.kt @@ -11,34 +11,40 @@ data class KeywordListModel( val FakeList1 = KeywordListModel( keywords = persistentListOf( KeywordItemModel( - name = "추리", + name = "애니메이션", color = "BLUE", - rank = 1 + rank = 1, + percentage = 75f, ), KeywordItemModel( name = "슬픈", color = "GREEN", - rank = 4 + rank = 4, + percentage = 35f, ), KeywordItemModel( name = "SF", color = "PINK", rank = 2, + percentage = 60f, ), KeywordItemModel( name = "액션", color = "ORANGE", rank = 5, + percentage = 25f, ), KeywordItemModel( - name = "슬픈", + name = "몽환적인", color = "YELLOW", rank = 3, + percentage = 48f, ), KeywordItemModel( name = "성장", color = "YELLOW", rank = 6, + percentage = 15f, ), ) ) diff --git a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt index 03e09b70..a680ff66 100644 --- a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt +++ b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt @@ -2,7 +2,6 @@ package com.flint.presentation.profile.component import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.fillMaxHeight import androidx.compose.foundation.layout.offset import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row @@ -106,6 +105,12 @@ fun ProfileKeywordSection( ) } } + + Spacer(Modifier.height(32.dp)) + KeywordGraphLayout( + keywordList = keywordList.keywords, + modifier = Modifier.fillMaxWidth(), + ) } } @@ -181,10 +186,10 @@ private fun KeywordGraphLayout( modifier: Modifier = Modifier, ) { Column( - modifier = modifier.fillMaxWidth(), + modifier = modifier, verticalArrangement = Arrangement.spacedBy(16.dp), ) { - keywordList.forEach { + keywordList.take(3).forEach { with(it) { ProfileKeywordGraphItem( keyword = name, From 5b4e0fb328e4606e3c26e00ec648ca16b02f9069 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sun, 10 May 2026 19:52:20 +0900 Subject: [PATCH 6/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EC=84=B9=EC=85=98=20=EB=A0=88?= =?UTF-8?q?=EC=9D=B4=EC=95=84=EC=9B=83=20=EB=B0=8F=20=EA=B0=84=EA=B2=A9=20?= =?UTF-8?q?=EC=A1=B0=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/profile/component/ProfileKeywordSection.kt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt index a680ff66..9090f308 100644 --- a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt +++ b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordSection.kt @@ -186,8 +186,8 @@ private fun KeywordGraphLayout( modifier: Modifier = Modifier, ) { Column( - modifier = modifier, - verticalArrangement = Arrangement.spacedBy(16.dp), + modifier = modifier.fillMaxWidth(), + verticalArrangement = Arrangement.spacedBy(12.dp), ) { keywordList.take(3).forEach { with(it) { From 13e23d411018bda4b0967a3b1192368bcdb022f0 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Sun, 10 May 2026 20:00:12 +0900 Subject: [PATCH 7/9] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=ED=95=84=20?= =?UTF-8?q?=ED=82=A4=EC=9B=8C=EB=93=9C=20=EA=B7=B8=EB=9E=98=ED=94=84=20?= =?UTF-8?q?=ED=8D=BC=EC=84=BC=ED=8A=B8=20=EA=B0=92=20=EB=B2=94=EC=9C=84=20?= =?UTF-8?q?=EC=A0=9C=ED=95=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../presentation/profile/component/ProfileKeywordGraphItem.kt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt index f381978b..ee7797f6 100644 --- a/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt +++ b/app/src/main/java/com/flint/presentation/profile/component/ProfileKeywordGraphItem.kt @@ -84,6 +84,7 @@ private fun ProfileKeywordProgressBar( percent: Float, modifier: Modifier = Modifier, ) { + val safePercent = percent.coerceIn(0f, 1f) val shape = RoundedCornerShape(4.dp) // Track: #4F5669, stop 20%→100% alpha, 레이어 전체 44% opacity @@ -121,7 +122,7 @@ private fun ProfileKeywordProgressBar( ) { Box( modifier = Modifier - .fillMaxWidth(percent) + .fillMaxWidth(safePercent) .fillMaxHeight() .clip(shape) .background(fillBrush), From e387a81293228bb9f3d399ae05a934bbb5b9dc9b Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 12 May 2026 15:09:51 +0900 Subject: [PATCH 8/9] =?UTF-8?q?fix:=20InfoModalTrigger=20=EB=82=B4=20Flint?= =?UTF-8?q?Theme=20=EA=B8=B0=EB=B0=98=20=EC=83=89=EC=83=81=20=EC=8B=9C?= =?UTF-8?q?=EC=8A=A4=ED=85=9C=20=EC=A0=81=EC=9A=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flint/presentation/profile/component/InfoModalTrigger.kt | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt b/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt index ecf73436..cd021018 100644 --- a/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt +++ b/app/src/main/java/com/flint/presentation/profile/component/InfoModalTrigger.kt @@ -11,7 +11,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.tooling.preview.Preview import androidx.compose.ui.unit.dp -import com.flint.core.designsystem.theme.FlintColors import com.flint.core.designsystem.theme.FlintTheme @Composable @@ -23,7 +22,7 @@ fun InfoModalTrigger( contentAlignment = Alignment.Center, modifier = modifier .background( - color = FlintColors.gray800, + color = FlintTheme.colors.gray800, shape = RoundedCornerShape(size = 12.dp), ) .padding(horizontal = 12.dp, vertical = 14.dp), @@ -31,7 +30,7 @@ fun InfoModalTrigger( Text( text = text, style = FlintTheme.typography.body2R14, - color = FlintColors.gray300, + color = FlintTheme.colors.gray300, ) } } From cbcff1ecf5d4a7e9e929f5ac5a8014c3ded7a232 Mon Sep 17 00:00:00 2001 From: ckals413 Date: Tue, 12 May 2026 15:36:11 +0900 Subject: [PATCH 9/9] =?UTF-8?q?fix:=20=EB=A7=88=EC=9D=B4=ED=8E=98=EC=9D=B4?= =?UTF-8?q?=EC=A7=80=EC=97=90=EC=84=9C=20=EB=92=A4=EB=A1=9C=EA=B0=80?= =?UTF-8?q?=EA=B8=B0=20=EC=95=84=EC=9D=B4=EC=BD=98=20=EB=85=B8=EC=B6=9C?= =?UTF-8?q?=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8F=84=EB=A1=9D=20=EC=88=98?= =?UTF-8?q?=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../flint/presentation/profile/ProfileScreen.kt | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt b/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt index da91d2f8..be81142f 100644 --- a/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt +++ b/app/src/main/java/com/flint/presentation/profile/ProfileScreen.kt @@ -268,12 +268,14 @@ private fun ProfileScreen( FlintBasicTopAppbar( backgroundColor = Color.Transparent, navigationIcon = { - Icon( - imageVector = ImageVector.vectorResource(R.drawable.ic_back), - contentDescription = null, - tint = FlintTheme.colors.white, - modifier = Modifier.noRippleClickable { onBackClick() }, - ) + if (uiState.userId != null) { + Icon( + imageVector = ImageVector.vectorResource(R.drawable.ic_back), + contentDescription = null, + tint = FlintTheme.colors.white, + modifier = Modifier.noRippleClickable { onBackClick() }, + ) + } }, action = { if (uiState.userId == null) {