Skip to content

Commit

Permalink
Divider 제작 (#16)
Browse files Browse the repository at this point in the history
* add : width를 nullable로 하는 버전 생성

* add : fillMaxWidth인 divider와 너비를 지정할 수 있는 Divider분리

* chore : 프리뷰수정

* chore : 리뷰 반영
  • Loading branch information
Gael-Android authored Jan 19, 2025
1 parent e342649 commit e39245a
Show file tree
Hide file tree
Showing 6 changed files with 152 additions and 0 deletions.
16 changes: 16 additions & 0 deletions .idea/deploymentTargetSelector.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 6 additions & 0 deletions .idea/git_toolbox_blame.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

21 changes: 21 additions & 0 deletions .idea/gradle.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

13 changes: 13 additions & 0 deletions .idea/runConfigurations.xml

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

31 changes: 31 additions & 0 deletions app/src/main/kotlin/com/yourssu/handy/demo/DividerPreview.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
package com.yourssu.handy.demo

import androidx.compose.foundation.layout.Column
import androidx.compose.runtime.Composable
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import com.yourssu.handy.compose.Divider
import com.yourssu.handy.compose.DividerThickness
import com.yourssu.handy.compose.HandyTheme
import com.yourssu.handy.compose.Text

@Preview(showBackground = true)
@Composable
fun DividerExample() {
Column {
Text("Section 1")
Divider(
dividerThickness = DividerThickness.TWO,
width = 100.dp,
color = HandyTheme.colors.bgBasicBlack
)
Text("Section 2")
Divider(
dividerThickness = DividerThickness.FOUR,
width = 200.dp,
color = HandyTheme.colors.bgBasicBlack
)
Text("Section 3")
Divider(dividerThickness = DividerThickness.EIGHT, color = HandyTheme.colors.bgBasicBlack)
}
}
65 changes: 65 additions & 0 deletions compose/src/main/kotlin/com/yourssu/handy/compose/Divider.kt
Original file line number Diff line number Diff line change
@@ -0,0 +1,65 @@
package com.yourssu.handy.compose

import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.width
import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp

/**
* Divider의 두께를 정의하는 enum class
*/
enum class DividerThickness(
val size: Dp
) {
ONE(1.dp),
TWO(2.dp),
FOUR(4.dp),
EIGHT(8.dp),
}

/**
* width를 지정할 수 있는 Divider
* @param width Divider의 너비
* @param color Divider의 색상
* @param dividerThickness Divider의 두께
*/
@Composable
fun Divider(
dividerThickness: DividerThickness,
modifier: Modifier = Modifier,
width: Dp = 0.dp,
color: Color = HandyTheme.colors.bgBasicStrong,
) {
Box(
modifier = modifier
.width(width)
.height(dividerThickness.size)
.background(color)
)
}

/**
* width를 지정할 수 없는 Divider
* 기본적으로 fillMaxWidth를 사용
* @param color Divider의 색상
* @param dividerThickness Divider의 두께
*/
@Composable
fun Divider(
dividerThickness: DividerThickness,
modifier: Modifier = Modifier,
color: Color = HandyTheme.colors.bgBasicStrong,
) {
Box(
modifier = modifier
.fillMaxWidth()
.height(dividerThickness.size)
.background(color)
)
}

0 comments on commit e39245a

Please sign in to comment.