From 6d69eec8956c8b302880c045a375cddf771d4397 Mon Sep 17 00:00:00 2001 From: Sun Date: Tue, 31 Dec 2024 00:46:09 +0900 Subject: [PATCH 1/3] =?UTF-8?q?feat:=20Chip=20=EA=B5=AC=ED=98=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yourssu/handy/demo/ChipPreview.kt | 149 ++++++++++++++++++ .../kotlin/com/yourssu/handy/compose/Chip.kt | 104 ++++++++++++ 2 files changed, 253 insertions(+) create mode 100644 app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt create mode 100644 compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt diff --git a/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt b/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt new file mode 100644 index 00000000..82e92c13 --- /dev/null +++ b/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt @@ -0,0 +1,149 @@ +package com.yourssu.handy.demo + +import androidx.compose.foundation.background +import androidx.compose.foundation.layout.Arrangement +import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Modifier +import androidx.compose.ui.geometry.Size +import androidx.compose.ui.graphics.Color.Companion.White +import androidx.compose.ui.layout.VerticalAlignmentLine +import androidx.compose.ui.tooling.preview.Preview +import androidx.compose.ui.unit.dp +import com.yourssu.handy.compose.Chip +import com.yourssu.handy.compose.ChipSize +import com.yourssu.handy.compose.HandyTheme +import com.yourssu.handy.compose.icons.HandyIcons +import com.yourssu.handy.compose.icons.line.Cancel +import com.yourssu.handy.compose.icons.line.Close +import com.yourssu.handy.compose.icons.line.Crop +import com.yourssu.handy.compose.icons.line.InfoCircle + +@Preview +@Composable +fun ChipPreview() { + HandyTheme { + Column ( + modifier = Modifier + .background(White) + .padding(10.dp), + verticalArrangement = Arrangement.spacedBy(30.dp) + ) { + Row ( + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + Column ( + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Chip( + onCheckedChange = {}, + text = "Label", + checked = false + ) + + Chip( + onCheckedChange = {}, + text = "Label", + checked = true + ) + + Chip( + onCheckedChange = {}, + text = "Label", + enabled = false + ) + } + + Column ( + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Chip( + onCheckedChange = {}, + text = "Label", + leftIcon = HandyIcons.Line.InfoCircle, + rightIcon = HandyIcons.Line.Close, + checked = false + ) + + Chip( + onCheckedChange = {}, + text = "Label", + leftIcon = HandyIcons.Line.InfoCircle, + rightIcon = HandyIcons.Line.Close, + checked = true + ) + + Chip( + onCheckedChange = {}, + text = "Label", + leftIcon = HandyIcons.Line.InfoCircle, + rightIcon = HandyIcons.Line.Close, + enabled = false + ) + } + } + + Row ( + horizontalArrangement = Arrangement.spacedBy(10.dp) + ) { + Column ( + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Chip( + onCheckedChange = {}, + text = "Label", + sizeType = ChipSize.Small, + checked = false + ) + + Chip( + onCheckedChange = {}, + text = "Label", + sizeType = ChipSize.Small, + checked = true + ) + + Chip( + onCheckedChange = {}, + text = "Label", + sizeType = ChipSize.Small, + enabled = false + ) + } + + Column ( + verticalArrangement = Arrangement.spacedBy(10.dp) + ) { + Chip( + onCheckedChange = {}, + text = "Label", + sizeType = ChipSize.Small, + leftIcon = HandyIcons.Line.InfoCircle, + rightIcon = HandyIcons.Line.Close, + checked = false + ) + + Chip( + onCheckedChange = {}, + text = "Label", + sizeType = ChipSize.Small, + leftIcon = HandyIcons.Line.InfoCircle, + rightIcon = HandyIcons.Line.Close, + checked = true + ) + + Chip( + onCheckedChange = {}, + text = "Label", + sizeType = ChipSize.Small, + leftIcon = HandyIcons.Line.InfoCircle, + rightIcon = HandyIcons.Line.Close, + enabled = false + ) + } + } + } + } +} \ No newline at end of file diff --git a/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt b/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt new file mode 100644 index 00000000..197f4ebd --- /dev/null +++ b/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt @@ -0,0 +1,104 @@ +package com.yourssu.handy.compose + +import androidx.compose.foundation.layout.Row +import androidx.compose.foundation.layout.height +import androidx.compose.foundation.layout.padding +import androidx.compose.runtime.Composable +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.vector.ImageVector +import androidx.compose.ui.unit.Dp +import androidx.compose.ui.unit.dp +import com.yourssu.handy.compose.foundation.HandyTextStyle +import com.yourssu.handy.compose.foundation.HandyTypography + +sealed class ChipSize( + val height: Dp, + val iconSize: IconSize = IconSize.XS, + val horizontalPadding: Dp = 12.dp, + val round: Dp = 40.dp +) { + data object Small : ChipSize(height = 24.dp) + data object Medium : ChipSize(height = 32.dp) +} + +/** + * 정보를 입력하거나 선택하여 컨텐츠를 필터링할 수 있는 [Chip]입니다. + * + * @param onCheckedChange Chip의 선택 상태가 변경될 때 호출되는 함수 + * @param text Chip 내부 텍스트 + * @param sizeType Chip 사이즈 설정 : Small, Medium(Default) + * @param leftIcon Chip 내부 텍스트의 왼쪽에 표시되는 아이콘 + * @param rightIcon Chip 내부 텍스트의 오른쪽에 표시되는 아이콘 + * @param checked Chip의 선택 여부 + * @param enabled Chip의 활성화 여부 + */ +@Composable +fun Chip( + onCheckedChange: (Boolean) -> Unit, + modifier: Modifier = Modifier, + text: String, + sizeType: ChipSize = ChipSize.Medium, + leftIcon: ImageVector? = null, + rightIcon: ImageVector? = null, + checked: Boolean = false, + enabled: Boolean = true, +) { + val iconSize = sizeType.iconSize + val height = sizeType.height + val horizontalPadding = sizeType.horizontalPadding + val round = sizeType.round + + val typo = when { + checked -> HandyTypography.B3Sb14 + else -> HandyTypography.B3Rg14 + } + + val backgroundColor = when { + checked -> HandyTheme.colors.chipSelected + !enabled -> HandyTheme.colors.chipDisabled + else -> HandyTheme.colors.chipUnselected + } + + val contentColor = when { + checked -> HandyTheme.colors.textBrandPrimary + !enabled -> HandyTheme.colors.textBasicDisabled + else -> HandyTheme.colors.textBasicSecondary + } + + Surface( + checked = checked, + onCheckedChange = onCheckedChange, + modifier = modifier.height(height), + enabled = enabled, + rounding = round, + backgroundColor = backgroundColor, + contentColor = contentColor + ) { + Row( + modifier = Modifier.padding(horizontal = horizontalPadding), + verticalAlignment = Alignment.CenterVertically + ) { + leftIcon?.let { + Icon( + imageVector = leftIcon, + iconSize = iconSize, + modifier = Modifier.padding(end = 4.dp) + ) + } + + Text( + text = text, + style = typo, + ) + + rightIcon?.let { + Icon( + imageVector = rightIcon, + iconSize = iconSize, + modifier = Modifier.padding(start = 4.dp) + ) + } + } + } +} \ No newline at end of file From ce07b2f7dc6c8e3500ac51ae0729c566e2d6e1f8 Mon Sep 17 00:00:00 2001 From: sun Date: Tue, 14 Jan 2025 16:55:11 +0900 Subject: [PATCH 2/3] =?UTF-8?q?chore:=20=ED=8C=8C=EB=9D=BC=EB=AF=B8?= =?UTF-8?q?=ED=84=B0=EB=AA=85=20=EC=88=98=EC=A0=95,=20=EB=A6=AC=EB=B7=B0?= =?UTF-8?q?=20=EB=B0=98=EC=98=81,=20=EC=B9=A9=20=EA=B8=B0=EB=8A=A5=20?= =?UTF-8?q?=EB=B6=84=EB=A6=AC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yourssu/handy/demo/ChipPreview.kt | 26 +-- .../kotlin/com/yourssu/handy/compose/Chip.kt | 170 +++++++++++++++--- 2 files changed, 157 insertions(+), 39 deletions(-) diff --git a/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt b/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt index 82e92c13..05aa3c86 100644 --- a/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt +++ b/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt @@ -61,25 +61,25 @@ fun ChipPreview() { ) { Chip( onCheckedChange = {}, - text = "Label", - leftIcon = HandyIcons.Line.InfoCircle, - rightIcon = HandyIcons.Line.Close, + text = "안녕하세요 칩 테스트 입니다. 이래도 안 줄어?", + leadingIcon = HandyIcons.Line.InfoCircle, + trailingIcon = HandyIcons.Line.Close, checked = false ) Chip( onCheckedChange = {}, text = "Label", - leftIcon = HandyIcons.Line.InfoCircle, - rightIcon = HandyIcons.Line.Close, + leadingIcon = HandyIcons.Line.InfoCircle, + trailingIcon = HandyIcons.Line.Close, checked = true ) Chip( onCheckedChange = {}, text = "Label", - leftIcon = HandyIcons.Line.InfoCircle, - rightIcon = HandyIcons.Line.Close, + leadingIcon = HandyIcons.Line.InfoCircle, + trailingIcon = HandyIcons.Line.Close, enabled = false ) } @@ -120,8 +120,8 @@ fun ChipPreview() { onCheckedChange = {}, text = "Label", sizeType = ChipSize.Small, - leftIcon = HandyIcons.Line.InfoCircle, - rightIcon = HandyIcons.Line.Close, + leadingIcon = HandyIcons.Line.InfoCircle, + trailingIcon = HandyIcons.Line.Close, checked = false ) @@ -129,8 +129,8 @@ fun ChipPreview() { onCheckedChange = {}, text = "Label", sizeType = ChipSize.Small, - leftIcon = HandyIcons.Line.InfoCircle, - rightIcon = HandyIcons.Line.Close, + leadingIcon = HandyIcons.Line.InfoCircle, + trailingIcon = HandyIcons.Line.Close, checked = true ) @@ -138,8 +138,8 @@ fun ChipPreview() { onCheckedChange = {}, text = "Label", sizeType = ChipSize.Small, - leftIcon = HandyIcons.Line.InfoCircle, - rightIcon = HandyIcons.Line.Close, + leadingIcon = HandyIcons.Line.InfoCircle, + trailingIcon = HandyIcons.Line.Close, enabled = false ) } diff --git a/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt b/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt index 197f4ebd..bfa8f535 100644 --- a/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt +++ b/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt @@ -1,53 +1,56 @@ package com.yourssu.handy.compose +import androidx.compose.foundation.clickable +import androidx.compose.foundation.interaction.MutableInteractionSource import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.height import androidx.compose.foundation.layout.padding 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.vector.ImageVector +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.yourssu.handy.compose.foundation.HandyTextStyle import com.yourssu.handy.compose.foundation.HandyTypography -sealed class ChipSize( - val height: Dp, - val iconSize: IconSize = IconSize.XS, - val horizontalPadding: Dp = 12.dp, - val round: Dp = 40.dp -) { - data object Small : ChipSize(height = 24.dp) - data object Medium : ChipSize(height = 32.dp) +enum class ChipSize(val height: Dp) { + Small(24.dp), + Medium(32.dp) } /** - * 정보를 입력하거나 선택하여 컨텐츠를 필터링할 수 있는 [Chip]입니다. + * 컨텐츠를 필터링할 수 있는 [Chip]입니다. * - * @param onCheckedChange Chip의 선택 상태가 변경될 때 호출되는 함수 * @param text Chip 내부 텍스트 * @param sizeType Chip 사이즈 설정 : Small, Medium(Default) - * @param leftIcon Chip 내부 텍스트의 왼쪽에 표시되는 아이콘 - * @param rightIcon Chip 내부 텍스트의 오른쪽에 표시되는 아이콘 * @param checked Chip의 선택 여부 + * @param onCheckedChange Chip의 선택 상태가 변경이 필요할 때 호출되는 함수 + * @param leadingIcon Chip 내부 텍스트의 왼쪽에 표시되는 아이콘 + * @param trailingIcon Chip 내부 텍스트의 오른쪽에 표시되는 아이콘 + * @param leadingIconOnClick Chip 내부 leadingIcon 클릭 시 호출되는 함수 + * @param trailingIconOnClick Chip 내부 trailingIcon 클릭 시 호출되는 함수 * @param enabled Chip의 활성화 여부 */ @Composable fun Chip( - onCheckedChange: (Boolean) -> Unit, - modifier: Modifier = Modifier, text: String, + modifier: Modifier = Modifier, sizeType: ChipSize = ChipSize.Medium, - leftIcon: ImageVector? = null, - rightIcon: ImageVector? = null, checked: Boolean = false, + onCheckedChange: (Boolean) -> Unit = {}, + leadingIcon: ImageVector? = null, + trailingIcon: ImageVector? = null, + leadingIconOnClick: () -> Unit = {}, + trailingIconOnClick: () -> Unit = {}, enabled: Boolean = true, ) { - val iconSize = sizeType.iconSize val height = sizeType.height - val horizontalPadding = sizeType.horizontalPadding - val round = sizeType.round + val iconSize = ChipDefaults.iconSize + val horizontalPadding = ChipDefaults.horizontalPadding + val round = ChipDefaults.round val typo = when { checked -> HandyTypography.B3Sb14 @@ -79,26 +82,141 @@ fun Chip( modifier = Modifier.padding(horizontal = horizontalPadding), verticalAlignment = Alignment.CenterVertically ) { - leftIcon?.let { + leadingIcon?.let { Icon( - imageVector = leftIcon, + imageVector = leadingIcon, iconSize = iconSize, - modifier = Modifier.padding(end = 4.dp) + modifier = Modifier + .padding(end = 4.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + enabled = enabled, + onClick = leadingIconOnClick + ) ) } Text( text = text, style = typo, + maxLines = 1, + overflow = TextOverflow.Ellipsis ) - rightIcon?.let { + trailingIcon?.let { Icon( - imageVector = rightIcon, + imageVector = trailingIcon, iconSize = iconSize, - modifier = Modifier.padding(start = 4.dp) + modifier = Modifier + .padding(start = 4.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + enabled = enabled, + onClick = trailingIconOnClick + ) ) } } } -} \ No newline at end of file +} + + +/** + * 컨텐츠를 선택할 수 있는 [Chip]입니다. + * + * @param text Chip 내부 텍스트 + * @param sizeType Chip 사이즈 설정 : Small, Medium(Default) + * @param onClick Chip이 클릭될 때 호출되는 함수 + * @param leadingIcon Chip 내부 텍스트의 왼쪽에 표시되는 아이콘 + * @param trailingIcon Chip 내부 텍스트의 오른쪽에 표시되는 아이콘 + * @param leadingIconOnClick Chip 내부 leadingIcon 클릭 시 호출되는 함수 + * @param trailingIconOnClick Chip 내부 trailingIcon 클릭 시 호출되는 함수 + * @param enabled Chip의 활성화 여부 + */ +@Composable +fun Chip( + text: String, + modifier: Modifier = Modifier, + sizeType: ChipSize = ChipSize.Medium, + onClick: () -> Unit = {}, + leadingIcon: ImageVector? = null, + trailingIcon: ImageVector? = null, + leadingIconOnClick: () -> Unit = {}, + trailingIconOnClick: () -> Unit = {}, + enabled: Boolean = true, +) { + val height = sizeType.height + val iconSize = ChipDefaults.iconSize + val horizontalPadding = ChipDefaults.horizontalPadding + val round = ChipDefaults.round + val typo = HandyTypography.B3Rg14 + + val backgroundColor = when { + !enabled -> HandyTheme.colors.chipDisabled + else -> HandyTheme.colors.chipUnselected + } + + val contentColor = when { + !enabled -> HandyTheme.colors.textBasicDisabled + else -> HandyTheme.colors.textBasicSecondary + } + + Surface( + onClick = onClick, + modifier = modifier.height(height), + enabled = enabled, + rounding = round, + backgroundColor = backgroundColor, + contentColor = contentColor + ) { + Row( + modifier = Modifier.padding(horizontal = horizontalPadding), + verticalAlignment = Alignment.CenterVertically + ) { + leadingIcon?.let { + Icon( + imageVector = leadingIcon, + iconSize = iconSize, + modifier = Modifier + .padding(end = 4.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + enabled = enabled, + onClick = leadingIconOnClick + ) + ) + } + + Text( + text = text, + style = typo, + maxLines = 1, + overflow = TextOverflow.Ellipsis + ) + + trailingIcon?.let { + Icon( + imageVector = trailingIcon, + iconSize = iconSize, + modifier = Modifier + .padding(start = 4.dp) + .clickable( + interactionSource = remember { MutableInteractionSource() }, + indication = null, + enabled = enabled, + onClick = trailingIconOnClick + ) + ) + } + } + } +} + +object ChipDefaults { + val iconSize = IconSize.XS + val horizontalPadding = 12.dp + val round = 40.dp +} From bd1a39e31096433066662d186c12db45b37b3457 Mon Sep 17 00:00:00 2001 From: Sun Date: Wed, 15 Jan 2025 21:16:58 +0900 Subject: [PATCH 3/3] =?UTF-8?q?chore:=20=EC=A4=91=EB=B3=B5=20=EC=BD=94?= =?UTF-8?q?=EB=93=9C=20=EA=B0=9C=EC=84=A0,=20=ED=85=8D=EC=8A=A4=ED=8A=B8?= =?UTF-8?q?=20=EC=B6=9C=EB=A0=A5=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/yourssu/handy/demo/ChipPreview.kt | 2 +- .../kotlin/com/yourssu/handy/compose/Chip.kt | 66 +++++++++---------- 2 files changed, 32 insertions(+), 36 deletions(-) diff --git a/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt b/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt index 05aa3c86..217f3be1 100644 --- a/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt +++ b/app/src/main/kotlin/com/yourssu/handy/demo/ChipPreview.kt @@ -61,7 +61,7 @@ fun ChipPreview() { ) { Chip( onCheckedChange = {}, - text = "안녕하세요 칩 테스트 입니다. 이래도 안 줄어?", + text = "Label", leadingIcon = HandyIcons.Line.InfoCircle, trailingIcon = HandyIcons.Line.Close, checked = false diff --git a/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt b/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt index bfa8f535..ca664bab 100644 --- a/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt +++ b/compose/src/main/kotlin/com/yourssu/handy/compose/Chip.kt @@ -9,8 +9,8 @@ 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.graphics.vector.ImageVector -import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.Dp import androidx.compose.ui.unit.dp import com.yourssu.handy.compose.foundation.HandyTextStyle @@ -52,22 +52,9 @@ fun Chip( val horizontalPadding = ChipDefaults.horizontalPadding val round = ChipDefaults.round - val typo = when { - checked -> HandyTypography.B3Sb14 - else -> HandyTypography.B3Rg14 - } - - val backgroundColor = when { - checked -> HandyTheme.colors.chipSelected - !enabled -> HandyTheme.colors.chipDisabled - else -> HandyTheme.colors.chipUnselected - } - - val contentColor = when { - checked -> HandyTheme.colors.textBrandPrimary - !enabled -> HandyTheme.colors.textBasicDisabled - else -> HandyTheme.colors.textBasicSecondary - } + val typo = ChipStyles.getTypography(checked) + val backgroundColor = ChipStyles.getBackgroundColor(checked, enabled) + val contentColor = ChipStyles.getContentColor(checked, enabled) Surface( checked = checked, @@ -98,10 +85,8 @@ fun Chip( } Text( - text = text, - style = typo, - maxLines = 1, - overflow = TextOverflow.Ellipsis + text = if (text.length < 10) text else text.take(9) + "...", + style = typo ) trailingIcon?.let { @@ -151,17 +136,10 @@ fun Chip( val iconSize = ChipDefaults.iconSize val horizontalPadding = ChipDefaults.horizontalPadding val round = ChipDefaults.round - val typo = HandyTypography.B3Rg14 - - val backgroundColor = when { - !enabled -> HandyTheme.colors.chipDisabled - else -> HandyTheme.colors.chipUnselected - } - val contentColor = when { - !enabled -> HandyTheme.colors.textBasicDisabled - else -> HandyTheme.colors.textBasicSecondary - } + val typo = ChipStyles.getTypography(false) + val backgroundColor = ChipStyles.getBackgroundColor(false, enabled) + val contentColor = ChipStyles.getContentColor(false, enabled) Surface( onClick = onClick, @@ -191,10 +169,8 @@ fun Chip( } Text( - text = text, - style = typo, - maxLines = 1, - overflow = TextOverflow.Ellipsis + text = if (text.length < 10) text else text.take(9) + "...", + style = typo ) trailingIcon?.let { @@ -220,3 +196,23 @@ object ChipDefaults { val horizontalPadding = 12.dp val round = 40.dp } + +object ChipStyles { + fun getTypography(checked: Boolean): HandyTextStyle { + return if (checked) HandyTypography.B3Sb14 else HandyTypography.B3Rg14 + } + + @Composable + fun getBackgroundColor(checked: Boolean, enabled: Boolean): Color = when { + checked -> HandyTheme.colors.chipSelected + !enabled -> HandyTheme.colors.chipDisabled + else -> HandyTheme.colors.chipUnselected + } + + @Composable + fun getContentColor(checked: Boolean, enabled: Boolean): Color = when { + checked -> HandyTheme.colors.textBrandPrimary + !enabled -> HandyTheme.colors.textBasicDisabled + else -> HandyTheme.colors.textBasicSecondary + } +} \ No newline at end of file