Wear Compose Material 3
| Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release | 
|---|---|---|---|---|
| August 27, 2025 | 1.5.0 | - | - | - | 
Declaring dependencies
To add a dependency on Wear, you must add the Google Maven repository to your project. Read Google's Maven repository for more information.
Add the dependencies for the artifacts you need in the build.gradle file for
your app or module:
Groovy
dependencies { implementation "androidx.wear.compose:compose-foundation:1.5.0" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material3:1.5.0" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.5.0" // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.5.0") // NOTE: DO NOT INCLUDE dependencies on androidx.wear.compose:compose-material // or androidx.compose.material:material. // androidx.wear.compose:compose-material3 is designed as a replacement, // not an addition, to both of these other libraries. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material3, please raise a bug to let us know. }
Kotlin
dependencies { implementation("androidx.wear.compose:compose-foundation:1.5.0") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material3:1.5.0") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.5.0") // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.5.0") // NOTE: DO NOT INCLUDE dependencies on androidx.wear.compose:compose-material // or androidx.compose.material:material. // androidx.wear.compose:compose-material3 is designed as a replacement, // not an addition, to both of these other libraries. // If there are features from that you feel are missing from // androidx.wear.compose:compose-material3, please raise a bug to let us know. }
For more information about dependencies, see Add build dependencies.
Feedback
Your feedback helps make Jetpack better. Let us know if you discover new issues or have ideas for improving this library. Please take a look at the existing issues in this library before you create a new one. You can add your vote to an existing issue by clicking the star button.
See the Issue Tracker documentation for more information.
Wear Compose Material3 Version 1.5
Version 1.5.0
August 27, 2025
androidx.wear.compose:compose-*:1.5.0 is released. Version 1.5.0 contains these commits.
Important changes since 1.4.0
First release of the Wear Compose Material 3 library, which supports the new Material 3 Expressive design system. This release includes:
- Updated MaterialThemeand dynamic color theming.
- New AppScaffold, ScreenScaffold,HorizontalPagerScaffold, andVerticalPagerScaffoldcomponents to lay out the structure of the screen and coordinateScrollIndicator,TimeText,HorizontalPageIndicator, andVerticalPageIndicatoranimations.
- Shape morphing IconButton,TextButton,IconToggleButton, andTextToggleButton, with variations that animate when pressed or checked.
- EdgeButton, which has a special shape designed for the bottom of the screen.
- ButtonGroupimplements an expressive group of buttons, in a row that shape-morphs when touched.
- AlertDialogand- ConfirmationDialogwith variations for additional dialog content.
- TimePickerand- DatePickercomponents.
- Progress indicators include CircularProgressIndicator(with segmented variation),ArcProgressIndicator, andLinearProgressIndicator.
In addition, Wear Compose Foundation 1.5.0 includes the following:
- TransformingLazyColumn, a lazy, vertically scrolling list that supports scaling and morphing animations.
- Support for paging in Wear Compose Foundation with HorizontalPagerandVerticalPager.
- Hierarchical Focus Groups - used to annotate composables in an application to keep track of the active part of the composition and coordinate focus.
Read about more about (Material 3 Expressive for Wear OS)
Version 1.5.0-rc02
August 13, 2025
androidx.wear.compose:compose-*:1.5.0-rc02 is released. Version 1.5.0-rc02 contains these commits.
Bug Fixes
- Fixed a bug in TimePickerwhere long, internationalised strings for the period (AM/PM) could break the layout. (I0fa81)
Version 1.5.0-rc01
July 30, 2025
androidx.wear.compose:compose-*:1.5.0-rc01 is released. Version 1.5.0-rc01 contains these commits.
Bug Fixes
- TimePickeris now fully driven by the user's locale, using- DateFormat.getBestDateTimePatternto determine the order and content of its pickers and separators. This fixes incorrect column ordering for CJK languages, resolves RTL layout issues in languages like Arabic, uses localized separators, and supports both 0-11 and 1-12 hour formats based on the locale (I5d543)
- DatePickernow displays a numeric month in some locales, such as CJK, to avoid mixing numeric and linguistic formats (e.g., 2025 | 07 | 02 instead of 2025 | 7月 | 02). This change applies a heuristic that checks if the locale uses linguistic suffixes for the year and, if so, switches the month format from textual (MMM) to numeric (MM) for consistency. (Ia93fe)
- The vertical space for the heading in the Picker component is now constant, preventing a visible shift when a picker column is selected, especially in Talkbackmode. (I7f8b7)
- Fixed an accessibility bug caused by HorizontalPageIndicatorandVerticalPageIndicatorbeing drawn full screen. The page indicators are no longer full-screen, and will be positioned automatically when used withHorizontalPagerScaffoldorVerticalPagerScaffold. When not using a pager scaffold, specify the alignment explicitly usingmodifier = Modifier.align(Alignment.BottomCenter)withHorizontalPageIndicatorandmodifier =Modifier.align(Alignment.CenterEnd)withVerticalPageIndicator. (I3a0ad)
- The swipe direction in SwipeToRevealis now consistent for both LTR and RTLLayoutDirections. (I6d427)
- Reinstated SwipeToRevealvertical centering for actions. IfhasPartiallyRevealedState = true,RevealStateshould be reset toRevealValue.Coveredby the caller when scrolling occurs. (I6473d)
- SwipeDismissableNavHostnow correctly clips content for API 36 onwards. (Ib9a44)
Version 1.5.0-beta06
July 16, 2025
androidx.wear.compose:compose-*:1.5.0-beta06 is released. Version 1.5.0-beta06 contains these commits.
Bug Fixes
- Fix EdgeButtonanimation whenLazyColumnorScalingLazyColumnhavereverseLayout = true. (I46a1a)
- Fixed a bug in ScreenScaffoldwhere touch-to-explore was not working under Talkback if aScrollIndicator/PageIndicatorwas provided. (I6dcee)
- TransformingLazyColumnnow allows for custom morphing from- TransformationSpecby reading- itemHeightvalue provided by- TransformationSpecin the background painter. (I6a599)
- Animated enabled/disabled color transitions for IconButton, to be consistent withIconToggleButton. (Ife10a)
- Removed the minimum section clamping in CircularProgressIndicatorto avoid a noticeable jump to the minimum dot size when animating. As part of this change, thetargetProgressparameter indrawCircularProgressIndicatoris now unused. (I33309)
- Picker now has the semantic role ValuePickerwhich can be used by screen readers to make pickers more accessible. Picker also has updated accessibility click labels which differentiate between adjusting the value in read-only mode and selecting the current value otherwise. (I33309)
Version 1.5.0-beta05
July 2, 2025
androidx.wear.compose:compose-*:1.5.0-beta05 is released. Version 1.5.0-beta05 contains these commits.
Bug Fixes
- Updated the documentation to clarify usage of Modifier.edgeSwipeToDismiss(I78cb5)
- Addressed bug where multiple revealed items could be shown with SwipeToRevealin lazy lists (I1d4f6)
- Container shapes in TransformingLazyColumnare now scaled, in order to avoid clipping the contents. (I9221a)
- The TimePickerandDatePickerlabel for hour/minute/second or year/month/day now has heading semantics for screen readers (I77d8b)
- Removed the pause between loops in the indeterminate CircularProgressIndicator(Iaf0bb)
- Fixed an animation bug in TransformingLazyColumnwhen items are removed. (I73034)
- Corrected handling of anchor items in TransformingLazyColumnwhen items are removed. (I841a8)
- PickerGroupnow animates the Pickers horizontally when autocentering is turned on and the selected (centered) picker is changed. (Ic82c4)
Version 1.5.0-beta04
June 18, 2025
androidx.wear.compose:compose-*:1.5.0-beta04 is released. Version 1.5.0-beta04 contains these commits.
Bug Fixes
- Fix layout bug in TransformingLazyColumn, where content that fits within the screen is now aligned correctly from the top of the screen (I80115)
- Fixed an issue with TransformingLazyColumnwhere the bottom item was incorrectly scaled when scrolling to the very bottom of a list with anEdgeButton. The scroll progress now follows a gradient descent when restoring the layout. (Iea375)
- TransformingLazyColumnnow reads the item height inside the background painter, which allows custom- TransformationSpecsto implement morphing. (I022f0)
- SwipeToRevealnow vertically centers the revealed actions correctly. (I4419b)
- Fixed a bug in SwipeToRevealthat prevented it working correctly with swipe-to-dismiss if both views and compose were in use on the screen. (I5dc0e)
- Fixed a bug where SwipeToRevealactions were drawn with a vertical offset when scrolling. (I29444)
- AlertDialog,- ConfirmationDialog,- OpenOnPhoneDialogand- SwipeToRevealnow round up paddings and sizes that are calculated as a percentage of the screen size. (I76367)
- ButtonDefaults.outlinedButtonBordernow updates following enabled/disabled state changes size(If2ddd)
- Fixed a bug in EdgeButtonheight that occurred on complex screens with Pager andScreenScaffold. (I946e3)
- Fixed a race condition that could cause Placeholder animations to stop. (I53530)
- Improved HorizontalPageIndicatorandVerticalPageIndicatorperformance by drawing to Canvas. (Ifae1e)
- Refined the shape of EdgeButton to smooth the transitions between the ellipsis and circles that make up the outline. (I7721e)
- Fixed a bug in LevelIndicatorthat caused animations to stop, due to unnecessary recompositions. (I45d08)
Version 1.5.0-beta03
June 4, 2025
androidx.wear.compose:compose-*:1.5.0-beta03 is released. Version 1.5.0-beta03 contains these commits.
API Changes
- OpenOnPhoneDialognow announces only the message text under TalkBack, and skips the icon semantics. The- OpenOnPhoneDialogDefaultshave been updated to remove the- iconContentDescriptionand the- contentDescriptionparameter from- icon(). Also,- ConfirmationDialogDefaultsnow has modifier parameters on- SuccessIconand- FailureIconcomposables. (Id2ae2)
Bug Fixes
- Changed the order in which we apply the effect of  SurfaceTransformationparameters. Before, the transformations applied to Wear Material3 components were done as follows: background painter, container transformation, content transformation. Now, the first 2 are inverted, and we apply any passed in modifier between them, so it is affected by container transformations. This fixes cases like using a placeholder shimmer effect with elements in a TLC using the transformation parameter. (I786cf)
- RevealState.Saverwas added to be used to restore the state of- SwipeToRevealwhen activity or process is recreated.- rememberRevealStatefunction now uses this Saver by default. (Ie0ecb)
- SwipeToRevealprimary and secondary actions buttons should default to- ButtonDefault.Height(fixed bug where these were filling the maximum height for taller buttons). (Ibfba1)
- Changed SwipeToRevealto reset the last component interacted with, when the swipe right gesture is performed. (Ia8450)
- SwipeToRevealwas changed to settle on the- Revealingstate when the end position of the swipe is in between the revealing and revealed anchors, and is closer to the Revealing anchor. (If4458)
- Now ButtonGroup's content is properly inverted in a RTL layout (Ib378d)
- AnimatedTextnow supports RTL text direction (I4533c)
- TransformingLazyColumnnow resizes items correctly when the bottom item is removed (Idacab)
- TransformingLazyColumnnow makes just one measuring pass, which improves performance by reducing frame times. (I501a1)
Version 1.5.0-beta02
May 20, 2025
androidx.wear.compose:compose-*:1.5.0-beta02 is released. Version 1.5.0-beta02 contains these commits.
Bug Fixes
- Updated baseline profiles for foundation, material & material3 libraries. (I53f06)
- Fixed a bug in TransformingLazyColumn, where items resized when the bottom item was removed. (Idacab)
- Fixed a bug with TransformingLazyColumn, when the list got stuck at the top or bottom of the list. (I49d00)
- OpenOnPhoneDialogunder TalkBack should announce the curved text, rather than the icon content description. (I4efe8)
- Fixed a bug in SwipeToRevealthat would report the wrong anchor inRevealState.currentValuewhenhasPartiallyRevealedStateis set to false. (I9c7cf)
- SwipeToRevealundo buttons are now- ButtonDefaults.Heightby default. (I1f6c8)
- BasicSwipeToDismissBoxperformance has been improved by eliminating use of Canvas for drawing scrims. (I68f2c)
- Fixed an accessibility bug in Slider, where the announced percentage did not match the value after updates (I91146)
- Fixed a bug on placeholderShimmerimplementation. (Iee39b
- TransformingLazyColumnperformance has been improved, by optimizing- ScrollProgresscalculation by 30%. (I4c4cb)
Version 1.5.0-beta01
May 7, 2025
androidx.wear.compose:compose-*:1.5.0-beta01 is released. Version 1.5.0-beta01 contains these commits.
The 1.5.0-beta01 release of Compose for Wear OS indicates that this release of the library is feature complete and the API is locked (except where marked as experimental).
Wear Compose 1.5.0-beta01 includes the Wear Compose Material3 library, which supports the new UI design system called Material 3 Expressive. It is recommended to upgrade from Material to Material3 to embrace the new visual design in apps, and to benefit from the new components as follows:
- MaterialThemefor updated and extended color schemes, typography, and shapes to bring both depth and variety to your designs.
- Dynamic Color Theming which automatically generates a color scheme for your app to match the watch face colors.
- New components automatically adapt to larger screen sizes by default
- Shape Morphing - round button components like IconButton,TextButton,IconToggleButtonandTextToggleButtonsupport variations that animate when pressed or checked.
- EdgeButton- a new edge-hugging button with a special shape designed for the bottom of the screen.
- Scaffolds - introducing AppScaffoldandScreenScaffoldto lay out the structure of the screen and coordinateScrollIndicatorandTimeTextanimations.
- Buttons - numerous stadium-shaped buttons are supported with flexible, single-slot containers and multi-slot variations for buttons with icons and labels. CheckboxButtonandSwitchButtonare provided when toggle buttons are needed, whilstRadioButtonis the available selection button (‘Split’ variations of the toggle and selection buttons are also provided).
- ButtonGroup- implements an expressive group of buttons in a row that shape-morph when touched.
- AlertDialogvariations support ok/cancel buttons or an- EdgeButton.
- ConfirmationDialogis available to display a message with a timeout, supporting special animations for success, failure and open-on-phone variations.
- Pickers - TimePickerandDatePickervariations are supported as well as the Picker andPickerGroupcomponents for building your own picker screens.
- ProgressIndicators- circular, and linear progress indicators are supported (the- CircularProgressIndicatorhas segmented and indeterminate variations).
- Cards - a number of card variations are available, including TitleCardwhich offers specific layouts for cards with title, time, subtitle or content slots.TitleCardcan also be given an image background to reinforce the meaning of the information in a card.
- Pagers - HorizontalPagerScaffold,VerticalPagerScaffoldandAnimatedPagecomponents coordinateHorizontalPageIndicatorandVerticalPagerIndicatoranimations.HorizontalPagerandVerticalPagerare released in the Wear Compose Foundation library.
- Placeholders - draws a skeleton shape over a component, for situations where no provisional content is available.
- Sliders and Steppers - both sliders and steppers allow users to make a selection from a range of values. Sliders are more compact and can be segmented, whereas Stepper is a full screen component typically paired with a StepperLevelIndicator.
- SwipeToReveal- used to add additional actions to a composable when it is swiped right-to-left.
In addition, Wear Compose Foundation 1.5.0-beta01 includes these new components:
- TransformingLazyColumn- a lazy, vertically scrolling list the supports scaling and morphing animations
- Hierarchical Focus Groups - used to annotate composables in an application, to keep track of the active part of the composition and coordinate focus.
- Pagers - HorizontalPagerandVerticalPagercomponents, built on the Compose Foundation components with Wear-specific enhancements to improve performance and adherence to Wear OS guidelines.
API Changes
- Updated the Hierarchical Focus API - renamed Modifier.hierarchicalFocustoModifier.hierarchicalFocusGroupand removed the callback parameter; removed the overload ofModifier.hierarchicalFocusRequesterwith aFocusRequesterparameter; created a newCompositionLocal,LocalScreenIsActiveso that components can inform and check which screen is the active one. (I5ff7c).
- Deprecated SwipeToRevealfrom Wear Compose Foundation in favor ofSwipeToRevealAPIs in Wear Compose Material and Wear Compose Material3. Please replace Wear FoundationSwipeToRevealimports with Wear Compose Material/ Wear Compose Material3 imports to continue using the APIs. (Ia147d).
- Wear Compose Material3 SwipeToRevealdependencies on Foundation were moved to the material3 package, e.g.RevealValue,RevealDirection,RevealActionType,RevealState,rememberRevealState. Developers should change their imports of these classes and functions fromandroidx.wear.compose.foundationtoandroidx.wear.compose.material3. (I640e6).
- Updated the Wear Compose Material3 SwipeToRevealAPI as follows: addedprimaryAction,onFullSwipe,secondaryAction,undoPrimaryAction,undoSecondaryActionandhasPartiallyRevealedStateparameters to theSwipeToRevealcomposable; removed the ability to customizepositionalThresholdandanimationSpecfromRevealState; removedlastActionType,revealThresholdand width fromRevealState; changed theRevealStateconstructor to accept aRevealDirectioninstead of anchors; removedcreateRevealAnchors, anchors, andbidirectionalAnchorsfunctions;SwipeToRevealScopefunctionsprimaryAction,secondaryAction,undoPrimaryActionandundoSecondaryActionwere renamed toPrimaryActionButton,SecondaryActionButton,UndoActionButtonand made into Composable functions; markedRevealActionTypeas internal. (I885d0).
- Further updated SwipeToRevealAPI as follows: renamedonFullSwipetoonSwipePrimaryAction; renamedSwipeToRevealNonAnchoredSampleto indicate the use of thehasPartiallyRevealedStateparameter; removedactionButtonHeight, since the default is the Button's default height and the larger height can be set using a modifier; removed theSmallActionButtonHeightfromSwipeToRevealDefaults; made the value parameter inRevealValueandRevealDirectionconstructors private. (I465ce).
Bug Fixes
- Fixed ScreenScaffold’sEdgeButtonhandling so that, after aTransformingLazyColumnitem is removed, theEdgeButtonis animated into place. (I6d366).
- Updated Wear Compose dependencies on Compose libraries to version 1.8.0. (I2ef3f).
- Updated the motion of the indeterminate CircularProgressIndicatorso that it no longer regresses temporarily. (Ieddb1).
- Fixed a SwipeDismissableNavHostbug - the focus was not switching correctly after swiping back, causing rotary input to fail (this was for API 36+, which uses predictive back). (Ieddb1).
- Amended documentation for the Hierarchical Focus API (Idf2ff).
- Updated the documentation for Button and Card to state how containerPainteranddisabledContainerPainteroverridecontainerColoranddisabledContainerColor(I4a453).
- Reverted a change to TimeTextin the previous release which moved theBroadcastReceiverto a worker thread, because it caused issues for apps that manage their own threading during navigation. (I34d02).
- Updated the Picker samples to remove unnecessary remember calls and instead use rememberUpdatedStatein Picker to remember the latestcontentDescriptionlambda function. (Icb5b1).
- Updated text styles in TimePickerandDatePickerso that font changes no longer result in truncation. (I26194).
- ListHeaderand- ListSubHeadernow default text alignment to center-aligned and start-aligned respectively. (I78339).
- Updated Foundation and Material Swipe to Reveal samples and demos to announce custom accessibility actions (the custom actions must be added as semantics on the content, not on the SwipeToRevealcomposable itself). (Ie92a3).
- Updated the default MaxLinesset on theEdgeButtoncontent according to its size - it is now 1 for extra small, 2 for small and medium, and 3 for large. (Ie35f6).
- Simplified LocalReduceMotionso that the observer is only registered once, to improve performance. (Ib1979).
- Minimized the number of redraws in ScrollIndicator, to improve performance. (Ia7a67).
- Fixed a bug in TransformingLazyColumn, where the top visible item in the list did not scale correctly when EdgeButton achieved its full height. (I30580).
Wear Compose Material3 Version 1.0
Version 1.0.0-alpha37
April 23, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha37 is released. Version 1.0.0-alpha37 contains these commits.
API Changes
- Removed scrollTransformfrom the public API surface. Use the combination oftransformedHeightandgraphicsLayermodifiers if you need to get the same functionality. (Ie181d)
- Replaced ImageButtonandImageCardcomposables withButtonandCard/TitleCardoverloads respectively. RenamedimageButtonColorstobuttonWithContainerPainterColorsandimageCardColorstocardWithContainerPainterColors. Added publicButtonDefaults.scrimBrushandCardDefaults.scrimBrush. Renamed buttonimageBackgroundGradientStartColorandimageBackgroundGradientEndColortoscrimGradientStartColorandscrimGradientEndColor. RenamedCardDefaults.ImageContentPaddingtoCardDefaults.CardWithContainerPainterContentPadding(I7b8b6)
- Pickerand- PickerGroupnow take the- contentDescriptionas a lambda to avoid unnecessary recompositions. (I002dd)
Bug Fixes
- Fixed an issue where indeterminate CircularProgressIndicatorwould wobble during animation if width is not equal to height. (I76bfe)
- Fixed an issue with edge button layout on invalid size. Now prevents updating the layout of the edge button when the height is NaN. (I32b93)
- Increased the max sweep angle in OpenOnPhoneDialogso that the default ‘Check your phone’ text is not clipped with the largest font size. (I90af9)
Version 1.0.0-alpha36
April 9, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha36 is released. Version 1.0.0-alpha36 contains these commits.
API Changes
- Replaced ButtonDefaults.imageBackgroundButtonColorswithImageButton,ButtonDefaults.imageButtonColors,ButtonDefaults.containerPainterandButtonDefaults.disabledContainerPainter. And similar changes for Card. The painters are removed fromButtonColorsandCardColors. (I8c6a1)
- Updated placeholders to simplify the API. We now  provide two Modifiers, Modifier.placeholderShimmerto apply a shimmer effect at the component level, andModifier.placeholderto apply a mask on top of unloaded content (Iaee7a)
Bug Fixes
- Integrated overscroll into the ScrollIndicator. (Icfb7f)
- Address blank backgrounds and missing dialogs when launching material3 dialogs. (Ice597)
- Fixed issues in FadingExpandingLabelwhen text spans multiple lines. (I04eb7)
- Updated padding between primary and secondary labels on buttons. (I99b7b)
- ArcLargehas been reduced from- 20spto- 18sp, and letter spacings on- ArcLargeand- ArcSmallhave been updated.- ConfirmationDialog/- OpenOnPhoneDialognow use the default- ArcLargeinstead of overriding it to- 18sp. (Id39a8)
Dependency Updates
- This library now targets Kotlin 2.0 language level and requires KGP 2.0.0 or newer. (Idb6b5)
Version 1.0.0-alpha35
March 26, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha35 is released. Version 1.0.0-alpha35 contains these commits.
API Changes
- AlertDialogtop padding is now reduced by default when an icon is provided - this makes best use of the screen size available. (Ief06c)
- PagerScaffoldDefaults.FadeOutAnimationhas been renamed to- PagerScaffoldDefaults.FadeOutAnimationSpec. The page parameter on- AnimatedPagehas been renamed to- pageIndex. (I701f2)
- Updated naming for TransformingLazyColumn’sSurfaceTransformation-applyTransformationsplit intoapplyContainerTransformationandapplyContentTransformation, and renamedcreateBackgroundPaintertocreateContainerPainter. Further naming updates toTransformationSpecandResponsiveTransformationSpec. (I1c534)
- The AppScaffold backgroundColorhas been renamed tocontainerColor. (I4e63f)
Bug Fixes
- Fixed an issue in FadingExpandingLabelwhere the text did not always expand correctly. (I0e773)
- ArcLargehas been reduced from 20sp to 18sp, and letter spacings on- ArcLargeand- ArcSmallhave been updated.- ConfirmationDialog/OpenOnPhoneDialognow use the default- ArcLargeinstead of overriding it to 18sp. (Id39a8)
- Updated the heading animation for DatePickerandTimePickerbased, so that the fade-out and fade-in animation act as one Spring animation. (I68963)
- Optimized PagerScaffoldby avoiding the reading ofcurrentPageOffsetFractionin theAnimatedPagecomposable. (I433ef)
- All type scales have been updated to have proportional numerals by default, because that is seen as the most frequent use case and defaulting to tabular resulted in too much spacing between certain number pairings. TimePickerandDatePickercontinue to applyFontFeatureSetting=tnumfor tabular numerals. (I88929)
- Corrected the initial RSB input focus for TimePickerandDatePicker. (I1c773)
- Updated the default text on OpenOnPhoneDialogto "Check your phone". (I00a3f)
- Updated weights for ArcLargeandArcMediumfrom 600 to 599 to workaround an issue where weight 600 is treated as bold (I2a51d)
- Update SwipeToRevealpaddings between content and action buttons, and also the padding between the icon and text of the action buttons. (Ic46cb)
Version 1.0.0-alpha34
March 12, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha34 is released. Version 1.0.0-alpha34 contains these commits.
API Changes
- PagerScaffoldno longer emits a- Pagercomponent - instead this must be provided via the- contentComposable.- AnimatedPageand- snapWithSpringFlingBehaviourare now public and can be used along with Wear Foundation- Pagerto achieve previous M3- PagerScaffoldbehaviour. (See updated samples). (Ia4724)
- Updated PagerState, removing the Compose FoundationPagerStateas the base class and addingcurrentPage,currentPageOffsetFractionandpageCountproperties. Updated theGestureInclusioninterface, renaming the method toignoreGestureStart. (I4ae07)
- LevelIndicatorsweep angle parameters are now annotated with- FloatRange(0, 360)(I7e636)
- We have added CurvedModifier.clearAndSetSemanticsto provide a means by which curved semantics can be turned off.CurvedTextcontinues to default the content description to the text, buttimeTextCurvedTextandtimeTextSeparatordo not now announce their contents. (I4b568)
- Added a background and default content color parameters to AppScaffold. (I56652)
- HorizontalPager’s default handling of swipe gestures has been renamed to- PagerDefaults.gestureInclusion. The default behavior is now to only ignore swipe gestures that start on the left edge of the first page, and only then when Talkback is turned off. In other cases, the default behavior is that swipe gestures will not be ignored by the pager, so they will not be available to swipe-to-dismiss handlers. (Iee486)
- Added a SurfaceTransformationparameter to button, card and list header components, so that they can apply different background and content transformations when used in containers that change items appearance based on their position, such asTransformingLazyColumn. (Iabe3f)
- We have updated 'public const val' properties in our Wear Compose Material3 API to 'public val', to avoid the values being inlined. (Ib0f32)
- Added support for an edge-swipe zone to SwipeToReveal. FoundationSwipeToReveal’s default behavior is now to disallow swiping when the gesture starts from the edge. Material3SwipeToReveal’s default behavior is now to disallow swiping when the gesture starts from the edge, when theSwipeDirectionis set to single direction. (I32ef0)
- Added FadingExpandingLabelcomposable, which allows it to fade in text with animation line by line. (Ic60fa)
- TransformingLazyColumnnow uses empty- contentPaddingby default instead of putting first and last items into center. (I77ab7)
- Removed SwipeToReveal’srememberRevealStatefrom the Wear Compose Material3 library. (I8c0e0)
Bug Fixes
- Wear Compose libraries have been updated to the Kotlin 2.0 compiler. (I2de79)
- Support for non-round ScrollIndicatorandPageIndicatorhas been removed from Material3. Square screen support is also no longer part of the Wear OS requirements, see the Getting Started guide for more information. (I9a852)
- The CurvedTextStyleused inConfirmationDialogDefaultsandOpenOnPhoneDialogDefaultshas been updated to useArcLargetypography with size18spand letter spacing1.8sp. (Ic9ced)
- Card,- ListHeader,- RadioButton,- CheckboxButton,- SwitchButtonno longer constrain the height of its contents by default. Where necessary, use- Modifier.height(IntrinsicSize.Min)to restore the previous behavior if needed. (I80bb8)
- We have updated the default TimeTextandScrollIndicatorcolors to include more gray tones, because usingOnBackground(white) directly carried too much visual weight when competing with other content on screen like titles. (I8b36f)
- We have reduced the timeout for animating the TimeTextandScrollIndicatorin scaffold components to 2 seconds. (I52021)
- We have updated the motion of Dialog so that the scale of the background of the Dialog is synchronised with swiping to dismiss. (I925a9)
- Add demo of M3 SwipeToRevealusingedgeSwipeToDismissmodifier. (I02b07)
- We have added a heading to DatePickerandTimePickerunder TalkBack so that the user is informed to scroll to set date/time. (Id738d)
- AnimatedTextnow follows the reduce motion setting. (Ib6578)
- The optimisation to use AppScaffoldfor display Dialog content has been improved to allow multiple dialogs to be displayed on top of each other (I1209c)
Version 1.0.0-alpha33
February 26, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha33 is released. Version 1.0.0-alpha33 contains these commits.
API Changes
- We have removed the label parameter from SwipeToRevealScope'sprimaryActionandsecondaryAction. Custom action semantics should be added to the content of theSwipeToRevealcomponent directly, by the developer. (Ia67f3)
- We have removed the 'Button' prefixes from sizes, text styles and color functions in IconToggleButtonDefaultsandTextToggleButtonDefaults(I5471d)
- We have removed the experimental LocalMinimumInteractiveComponentEnforcement(I4ad8a)
- We have replaced the PickerGroupScopeDSL with a composable. As such, we removed thepickerGroupItemmethod fromPickerGroupScope, and instead added@Composable PickerGroupItemthat should be used to add a Picker toPickerGroup. We also updated the type ofPickerGroup'content' parameter to@Composable PickerGroupScope.() -> Unit. (Ic6aec)
- We have added a LevelIndicatoroverload for fractional values and added a Stepper prefix to those overloads that include a range parameter (which are suitable for use with the Stepper component). (If4234)
- We have added TransformingLazyColumn’sTransformationSpecto the API, which allows the definition of the exact transformations happening to the items as they are being scrolled through the TLC. (I21856)
- We have updated IconButtonShapes,IconToggleButtonShapes,TextButtonShapesandTextToggleButtonShapesto be consistent with the compose/material3 classes (I5a081)
- We have added an overscrollEffectparameter added toScalingLazyColumn,TransformingLazyColumnandScreenScaffold. (I0cee8)
- We have renamed the swipeDirectionparameter torevealDirectioninrememberRevealState. (I7472f)
- Wear Pager now has its own PagerScopeinstead of using ComposePagerScope. (I9195b)
- We have removed the LinearProgressIndicatorContentcomposable, please useLinearProgressIndicatordirectly so that changes to values are animated by default. (I2c4ad)
- We have removed the CircularProgressIndicatorStaticcomposable and added a publicDrawScopefunctiondrawCircularProgressIndicatorwith the same functionality. Please useCircularProgressIndicatordirectly so that changes are animated by default, but build your own composable fromdrawCircularProgressIndicatorif custom animations are needed. (Ie762f)
- We have reordered the parameters in DrawScope.drawCircularProgressIndicatorto move up thetargetProgressparameter. (I8ab92)
- The OpenOnPhoneDialogapi was updated for better clarity and consistency with other Dialogs. Theshowparameter was renamed tovisibleandcurvedTextis now provided by the caller instead of having a default value. (Idec2d)
- We have renamed openOnPhoneCurvedTexttoopenOnPhoneDialogCurvedText(I65bdd)
- We have added ScrollIndicatorColorsfor providing custom colors toScrollIndicator. (I9eb8c)
- Allow the configuration of the color used to draw a background behind TimeText. (I9f5d9)
- Updated ArcLarge,ArcMediumandArcSmalltypographies to beCurvedTextStyle(Iffc41)
- We have removed ScreenScaffoldDefaults.contentPaddingWithEdgeButton. (Ia923e)
- We have added errorDimto theColorScheme, for high priority errors or emergency actions such as safety alerts, failed dialog overlays or stop buttons. (I70998)
Bug Fixes
- We have pinned wear.compose.material3to version 1.15.0 ofandroidx.core.core(I132e9)
- We have improved Dialog's performance by using the AppScaffoldto layer dialogs over other screen content (I1b9a4)
- Reduced EdgeButton's internal vertical padding. (I1a5bb)
- We have added Button semantics to Slider buttons. (I80cc6)
Version 1.0.0-alpha32
January 29, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha32 is released. Version 1.0.0-alpha32 contains these commits.
API Changes
- On CurvedTextStyle, we have split letter spacing into clockwise letter spacing and counter clockwise letter spacing. This is required because clockwise letters fan out from the baseline whereas counter-clockwise letters fan in (so larger letter spacing is needed) (I4b848)
- We have updated IconButtonShapes,IconToggleButtonShapes,TextButtonShapesandTextToggleButtonShapesto improve consistency across Material3 libraries. This change also introduces shape caching to reduce the number of allocations. (I049fc)
- We have removed the pressedShapeCornerSizeFractionparameter from thevariantAnimatedShapemethod inIconToggleButtonandTextToggleButton(I58a65)
- We are introducing improvements to curved text rendering (including TimeText) that are incompatible with non-round screens. Non-round screen support is also no longer part of the Wear OS requirements, see the Getting Started guide for more information. (I1cc1c)
- We have updated ButtonGroup’sButtonGroupScope, replacing the DSL-basedButtonGroupItemwithModifier.weight,Modifier.minWidthandModifier.enlargeOnPress. (I16c3c)
- In the ButtonGroupAPI, we have updated the new modifier-basedButtonGroupScope:enlargeOnPressis now calledanimateWidth, and it takes anInteractionSource, rather thanMutableInteractionSourcebecause it is not necessary to mutate it. We have also added public constantButtonGroupDefaults.DefaultMinWidth, the default minimum width of buttons in aButtonGroup. (Ie27ec)
- We have updated ListHeaderDefaults.contentColorto start with a lowercase letter as it is a composable property (I125a5)
- We have added a content description parameter to SliderDefaults.DecreaseIconandSliderDefaults.IncreaseIcon, with suitable default values (I2e1a7)
- We have renamed the spacingparameter inPickerandPickerGrouptoverticalSpacing(Ib75cc)
- We have removed ConfirmationDialogDefaults.successTextandfailureTextbecause it is expected that callers ofConfirmationDialogwill provide strings with more context. Also renamedconfirmationCurvedTexttoconfirmationDialogCurvedText. Finally, renamed the Dialogshowparameter to visible for consistency with other recent updates to dialogs. (I10074)
- IconButtonrenamed- disabledImageOpacityto- DisabledImageOpacity. (I5f94a)
Bug Fixes
- We have fixed a bug in EdgeButtonanimation so that the correct size is used in each frame (Id3b58)
- Fixed an issue with animateContentSizenot working withButton. (Ib18a0)
- We have changed the Title Large type scale to have font size 18dp(Ic9d52)
- We have updated AlertDialogspacing and icon size (Iac28c)
- We have fixed inconsistencies in large screen breakpoints (screens at and above 225dp are large screen) (I36474)
- Fixed a minor bug in button positioning (I952c2)
Version 1.0.0-alpha31
January 15, 2025
androidx.wear.compose:compose-material3:1.0.0-alpha31 is released. Version 1.0.0-alpha31 contains these commits.
API Changes
- We have updated all Wear Compose libraries to ‘explicit API’ mode. (Iebf9f)
- We have updated the ScreenScaffoldandEdgeButtonAPIs, so that it is easier to specify content paddings on screens that include anEdgeButton. In the new API theEdgeButton'ssizeis only passed to theEdgeButton, and theScreenScaffoldtakes anedgeButtonSpacingparameter for the spacing betweenEdgeButtonand list content. (I424fd)
- In DatePicker, we have renamed parametersminDatetomaxDate, andminValidDatetomaxValidDate. InDatePickerColors, we have renamed parameterselectedPickerContentColortoactivePickerContentColor, andunselectedPickerContentColortoinactivePickerContentColor(Iba17b)
- We have updated the ArcProgressIndicatordefaults tostrokeWidth=6dpand recommendeddiameter = 81.24%of screen height (I6f248)
- We have updated the Confirmation API to reflect its usage as a dialog. The composable is now called ConfirmationDialog, with associated updates to the naming of colors and defaults classes. We have also renamed theshowparameter tovisiblefor compatibility with other Compose animation APIs. In addition, we have madeConfirmationDialogContent,SuccessConfirmationDialogContent,FailureConfirmationDialogContentavailable for situations where developers need to customize the intro/outro dialog animations. (Iaeb33)
- We have updated CircularProgressIndicatorContenttoCircularProgressIndicatorStatic(the non-animated variation ofCircularProgressIndicator) so that it can now be used to buildCircularProgressIndicatorwith custom animations. (I1346f)
- We have fixed the parameter ordering on the ArcProgressIndicator, putting the modifier parameter first (I4656a)
- Improved the SwipeToRevealAPI to receive a text slot parameter for the labels of the actions (except secondary action) and to remove label parameters from undo action (I5b3db)
Bug Fixes
- We have fixed a bug where LongPresshaptics were triggered more than once inButton,Card,IconButton,TextButton(Ia8b0f)
- Changes to the UX of AlertDialog- on large screens the confirm and dismiss buttons are now smaller. There is also increased spacing below the confirm and dismiss buttons. (I4f066)
- We have changed the animation specs of the action button label of the SwipeToRevealcomponent. (Ib87fb)
- Changed SwipeToRevealto expand the container at the same time that the text is displayed. (I44cf8)
- Improved SwipeToRevealto perform haptic feedback when the swipe passes the threshold where the primary action is committed. (I23efe)
- We have updated SwipeToRevealto display ellipsis on text overflow by default, for primary and undo actions. (I71f5a)
- We have fixed an issue causing jitter on ButtonGroupanimations. (I63f8f)
- We have added text semantics to AnimatedText(I6063c)
- Dialog now resets background scaling when the dialog is removed from the composition (without this fix, the launching screen may have been left in a scaled down state) (Id24ac)
- We have added a shape morph animation to the buttons in the Stepper component (Id6ed3)
Version 1.0.0-alpha30
December 11, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha30 is released. Version 1.0.0-alpha30 contains these commits.
API Changes
- The scrollTransformmodifier forTransformingLazyColumnwas refactored which triggered an API change. (I0c6dc)
- We have updated IconToggleButtonShapesandTextToggleButtonShapesto have two different shape parametersuncheckedPressedandcheckedPressed(I85dbd)
- Invalid month/day options are now visible in the DatePicker, with a newinvalidPickerContentColor, when usingminDateormaxDate. (If4541)
- We have updated the StepperAPI to provideincreaseIconanddecreaseIconslots - the content for these can be built as usual from the Icon composable. (Id35da)
- We have updated dynamicColorSchemeby removing the optionaldefaultColorSchemeparameter and now returning nullableColorScheme. This means that the caller must explicitly handle the fallback case when a dynamic color scheme is not provided. (I6d62e)
- We have updated the icon sizes in ButtonDefaultsfor use withCompactButton. ACompactButtoncontaining only an icon should useButtonDefaults.SmallIconSize = 24.dp, whereas aCompactButtoncontaining both icon and text should useButtonDefaults.ExtraSmallIconSize = 20.dp. It is recommended thatCompactButtonwrap its content (rather than filling the max width) and samples have been updated to show that. (I0582c)
- We have added EdgeButtonDefaultswith recommended icon sizes for the 4 differentEdgeButtonSizes. Also, updated theEdgeButtonlayout so that it has slightly larger bottom padding than top padding, which improves appearance for both Icon and Text content. (Id772a)
- We have added motion to LinearProgressIndicatorand exposedLinearProgressIndicatorContentwhich provides the visual content without animations. (Idee99)
- We have added a new CircularProgressIndicatorContentcomposable to display the visual content ofCircularProgressIndicatorwithout animations. (Ie33d4)
- TransformingLazyColumnnewly provides the composition local- LocalTransformingLazyColumnItemScopewhich- Cards,- Buttons and- ListHeaders now use to automatically morph when placed inside a- TransformingLazyColumn. Callers can disable automatic morphing using the new- TransformExclusionwrapper. (I1652f)
- We have updated the type of ButtonDefaults.shapetoRoundedCornerShape(Iccdf2)
Bug Fixes
- We have fixed a bug to respect existing alpha on background for TimeText(I1eb60)
- We have set TextMotiontoAnimatedby default in our typography, to avoid text jitter due to snapping letter glyphs to pixel boundaries during scaling operations. (I626fa)
- We have updated the appearance of the ScrollIndicatorby increasing width and gap size, to improve visibility. (Ied7cb)
- We have fixed a bug on Modifier.scrollTransformwhen adding/removing/moving items. (I6830f)
- We have fixed a round button animation issue for short taps (previously, the minimum animation duration was not always observed). (I757a7)
- We have updated the sweep angle for LevelIndicatorto 20% (i.e. 72 degrees). (Idde5c)
- We have fixed ScrollIndicatorpositioning whenScalingLazyColumnwas used withAutoCenteringParams. (I387dd)
- We have updated the colors and typography for ListHeaderandListSubHeader. Also the colors for the toggle controls onCheckboxButtonandSwitchButton. (I39817)
- We have fixed ScrollIndicatorpositioning inLazyColumnandScalingLazyColumnwithContentPadding. (I2bc51)
- We have fixed a bug seen in OpenOnPhoneDialogprogress animation by using the newCircularProgressIndicatorContent. (I3e443)
- We have updated the HorizontalPagerScaffoldandVerticalPagerScaffoldto disable animations when reduce motion is enabled (Iaaf68)
- We have implemented a separate animation for circular progress indicators when progress reaches over 100%. (I47135)
- We have fixed a bug where EdgeButtoncould be drawn with an incorrect shape in Pager components (I91db9)
Version 1.0.0-alpha29
November 13, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha29 is released. Version 1.0.0-alpha29 contains these commits.
API Changes
- We have updated TimeTextto provide default content that shows the time. (Id23b3)
- We have simplified the ScrollInfoProviderforPagerStateby removing theorientationparameter, which is no longer needed. The new behavior is forTimeTextto remain in place for both horizontal and vertical paging. (I71767)
- LocalHapticFeedbacknow provides a default- HapticFeedbackimplementation when the Vibrator API indicates that haptics are supported. The following have been added to the- HapticFeedbackType-- Confirm,- ContextClick,- GestureEnd,- GestureThresholdActivate,- Reject,- SegmentFrequentTick,- SegmentTick,- ToggleOn,- ToggleOff,- VirtualKey. Wear Compose long-clickable components such as- Button,- IconButton,- TextButton, and- Cardnow perform the- LONG_PRESShaptic when a long-click handler has been supplied. (I5083d)
Bug Fixes
- We have updated the motion for Confirmations. (I04bff)
- We have updated the minimum API dependency to 1.7.4 for Compose libraries. (I88b46)
- New motion was added for the OpenOnPhonedialog. (I1e10a)
- We have fixed a bug in the LevelIndicatorso that it is now correctly displayed with the level is zero. (Ie95a4)
- We have updated the HorizontalPageIndicatorandVerticalPageIndicatoranimations. (I5c8f3)
- We have added a shrink-to-dot animation to the indeterminate ArcProgressIndicator. (I9fd51)
Version 1.0.0-alpha28
October 30, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha28 is released. Version 1.0.0-alpha28 contains these commits.
API Changes
- We have added an arc variation on the indeterminate circular progress indicator (I2efc1)
- We have made public the AlertDialogContentandDialogcomposables that make up theAlertDialogAPI, so that it is possible to add customization if necessary (such as customizingAlertDialoganimation whilst keeping the recommended content layout). In addition, we have addedModifierandColorparameters to theEdgeButton,ConfirmButtonandDismissButtonmembers ofAlertDialogDefaults. (I4eb71)
- We have updated the PlaceholderAPI as follows: renamedPlaceholderState.startPlaceholderAnimationtoPlaceholderState.animatePlaceholder,PlaceholderState.isShowContenttoPlaceholderState.isHidden, andPlaceholderDefaults.shapetoPlaceholderDefaults.Shape; renamed thepainterparameter inpainterWithPlaceholderOverlayBackgroundBrushtooriginalPainter; changed visibility ofPlaceholderState.placeholderProgressionfrom public to internal and renamed it toplaceholderShimmerProgression; added placeholder animation duration constants toPlaceholderDefaults. (Ie5a59)
- We have updated the EdgeButtonAPI as follows: renamed the parameter onScreenScaffoldfrombottomButtontoedgeButton; madeEdgeButtonSizea value class. (Ieef15)
- We have changed the visibility of copy()to public in wear material3 Colors classes (I0287f)
Bug Fixes
- Added minimum animation duration for IconToggleButtonandTextToggleButtonon click (Ieb333)
- Added minimum duration on IconButtonandTextButtonshape animation (Iebcee)
- Corrected the repeat option state of DatePicker. (I3587c)
- Added motion for Alert and Confirmation dialogs. (I173b1)
Version 1.0.0-alpha27
October 16, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha27 is released. Version 1.0.0-alpha27 contains these commits.
API Changes
- We have updated the ScreenScaffoldandScrollIndicatorfollowing the renaming of Wear Compose FoundationLazyColumntoTransformingLazyColumn. (I0608b)
- EdgeButton's- preferredHeightparameter has been renamed to- buttonSizeand its value can only be chosen from 4 constants in the newly introduced- EdgeButtonSizevalue class. (Icdd70)
- We have changed the naming of ListSubheadertoListSubHeaderand added publicly accessible default values forListHeaderandListSubHeader. (I96730)
- We have added new HorizontalPagerScaffoldandVerticalPagerScaffoldcomponents for Wear which provide new animations and coordination between time text and page indicator components. (Iff7d0)
- We have added rotary support to HorizontalPagerScaffoldandVerticalPagerScaffold, enabling users to navigate pagers using rotary input devices. (I9770d)
- We have made MotionSchemeAPI changes to simplify the usage and improve consistency. Removed inlined remember functions and moved the built-in Motion Schemes to a dedicated MotionScheme companion object. Renamed thestandardMotionSchemeand theexpressiveMotionSchemeto standard and expressive. (I5fd45)
- We have added support for a dynamic color scheme based on system colors. (I073e9)
- We have updated the Stepper to the latest UX specs. (I622bb)
Bug Fixes
- We have updated typography and paddings for Card components. (I3ae48)
- We have changed the padding in AlertDialogbetween Confirm/Dismiss buttons and the rest of the content from 8dp to 12dp according to UX specs (Ie55f0)
- We have updated the color opacity for the Slider component. (Idb383)
Version 1.0.0-alpha26
October 2, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha26 is released. Version 1.0.0-alpha26 contains these commits.
API Changes
- We have updated the API and appearance of HorizontalPageIndicatorand addedVerticalPageIndicatorfor use withVerticalPager(Ic9309)
- AlertDialognow supports the ability to omit the default bottom button from the button stack variation, for custom layouts in which EdgeButton is not required. (I34fa9)
- We have added a SwipeToRevealcomponent for Wear Material 3 (Ic38b2)
- We have added support for bi-directional swiping in SwipeToReveal, for rare cases where the current screen does not support swipe to dismiss. The default is still to swipe-to-reveal only on right-to-left swipes and it is strongly advised to respect the default behavior to avoid conflict with swipe to dismiss. (Ifac04)
- We have renamed EdgeButton'sbuttonHeightparameter topreferredHeight. (I4fab3)
- The Kotlin version has been updated to 1.9 (I1a14c)
- We have renamed OpenOnPhoneDialogDefaults.IcontoOpenOnPhoneDialogDefaults.OpenOnPhoneIconto avoid clashing withIcon(I0f391)
- We have added support for ScrollIndicatorinLazyColumn. (Ia546a)
- We have updated default values for TextToggleButtonandIconToggleButton. (I7aaa9)
- We have simplified the PickerandPickerGroupAPI. (Id0653)
- We have added CardDefaults.ShapeandCardDefaults.Height, which (being tokens) were otherwise private to developers using the library. (I1594a, b/347649765)
- We have renamed the progress parameter for the binary segmented circular progress indicator to segmentValue. (Ib72d9)
- We have updated the colors and layout for Slider. (Ic3eec)
Bug Fixes
- We have updated the openOnPhoneicon animation (I66f85)
- We are now using Google Symbols icons in Slider,TimePickerandDatePicker. (I46c7c)
- We have updated the paddings in ConfirmationandOpenOnPhoneDialog. (Iaa82e)
Version 1.0.0-alpha25
September 18, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha25 is released. Version 1.0.0-alpha25 contains these commits.
API Changes
- We have added an Indeterminate circular progress indicator. (I427a7)
- We have added support for progress overflow (>100% progress) for both the CircularProgressIndicatorand theSegmentedCircularProgressIndicator. When the progress exceeds 1.0, this will be indicated by the newoverflowTrackcolor. (Iaaa3d)
- The round IconToggleButtonandTextToggleButtonnow support a new shape animation variation, in which different shapes represent checked, unchecked and pressed states. The earlier animated shape variation for the just pressed state continues to be supported. (I29f03)
- We have removed support for using EdgeButtonwithColumn, due to the need to specify theEdgeButtonheight explicitly inScreenScaffold. (Ie353d)
- We have added support for the Wear Compose LazyColumnwith ourScreenScaffold(and added an implementation ofScrollInfoProviderforLazyColumnState). (Ib8d29)
- We have combined LocalTextMaxLines,LocalTextAlign,LocalTextOverflowinto a singleLocalTextConfigurationcomposition local to provide a more scalable solution going forwards. (I5edbc)
- We have added arc-large as an additional typescale, reserved for short header text strings at the very top or bottom of the screen, like in Confirmation overlays. (I60e3e)
- We have added defaults to Button for recommended large and extra large icon sizes and content padding. (I84675)
Bug Fixes
- We have updated the colors for IconButtonandTextButton. (I48324)
- We have changed the base Button overloads to be vertically center-aligned for consistency with other overloads. To restore the previous behavior, use Modifier.alignfrom theRowScope. (I66e57)
Version 1.0.0-alpha24
September 4, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha24 is released. Version 1.0.0-alpha24 contains these commits.
API Changes
- We have added a Motion scheme into the Material3 theme. This will be used by components across the library to apply animation specifications such as springs for expressive motion. (I54ff3)
- We have added AppScaffoldandScreenScaffoldcomponents to the Material3 library, which include functionality to coordinate layering and transitions ofTimeTextandScrollIndicator.AppScaffoldprovides a top level of scaffold components that sit on top of all screens. As such, addingTimeTextto theAppScaffoldallows it to remain in place while swiping between screens. Screens can themselves override or hide the time text.ScreenScaffoldprovides a slot for theScrollIndicatorand automatically animates the scroll indicator when scrolling, including timeout to hide the scroll indicator after inactivity. (I047d6)
- We have added ScrollIndicatorfeaturing the new Material3 design. It has a fixed thumb size based on initial list contents, in order to avoid size variations when lazy content is loaded into the list. (Ic228d)
- We have changed the ScrollAwayAPI such thatScreenStageis a value class instead of an enum class, to allow for additional stages to be added as needed going forwards. (I48c93)
- We have added EdgeButton, a distinctive Wear-specific button with a shape that follows the curvature of the bottom of the screen (I16369)
- We have added a new slot to the ScreenScaffoldfor a bottom button (such asEdgeButton), that will be shown and resized depending on the scrolling content (I032eb)
- We have added Modifier.scrollTransformandModifier.targetMorphingHeightto add Material3 motion effects to items inLazyColumn. (Ie229a)
- We have added SegmentedCircularProgressIndicatoras a variation onCircularProgressIndicator. The segmented variation either shows a single progress value across all segments or shows each segment as being on/off. (I6e059)
- We have added LinearProgressIndicatoras an alternative to the existingCircularProgressIndicator. (I89182)
- We have added AlertDialog, providing layouts for presenting important prompts to the user. Variations are included for either a pair of confirm/dismiss buttons or a single bottom button (typically an EdgeButton) below a stack of options. Both variations have slots for icon, title and additional text to provide further details. (Ieb873)
- We have added OpenOnPhoneDialog, which should be used to indicate an action that will continue on the user's phone.OpenOnPhoneDialogis dismissed after a specified timeout. (I978fd)
- We have added Confirmation, a dialog component that has slots for an icon and either curved or linear text. Specific variations are provided for success/failure messages. Confirmations are automatically dismissed after a timeout. (Ib43e8)
- We have added a background to TimeTextto mitigate issues where the underlying content and theTimeTextoverlapped, and obscured the time. (Ia11fd)
- We have added LevelIndicator, which shows the value of a setting such as volume, and can be used with the existingSteppercomponent to construct a volume screen.LevelIndicatoris similar toScrollIndicator, but is displayed on the opposite side of the screen and has a wider stroke width and different indicator color by default. (I8a4ac)
- We have added TimePicker, with layouts for 24 hour time (with or without seconds), or 12 hour time with am/pm selection. (Ia5124)
- We have added DatePicker, with configuration for column ordering (i.e. day-month-year, month-day-year or year-month-day) and optional min/max dates. (Ibf13b)
- We have added a weight parameter to the TimeText'stextfunction. In cases where TimeText is made up of more than one text element, this allows control over how the space is distributed. (I36700)
- We have added RadioButtonandSplitRadioButton- these components simplify the previous API by combining both the (Split)SelectableButtonand the child radio control (If7ae8)
- We have added CheckboxButtonandSplitCheckboxButton- these components simplify the previous API by combining both the (Split)ToggleButtonand the child Checkbox control (Ia8f70)
- We have added SwitchButtonandSplitSwitchButton- these components simplify the previous API by combining both the(Split)ToggleButtonand the child Switch control (I0d349)
- We have updated AnimatedTextdocumentation to explain overshooting behavior. (Iff30a)
- We have added ButtonGroupto combine 2 or 3 buttons such that button presses produce a coordinated animation. (Ie27db)
- We have added optional shape animation for IconButtonandTextButtonwhen pressed. (Iffca5)
- We have added an additional color variation, FilledVariant, toButton,IconButton,TextButton,CompactButtonandEdgeButton(I65fc3)
- We have added the forcedSizeparameter toImageWithScrimPainter, such that Button image backgrounds now maintain their component size by default. Setting theforcedSize = nulladopts thePainter.instrinsicSizeinstead. (Ic57af)
- We have added long-click to Buttons (Ib613d)
- Long click support has also been added to IconButtonandTextButton. (I38891)
- Long click support has been added to Cards. (I305d5)
- We have added LocalTextMaxLines,LocalTextAlign,LocalTextOverflowasCompositionLocalsand used them as parameter defaults onText. The composition locals can now be used by components such asCheckboxButton,SwitchButton,RadioButtonto implement UX guidance, but the parameters can be overridden by developers if necessary. (Iab841)
- We have added Placeholderto help in masking the content of components like buttons & cards until the data is loaded. (I1a532)
- We have added IconToggleButtonColorsandTextToggleButtonColorsto replace the now removedToggleButtonColors. (Ie0bf1)
Bug Fixes
- We have updated Button,FilledTonalButton,OutlinedButton,ChildButton,CompactButtonto use the newCompositionLocalsLocalTextMaxLines,LocalTextAlign,LocalTextOverflowto implement UX guidance - these parameters can be overridden by developers on Text directly if necessary (Ie51f7)
- We have changed the default stroke width of the LevelIndicatorto6dpto differentiate it from theScrollIndicatorwhich has a stroke width of4dp. (If6f63)
- We have fixed an issue in TimeTextso that larger sweep angles are supported. (Ie489f)
- Fixed an issue during EdgeButtonrecomposition. (I4cdca)
- Corrected layouts of split toggle buttons when customized content padding is provided. (Ia33d3)
- Rounded up small progress values to at least the line width of the progress indicator. (I3bd84)
Version 1.0.0-alpha23
May 14, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha23 is released. Version 1.0.0-alpha23 contains these commits.
API Changes
- We have updated ToggleButtonandRadioButtonAPIs such that disabled colors can be configured. (If13a7)
- We have added a new CircularProgressIndicatorfor Material3. (Ib3bd7)
Bug Fixes
- We have fixed a bug where selectable buttons announced double tap to toggle when already selected. (I7ed88)
Version 1.0.0-alpha22
May 1, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha22 is released. Version 1.0.0-alpha22 contains these commits.
API Changes
- We have updated the Material3 ColorScheme. (I7b2b8)
- We have updated the Material3 Switch - as well as some color changes, the tick now matches that used for the Checkbox. (Icac7b)
Bug Fixes
- Update all integration demos to use new rotaryScrollablemodifier. (I25090)
Version 1.0.0-alpha21
April 17, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha21 is released. Version 1.0.0-alpha21 contains these commits.
- This release was triggered due to a technical issue in the previous release that resulted in missing source jars. There are no new commits in this release.
Version 1.0.0-alpha20
April 3, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha20 is released. Version 1.0.0-alpha20 contains these commits.
Bug Fixes
- We have adjusted the Ripple pressed and focused state alphas for contrast. (I59f0a)
- We have added spacing between primary and secondary labels in Button,ToggleButtonandRadioButton, following the latest changes to typography styles and line heights. (I2c0ba)
Version 1.0.0-alpha19
March 6, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha19 is released. Version 1.0.0-alpha19 contains these commits.
API Changes
- We have added TimeTextto the Wear Compose Material3 library. This component shows the current time (and additional status) at the top of the screen. The new, concise Material3 API avoids duplication between linear and curved content. (I4d7c3)
- We have updated parameter names from onSelectedtoonSelectforRadioButton. (I1a971)
- Tokenize RadioButtonandSplitRadioButtonand also refactor the existing methods to reduce the amount ofCompositionLocallookup by adding cached instances of colors, and making methods ofRadioButtonColorsandSplitRadioButtonColorsinternal. (I02b33)
Version 1.0.0-alpha18
February 21, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha18 is released. Version 1.0.0-alpha18 contains these commits.
API Changes
- We have refactored the defaults pattern for CardColors,ToggleButtonColorsandSplitToggleButtonColorsby creating cached instances internally and reducing the usage ofCompositionLocal. (If3fec)
Version 1.0.0-alpha17
February 7, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha17 is released. Version 1.0.0-alpha17 contains these commits.
API Changes
- We have updated the Button API to use buttonColorsby default and removed the duplicatefilledButtonColors. (I4fe3b)
- We have refactored default patterns for ButtonColors,IconButtonColorsandTextButtonColorsby creating a cached instance internally and reducing the usage ofCompositionLocal. (I5f51c)
- We have removed the overhead of rememberUpdatedStatein Component specific color classes and marked accessor methods inside color classes as internal. (If6571)
Bug Fixes
- We have updated Modifier.minimumInteractiveComponentSizeto useModifier.node. (Iba6b7)
Version 1.0.0-alpha16
January 24, 2024
androidx.wear.compose:compose-material3:1.0.0-alpha16 is released. Version 1.0.0-alpha16 contains these commits.
New Features
- We have added CompactButton, which can use the same filled, filled tonal and outlined colors as Button.(I05df0)
API Changes
- We have added RadioButton/SplitRadioButtonas containers for selection controls, such as the Radio control. This differs from the existingToggleButtonin thatRadioButtonis selectable (and operates within a selection group) whereasToggleButtonis toggleable (and is independent). (I61275)
- We are removing LocalContentAlphafrom the Wear Compose Material3 library for consistency with the Compose Material3 library. (I49a0a)
- Wear material and wear material3 components exposing a MutableInteractionSourcein their API have been updated to now expose a nullableMutableInteractionSourcethat defaults to null. There are no semantic changes here: passing null means that you do not wish to hoist theMutableInteractionSource, and it will be created inside the component if needed. Changing to null allows for some components to never allocate aMutableInteractionSource, and allows for other components to only lazily create an instance when they need to, which improves performance across these components. If you are not using theMutableInteractionSourceyou pass to these components, it is recommended that you pass null instead. It is also recommended that you make similar changes in your own components. (Ib90fc, b/298048146)
- Adds new ripple API in wear:compose-materialandwear:compose-material3libraries which replaces the deprecatedrememberRipple. Also adds a temporaryCompositionLocal,LocalUseFallbackRippleImplementation, to revert Material components to using the deprecatedrememberRipple/RippleThemeAPIs. This will be removed in the next stable release, and is only intended to be a temporary migration aid for cases where you are providing a customRippleTheme. See developer.android.com for migration information and more background information behind this change. (af92b21)
- We have made minor improvements to the HorizontalPageIndicatorapi and its documentation. (I60efc)
- We have updated ColorSchemeto be immutable, making individual color updates less efficient, but making more common usage of colors more efficient. The reasoning behind this change is that the majority of apps wouldn't have updating individual colors as a main use case. This is still possible but it will recompose more than before, in turn we significantly decrease the amount of state subscriptions through all of material code and will impact initialization and runtime cost of more standard use cases. (Ibc2d6)
- Updated ToggleButtonandSplitToggleButtonAPIs to allow disabled colors to be customized. In addition, Material Design tokens are now used for color and typography values. (If087c)
- Updated Button image background colors to use Material Design tokens. (Iba215)
- We have changed the Checkbox,SwitchandRadioButtoncomponents to be display-only, by removing the click handling. These components are expected to be used in(Split)ToggleButtonwhich handles the click, so the components are now more clearly indicated as display-only (and are not intended for standalone use on Wear). (I2322e)
Bug Fixes
- We have added tokens for motion values of durations and easings in Wear Compose Material 3. (I437cd)
- We have fixed a bug in the ToggleButton,SplitToggleButton,Checkbox,SwitchandRadioButtonso that accessibility announcements are not repeated (previously, semantic roles were duplicated). (Ica281)
- We have removed the materialcore layer for CompactButtonto improve performance. (7902858)
Version 1.0.0-alpha15
November 15, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha15 is released. Version 1.0.0-alpha15 contains these commits.
API Changes
- We have renamed the Foundation level SwipeToDismissBoxtoBasicSwipeToDismissBox. This makes the distinction clearer between the Foundation level component and the Material3 levelSwipeToDismissBox. The latter pulls colors from theMaterialThemeto be used in scrims and delegates the remaining implementation to theBasicSwipeToDismissBox. (Ibecfc)
Bug Fixes
- We have removed the material-core layer for Material3 Button to improve performance. (I55555)
Version 1.0.0-alpha14
October 18, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha14 is released. Version 1.0.0-alpha14 contains these commits.
API Changes
- We have removed the indicatorStyleparameter from the Material3HorizontalPageIndicator- instead, it will follow the device screen shape (linear or round). (I83728)
- We have separated the colors for SplitToggleButtonfrom those forToggleButton, by adding a newSplitToggleButtonColorsclass. (I78bee)
Version 1.0.0-alpha13
October 4, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha13 is released. Version 1.0.0-alpha13 contains these commits.
API Changes
- We have added an optional Subtitle field to TitleCard. (Ifc45a)
- We have added Material Design color tokens for TextButton. (I769dc)
Version 1.0.0-alpha12
September 20, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha12 is released. Version 1.0.0-alpha12 contains these commits.
API Changes
- We have updated IconButtonto use Material Design tokens. (I3f137)
- We have updated IconToggleButtonto use Material Design tokens. (I7d263)
- We have made public the constructors of CheckboxColors,RadioButtonColors,SwitchColors. (I82b73)
Version 1.0.0-alpha11
September 6, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha11 is released. Version 1.0.0-alpha11 contains these commits.
Bug Fixes
- We update updated the typography for Material3 Cards to TitleMedium. (I597bd)
- We have updated the typography and alignment for our Material3 ListHeaderandListSubheader. (Ib5ceb)
Version 1.0.0-alpha10
August 23, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha10 is released. Version 1.0.0-alpha10 contains these commits.
New Features
- Add HorizontalPageIndicatorin Wear Material3 library. (Ifee99)
API Changes
- Update Buttons code to use Material3 design tokens. (I92fe4)
- Declaring Wear Material 3 Stepper and Slider APIs as experimental as the details of the user interface are still being finalized. (I84d54)
- We have removed the ExtraSmallsizes from the roundTextButtonandTextToggleButtonas that size only applies to theIconButton. (Ibc7d5)
Bug Fixes
- We have updated the guidance on typography for TextToggleButton to use LabelLarge for LargeButtonSize (Ib10fa)
- We have updated the guidance on typography for TextButton to use LabelLarge for LargeButtonSize (I8f3a7)
- We have set the Card's minimum touch target to be 48dp for accessibility. (Ieb9b1)
- Add AppCard with image demo, removing AppCard with Background demo (Id735f)
- Fix a bug in round buttons where modifiers were not chained correctly. (I5e162)
Version 1.0.0-alpha09
August 9, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha09 is released. Version 1.0.0-alpha09 contains these commits.
New Features
- We have added ToggleButtonfor material3 (I6bed6)
API Changes
- We have turned on the FloatRangeannotation as API constraints , which were previously stated in comments. (Icb401)
- We have updated the typography for Wear Material3 to adhere to the latest Material3 guidelines. (I1bad6)
Bug Fixes
- We have updated the colors for Button,IconButtonandTextButtonin line with Material3 design. (Ib2495)
- We have fixed checkbox tick visibility in disabled states. (Ib25bf)
Version 1.0.0-alpha08
July 26, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha08 is released. Version 1.0.0-alpha08 contains these commits.
New Features
- We have added the following selection controls for Material3 - Switch,Checkbox,RadioButton. (Ib918c)
- We have added IconToggleButtonandTextToggleButtonto Material3, a circular toggle button with a single slot for icon and text respectively. For different sizes ofToggleButton, we recommend usingModifier.touchTargetAwareSizewith the sizes provided in respective toggle buttons. (I9f015)
- We have added ListHeaderandListSubheaderto our Material3 components. (Ibaefe)
- We have added Material3 SwipeToDismissBox, which calls the new FoundationSwipeToDismissBoxand supplies default color values from its theme. (I275fb)
- We have added the Material3 InlineSliderto Wear Compose. It allows users to make a selection from a range of values. The range of selections is shown as a bar between the minimum and maximum values of the range, from which users may select a single value.InlineSlideris ideal for adjusting settings such as volume or brightness. (I7085f)
API Changes
- We have updated the Shapes in Wear Material 3 theme to use RoundedCornerShapebased instead of Shape. (Idb133)
- We have made the height constants for Button public (Idbfde)
- Updated API files to annotate compatibility suppression (I8e87a, b/287516207)
- We have updated InlineSliderColorsin Wear Compose Material 3 to have public constructor and public properties. (I6b632)
- We have updated all color classes in Wear Compose Material 3 to have public constructors and public properties. (I17702)
- We have made Button horizontal and vertical padding constants public. (Ieeaf7)
Bug Fixes
- Button will now adjust its height to accommodate content that has grown due to large fonts for accessibility, when required (Iaf302)
- We have updated a number of Button demos to address accessibility issues. (I61ce9)
- Stepperand- InlineSlidernow support repeated clicks on long press so that you can quickly increase/decrease value of- Stepperand- InlineSliderby holding the + or - buttons (I27359)
Version 1.0.0-alpha07
June 21, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha07 is released. Version 1.0.0-alpha07 contains these commits.
New Features
- We have added the Steppercomponent to our Compose for Wear OS Material 3 library. This is similar to the previous Material version, but omits range semantics by default, following developer feedback. We provideModifier.rangeSemanticsthe cases where range semantics are required. (Ic39fd)
- We have added curvedTextto our Compose for Wear OS Material 3 library. (Ia8ae3)
Bug Fixes
- We have update wear.compose.foundationto be an API dependency ofwear.compose.material3(I72004, b/285404743)
Version 1.0.0-alpha06
June 7, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha06 is released. Version 1.0.0-alpha06 contains these commits.
Bug Fixes
- We have updated TextButtonto use thetoDisabledColorextension function for correct disabled alpha values. (I814c8)
Version 1.0.0-alpha05
May 24, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha05 is released. Version 1.0.0-alpha05 contains these commits.
New Features
- We have added TextButtonto Material3, a circular button with a single slot for text. For different sizes ofTextButton, we recommend usingModifier.touchTargetAwareSizeandExtraSmallButtonSize,SmallButtonSize,DefaultButtonSizeandLargeButtonSizeIconprovided inTextButtonDefaults. The defaultTextButtonhas no border and a transparent background for low emphasis actions. For actions that require high emphasis, usefilledTextButtonColors; for a medium-emphasis, outlinedTextButton, set the border toButtonDefaults.outlinedButtonBorder; for a middle ground between outlined and filled, usefilledTonalTextButtonColors. (I667e4)
- We have added Card,OutlinedCard,AppCardandTitleCardinto the Wear Compose Material3 library.AppCardandTitleCardcan also be given the outlined appearance usingCardDefaults.outlinedCardColorsandCardDefaults.outlinedCardBorder(I80e72)
API Changes
- We have moved the Button label parameter to the end to support trailing lambda syntax and removed the role parameter (as this can be overridden using Modifier.semantics).ButtonColorsconstructors are now public. (Ie1b6d)
Version 1.0.0-alpha04
May 10, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha04 is released. Version 1.0.0-alpha04 contains these commits.
New Features
- We have added IconButtonto Material3, a circular button with a single slot for icon/image. There are four variations:IconButton,FilledIconButton,FilledTonalIconButtonandOutlinedIconButton. For different sizes ofIconButton, we recommend usingModifier.touchTargetAwareSizeandExtraSmallButtonSize,SmallButtonSize,DefaultButtonSizeandLargeButtonSizeIconprovided inIconButtonDefaults. We also provideIconButtonDefaults.iconSizeForto determine the recommended icon size for a given button size. (I721d4)
Version 1.0.0-alpha03
April 19, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha03 is released. Version 1.0.0-alpha03 contains these commits.
API Changes
- We have added the Material 3 Button component - this is our stadium-shaped button and was formerly named Chip in the Wear Compose Material library (it has been renamed to Button for consistency with the Compose Material 3 library). The default Button has a filled background and there are button variations for FilledTonal(muted background), Outlined (transparent with a thin border) and Child (transparent background and no border, used for supplementary actions with the lowest amount of prominence). Round buttons for simple icon and text content will follow in a future release.(Ia6942)
Version 1.0.0-alpha02
April 5, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha02 is released. Version 1.0.0-alpha02 contains these commits.
Bug Fixes
- We have added a DefaultTextStyleto Wear Compose Material 3 which defaults thePlatformTextStyle.includeFontPaddingto true (the current setting). This will allow us to synchronize turning off font padding by default with the Compose libraries in the future (see Fix font padding in Compose for background). (I7e461)
Version 1.0.0-alpha01
March 22, 2023
androidx.wear.compose:compose-material3:1.0.0-alpha01 is released. Version 1.0.0-alpha01 contains these commits.
New Features
- Material 3 is the next evolution of Material Design and includes updated theming and redesigned components. Material 3 on Wear Compose is designed to be cohesive with the Material 3 Compose library on Android. This first alpha release contains early, functional implementations of the following: 
- We will continue to develop Wear Material ( - androidx.wear.compose:compose-material) and Wear Material 3 (- androidx.wear.compose:compose-material3) in parallel. Future material3 releases will extend the widget set to include other familiar components from Compose for Wear OS, such as buttons, pickers, and sliders.
- The Wear Material and Wear Material 3 libraries are mutually exclusive and should not be mixed in the same app, primarily because they reference different themes which would lead to unexpected inconsistencies. 
