VerticalSplitPane

fun VerticalSplitPane(split: Float, onSplitChange: (Float) -> Unit, modifier: Modifier = Modifier, minSplit: Float = SplitPaneDefaults.MIN_SPLIT, maxSplit: Float = SplitPaneDefaults.MAX_SPLIT, keyboardStep: Float = SplitPaneDefaults.KEYBOARD_STEP, labels: SplitPaneLabels = SplitPaneLabels(splitDescription = { "${(it * PERCENT).roundToInt()}% top pane" }), top: @Composable () -> Unit, bottom: @Composable () -> Unit)

Two panes stacked vertically with a draggable divider, such as an editor above a console. split is the top pane's share of the height, kept between minSplit and maxSplit.

The divider can be dragged, moved with the Up/Down arrow keys by keyboardStep when focused, and adjusted by screen readers like a slider. The handle reserves Material's minimum touch target height. Drag deltas accumulate locally so callbacks stay consistent when the caller applies updates late; the visible panes follow split. On desktop it shows a vertical resize cursor.