m3-expressive
Installation
SKILL.md
Material 3 Expressive for Jetpack Compose
Material 3 Expressive extends Material 3 with spring-based motion, morphable shapes, emphasized type styles, a recoloured baseline palette, and a set of new components. This skill covers the Compose implementation in androidx.compose.material3.
Version gate — verified against material3 1.4.0 and 1.5.0-alpha26 (Aug 2026).
- 1.4.0 (stable, Compose BOM
2026.08.00) exposes almost none of this.MaterialExpressiveTheme,expressiveLightColorScheme(),MotionScheme/MotionScheme.expressive()/MaterialTheme.motionScheme, every*Emphasizedtype style,Shapes.largeIncreased/extraLargeIncreased/extraExtraLarge,MediumFlexibleTopAppBar/LargeFlexibleTopAppBar/TwoRowsTopAppBar/FlexibleBottomAppBarandVerticalSliderare all declaredinternalin 1.4.0. OnlyWideNavigationRailandShortNavigationBarare public there.- Everything else in this skill needs
1.5.0-alpha*— toggle buttons,ButtonGroup,SplitButtonLayout, the FAB menu and sized FABs, floating toolbars, wavy progress indicators, loading indicators, menu groups, the expanded search bars,MaterialShapes. In practice: use the alpha BOM or none of this resolves.- Opt-in:
ExperimentalMaterial3ExpressiveApiis itselfinternalin 1.4.0, so the@OptIncannot even be written there. From 1.5.0-alpha23 most expressive APIs graduated to stable; on 1.5.0-alpha26 onlyLoadingIndicator/ContainedLoadingIndicatorandMaterialShapes/Morph.toPath/RoundedPolygon.toShapestill require it.AppBarWithSearchand the deprecatedTopSearchBarneed@OptIn(ExperimentalMaterial3Api::class)instead — a different annotation. A redundant opt-in is harmless (an "unnecessary @OptIn" warning).Examples below are written for 1.5.0-alpha26 and keep the opt-in annotation. For general Compose state/recomposition work prefer
android-skills:compose; for non-expressive theming seecompose-theming-styles.