Skip to content

Commit fae767b

Browse files
committed
Feat: 로그인 화면 그래픽 적용
1 parent d1b1450 commit fae767b

1 file changed

Lines changed: 69 additions & 13 deletions

File tree

  • presentation/src/main/java/com/threegap/bitnagil/presentation/login

presentation/src/main/java/com/threegap/bitnagil/presentation/login/LoginScreen.kt

Lines changed: 69 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,35 @@
11
package com.threegap.bitnagil.presentation.login
22

3+
import androidx.compose.foundation.Image
34
import androidx.compose.foundation.background
5+
import androidx.compose.foundation.layout.Arrangement
46
import androidx.compose.foundation.layout.Box
7+
import androidx.compose.foundation.layout.Column
8+
import androidx.compose.foundation.layout.Row
9+
import androidx.compose.foundation.layout.Spacer
10+
import androidx.compose.foundation.layout.aspectRatio
511
import androidx.compose.foundation.layout.fillMaxSize
12+
import androidx.compose.foundation.layout.fillMaxWidth
13+
import androidx.compose.foundation.layout.height
614
import androidx.compose.foundation.layout.padding
7-
import androidx.compose.material3.Button
15+
import androidx.compose.foundation.shape.RoundedCornerShape
816
import androidx.compose.material3.Text
917
import androidx.compose.runtime.Composable
1018
import androidx.compose.ui.Alignment
1119
import androidx.compose.ui.Modifier
12-
import androidx.compose.ui.graphics.Color
20+
import androidx.compose.ui.layout.ContentScale
1321
import androidx.compose.ui.platform.LocalContext
22+
import androidx.compose.ui.platform.LocalDensity
23+
import androidx.compose.ui.platform.LocalWindowInfo
24+
import androidx.compose.ui.res.painterResource
25+
import androidx.compose.ui.text.style.TextAlign
1426
import androidx.compose.ui.tooling.preview.Preview
1527
import androidx.compose.ui.unit.dp
1628
import androidx.hilt.navigation.compose.hiltViewModel
1729
import com.threegap.bitnagil.designsystem.BitnagilTheme
30+
import com.threegap.bitnagil.designsystem.R
31+
import com.threegap.bitnagil.designsystem.component.atom.BitnagilIcon
32+
import com.threegap.bitnagil.designsystem.modifier.clickableWithoutRipple
1833
import com.threegap.bitnagil.presentation.login.kakao.KakaoLoginHandlerImpl
1934
import com.threegap.bitnagil.presentation.login.model.LoginSideEffect
2035
import org.orbitmvi.orbit.compose.collectSideEffect
@@ -59,25 +74,66 @@ private fun LoginScreen(
5974
onKakaoLoginClick: () -> Unit,
6075
modifier: Modifier = Modifier,
6176
) {
62-
Box(
77+
val windowInfo = LocalWindowInfo.current
78+
val screenHeight = with(LocalDensity.current) {
79+
windowInfo.containerSize.height.toDp()
80+
}
81+
82+
Column(
83+
horizontalAlignment = Alignment.CenterHorizontally,
6384
modifier = modifier
6485
.fillMaxSize()
65-
.background(Color.White),
86+
.background(BitnagilTheme.colors.white),
6687
) {
88+
Spacer(modifier = Modifier.height(screenHeight * 0.0748f))
89+
6790
Text(
68-
text = "빛나길 로고",
69-
modifier = Modifier.align(Alignment.Center),
91+
text = "빛나길에 오신걸 환영해요!",
92+
color = BitnagilTheme.colors.navy500,
93+
style = BitnagilTheme.typography.title2Bold,
94+
textAlign = TextAlign.Center,
95+
modifier = Modifier.fillMaxWidth(),
96+
)
97+
98+
Spacer(modifier = Modifier.height(screenHeight * 0.185f))
99+
100+
Image(
101+
painter = painterResource(R.drawable.intro_character),
102+
contentDescription = null,
103+
contentScale = ContentScale.Fit,
104+
modifier = Modifier
105+
.padding(50.dp)
106+
.aspectRatio(260f / 295f),
70107
)
71108

72-
Button(
73-
onClick = onKakaoLoginClick,
109+
Spacer(modifier = Modifier.weight(1f))
110+
111+
Box(
74112
modifier = Modifier
75-
.align(Alignment.BottomCenter)
76-
.padding(20.dp),
113+
.padding(start = 16.dp, end = 16.dp, bottom = 20.dp)
114+
.clickableWithoutRipple { onKakaoLoginClick() }
115+
.background(
116+
color = BitnagilTheme.colors.kakao,
117+
shape = RoundedCornerShape(12.dp)
118+
)
119+
.fillMaxWidth()
120+
.padding(vertical = 18.dp),
121+
contentAlignment = Alignment.Center
122+
77123
) {
78-
Text(
79-
text = "카카오 로그인버튼",
80-
)
124+
Row(
125+
verticalAlignment = Alignment.CenterVertically,
126+
horizontalArrangement = Arrangement.spacedBy(8.dp)
127+
) {
128+
BitnagilIcon(
129+
id = R.drawable.ic_kakao_login,
130+
)
131+
Text(
132+
text = "카카오로 시작하기",
133+
color = BitnagilTheme.colors.black,
134+
style = BitnagilTheme.typography.button2
135+
)
136+
}
81137
}
82138
}
83139
}

0 commit comments

Comments
 (0)