material 3.2.0 → 3.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -5
- package/dist/components/carousel/features/scroll.js +35 -22
- package/dist/components/slider/features/axis.d.ts +6 -1
- package/dist/components/slider/features/axis.js +6 -1
- package/dist/core/compose/component.js +2 -0
- package/dist/core/dom/direction.d.ts +16 -0
- package/dist/core/dom/direction.js +38 -0
- package/dist/elements/button-group.d.ts +1 -0
- package/dist/elements/button-group.js +1 -0
- package/dist/elements/button.js +1 -1
- package/dist/elements/checkbox.d.ts +1 -0
- package/dist/elements/checkbox.js +1 -0
- package/dist/elements/css/badge.css +1 -1
- package/dist/elements/css/badge.js +1 -1
- package/dist/elements/css/bottom-app-bar.css +1 -1
- package/dist/elements/css/bottom-app-bar.js +1 -1
- package/dist/elements/css/card.css +1 -1
- package/dist/elements/css/card.js +1 -1
- package/dist/elements/css/datepicker.css +1 -1
- package/dist/elements/css/datepicker.js +1 -1
- package/dist/elements/css/dialog.css +1 -1
- package/dist/elements/css/dialog.js +1 -1
- package/dist/elements/css/drawer.css +1 -1
- package/dist/elements/css/drawer.js +1 -1
- package/dist/elements/css/hosts/badge.css +1 -1
- package/dist/elements/css/hosts/bottom-app-bar.css +1 -1
- package/dist/elements/css/hosts/bottom-sheet.css +1 -1
- package/dist/elements/css/hosts/button-group.css +1 -1
- package/dist/elements/css/hosts/button.css +1 -1
- package/dist/elements/css/hosts/card.css +1 -1
- package/dist/elements/css/hosts/carousel.css +1 -1
- package/dist/elements/css/hosts/checkbox.css +1 -1
- package/dist/elements/css/hosts/chips.css +1 -1
- package/dist/elements/css/hosts/datepicker.css +1 -1
- package/dist/elements/css/hosts/dialog.css +1 -1
- package/dist/elements/css/hosts/divider.css +1 -1
- package/dist/elements/css/hosts/drawer.css +1 -1
- package/dist/elements/css/hosts/icon-button.css +1 -1
- package/dist/elements/css/hosts/list.css +1 -1
- package/dist/elements/css/hosts/loading-indicator.css +1 -1
- package/dist/elements/css/hosts/menu.css +1 -1
- package/dist/elements/css/hosts/navigation-bar.css +1 -1
- package/dist/elements/css/hosts/navigation-rail.css +1 -1
- package/dist/elements/css/hosts/progress.css +1 -1
- package/dist/elements/css/hosts/radios.css +1 -1
- package/dist/elements/css/hosts/search.css +1 -1
- package/dist/elements/css/hosts/select.css +1 -1
- package/dist/elements/css/hosts/side-sheet.css +1 -1
- package/dist/elements/css/hosts/slider.css +1 -1
- package/dist/elements/css/hosts/snackbar.css +1 -1
- package/dist/elements/css/hosts/split-button.css +1 -1
- package/dist/elements/css/hosts/switch.css +1 -1
- package/dist/elements/css/hosts/tabs.css +1 -1
- package/dist/elements/css/hosts/timepicker.css +1 -1
- package/dist/elements/css/hosts/toolbar.css +1 -1
- package/dist/elements/css/hosts/tooltip.css +1 -1
- package/dist/elements/css/hosts/top-app-bar.css +1 -1
- package/dist/elements/css/side-sheet.css +1 -1
- package/dist/elements/css/side-sheet.js +1 -1
- package/dist/elements/css/split-button.css +1 -1
- package/dist/elements/css/split-button.js +1 -1
- package/dist/elements/css/tabs.css +1 -1
- package/dist/elements/css/tabs.js +1 -1
- package/dist/elements/css/toolbar.css +1 -1
- package/dist/elements/css/toolbar.js +1 -1
- package/dist/elements/css/top-app-bar.css +1 -1
- package/dist/elements/css/top-app-bar.js +1 -1
- package/dist/elements/datepicker.d.ts +1 -0
- package/dist/elements/datepicker.js +1 -0
- package/dist/elements/define.d.ts +6 -7
- package/dist/elements/define.js +55 -2
- package/dist/elements/icon-button.js +1 -1
- package/dist/elements/preupgrade/badge.css +1 -1
- package/dist/elements/preupgrade/bottom-app-bar.css +1 -1
- package/dist/elements/preupgrade/bottom-sheet.css +1 -1
- package/dist/elements/preupgrade/button-group.css +2 -2
- package/dist/elements/preupgrade/button.css +1 -1
- package/dist/elements/preupgrade/card.css +1 -1
- package/dist/elements/preupgrade/carousel.css +1 -1
- package/dist/elements/preupgrade/checkbox.css +1 -1
- package/dist/elements/preupgrade/chips.css +1 -1
- package/dist/elements/preupgrade/datepicker.css +2 -2
- package/dist/elements/preupgrade/dialog.css +1 -1
- package/dist/elements/preupgrade/divider.css +1 -1
- package/dist/elements/preupgrade/drawer.css +1 -1
- package/dist/elements/preupgrade/extended-fab.css +1 -1
- package/dist/elements/preupgrade/fab-menu.css +1 -1
- package/dist/elements/preupgrade/fab.css +1 -1
- package/dist/elements/preupgrade/icon-button.css +1 -1
- package/dist/elements/preupgrade/list.css +1 -1
- package/dist/elements/preupgrade/loading-indicator.css +1 -1
- package/dist/elements/preupgrade/menu.css +1 -1
- package/dist/elements/preupgrade/navigation-bar.css +1 -1
- package/dist/elements/preupgrade/navigation-rail.css +1 -1
- package/dist/elements/preupgrade/progress.css +1 -1
- package/dist/elements/preupgrade/radios.css +1 -1
- package/dist/elements/preupgrade/search.css +1 -1
- package/dist/elements/preupgrade/select.css +1 -1
- package/dist/elements/preupgrade/side-sheet.css +1 -1
- package/dist/elements/preupgrade/slider.css +1 -1
- package/dist/elements/preupgrade/snackbar.css +1 -1
- package/dist/elements/preupgrade/split-button.css +1 -1
- package/dist/elements/preupgrade/switch.css +1 -1
- package/dist/elements/preupgrade/tabs.css +1 -1
- package/dist/elements/preupgrade/text-field.css +1 -1
- package/dist/elements/preupgrade/timepicker.css +1 -1
- package/dist/elements/preupgrade/toolbar.css +1 -1
- package/dist/elements/preupgrade/tooltip.css +1 -1
- package/dist/elements/preupgrade/top-app-bar.css +1 -1
- package/dist/elements/preupgrade.css +2 -2
- package/dist/elements/preupgrade.js +1 -1
- package/dist/elements/select.js +1 -1
- package/dist/elements/split-button.js +1 -1
- package/dist/package.json +1 -1
- package/dist/styles/badge.css +2 -2
- package/dist/styles/base.css +1 -1
- package/dist/styles/bottom-app-bar.css +2 -2
- package/dist/styles/bottom-sheet.css +1 -1
- package/dist/styles/button-group.css +1 -1
- package/dist/styles/button.css +1 -1
- package/dist/styles/card.css +2 -2
- package/dist/styles/carousel.css +1 -1
- package/dist/styles/checkbox.css +1 -1
- package/dist/styles/chips.css +1 -1
- package/dist/styles/contrast.css +1 -1
- package/dist/styles/datepicker.css +2 -2
- package/dist/styles/dialog.css +2 -2
- package/dist/styles/divider.css +1 -1
- package/dist/styles/drawer.css +2 -2
- package/dist/styles/extended-fab.css +1 -1
- package/dist/styles/fab-menu.css +1 -1
- package/dist/styles/fab.css +1 -1
- package/dist/styles/icon-button.css +1 -1
- package/dist/styles/list.css +1 -1
- package/dist/styles/loading-indicator.css +1 -1
- package/dist/styles/menu.css +1 -1
- package/dist/styles/navigation-bar.css +1 -1
- package/dist/styles/navigation-rail.css +1 -1
- package/dist/styles/progress.css +1 -1
- package/dist/styles/radios.css +1 -1
- package/dist/styles/search.css +1 -1
- package/dist/styles/select.css +1 -1
- package/dist/styles/side-sheet.css +2 -2
- package/dist/styles/slider.css +1 -1
- package/dist/styles/snackbar.css +1 -1
- package/dist/styles/split-button.css +2 -2
- package/dist/styles/switch.css +1 -1
- package/dist/styles/tabs.css +2 -2
- package/dist/styles/text-field.css +1 -1
- package/dist/styles/timepicker.css +1 -1
- package/dist/styles/toolbar.css +2 -2
- package/dist/styles/tooltip.css +1 -1
- package/dist/styles/top-app-bar.css +2 -2
- package/dist/styles/typography.css +1 -1
- package/dist/styles/utilities.css +1 -1
- package/dist/styles.css +2 -2
- package/dist/themes/autumn-contrast.css +1 -1
- package/dist/themes/autumn.css +1 -1
- package/dist/themes/baseline-contrast.css +1 -1
- package/dist/themes/baseline.css +1 -1
- package/dist/themes/brownbeige-contrast.css +1 -1
- package/dist/themes/brownbeige.css +1 -1
- package/dist/themes/content-contrast.css +1 -1
- package/dist/themes/content.css +1 -1
- package/dist/themes/desert-contrast.css +1 -1
- package/dist/themes/desert.css +1 -1
- package/dist/themes/expressive-contrast.css +1 -1
- package/dist/themes/expressive.css +1 -1
- package/dist/themes/fidelity-contrast.css +1 -1
- package/dist/themes/fidelity.css +1 -1
- package/dist/themes/forest-contrast.css +1 -1
- package/dist/themes/forest.css +1 -1
- package/dist/themes/fruit-salad-contrast.css +1 -1
- package/dist/themes/fruit-salad.css +1 -1
- package/dist/themes/highcontrast-contrast.css +1 -1
- package/dist/themes/highcontrast.css +1 -1
- package/dist/themes/monochrome-contrast.css +1 -1
- package/dist/themes/monochrome.css +1 -1
- package/dist/themes/neutral-contrast.css +1 -1
- package/dist/themes/neutral.css +1 -1
- package/dist/themes/ocean-contrast.css +1 -1
- package/dist/themes/ocean.css +1 -1
- package/dist/themes/rainbow-contrast.css +1 -1
- package/dist/themes/rainbow.css +1 -1
- package/dist/themes/sageivory-contrast.css +1 -1
- package/dist/themes/sageivory.css +1 -1
- package/dist/themes/spring-contrast.css +1 -1
- package/dist/themes/spring.css +1 -1
- package/dist/themes/summer-contrast.css +1 -1
- package/dist/themes/summer.css +1 -1
- package/dist/themes/sunset-contrast.css +1 -1
- package/dist/themes/sunset.css +1 -1
- package/dist/themes/tealcaramel-contrast.css +1 -1
- package/dist/themes/tealcaramel.css +1 -1
- package/dist/themes/vibrant-contrast.css +1 -1
- package/dist/themes/vibrant.css +1 -1
- package/package.json +1 -1
- package/src/styles/abstract/_mixins.scss +50 -3
- package/src/styles/components/_badge.scss +22 -22
- package/src/styles/components/_bottom-app-bar.scss +10 -10
- package/src/styles/components/_card.scss +22 -2
- package/src/styles/components/_datepicker.scss +15 -3
- package/src/styles/components/_dialog.scss +2 -4
- package/src/styles/components/_drawer.scss +5 -9
- package/src/styles/components/_side-sheet.scss +13 -6
- package/src/styles/components/_toolbar.scss +13 -10
- package/src/styles/components/_top-app-bar.scss +28 -18
- package/src/styles/elements/_button-group.scss +87 -24
- package/src/styles/elements/_datepicker.scss +1 -1
|
@@ -20,6 +20,11 @@ $component: '#{base.$prefix}-toolbar';
|
|
|
20
20
|
--#{$component}-content: #{t.color('on-surface-variant')};
|
|
21
21
|
// The window-edge margin of a placed floating toolbar
|
|
22
22
|
--#{$component}-margin: 16px;
|
|
23
|
+
// The direction multiplier: 1 left-to-right at the root, -1 under the
|
|
24
|
+
// direction arm. Declared here, not only used as a var() fallback, because a
|
|
25
|
+
// custom property inherits: a nested LTR instance must not read its RTL
|
|
26
|
+
// parent's -1.
|
|
27
|
+
--#{$component}-dir: 1;
|
|
23
28
|
|
|
24
29
|
display: flex;
|
|
25
30
|
align-items: center;
|
|
@@ -156,6 +161,10 @@ $component: '#{base.$prefix}-toolbar';
|
|
|
156
161
|
|
|
157
162
|
// Off screen, past the edge it is placed at
|
|
158
163
|
&--hidden {
|
|
164
|
+
@include m.rtl($self: true) {
|
|
165
|
+
--#{$component}-dir: -1;
|
|
166
|
+
}
|
|
167
|
+
|
|
159
168
|
&.#{$component}--bottom {
|
|
160
169
|
transform: translateY(calc(100% + var(--#{$component}-margin)));
|
|
161
170
|
}
|
|
@@ -168,20 +177,14 @@ $component: '#{base.$prefix}-toolbar';
|
|
|
168
177
|
transform: translateY(calc(-100% - var(--#{$component}-margin)));
|
|
169
178
|
}
|
|
170
179
|
|
|
180
|
+
// The edge it leaves is physical: start and end trade sides in right-to-left,
|
|
181
|
+
// where the root's multiplier is -1.
|
|
171
182
|
&.#{$component}--start {
|
|
172
|
-
transform: translateX(calc(-100%
|
|
183
|
+
transform: translateX(calc(-1 * var(--#{$component}-dir) * (100% + var(--#{$component}-margin))));
|
|
173
184
|
}
|
|
174
185
|
|
|
175
186
|
&.#{$component}--end {
|
|
176
|
-
transform: translateX(calc(100% + var(--#{$component}-margin)));
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
&.#{$component}--start:dir(rtl) {
|
|
180
|
-
transform: translateX(calc(100% + var(--#{$component}-margin)));
|
|
181
|
-
}
|
|
182
|
-
|
|
183
|
-
&.#{$component}--end:dir(rtl) {
|
|
184
|
-
transform: translateX(calc(-100% - var(--#{$component}-margin)));
|
|
187
|
+
transform: translateX(calc(var(--#{$component}-dir) * (100% + var(--#{$component}-margin))));
|
|
185
188
|
}
|
|
186
189
|
|
|
187
190
|
// In the flow there is no edge to leave by
|
|
@@ -159,34 +159,35 @@ $component: '#{base.$prefix}-top-app-bar';
|
|
|
159
159
|
}
|
|
160
160
|
|
|
161
161
|
// RTL Support
|
|
162
|
-
|
|
162
|
+
@include m.rtl {
|
|
163
163
|
.#{$component}__leading {
|
|
164
164
|
margin-right: 0;
|
|
165
165
|
margin-left: 24px;
|
|
166
166
|
}
|
|
167
|
-
|
|
167
|
+
|
|
168
168
|
.#{$component}__trailing {
|
|
169
169
|
margin-left: 0;
|
|
170
170
|
margin-right: auto;
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
&--medium,
|
|
174
|
-
&--large {
|
|
175
|
-
.#{$component}__headline {
|
|
176
|
-
margin-left: 0;
|
|
177
|
-
margin-right: 16px;
|
|
178
|
-
}
|
|
179
|
-
}
|
|
180
|
-
|
|
181
|
-
&--center {
|
|
182
|
-
.#{$component}__headline {
|
|
183
|
-
left: auto;
|
|
184
|
-
right: 50%;
|
|
185
|
-
transform: translateX(50%);
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
173
|
}
|
|
189
|
-
|
|
174
|
+
|
|
175
|
+
@include m.rtl-selector('.#{$component}--medium .#{$component}__headline') {
|
|
176
|
+
margin-left: 0;
|
|
177
|
+
margin-right: 16px;
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
@include m.rtl-selector('.#{$component}--large .#{$component}__headline') {
|
|
181
|
+
margin-left: 0;
|
|
182
|
+
margin-right: 16px;
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
@include m.rtl-selector('.#{$component}--center .#{$component}__headline') {
|
|
186
|
+
left: auto;
|
|
187
|
+
right: 50%;
|
|
188
|
+
transform: translateX(50%);
|
|
189
|
+
}
|
|
190
|
+
|
|
190
191
|
// Mobile screen adjustments
|
|
191
192
|
@media (max-width: map.get(v.$breakpoints, 'sm')) {
|
|
192
193
|
// Reduce side padding slightly on small screens
|
|
@@ -195,6 +196,15 @@ $component: '#{base.$prefix}-top-app-bar';
|
|
|
195
196
|
.#{$component}__leading {
|
|
196
197
|
margin-right: 16px;
|
|
197
198
|
}
|
|
199
|
+
|
|
200
|
+
// The narrow bar reduces the leading's end gap, not its start edges: the
|
|
201
|
+
// direction rule has to be restated here, or this later rule wins over it.
|
|
202
|
+
@include m.rtl {
|
|
203
|
+
.#{$component}__leading {
|
|
204
|
+
margin-right: 0;
|
|
205
|
+
margin-left: 16px;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
198
208
|
|
|
199
209
|
.#{$component}__trailing {
|
|
200
210
|
gap: 4px;
|
|
@@ -1,40 +1,103 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
// of its button, which is drawn on upgrade.
|
|
1
|
+
@use 'sass:list';
|
|
2
|
+
@use 'sass:map';
|
|
4
3
|
@use '../abstract/variables' as v;
|
|
5
|
-
@use '../abstract/mixins' as m;
|
|
6
4
|
@use 'config' as c;
|
|
7
5
|
|
|
8
|
-
|
|
9
|
-
|
|
6
|
+
$sizes: (
|
|
7
|
+
'xs': (32px, 18px, 13px, 'label-large', 20px),
|
|
8
|
+
's': (40px, 12px, 17px, 'label-large', 24px),
|
|
9
|
+
'm': (56px, 8px, 25px, 'title-medium', 24px),
|
|
10
|
+
'l': (96px, 8px, 50px, 'headline-small', 32px),
|
|
11
|
+
'xl': (136px, 8px, 67px, 'headline-large', 40px),
|
|
12
|
+
);
|
|
13
|
+
$densities: ('comfortable': 4px, 'compact': 8px);
|
|
14
|
+
$icon-first: ':has(> [icon]:empty:first-child)';
|
|
15
|
+
|
|
16
|
+
@mixin item($size, $font: true, $letter: true, $weight: true) {
|
|
17
|
+
$t: map.get($sizes, $size);
|
|
18
|
+
$type: map.get(v.$typescale, list.nth($t, 4));
|
|
19
|
+
height: list.nth($t, 1);
|
|
20
|
+
padding: 0 list.nth($t, 3);
|
|
21
|
+
@if $font {
|
|
22
|
+
font-size: map.get($type, 'font-size');
|
|
23
|
+
line-height: map.get($type, 'line-height');
|
|
24
|
+
@if $letter { letter-spacing: map.get($type, 'letter-spacing'); }
|
|
25
|
+
}
|
|
26
|
+
@if $weight { font-weight: map.get($type, 'font-weight'); }
|
|
27
|
+
}
|
|
28
|
+
|
|
10
29
|
@include c.host('button-group') {
|
|
11
30
|
display: inline-flex;
|
|
12
|
-
vertical-align:
|
|
31
|
+
vertical-align: baseline;
|
|
13
32
|
gap: 12px;
|
|
14
33
|
white-space: nowrap;
|
|
15
34
|
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
align-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
35
|
+
&::before {
|
|
36
|
+
width: 0;
|
|
37
|
+
height: 32px;
|
|
38
|
+
margin-inline-end: -12px;
|
|
39
|
+
align-self: flex-start;
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
&#{$icon-first} {
|
|
43
|
+
align-items: center;
|
|
44
|
+
|
|
45
|
+
&::before { content: ""; }
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
&[size='xs'] { gap: 18px; }
|
|
49
|
+
&:is([size='m'], [size='l'], [size='xl']) { gap: 8px; }
|
|
50
|
+
|
|
51
|
+
@each $density, $step in $densities {
|
|
52
|
+
&[density='#{$density}'] > * { height: 40px - $step; }
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
@each $size in ('xs', 'm', 'l', 'xl') {
|
|
56
|
+
&[size='#{$size}'] {
|
|
57
|
+
$t: map.get($sizes, $size);
|
|
58
|
+
|
|
59
|
+
> * {
|
|
60
|
+
@if $size == 'xs' { @include item($size, $font: false, $weight: false); }
|
|
61
|
+
@else if $size == 'm' { @include item($size, $weight: false); }
|
|
62
|
+
@else { @include item($size, $letter: false, $weight: false); }
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
@each $density, $step in $densities {
|
|
66
|
+
&[density='#{$density}'] > * { height: list.nth($t, 1) - $step; }
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
&::before {
|
|
70
|
+
height: list.nth($t, 1) * 0.5 + list.nth($t, 5) * 0.5;
|
|
71
|
+
@if $size == 'xs' { margin-inline-end: -1 * list.nth($t, 2); }
|
|
72
|
+
}
|
|
28
73
|
}
|
|
29
74
|
}
|
|
75
|
+
|
|
76
|
+
&:is([size='m'], [size='l'], [size='xl'])::before { margin-inline-end: -8px; }
|
|
77
|
+
&:is([size='l'], [size='xl']) > * { letter-spacing: 0; font-weight: 400; }
|
|
78
|
+
|
|
79
|
+
@each $density, $step in $densities {
|
|
80
|
+
&[density='#{$density}']::before { margin-block-start: $step * -0.5; }
|
|
81
|
+
}
|
|
30
82
|
}
|
|
31
83
|
|
|
32
84
|
@include c.declarations('button-group') {
|
|
33
85
|
display: inline-flex;
|
|
34
86
|
align-items: center;
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
87
|
+
flex: none;
|
|
88
|
+
min-width: 58px;
|
|
89
|
+
font-family: var(--mtrl-ref-typeface-plain,Roboto,sans-serif);
|
|
90
|
+
@include item('s');
|
|
91
|
+
|
|
92
|
+
&[icon]:empty { min-width: 0; padding: 0; aspect-ratio: 1; }
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
@include c.host('button-group') {
|
|
96
|
+
&[kind='connected'] {
|
|
97
|
+
gap: 2px;
|
|
98
|
+
|
|
99
|
+
&::before { margin-inline-end: -2px; }
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
&:is(:not([size]), [size='xs'], [size='s'])[kind='connected'] > * { min-width: 48px; }
|
|
40
103
|
}
|
|
@@ -9,7 +9,7 @@
|
|
|
9
9
|
// As components/_datepicker.scss: the text field's width, the label 4px above
|
|
10
10
|
// the 56px field, and 4px + one body-small line under it.
|
|
11
11
|
@include c.host('datepicker') {
|
|
12
|
-
display: inline-
|
|
12
|
+
display: inline-flex;
|
|
13
13
|
box-sizing: border-box;
|
|
14
14
|
width: v.text-field('width');
|
|
15
15
|
vertical-align: baseline;
|