Skip to content

Slider

Slider is a basic interactive component in Miuix used for selecting values within a continuous range. Users can adjust values by dragging the slider, making it suitable for scenarios such as volume adjustment, brightness control, and progress display.

Import

kotlin
import top.yukonga.miuix.kmp.basic.Slider

Basic Usage

kotlin
var sliderValue by remember { mutableStateOf(0.5f) }

Slider(
    progress = sliderValue,
    onProgressChange = { sliderValue = it }
)

Component States

Disabled State

kotlin
var progress by remember { mutableStateOf(0.5f) }

Slider(
    progress = progress,
    onProgressChange = { progress = it },
    enabled = false
)

Haptic Feedback

Slider supports haptic feedback, which can be customized through the hapticEffect parameter. See SliderHapticEffect for details.

kotlin
var progress by remember { mutableStateOf(0.5f) }

Slider(
    progress = progress,
    onProgressChange = { progress = it },
    hapticEffect = SliderHapticEffect.Step
)

Properties

Slider Properties

Property NameTypeDescriptionDefault ValueRequired
progressFloatCurrent slider progress value-Yes
onProgressChange(Float) -> UnitCallback when progress value changes-Yes
modifierModifierModifier applied to the sliderModifierNo
enabledBooleanWhether the slider is enabledtrueNo
minValueFloatMinimum value of the slider0fNo
maxValueFloatMaximum value of the slider1fNo
heightDpHeight of the sliderSliderDefaults.MinHeightNo
colorsSliderColorsColor configuration of the sliderSliderDefaults.sliderColors()No
effectBooleanWhether to show special effectsfalseNo
decimalPlacesIntDecimal places shown in drag indicator2No
hapticEffectSliderDefaults.SliderHapticEffectType of haptic feedbackSliderDefaults.DefaultHapticEffectNo

SliderDefaults Object

The SliderDefaults object provides default configurations for the Slider component.

Constants

Constant NameTypeDefault ValueDescription
MinHeightDp30.dpDefault height of the slider
DefaultHapticEffectSliderHapticEffectSliderHapticEffect.EdgeDefault haptic feedback type

SliderHapticEffect

ValueDescription
NoneNo haptic feedback
EdgeHaptic feedback at 0% and 100%
StepHaptic feedback at each step

Methods

Method NameReturn TypeDescription
sliderColors()SliderColorsCreates default color configuration

SliderColors Class

Property NameTypeDescription
foregroundColorColorForeground color of the slider
disabledForegroundColorColorForeground color when disabled
backgroundColorColorBackground color of the slider

Advanced Usage

Custom Value Range

kotlin
var temperature by remember { mutableStateOf(25f) }

Column {
    Text("Temperature: $temperature°C")
    Slider(
        progress = temperature,
        onProgressChange = { temperature = it },
        minValue = 16f,
        maxValue = 32f
    )
}

Custom Colors

kotlin
var volume by remember { mutableStateOf(0.7f) }

Slider(
    progress = volume,
    onProgressChange = { volume = it },
    colors = SliderDefaults.sliderColors(
        foregroundColor = Color.Red,
        backgroundColor = Color.LightGray
    )
)

Custom Height and Effects

kotlin
var brightness by remember { mutableStateOf(0.8f) }

Slider(
    progress = brightness,
    onProgressChange = { brightness = it },
    height = 40.dp,
    effect = true
)

Slider with Haptic Feedback

kotlin
var progress by remember { mutableStateOf(0.5f) }

Slider(
    progress = progress,
    onProgressChange = { progress = it },
    hapticEffect = SliderDefaults.SliderHapticEffect.Step
)

Released under the Apache-2.0 License