class MaskEdgeDecorator : NavEntryDecorator( decorate = { entry -> val clip by with(LocalNavAnimatedContentScope.current) { val parent = transition.parentTransition val current = parent?.currentState as? Scene<*>? val next = parent?.targetState as? Scene<*>? val currentlyPopped = current?.entries?.lastOrNull()?.contentKey == entry.contentKey && (next == null || current.previousEntries.size > next.previousEntries.size) if (!currentlyPopped) return@with mutableStateOf(0.dp) transition.animateDp { when (it) { EnterExitState.PreEnter -> 0.dp EnterExitState.Visible -> 0.dp EnterExitState.PostExit -> 64.dp } } } Column(modifier = Modifier.clip(RoundedCornerShape(clip))) { Text(clip.toString()) // just for debugging entry.Content() } }, ) @Composable fun rememberMaskEdgeDecorator() = remember { MaskEdgeDecorator() }