Skip to content

Commit b9e6800

Browse files
committed
style(ui/components): add themed RadioButton and Checkbox; update disabled states for ToggleSwitch
Signed-off-by: Brandon McAnsh <git@bmcreations.dev>
1 parent b0a0026 commit b9e6800

3 files changed

Lines changed: 84 additions & 3 deletions

File tree

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package com.getcode.ui.theme
2+
3+
import androidx.compose.foundation.interaction.MutableInteractionSource
4+
import androidx.compose.material.ContentAlpha
5+
import androidx.compose.material3.Checkbox
6+
import androidx.compose.material3.CheckboxColors
7+
import androidx.compose.material3.CheckboxDefaults
8+
import androidx.compose.runtime.Composable
9+
import androidx.compose.ui.Modifier
10+
import androidx.compose.ui.graphics.Color
11+
import com.getcode.theme.White
12+
import com.getcode.theme.White50
13+
14+
object CodeCheckboxDefaults {
15+
16+
val colors: CheckboxColors
17+
@Composable get() = CheckboxDefaults.colors(
18+
checkedColor = White,
19+
uncheckedColor = White50,
20+
checkmarkColor = Color.Black,
21+
disabledCheckedColor = White.copy(ContentAlpha.disabled),
22+
disabledUncheckedColor = White50.copy(ContentAlpha.disabled),
23+
)
24+
}
25+
26+
@Composable
27+
fun CodeCheckbox(
28+
checked: Boolean,
29+
onCheckedChange: ((Boolean) -> Unit)?,
30+
modifier: Modifier = Modifier,
31+
enabled: Boolean = true,
32+
interactionSource: MutableInteractionSource? = null,
33+
) {
34+
Checkbox(
35+
checked = checked,
36+
onCheckedChange = onCheckedChange,
37+
modifier = modifier,
38+
enabled = enabled,
39+
colors = CodeCheckboxDefaults.colors,
40+
interactionSource = interactionSource,
41+
)
42+
}
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
package com.getcode.ui.theme
2+
3+
import androidx.compose.foundation.interaction.MutableInteractionSource
4+
import androidx.compose.material.ContentAlpha
5+
import androidx.compose.material3.RadioButton
6+
import androidx.compose.material3.RadioButtonColors
7+
import androidx.compose.material3.RadioButtonDefaults
8+
import androidx.compose.runtime.Composable
9+
import androidx.compose.ui.Modifier
10+
import com.getcode.theme.White
11+
import com.getcode.theme.White50
12+
13+
object CodeRadioButtonDefaults {
14+
val colors: RadioButtonColors
15+
@Composable get() = RadioButtonDefaults.colors(
16+
selectedColor = White,
17+
unselectedColor = White50,
18+
disabledSelectedColor = White.copy(ContentAlpha.disabled),
19+
disabledUnselectedColor = White50.copy(ContentAlpha.disabled),
20+
)
21+
}
22+
23+
@Composable
24+
fun CodeRadioButton(
25+
selected: Boolean,
26+
onClick: (() -> Unit)?,
27+
modifier: Modifier = Modifier,
28+
enabled: Boolean = true,
29+
interactionSource: MutableInteractionSource? = null,
30+
) {
31+
RadioButton(
32+
selected = selected,
33+
onClick = onClick,
34+
modifier = modifier,
35+
enabled = enabled,
36+
colors = CodeRadioButtonDefaults.colors,
37+
interactionSource = interactionSource,
38+
)
39+
}

ui/components/src/main/kotlin/com/getcode/ui/theme/CodeSwitch.kt

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ object CodeToggleSwitchDefaults {
2525

2626
val colors: SwitchColors
2727
@Composable get() = SwitchDefaults.colors(
28-
disabledCheckedThumbColor = White.copy(ContentAlpha.disabled),
29-
disabledUncheckedThumbColor = White.copy(ContentAlpha.disabled),
30-
disabledCheckedTrackColor = SystemGreen.copy(ContentAlpha.disabled),
28+
disabledCheckedThumbColor = Color(0xFFB2B9B5),
29+
disabledUncheckedThumbColor = Color(0xFFB2B9B5),
30+
disabledCheckedTrackColor = Color(0xFF2A8A4B),
3131
disabledUncheckedTrackColor = CodeTheme.colors.toggleUncheckedTrackColor.copy(ContentAlpha.disabled),
3232
checkedThumbColor = White,
3333
uncheckedThumbColor = White,

0 commit comments

Comments
 (0)