HorizontalSplitPane

fun HorizontalSplitPane(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(), leading: @Composable () -> Unit, trailing: @Composable () -> Unit)

Two panes side by side with a draggable divider. split is the leading pane's share of the width, kept between minSplit and maxSplit; persist it if the layout should survive restarts.

The divider can be dragged, moved with the Left/Right arrow keys by keyboardStep when focused, and adjusted by screen readers like a slider. The handle reserves Material's minimum touch target width. Dragging and arrow keys move the divider in the indicated direction in both left-to-right and right-to-left layouts. Drag deltas accumulate locally so callbacks stay consistent when the caller applies updates late; the visible panes follow split. On desktop it shows a resize cursor.