OudsCheckboxItem
OUDS Checkbox design guidelines
Checkboxes are input controls that allow users to select one or more options from a number of choices.
The checkbox item variant can function as a simple input with a label, or it can be combined with optional elements such as helper text, a divider, or an icon, allowing it to suit various use cases.
The OUDS checkbox item layout contains an OudsCheckbox. By clicking on a checkbox item, the user changes the checked state of its checkbox.
In most cases, OUDS checkbox items span the entire width of the screen. Thus an horizontal padding of OudsTheme.grids.margin
is applied to the content. This behaviour can be disabled by calling com.orange.ouds.core.utilities.edgeToEdgePadding modifier with enabled
parameter set to false
.
Parameters
Controls checked state of the item's checkbox.
The main label of the checkbox item.
Callback invoked on checkbox item click. If null
, then this is passive and relies entirely on a higher-level component to control the checked state.
Modifier applied to the layout of the checkbox item.
Optional text displayed below the label.
Optional icon displayed in the item. By default, it has a trailing position. If reversed is set to true
, it is displayed as a leading element.
Controls the display of a divider at the bottom of the checkbox item.
When false
, the checkbox has a leading position and the optional icon has a trailing position. Otherwise, it is reversed.
Controls the enabled state of the checkbox item. When false
, the checkbox, the texts and the optional icon are disabled, and the item will not be clickable.
Controls the read only state of the checkbox item. When true
the item's checkbox is disabled but the texts and the icon remain in enabled color. Note that if it is set to true
and enabled is set to false
, the checkbox item will be displayed in disabled state.
Controls the error state of the checkbox item.
Optional hoisted MutableInteractionSource for observing and emitting Interactions for the item's checkbox. Note that if null
is provided, interactions will still happen internally.
See also
If you need an indeterminate state for the item's checkbox.
If you want to use a standalone checkbox without any other element.
Samples
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.state.ToggleableState
import com.orange.ouds.core.component.OudsCheckboxItem
import com.orange.ouds.core.component.OudsTriStateCheckboxItem
fun main() {
//sampleStart
var checked by remember { mutableStateOf(false) }
OudsCheckboxItem(
checked = checked,
label = "Terms of use",
helperText = "By checking this box, I acknowledge having read the conditions of use.",
onCheckedChange = { value -> checked = value },
divider = false
)
//sampleEnd
}