Package-level declarations

Types

Link copied to clipboard
data class CircularReveal(highlightColor: Color, val animationSpec: InfiniteRepeatableSpec<Float>) : PlaceholderHighlight

A PlaceholderHighlight that draws a circular reveal effect.

Link copied to clipboard
data class Fade(highlightColor: Color, val animationSpec: InfiniteRepeatableSpec<Float>) : PlaceholderHighlight

A PlaceholderHighlight implementation that fades a solid color in and out.

Link copied to clipboard
data class LightReveal(highlightColor: Color, val animationSpec: InfiniteRepeatableSpec<Float>) : PlaceholderHighlight

A PlaceholderHighlight that draws a liquid, flowing shimmer effect.

Link copied to clipboard

Drives a single shared 0f..1f highlight animation that every descendant placeholder reads from, so a list of skeleton items shimmers as one coordinated wave instead of each cell ticking on its own clock.

Link copied to clipboard

Contains the default PlaceholderHighlight implementations for common placeholder effects.

Link copied to clipboard

Defines the visual highlight animation applied to a placeholder.

Link copied to clipboard
class PlaceholderTheme(val color: Color = Color.Gray.copy(alpha = 0.35f), val shape: Shape = RectangleShape, val highlight: PlaceholderHighlight? = PlaceholderDefaults.fade, val placeholderFadeTransitionSpec: () -> FiniteAnimationSpec<Float> = { spring() }, val contentFadeTransitionSpec: () -> FiniteAnimationSpec<Float> = { spring() })

Theme-level defaults for the placeholder modifier.

Link copied to clipboard
data class Pulse(highlightColor: Color, val animationSpec: InfiniteRepeatableSpec<Float>) : PlaceholderHighlight

A PlaceholderHighlight that pulses the highlight color in and out.

Link copied to clipboard
data class Shimmer(highlightColor: Color, val animationSpec: InfiniteRepeatableSpec<Float> = infiniteRepeatable( animation = tween(durationMillis = 650, easing = LinearEasing), ), intensity: Float = 0.0f, dropOff: Float = 0.5f, tilt: Float = 20.0f) : PlaceholderHighlight

A PlaceholderHighlight that applies a shimmer effect.

Properties

Link copied to clipboard

The default coordinator spec — a 1700ms linear cycle that loosely matches PlaceholderDefaults.shimmer's feel.

Link copied to clipboard

CompositionLocal carrying the active PlaceholderCoordinator, or null when no PlaceholderSurface wraps the current call site.

Link copied to clipboard

CompositionLocal that supplies the active PlaceholderTheme to descendant Modifier.placeholder calls. Defaults to PlaceholderTheme.Default.

Functions

Link copied to clipboard
fun materialPlaceholderTheme(color: Color = MaterialTheme.colorScheme.surfaceVariant, highlightColor: Color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.3f), shape: Shape = RectangleShape): PlaceholderTheme

Builds a PlaceholderTheme derived from the current MaterialTheme.

Link copied to clipboard
fun Modifier.placeholder(enabled: Boolean = true, color: Color = LocalPlaceholderTheme.current.color, shape: Shape = LocalPlaceholderTheme.current.shape, highlight: PlaceholderHighlight? = LocalPlaceholderTheme.current.highlight, placeholderFadeTransitionSpec: () -> FiniteAnimationSpec<Float> = LocalPlaceholderTheme.current.placeholderFadeTransitionSpec, contentFadeTransitionSpec: () -> FiniteAnimationSpec<Float> = LocalPlaceholderTheme.current.contentFadeTransitionSpec): Modifier

Draws a placeholder effect over content while it is loading.

Link copied to clipboard
fun PlaceholderSurface(animationSpec: InfiniteRepeatableSpec<Float> = DefaultPlaceholderCoordinatorSpec, content: @Composable () -> Unit)

Wraps content in a scope where every Modifier.placeholder(...) call shares a single PlaceholderCoordinator. Use this around a list, card grid, or any region where you want the shimmer to read as one synchronized motion.

Link copied to clipboard
fun Modifier.placeholderText(enabled: Boolean = true, lines: Int = 3, lastLineFraction: Float = 0.6f, style: TextStyle = LocalTextStyle.current, color: Color = LocalPlaceholderTheme.current.color, shape: Shape = LocalPlaceholderTheme.current.shape, highlight: PlaceholderHighlight? = LocalPlaceholderTheme.current.highlight, placeholderFadeTransitionSpec: () -> FiniteAnimationSpec<Float> = LocalPlaceholderTheme.current.placeholderFadeTransitionSpec, contentFadeTransitionSpec: () -> FiniteAnimationSpec<Float> = LocalPlaceholderTheme.current.contentFadeTransitionSpec): Modifier

Draws a multi-line text-shaped placeholder over content while it is loading.

Link copied to clipboard

Provides theme to all Modifier.placeholder(...) calls inside content.

Link copied to clipboard
fun rememberMaterialPlaceholderTheme(color: Color = MaterialTheme.colorScheme.surfaceVariant, highlightColor: Color = MaterialTheme.colorScheme.onSurface.copy(alpha = 0.3f), shape: Shape = RectangleShape): PlaceholderTheme

Remembered variant of materialPlaceholderTheme for cases where you want to capture the theme once and reuse it (e.g. across multiple ProvidePlaceholderTheme boundaries).