[ad_1]
Posted by Gurupreet Singh, Developer Advocate; Android
Today marks the first stable release of Compose Material 3. The library allows you to build Jetpack Compose UIs with Material Design 3, the next evolution of Material Design. You can start using Material Design 3 in your apps today!
Note: The terms “Material Design 3”, “Material 3”, and “M3” are used interchangeably.
Material 3 includes updated theming and components, exclusive features like dynamic color, and is designed to be aligned with the latest Android visual style and system UI.
Multiple apps using Material Design 3 theming |
You can start using Material Design 3 in your apps by adding the Compose Material 3 dependency to your build.gradle files:
Note: See the latest M3 versions on the Compose Material 3 releases page.
Material Theme Builder to export Material 3 color schemes |
Dynamic color derives from the user’s wallpaper. The colors can be applied to apps and the system UI.
Dynamic color is available on Android 12 (API level 31) and above. If dynamic color is available, you can set up a dynamic ColorScheme. If not, you should fall back to using a custom light or dark ColorScheme.
Reply Dynamic theming from wallpaper(Left) and Default app theming (Right)
The ColorScheme class provides builder functions to create both dynamic and custom light and dark color schemes:
Theme.kt
The M3 Switch component has a brand new UI refresh with accessibility-compliant minimum touch target size support, color mappings, and optional icon support in the switch thumb. The touch target is bigger, and the thumb size increases on user interaction, providing feedback to the user that the thumb is being interacted with.
Material 3 Switch thumb interaction |
Navigation drawer components now provide wrapper sheets for content to change colors, shapes, and elevation independently.
ModalNavigationDrawer with content wrapped in ModalDrawerSheet |
We have a brand new CenterAlignedTopAppBar in addition to already existing app bars. This can be used for the main root page in an app: you can display the app name or page headline with home and action icons.
Material CenterAlignedTopAppBar with home and action items. |
See the latest M3 components and layouts on the Compose Material 3 API reference overview. Keep an eye on the releases page for new and updated APIs.
Material 3 simplified the naming and grouping of typography to:
- Display
- Headline
- Title
- Body
- Label
There are large, medium, and small sizes for each, providing a total of 15 text style variations.
The
Typography constructor offers defaults for each style, so you can omit any parameters that you don’t want to customize:
There are different sizes of shapes:
- Extra small
- Small
- Medium
- Large
- Extra large
Material Design 3 shapes used in various components as default value. |
Each shape has a default value but you can override it:
You can read more about applying shape.
Jetpack Compose and Material 3 provide window size artifacts that can help make your apps adaptive. You can start by adding the Compose Material 3 window size class dependency to your build.gradle files:
Window size classes group sizes into standard size buckets, which are breakpoints that are designed to optimize your app for most unique cases.
WindowWidthSize Class for grouping devices in different size buckets |
See the Reply Compose sample to learn more about adaptive apps and the window size classes implementation.
M3 components, like top app bars, navigation drawers, bar, and rail, include built-in support for window insets. These components, when used independently or with Scaffold, will automatically handle insets determined by the status bar, navigation bar, and other parts of the system UI.
Scaffold now supports the contentWindowInsets parameter which can help to specify insets for the scaffold content.
Scaffold insets are only taken into consideration when a topBar or bottomBar is not present in Scaffold, as these components handle insets at the component level.
[ad_2]
Source link