Wear Compose Material 3
Latest Update | Stable Release | Release Candidate | Beta Release | Alpha Release |
---|---|---|---|---|
June 4, 2025 | - | - | 1.5.0-beta03 | - |
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-beta03" // For Wear Material Design UX guidelines and specifications implementation "androidx.wear.compose:compose-material3:1.5.0-beta03" // For integration between Wear Compose and Androidx Navigation libraries implementation "androidx.wear.compose:compose-navigation:1.5.0-beta03" // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.5.0-beta03") // 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-beta03") // For Wear Material Design UX guidelines and specifications implementation("androidx.wear.compose:compose-material3:1.5.0-beta03") // For integration between Wear Compose and Androidx Navigation libraries implementation("androidx.wear.compose:compose-navigation:1.5.0-beta03") // For Wear preview annotations implementation("androidx.wear.compose:compose-ui-tooling:1.5.0-beta03") // 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-beta03
June 4, 2025
androidx.wear.compose:compose-*:1.5.0-beta03
is released. Version 1.5.0-beta03 contains these commits.
API Changes
OpenOnPhoneDialog
now announces only the message text under TalkBack, and skips the icon semantics. TheOpenOnPhoneDialogDefaults
have been updated to remove theiconContentDescription
and thecontentDescription
parameter fromicon()
. Also,ConfirmationDialogDefaults
now has modifier parameters onSuccessIcon
andFailureIcon
composables. (Id2ae2)
Bug Fixes
- Changed the order in which we apply the effect of
SurfaceTransformation
parameters. 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.Saver
was added to be used to restore the state ofSwipeToReveal
when activity or process is recreated.rememberRevealState
function now uses this Saver by default. (Ie0ecb)SwipeToReveal
primary and secondary actions buttons should default toButtonDefault.Height
(fixed bug where these were filling the maximum height for taller buttons). (Ibfba1)- Changed
SwipeToReveal
to reset the last component interacted with, when the swipe right gesture is performed. (Ia8450) SwipeToReveal
was changed to settle on theRevealing
state 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) AnimatedText
now supports RTL text direction (I4533c)TransformingLazyColumn
now resizes items correctly when the bottom item is removed (Idacab)TransformingLazyColumn
now 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) OpenOnPhoneDialog
under TalkBack should announce the curved text, rather than the icon content description. (I4efe8)- Fixed a bug in
SwipeToReveal
that would report the wrong anchor inRevealState.currentValue
whenhasPartiallyRevealedState
is set to false. (I9c7cf) SwipeToReveal
undo buttons are nowButtonDefaults.Height
by default. (I1f6c8)BasicSwipeToDismissBox
performance 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
placeholderShimmer
implementation. (Iee39b TransformingLazyColumn
performance has been improved, by optimizingScrollProgress
calculation 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:
MaterialTheme
for 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
,IconToggleButton
andTextToggleButton
support 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
AppScaffold
andScreenScaffold
to lay out the structure of the screen and coordinateScrollIndicator
andTimeText
animations. - Buttons - numerous stadium-shaped buttons are supported with flexible, single-slot containers and multi-slot variations for buttons with icons and labels.
CheckboxButton
andSwitchButton
are provided when toggle buttons are needed, whilstRadioButton
is 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.AlertDialog
variations support ok/cancel buttons or anEdgeButton
.ConfirmationDialog
is available to display a message with a timeout, supporting special animations for success, failure and open-on-phone variations.- Pickers -
TimePicker
andDatePicker
variations are supported as well as the Picker andPickerGroup
components for building your own picker screens. ProgressIndicators
- circular, and linear progress indicators are supported (theCircularProgressIndicator
has segmented and indeterminate variations).- Cards - a number of card variations are available, including
TitleCard
which offers specific layouts for cards with title, time, subtitle or content slots.TitleCard
can also be given an image background to reinforce the meaning of the information in a card. - Pagers -
HorizontalPagerScaffold
,VerticalPagerScaffold
andAnimatedPage
components coordinateHorizontalPageIndicator
andVerticalPagerIndicator
animations.HorizontalPager
andVerticalPager
are 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 -
HorizontalPager
andVerticalPager
components, 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.hierarchicalFocus
toModifier.hierarchicalFocusGroup
and removed the callback parameter; removed the overload ofModifier.hierarchicalFocusRequester
with aFocusRequester
parameter; created a newCompositionLocal
,LocalScreenIsActive
so that components can inform and check which screen is the active one. (I5ff7c). - Deprecated
SwipeToReveal
from Wear Compose Foundation in favor ofSwipeToReveal
APIs in Wear Compose Material and Wear Compose Material3. Please replace Wear FoundationSwipeToReveal
imports with Wear Compose Material/ Wear Compose Material3 imports to continue using the APIs. (Ia147d). - Wear Compose Material3
SwipeToReveal
dependencies 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.foundation
toandroidx.wear.compose.material3
. (I640e6). - Updated the Wear Compose Material3
SwipeToReveal
API as follows: addedprimaryAction
,onFullSwipe
,secondaryAction
,undoPrimaryAction
,undoSecondaryAction
andhasPartiallyRevealedState
parameters to theSwipeToReveal
composable; removed the ability to customizepositionalThreshold
andanimationSpec
fromRevealState
; removedlastActionType
,revealThreshold
and width fromRevealState
; changed theRevealState
constructor to accept aRevealDirection
instead of anchors; removedcreateRevealAnchors
, anchors, andbidirectionalAnchors
functions;SwipeToRevealScope
functionsprimaryAction
,secondaryAction
,undoPrimaryAction
andundoSecondaryAction
were renamed toPrimaryActionButton
,SecondaryActionButton
,UndoActionButton
and made into Composable functions; markedRevealActionType
as internal. (I885d0). - Further updated
SwipeToReveal
API as follows: renamedonFullSwipe
toonSwipePrimaryAction
; renamedSwipeToRevealNonAnchoredSample
to indicate the use of thehasPartiallyRevealedState
parameter; removedactionButtonHeight
, since the default is the Button's default height and the larger height can be set using a modifier; removed theSmallActionButtonHeight
fromSwipeToRevealDefaults
; made the value parameter inRevealValue
andRevealDirection
constructors private. (I465ce).
Bug Fixes
- Fixed
ScreenScaffold
’sEdgeButton
handling so that, after aTransformingLazyColumn
item is removed, theEdgeButton
is animated into place. (I6d366). - Updated Wear Compose dependencies on Compose libraries to version 1.8.0. (I2ef3f).
- Updated the motion of the indeterminate
CircularProgressIndicator
so that it no longer regresses temporarily. (Ieddb1). - Fixed a
SwipeDismissableNavHost
bug - 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
containerPainter
anddisabledContainerPainter
overridecontainerColor
anddisabledContainerColor
(I4a453). - Reverted a change to
TimeText
in the previous release which moved theBroadcastReceiver
to 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
rememberUpdatedState
in Picker to remember the latestcontentDescription
lambda function. (Icb5b1). - Updated text styles in
TimePicker
andDatePicker
so that font changes no longer result in truncation. (I26194). ListHeader
andListSubHeader
now 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
SwipeToReveal
composable itself). (Ie92a3). - Updated the default
MaxLines
set on theEdgeButton
content according to its size - it is now 1 for extra small, 2 for small and medium, and 3 for large. (Ie35f6). - Simplified
LocalReduceMotion
so 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
scrollTransform
from the public API surface. Use the combination oftransformedHeight
andgraphicsLayer
modifiers if you need to get the same functionality. (Ie181d) - Replaced
ImageButton
andImageCard
composables withButton
andCard/TitleCard
overloads respectively. RenamedimageButtonColors
tobuttonWithContainerPainterColors
andimageCardColors
tocardWithContainerPainterColors
. Added publicButtonDefaults.scrimBrush
andCardDefaults.scrimBrush
. Renamed buttonimageBackgroundGradientStartColor
andimageBackgroundGradientEndColor
toscrimGradientStartColor
andscrimGradientEndColor
. RenamedCardDefaults.ImageContentPadding
toCardDefaults.CardWithContainerPainterContentPadding
(I7b8b6) Picker
andPickerGroup
now take thecontentDescription
as a lambda to avoid unnecessary recompositions. (I002dd)
Bug Fixes
- Fixed an issue where indeterminate
CircularProgressIndicator
would 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
OpenOnPhoneDialog
so 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.imageBackgroundButtonColors
withImageButton
,ButtonDefaults.imageButtonColors
,ButtonDefaults.containerPainter
andButtonDefaults.disabledContainerPainter
. And similar changes for Card. The painters are removed fromButtonColors
andCardColors
. (I8c6a1) - Updated placeholders to simplify the API. We now provide two Modifiers,
Modifier.placeholderShimmer
to apply a shimmer effect at the component level, andModifier.placeholder
to 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
FadingExpandingLabel
when text spans multiple lines. (I04eb7) - Updated padding between primary and secondary labels on buttons. (I99b7b)
ArcLarge
has been reduced from20sp
to18sp
, and letter spacings onArcLarge
andArcSmall
have been updated.ConfirmationDialog
/OpenOnPhoneDialog
now use the defaultArcLarge
instead of overriding it to18sp
. (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
AlertDialog
top padding is now reduced by default when an icon is provided - this makes best use of the screen size available. (Ief06c)PagerScaffoldDefaults.FadeOutAnimation
has been renamed toPagerScaffoldDefaults.FadeOutAnimationSpec
. The page parameter onAnimatedPage
has been renamed topageIndex
. (I701f2)- Updated naming for
TransformingLazyColumn
’sSurfaceTransformation
-applyTransformation
split intoapplyContainerTransformation
andapplyContentTransformation
, and renamedcreateBackgroundPainter
tocreateContainerPainter
. Further naming updates toTransformationSpec
andResponsiveTransformationSpec
. (I1c534) - The
AppScaffold backgroundColor
has been renamed tocontainerColor
. (I4e63f)
Bug Fixes
- Fixed an issue in
FadingExpandingLabel
where the text did not always expand correctly. (I0e773) ArcLarge
has been reduced from 20sp to 18sp, and letter spacings onArcLarge
andArcSmall
have been updated.ConfirmationDialog/OpenOnPhoneDialog
now use the defaultArcLarge
instead of overriding it to 18sp. (Id39a8)- Updated the heading animation for
DatePicker
andTimePicker
based, so that the fade-out and fade-in animation act as one Spring animation. (I68963) - Optimized
PagerScaffold
by avoiding the reading ofcurrentPageOffsetFraction
in theAnimatedPage
composable. (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.
TimePicker
andDatePicker
continue to applyFontFeatureSetting=tnum
for tabular numerals. (I88929) - Corrected the initial RSB input focus for
TimePicker
andDatePicker
. (I1c773) - Updated the default text on
OpenOnPhoneDialog
to "Check your phone". (I00a3f) - Updated weights for
ArcLarge
andArcMedium
from 600 to 599 to workaround an issue where weight 600 is treated as bold (I2a51d) - Update
SwipeToReveal
paddings 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
PagerScaffold
no longer emits aPager
component - instead this must be provided via thecontent
Composable.AnimatedPage
andsnapWithSpringFlingBehaviour
are now public and can be used along with Wear FoundationPager
to achieve previous M3PagerScaffold
behaviour. (See updated samples). (Ia4724)- Updated
PagerState
, removing the Compose FoundationPagerState
as the base class and addingcurrentPage
,currentPageOffsetFraction
andpageCount
properties. Updated theGestureInclusion
interface, renaming the method toignoreGestureStart
. (I4ae07) LevelIndicator
sweep angle parameters are now annotated withFloatRange(0, 360)
(I7e636)- We have added
CurvedModifier.clearAndSetSemantics
to provide a means by which curved semantics can be turned off.CurvedText
continues to default the content description to the text, buttimeTextCurvedText
andtimeTextSeparator
do 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 toPagerDefaults.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
SurfaceTransformation
parameter 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 theSwipeDirection
is set to single direction. (I32ef0) - Added
FadingExpandingLabel
composable, which allows it to fade in text with animation line by line. (Ic60fa) TransformingLazyColumn
now uses emptycontentPadding
by default instead of putting first and last items into center. (I77ab7)- Removed
SwipeToReveal
’srememberRevealState
from 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
ScrollIndicator
andPageIndicator
has 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
CurvedTextStyle
used inConfirmationDialogDefaults
andOpenOnPhoneDialogDefaults
has been updated to useArcLarge
typography with size18sp
and letter spacing1.8sp
. (Ic9ced) Card
,ListHeader
,RadioButton
,CheckboxButton
,SwitchButton
no longer constrain the height of its contents by default. Where necessary, useModifier.height(IntrinsicSize.Min)
to restore the previous behavior if needed. (I80bb8)- We have updated the default
TimeText
andScrollIndicator
colors 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
TimeText
andScrollIndicator
in 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
SwipeToReveal
usingedgeSwipeToDismiss
modifier. (I02b07) - We have added a heading to
DatePicker
andTimePicker
under TalkBack so that the user is informed to scroll to set date/time. (Id738d) AnimatedText
now follows the reduce motion setting. (Ib6578)- The optimisation to use
AppScaffold
for 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
'sprimaryAction
andsecondaryAction
. Custom action semantics should be added to the content of theSwipeToReveal
component directly, by the developer. (Ia67f3) - We have removed the 'Button' prefixes from sizes, text styles and color functions in
IconToggleButtonDefaults
andTextToggleButtonDefaults
(I5471d) - We have removed the experimental
LocalMinimumInteractiveComponentEnforcement
(I4ad8a) - We have replaced the
PickerGroupScope
DSL with a composable. As such, we removed thepickerGroupItem
method fromPickerGroupScope
, and instead added@Composable PickerGroupItem
that 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
LevelIndicator
overload 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
’sTransformationSpec
to 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
,TextButtonShapes
andTextToggleButtonShapes
to be consistent with the compose/material3 classes (I5a081) - We have added an
overscrollEffect
parameter added toScalingLazyColumn
,TransformingLazyColumn
andScreenScaffold
. (I0cee8) - We have renamed the
swipeDirection
parameter torevealDirection
inrememberRevealState
. (I7472f) - Wear Pager now has its own
PagerScope
instead of using ComposePagerScope
. (I9195b) - We have removed the
LinearProgressIndicatorContent
composable, please useLinearProgressIndicator
directly so that changes to values are animated by default. (I2c4ad) - We have removed the
CircularProgressIndicatorStatic
composable and added a publicDrawScope
functiondrawCircularProgressIndicator
with the same functionality. Please useCircularProgressIndicator
directly so that changes are animated by default, but build your own composable fromdrawCircularProgressIndicator
if custom animations are needed. (Ie762f) - We have reordered the parameters in
DrawScope.drawCircularProgressIndicator
to move up thetargetProgress
parameter. (I8ab92) - The
OpenOnPhoneDialog
api was updated for better clarity and consistency with other Dialogs. Theshow
parameter was renamed tovisible
andcurvedText
is now provided by the caller instead of having a default value. (Idec2d) - We have renamed
openOnPhoneCurvedText
toopenOnPhoneDialogCurvedText
(I65bdd) - We have added
ScrollIndicatorColors
for providing custom colors toScrollIndicator
. (I9eb8c) - Allow the configuration of the color used to draw a background behind
TimeText
. (I9f5d9) - Updated
ArcLarge
,ArcMedium
andArcSmall
typographies to beCurvedTextStyle
(Iffc41) - We have removed
ScreenScaffoldDefaults.contentPaddingWithEdgeButton
. (Ia923e) - We have added
errorDim
to 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.material3
to version 1.15.0 ofandroidx.core.core
(I132e9) - We have improved Dialog's performance by using the
AppScaffold
to 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
,TextButtonShapes
andTextToggleButtonShapes
to improve consistency across Material3 libraries. This change also introduces shape caching to reduce the number of allocations. (I049fc) - We have removed the
pressedShapeCornerSizeFraction
parameter from thevariantAnimatedShape
method inIconToggleButton
andTextToggleButton
(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-basedButtonGroupItem
withModifier.weight
,Modifier.minWidth
andModifier.enlargeOnPress
. (I16c3c) - In the
ButtonGroup
API, we have updated the new modifier-basedButtonGroupScope
:enlargeOnPress
is now calledanimateWidth
, and it takes anInteractionSource
, rather thanMutableInteractionSource
because 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.contentColor
to start with a lowercase letter as it is a composable property (I125a5) - We have added a content description parameter to
SliderDefaults.DecreaseIcon
andSliderDefaults.IncreaseIcon
, with suitable default values (I2e1a7) - We have renamed the
spacing
parameter inPicker
andPickerGroup
toverticalSpacing
(Ib75cc) - We have removed
ConfirmationDialogDefaults.successText
andfailureText
because it is expected that callers ofConfirmationDialog
will provide strings with more context. Also renamedconfirmationCurvedText
toconfirmationDialogCurvedText
. Finally, renamed the Dialogshow
parameter to visible for consistency with other recent updates to dialogs. (I10074) IconButton
renameddisabledImageOpacity
toDisabledImageOpacity
. (I5f94a)
Bug Fixes
- We have fixed a bug in
EdgeButton
animation so that the correct size is used in each frame (Id3b58) - Fixed an issue with
animateContentSize
not working withButton
. (Ib18a0) - We have changed the Title Large type scale to have font size
18dp
(Ic9d52) - We have updated
AlertDialog
spacing 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
ScreenScaffold
andEdgeButton
APIs, so that it is easier to specify content paddings on screens that include anEdgeButton
. In the new API theEdgeButton
'ssize
is only passed to theEdgeButton
, and theScreenScaffold
takes anedgeButtonSpacing
parameter for the spacing betweenEdgeButton
and list content. (I424fd) - In
DatePicker
, we have renamed parametersminDate
tomaxDate
, andminValidDate
tomaxValidDate
. InDatePickerColors
, we have renamed parameterselectedPickerContentColor
toactivePickerContentColor
, andunselectedPickerContentColor
toinactivePickerContentColor
(Iba17b) - We have updated the
ArcProgressIndicator
defaults tostrokeWidth=6dp
and 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 theshow
parameter tovisible
for compatibility with other Compose animation APIs. In addition, we have madeConfirmationDialogContent
,SuccessConfirmationDialogContent
,FailureConfirmationDialogContent
available for situations where developers need to customize the intro/outro dialog animations. (Iaeb33) - We have updated
CircularProgressIndicatorContent
toCircularProgressIndicatorStatic
(the non-animated variation ofCircularProgressIndicator
) so that it can now be used to buildCircularProgressIndicator
with custom animations. (I1346f) - We have fixed the parameter ordering on the
ArcProgressIndicator
, putting the modifier parameter first (I4656a) - Improved the
SwipeToReveal
API 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
LongPress
haptics 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
SwipeToReveal
component. (Ib87fb) - Changed
SwipeToReveal
to expand the container at the same time that the text is displayed. (I44cf8) - Improved
SwipeToReveal
to perform haptic feedback when the swipe passes the threshold where the primary action is committed. (I23efe) - We have updated
SwipeToReveal
to display ellipsis on text overflow by default, for primary and undo actions. (I71f5a) - We have fixed an issue causing jitter on
ButtonGroup
animations. (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
scrollTransform
modifier forTransformingLazyColumn
was refactored which triggered an API change. (I0c6dc) - We have updated
IconToggleButtonShapes
andTextToggleButtonShapes
to have two different shape parametersuncheckedPressed
andcheckedPressed
(I85dbd) - Invalid month/day options are now visible in the
DatePicker
, with a newinvalidPickerContentColor
, when usingminDate
ormaxDate
. (If4541) - We have updated the
Stepper
API to provideincreaseIcon
anddecreaseIcon
slots - the content for these can be built as usual from the Icon composable. (Id35da) - We have updated
dynamicColorScheme
by removing the optionaldefaultColorScheme
parameter 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
ButtonDefaults
for use withCompactButton
. ACompactButton
containing only an icon should useButtonDefaults.SmallIconSize = 24.dp
, whereas aCompactButton
containing both icon and text should useButtonDefaults.ExtraSmallIconSize = 20.dp
. It is recommended thatCompactButton
wrap its content (rather than filling the max width) and samples have been updated to show that. (I0582c) - We have added
EdgeButtonDefaults
with recommended icon sizes for the 4 differentEdgeButtonSizes
. Also, updated theEdgeButton
layout 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
LinearProgressIndicator
and exposedLinearProgressIndicatorContent
which provides the visual content without animations. (Idee99) - We have added a new
CircularProgressIndicatorContent
composable to display the visual content ofCircularProgressIndicator
without animations. (Ie33d4) TransformingLazyColumn
newly provides the composition localLocalTransformingLazyColumnItemScope
whichCard
s,Button
s andListHeader
s now use to automatically morph when placed inside aTransformingLazyColumn
. Callers can disable automatic morphing using the newTransformExclusion
wrapper. (I1652f)- We have updated the type of
ButtonDefaults.shape
toRoundedCornerShape
(Iccdf2)
Bug Fixes
- We have fixed a bug to respect existing alpha on background for
TimeText
(I1eb60) - We have set
TextMotion
toAnimated
by 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
ScrollIndicator
by increasing width and gap size, to improve visibility. (Ied7cb) - We have fixed a bug on
Modifier.scrollTransform
when 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
LevelIndicator
to 20% (i.e. 72 degrees). (Idde5c) - We have fixed
ScrollIndicator
positioning whenScalingLazyColumn
was used withAutoCenteringParams
. (I387dd) - We have updated the colors and typography for
ListHeader
andListSubHeader
. Also the colors for the toggle controls onCheckboxButton
andSwitchButton
. (I39817) - We have fixed
ScrollIndicator
positioning inLazyColumn
andScalingLazyColumn
withContentPadding
. (I2bc51) - We have fixed a bug seen in
OpenOnPhoneDialog
progress animation by using the newCircularProgressIndicatorContent
. (I3e443) - We have updated the
HorizontalPagerScaffold
andVerticalPagerScaffold
to 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
EdgeButton
could 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
TimeText
to provide default content that shows the time. (Id23b3) - We have simplified the
ScrollInfoProvider
forPagerState
by removing theorientation
parameter, which is no longer needed. The new behavior is forTimeText
to remain in place for both horizontal and vertical paging. (I71767) LocalHapticFeedback
now provides a defaultHapticFeedback
implementation when the Vibrator API indicates that haptics are supported. The following have been added to theHapticFeedbackType
-Confirm
,ContextClick
,GestureEnd
,GestureThresholdActivate
,Reject
,SegmentFrequentTick
,SegmentTick
,ToggleOn
,ToggleOff
,VirtualKey
. Wear Compose long-clickable components such asButton
,IconButton
,TextButton
, andCard
now perform theLONG_PRESS
haptic 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
OpenOnPhone
dialog. (I1e10a) - We have fixed a bug in the
LevelIndicator
so that it is now correctly displayed with the level is zero. (Ie95a4) - We have updated the
HorizontalPageIndicator
andVerticalPageIndicator
animations. (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
AlertDialogContent
andDialog
composables that make up theAlertDialog
API, so that it is possible to add customization if necessary (such as customizingAlertDialog
animation whilst keeping the recommended content layout). In addition, we have addedModifier
andColor
parameters to theEdgeButton
,ConfirmButton
andDismissButton
members ofAlertDialogDefaults
. (I4eb71) - We have updated the
Placeholder
API as follows: renamedPlaceholderState.startPlaceholderAnimation
toPlaceholderState.animatePlaceholder
,PlaceholderState.isShowContent
toPlaceholderState.isHidden
, andPlaceholderDefaults.shape
toPlaceholderDefaults.Shape
; renamed thepainter
parameter inpainterWithPlaceholderOverlayBackgroundBrush
tooriginalPainter
; changed visibility ofPlaceholderState.placeholderProgression
from public to internal and renamed it toplaceholderShimmerProgression
; added placeholder animation duration constants toPlaceholderDefaults
. (Ie5a59) - We have updated the
EdgeButton
API as follows: renamed the parameter onScreenScaffold
frombottomButton
toedgeButton
; madeEdgeButtonSize
a 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
IconToggleButton
andTextToggleButton
on click (Ieb333) - Added minimum duration on
IconButton
andTextButton
shape 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
ScreenScaffold
andScrollIndicator
following the renaming of Wear Compose FoundationLazyColumn
toTransformingLazyColumn
. (I0608b) EdgeButton
'spreferredHeight
parameter has been renamed tobuttonSize
and its value can only be chosen from 4 constants in the newly introducedEdgeButtonSize
value class. (Icdd70)- We have changed the naming of
ListSubheader
toListSubHeader
and added publicly accessible default values forListHeader
andListSubHeader
. (I96730) - We have added new
HorizontalPagerScaffold
andVerticalPagerScaffold
components for Wear which provide new animations and coordination between time text and page indicator components. (Iff7d0) - We have added rotary support to
HorizontalPagerScaffold
andVerticalPagerScaffold
, enabling users to navigate pagers using rotary input devices. (I9770d) - We have made
MotionScheme
API 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 thestandardMotionScheme
and theexpressiveMotionScheme
to 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
AlertDialog
between 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
HorizontalPageIndicator
and addedVerticalPageIndicator
for use withVerticalPager
(Ic9309) AlertDialog
now 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
SwipeToReveal
component 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
'sbuttonHeight
parameter topreferredHeight
. (I4fab3) - The Kotlin version has been updated to 1.9 (I1a14c)
- We have renamed
OpenOnPhoneDialogDefaults.Icon
toOpenOnPhoneDialogDefaults.OpenOnPhoneIcon
to avoid clashing withIcon
(I0f391) - We have added support for
ScrollIndicator
inLazyColumn
. (Ia546a) - We have updated default values for
TextToggleButton
andIconToggleButton
. (I7aaa9) - We have simplified the
Picker
andPickerGroup
API. (Id0653) - We have added
CardDefaults.Shape
andCardDefaults.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
openOnPhone
icon animation (I66f85) - We are now using Google Symbols icons in
Slider
,TimePicker
andDatePicker
. (I46c7c) - We have updated the paddings in
Confirmation
andOpenOnPhoneDialog
. (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
CircularProgressIndicator
and theSegmentedCircularProgressIndicator
. When the progress exceeds 1.0, this will be indicated by the newoverflowTrack
color. (Iaaa3d) - The round
IconToggleButton
andTextToggleButton
now 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
EdgeButton
withColumn
, due to the need to specify theEdgeButton
height explicitly inScreenScaffold
. (Ie353d) - We have added support for the Wear Compose
LazyColumn
with ourScreenScaffold
(and added an implementation ofScrollInfoProvider
forLazyColumnState
). (Ib8d29) - We have combined
LocalTextMaxLines
,LocalTextAlign
,LocalTextOverflow
into a singleLocalTextConfiguration
composition 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
IconButton
andTextButton
. (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.align
from 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
AppScaffold
andScreenScaffold
components to the Material3 library, which include functionality to coordinate layering and transitions ofTimeText
andScrollIndicator
.AppScaffold
provides a top level of scaffold components that sit on top of all screens. As such, addingTimeText
to theAppScaffold
allows it to remain in place while swiping between screens. Screens can themselves override or hide the time text.ScreenScaffold
provides a slot for theScrollIndicator
and automatically animates the scroll indicator when scrolling, including timeout to hide the scroll indicator after inactivity. (I047d6) - We have added
ScrollIndicator
featuring 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
ScrollAway
API such thatScreenStage
is 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
ScreenScaffold
for a bottom button (such asEdgeButton
), that will be shown and resized depending on the scrolling content (I032eb) - We have added
Modifier.scrollTransform
andModifier.targetMorphingHeight
to add Material3 motion effects to items inLazyColumn
. (Ie229a) - We have added
SegmentedCircularProgressIndicator
as 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
LinearProgressIndicator
as 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.OpenOnPhoneDialog
is 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
TimeText
to mitigate issues where the underlying content and theTimeText
overlapped, 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 existingStepper
component to construct a volume screen.LevelIndicator
is 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
'stext
function. 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
RadioButton
andSplitRadioButton
- these components simplify the previous API by combining both the (Split)SelectableButton
and the child radio control (If7ae8) - We have added
CheckboxButton
andSplitCheckboxButton
- these components simplify the previous API by combining both the (Split)ToggleButton
and the child Checkbox control (Ia8f70) - We have added
SwitchButton
andSplitSwitchButton
- these components simplify the previous API by combining both the(Split)ToggleButton
and the child Switch control (I0d349) - We have updated
AnimatedText
documentation to explain overshooting behavior. (Iff30a) - We have added
ButtonGroup
to combine 2 or 3 buttons such that button presses produce a coordinated animation. (Ie27db) - We have added optional shape animation for
IconButton
andTextButton
when pressed. (Iffca5) - We have added an additional color variation,
FilledVariant
, toButton
,IconButton
,TextButton
,CompactButton
andEdgeButton
(I65fc3) - We have added the
forcedSize
parameter toImageWithScrimPainter
, such that Button image backgrounds now maintain their component size by default. Setting theforcedSize = null
adopts thePainter.instrinsicSize
instead. (Ic57af) - We have added long-click to Buttons (Ib613d)
- Long click support has also been added to
IconButton
andTextButton
. (I38891) - Long click support has been added to Cards. (I305d5)
- We have added
LocalTextMaxLines
,LocalTextAlign
,LocalTextOverflow
asCompositionLocals
and used them as parameter defaults onText
. The composition locals can now be used by components such asCheckboxButton
,SwitchButton
,RadioButton
to implement UX guidance, but the parameters can be overridden by developers if necessary. (Iab841) - We have added
Placeholder
to help in masking the content of components like buttons & cards until the data is loaded. (I1a532) - We have added
IconToggleButtonColors
andTextToggleButtonColors
to replace the now removedToggleButtonColors
. (Ie0bf1)
Bug Fixes
- We have updated
Button
,FilledTonalButton
,OutlinedButton
,ChildButton
,CompactButton
to use the newCompositionLocals
LocalTextMaxLines
,LocalTextAlign
,LocalTextOverflow
to 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
LevelIndicator
to6dp
to differentiate it from theScrollIndicator
which has a stroke width of4dp
. (If6f63) - We have fixed an issue in
TimeText
so that larger sweep angles are supported. (Ie489f) - Fixed an issue during
EdgeButton
recomposition. (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
ToggleButton
andRadioButton
APIs such that disabled colors can be configured. (If13a7) - We have added a new
CircularProgressIndicator
for 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
rotaryScrollable
modifier. (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
,ToggleButton
andRadioButton
, 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
TimeText
to 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
onSelected
toonSelect
forRadioButton
. (I1a971) - Tokenize
RadioButton
andSplitRadioButton
and also refactor the existing methods to reduce the amount ofCompositionLocal
lookup by adding cached instances of colors, and making methods ofRadioButtonColors
andSplitRadioButtonColors
internal. (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
,ToggleButtonColors
andSplitToggleButtonColors
by 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
buttonColors
by default and removed the duplicatefilledButtonColors
. (I4fe3b) - We have refactored default patterns for
ButtonColors
,IconButtonColors
andTextButtonColors
by creating a cached instance internally and reducing the usage ofCompositionLocal
. (I5f51c) - We have removed the overhead of
rememberUpdatedState
in Component specific color classes and marked accessor methods inside color classes as internal. (If6571)
Bug Fixes
- We have updated
Modifier.minimumInteractiveComponentSize
to 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
/SplitRadioButton
as containers for selection controls, such as the Radio control. This differs from the existingToggleButton
in thatRadioButton
is selectable (and operates within a selection group) whereasToggleButton
is toggleable (and is independent). (I61275) - We are removing
LocalContentAlpha
from the Wear Compose Material3 library for consistency with the Compose Material3 library. (I49a0a) - Wear material and wear material3 components exposing a
MutableInteractionSource
in their API have been updated to now expose a nullableMutableInteractionSource
that 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 theMutableInteractionSource
you 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-material
andwear:compose-material3
libraries which replaces the deprecatedrememberRipple
. Also adds a temporaryCompositionLocal
,LocalUseFallbackRippleImplementation
, to revert Material components to using the deprecatedrememberRipple/RippleTheme
APIs. 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
HorizontalPageIndicator
api and its documentation. (I60efc) - We have updated
ColorScheme
to 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
ToggleButton
andSplitToggleButton
APIs 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
,Switch
andRadioButton
components to be display-only, by removing the click handling. These components are expected to be used in(Split)ToggleButton
which 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
,Switch
andRadioButton
so that accessibility announcements are not repeated (previously, semantic roles were duplicated). (Ica281) - We have removed the materialcore layer for
CompactButton
to 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
SwipeToDismissBox
toBasicSwipeToDismissBox
. This makes the distinction clearer between the Foundation level component and the Material3 levelSwipeToDismissBox
. The latter pulls colors from theMaterialTheme
to 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
indicatorStyle
parameter from the Material3HorizontalPageIndicator
- instead, it will follow the device screen shape (linear or round). (I83728) - We have separated the colors for
SplitToggleButton
from those forToggleButton
, by adding a newSplitToggleButtonColors
class. (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
IconButton
to use Material Design tokens. (I3f137) - We have updated
IconToggleButton
to 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
ListHeader
andListSubheader
. (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
HorizontalPageIndicator
in 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
ExtraSmall
sizes from the roundTextButton
andTextToggleButton
as 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
ToggleButton
for material3 (I6bed6)
API Changes
- We have turned on the
FloatRange
annotation 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
,IconButton
andTextButton
in 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
IconToggleButton
andTextToggleButton
to Material3, a circular toggle button with a single slot for icon and text respectively. For different sizes ofToggleButton
, we recommend usingModifier.touchTargetAwareSize
with the sizes provided in respective toggle buttons. (I9f015) - We have added
ListHeader
andListSubheader
to our Material3 components. (Ibaefe) - We have added Material3
SwipeToDismissBox
, which calls the new FoundationSwipeToDismissBox
and supplies default color values from its theme. (I275fb) - We have added the Material3
InlineSlider
to 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.InlineSlider
is ideal for adjusting settings such as volume or brightness. (I7085f)
API Changes
- We have updated the Shapes in Wear Material 3 theme to use
RoundedCornerShape
based 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
InlineSliderColors
in 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)
Stepper
andInlineSlider
now support repeated clicks on long press so that you can quickly increase/decrease value ofStepper
andInlineSlider
by 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
Stepper
component 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.rangeSemantics
the cases where range semantics are required. (Ic39fd) - We have added
curvedText
to our Compose for Wear OS Material 3 library. (Ia8ae3)
Bug Fixes
- We have update
wear.compose.foundation
to 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
TextButton
to use thetoDisabledColor
extension 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
TextButton
to Material3, a circular button with a single slot for text. For different sizes ofTextButton
, we recommend usingModifier.touchTargetAwareSize
andExtraSmallButtonSize
,SmallButtonSize
,DefaultButtonSize
andLargeButtonSizeIcon
provided inTextButtonDefaults
. The defaultTextButton
has 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
,AppCard
andTitleCard
into the Wear Compose Material3 library.AppCard
andTitleCard
can also be given the outlined appearance usingCardDefaults.outlinedCardColors
andCardDefaults.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
).ButtonColors
constructors 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
IconButton
to Material3, a circular button with a single slot for icon/image. There are four variations:IconButton
,FilledIconButton
,FilledTonalIconButton
andOutlinedIconButton
. For different sizes ofIconButton
, we recommend usingModifier.touchTargetAwareSize
andExtraSmallButtonSize
,SmallButtonSize
,DefaultButtonSize
andLargeButtonSizeIcon
provided inIconButtonDefaults
. We also provideIconButtonDefaults.iconSizeFor
to 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
DefaultTextStyle
to Wear Compose Material 3 which defaults thePlatformTextStyle.includeFontPadding
to 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.