Skip to content

Commit 6c7354a

Browse files
pekingmeleticiarossi
authored andcommitted
[ButtonGroups] Added expressive styles.
PiperOrigin-RevId: 748866556
1 parent d791fad commit 6c7354a

File tree

5 files changed

+54
-0
lines changed

5 files changed

+54
-0
lines changed

lib/java/com/google/android/material/button/res/values/button_group_tokens.xml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -27,5 +27,7 @@
2727
audience=3p). -->
2828
<dimen name="m3_comp_button_group_connected_small_between_space">2dp</dimen>
2929
<style name="ShapeAppearance.M3.Comp.ButtonGroup.Connected.Small.Container.Shape" parent="ShapeAppearance.M3.Sys.Shape.Corner.Full"/>
30+
<macro name="m3_comp_button_group_connected_small_inner_corner_corner_size">?attr/shapeCornerSizeSmall</macro>
31+
<macro name="m3_comp_button_group_connected_small_pressed_inner_corner_corner_size">?attr/shapeCornerSizeExtraSmall</macro>
3032

3133
</resources>

lib/java/com/google/android/material/button/res/values/styles.xml

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,23 @@
1717

1818
<resources xmlns:tools="http://schemas.android.com/tools">
1919

20+
<!-- Styles for M3 Expressive Button Groups. -->
21+
22+
<!-- M3 Expressive Button Group. -->
23+
<style name="Widget.Material3Expressive.MaterialButtonGroup" parent="Widget.Material3.MaterialButtonGroup"/>
24+
25+
<!-- M3 Expressive Connected Button Group. -->
26+
<style name="Widget.Material3Expressive.MaterialButtonGroup.Connected" parent="Widget.Material3.MaterialButtonGroup.Connected">
27+
<item name="innerCornerSize">@xml/m3expressive_connected_buttons_inner_corner_size_state_list</item>
28+
</style>
29+
30+
<!-- M3 Expressive Connected Button Toggle Group (Segmented Button). -->
31+
<style name="Widget.Material3Expressive.MaterialButtonToggleGroup" parent="Widget.Material3.MaterialButtonToggleGroup">
32+
<item name="innerCornerSize">@xml/m3expressive_connected_buttons_inner_corner_size_state_list</item>
33+
<item name="shapeAppearance">@style/ShapeAppearance.M3.Comp.ButtonGroup.Connected.Small.Container.Shape</item>
34+
<item name="android:spacing">@dimen/m3_comp_button_group_connected_small_between_space</item>
35+
</style>
36+
2037
<!-- Styles for M3 Expressive Buttons. -->
2138

2239
<!-- M3 Expressive filled button style. -->
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
<?xml version="1.0" encoding="utf-8"?>
2+
<!--
3+
Copyright 2025 The Android Open Source Project
4+
5+
Licensed under the Apache License, Version 2.0 (the "License");
6+
you may not use this file except in compliance with the License.
7+
You may obtain a copy of the License at
8+
9+
http://www.apache.org/licenses/LICENSE-2.0
10+
11+
Unless required by applicable law or agreed to in writing, software
12+
distributed under the License is distributed on an "AS IS" BASIS,
13+
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
See the License for the specific language governing permissions and
15+
limitations under the License.
16+
-->
17+
<selector xmlns:android="http://schemas.android.com/apk/res/android"
18+
xmlns:app="http://schemas.android.com/apk/res-auto">
19+
<item android:state_checkable="true" android:state_pressed="true"
20+
app:cornerSize="@macro/m3_comp_button_group_connected_small_pressed_inner_corner_corner_size"/>
21+
<item android:state_checked="true" app:cornerSize="50%"/>
22+
<item app:cornerSize="@macro/m3_comp_button_group_connected_small_inner_corner_corner_size"/>
23+
</selector>

lib/java/com/google/android/material/dialog/res/values/themes_base.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@
6161
<item name="materialIconButtonFilledStyle">@style/Widget.Material3Expressive.Button.IconButton.Filled</item>
6262
<item name="materialIconButtonFilledTonalStyle">@style/Widget.Material3Expressive.Button.IconButton.Tonal</item>
6363

64+
<item name="materialButtonGroupStyle">@style/Widget.Material3Expressive.MaterialButtonGroup</item>
65+
<item name="materialButtonToggleGroupStyle">@style/Widget.Material3Expressive.MaterialButtonToggleGroup</item>
66+
6467
<item name="toolbarStyle">@style/Widget.Material3Expressive.Toolbar</item>
6568
<item name="toolbarSurfaceStyle">@style/Widget.Material3Expressive.Toolbar.Surface</item>
6669

@@ -106,6 +109,9 @@
106109
<item name="materialIconButtonFilledStyle">@style/Widget.Material3Expressive.Button.IconButton.Filled</item>
107110
<item name="materialIconButtonFilledTonalStyle">@style/Widget.Material3Expressive.Button.IconButton.Tonal</item>
108111

112+
<item name="materialButtonGroupStyle">@style/Widget.Material3Expressive.MaterialButtonGroup</item>
113+
<item name="materialButtonToggleGroupStyle">@style/Widget.Material3Expressive.MaterialButtonToggleGroup</item>
114+
109115
<item name="toolbarStyle">@style/Widget.Material3Expressive.Toolbar</item>
110116
<item name="toolbarSurfaceStyle">@style/Widget.Material3Expressive.Toolbar.Surface</item>
111117

lib/java/com/google/android/material/theme/res/values/themes_base.xml

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,9 @@
6868
<item name="toolbarStyle">@style/Widget.Material3Expressive.Toolbar</item>
6969
<item name="toolbarSurfaceStyle">@style/Widget.Material3Expressive.Toolbar.Surface</item>
7070

71+
<item name="materialButtonGroupStyle">@style/Widget.Material3Expressive.MaterialButtonGroup</item>
72+
<item name="materialButtonToggleGroupStyle">@style/Widget.Material3Expressive.MaterialButtonToggleGroup</item>
73+
7174
<!-- Top App Bars. -->
7275
<item name="collapsingToolbarLayoutMediumSize">@dimen/m3_comp_app_bar_medium_flexible_container_height</item>
7376
<item name="collapsingToolbarLayoutLargeSize">@dimen/m3_comp_app_bar_large_flexible_container_height</item>
@@ -117,6 +120,9 @@
117120
<item name="materialIconButtonFilledStyle">@style/Widget.Material3Expressive.Button.IconButton.Filled</item>
118121
<item name="materialIconButtonFilledTonalStyle">@style/Widget.Material3Expressive.Button.IconButton.Tonal</item>
119122

123+
<item name="materialButtonGroupStyle">@style/Widget.Material3Expressive.MaterialButtonGroup</item>
124+
<item name="materialButtonToggleGroupStyle">@style/Widget.Material3Expressive.MaterialButtonToggleGroup</item>
125+
120126
<item name="toolbarStyle">@style/Widget.Material3Expressive.Toolbar</item>
121127
<item name="toolbarSurfaceStyle">@style/Widget.Material3Expressive.Toolbar.Surface</item>
122128

0 commit comments

Comments
 (0)