# ThreePaneScaffoldScope

Artifact: [androidx.compose.material3.adaptive:adaptive-layout](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive) [View Source](https://cs.android.com/search?q=file:androidx/compose/material3/adaptive/layout/ThreePaneScaffoldScope.kt+class:androidx.compose.material3.adaptive.layout.ThreePaneScaffoldScope) Added in [1.0.0](https://developer.android.com/jetpack/androidx/releases/compose-material3-adaptive#1.0.0) Common/All
- Cmn

  ```
  @ExperimentalMaterial3AdaptiveApi
  sealed interface ThreePaneScaffoldScope : ExtendedPaneScaffoldScope<ThreePaneScaffoldRole, ThreePaneScaffoldValue>
  ```
Known direct subclasses [ThreePaneScaffoldPaneScope](https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffoldPaneScope)

|---|---|
| `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffoldPaneScope` | Scope for the panes of `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/package-summary#ThreePaneScaffold(androidx.compose.ui.Modifier,androidx.compose.material3.adaptive.layout.PaneScaffoldDirective,androidx.compose.material3.adaptive.layout.ThreePaneScaffoldValue,androidx.compose.material3.adaptive.layout.ThreePaneScaffoldHorizontalOrder,kotlin.Function1,kotlin.Function1,androidx.compose.material3.adaptive.layout.PaneExpansionState,kotlin.Function2,kotlin.Function1)`. |

*** ** * ** ***

Scope for the panes of `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/package-summary#ThreePaneScaffold(androidx.compose.ui.Modifier,androidx.compose.material3.adaptive.layout.PaneScaffoldDirective,androidx.compose.material3.adaptive.layout.ThreePaneScaffoldValue,androidx.compose.material3.adaptive.layout.ThreePaneScaffoldHorizontalOrder,kotlin.Function1,kotlin.Function1,androidx.compose.material3.adaptive.layout.PaneExpansionState,kotlin.Function2,kotlin.Function1)`.

## Summary

### Inherited functions

From [androidx.compose.ui.layout.LookaheadScope](https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope) `open https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset` `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates.https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope#(androidx.compose.ui.layout.LayoutCoordinates).localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Offset,kotlin.Boolean)(
sourceCoordinates: https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates,
relativeToSource: https://developer.android.com/reference/kotlin/androidx/compose/ui/geometry/Offset,
includeMotionFrameOfReference: https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html
)`

Converts `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope#(androidx.compose.ui.layout.LayoutCoordinates).localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Offset,kotlin.Boolean)` in `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope#(androidx.compose.ui.layout.LayoutCoordinates).localLookaheadPositionOf(androidx.compose.ui.layout.LayoutCoordinates,androidx.compose.ui.geometry.Offset,kotlin.Boolean)`'s lookahead coordinate space into local lookahead coordinates.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates.https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope#(androidx.compose.ui.layout.LayoutCoordinates).toLookaheadCoordinates()()`

Converts a `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` into a `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` in the Lookahead coordinate space.
Cmn From [androidx.compose.material3.adaptive.layout.PaneScaffoldScope](https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope) `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).paneExpansionDraggable(androidx.compose.material3.adaptive.layout.PaneExpansionState,androidx.compose.ui.unit.Dp,androidx.compose.foundation.interaction.MutableInteractionSource,kotlin.Function1)(
state: https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneExpansionState,
minTouchTargetSize: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp,
interactionSource: https://developer.android.com/reference/kotlin/androidx/compose/foundation/interaction/MutableInteractionSource,
semanticsProperties: (https://developer.android.com/reference/kotlin/androidx/compose/ui/semantics/SemanticsPropertyReceiver.() -> https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)?
)`

The modifier that should be applied on a drag handle composable so the drag handle can be dragged and operate on the provided `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneExpansionState` properly.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `@https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/ExperimentalMaterial3AdaptiveApi
@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable
https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).paneMargins(kotlin.Array)(vararg insets: https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RectRulers)`

This modifier specifies the associated pane's margins according to the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RectRulers` as insets.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `@https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/ExperimentalMaterial3AdaptiveApi
@https://developer.android.com/reference/kotlin/androidx/compose/runtime/Composable
https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).paneMargins(androidx.compose.foundation.layout.PaddingValues,kotlin.Array)(
fixedMargins: https://developer.android.com/reference/kotlin/androidx/compose/foundation/layout/PaddingValues,
vararg insets: https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RectRulers
)`

This modifier specifies the associated pane's margins according to specified fixed margins and the provided `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/RectRulers` as insets, if any.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).preferredHeight(androidx.compose.ui.unit.Dp)(height: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)`

This modifier specifies the preferred height for a pane in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`s, and the pane scaffold implementation will try its best to respect this height when the associated pane is rendered as a reflowed or a levitated pane.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).preferredHeight(kotlin.Float)(
proportion: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html
)`

This modifier specifies the preferred height for a pane as a proportion of the overall scaffold height.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).preferredWidth(kotlin.Float)(proportion: @https://developer.android.com/reference/kotlin/androidx/annotation/FloatRange(from = 0.0, to = 1.0) https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html)`

This modifier specifies the preferred width for a pane as a proportion of the overall scaffold width.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier` `https://developer.android.com/reference/kotlin/androidx/compose/ui/Modifier.https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#(androidx.compose.ui.Modifier).preferredWidth(androidx.compose.ui.unit.Dp)(width: https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp)`

This modifier specifies the preferred width for a pane in `https://developer.android.com/reference/kotlin/androidx/compose/ui/unit/Dp`s, and the pane scaffold implementation will try its best to respect this width when the associated pane is rendered as a fixed pane, i.e., a pane that are not stretching to fill the remaining spaces.
Cmn

### Inherited properties

From [androidx.compose.material3.adaptive.layout.ExtendedPaneScaffoldScope](https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ExtendedPaneScaffoldScope) `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin.collections/-map/index.html<https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffoldRole, https://developer.android.com/reference/kotlin/androidx/compose/ui/focus/FocusRequester>` `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ExtendedPaneScaffoldScope#focusRequesters()` Cmn From [androidx.compose.ui.layout.LookaheadScope](https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope) `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/Placeable.PlacementScope.https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope#(androidx.compose.ui.layout.Placeable.PlacementScope).lookaheadScopeCoordinates()`

Returns the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LayoutCoordinates` of the `https://developer.android.com/reference/kotlin/androidx/compose/ui/layout/LookaheadScope`.
Cmn From [androidx.compose.material3.adaptive.layout.PaneScaffoldScope](https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope) `https://developer.android.com/reference/kotlin/androidx/compose/runtime/saveable/SaveableStateHolder` `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldScope#saveableStateHolder()`

The saveable state holder to save pane states across their visibility life-cycles.
Cmn From [androidx.compose.material3.adaptive.layout.PaneScaffoldTransitionScope](https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldTransitionScope) `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldMotionDataProvider<https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffoldRole>` `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldTransitionScope#motionDataProvider()`

Provides measurement and other data required in motion calculation like the size and offset of each pane before and after the motion.
Cmn `https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-float/index.html` `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldTransitionScope#motionProgress()`

The current motion progress.
Cmn `https://developer.android.com/reference/kotlin/androidx/compose/animation/core/Transition<https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/ThreePaneScaffoldValue>` `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldTransitionScope#scaffoldStateTransition()`

The current scaffold state transition between `https://developer.android.com/reference/kotlin/androidx/compose/material3/adaptive/layout/PaneScaffoldValue`s.
Cmn