Skip to content
This repository was archived by the owner on Jan 13, 2025. It is now read-only.

Commit f374ff3

Browse files
EstebanG23copybara-github
authored andcommitted
feat(fab): Add support for lowered elevation tokens/
PiperOrigin-RevId: 483491757
1 parent fc539db commit f374ff3

File tree

2 files changed

+62
-1
lines changed

2 files changed

+62
-1
lines changed

packages/mdc-fab/_extended-fab-theme.scss

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ $_extended-light-theme: (
5555
container-height: 56px,
5656
container-shadow-color: black,
5757
container-shape: 50%,
58+
container-surface-tint-layer-color: null,
5859
focus-container-elevation: null,
5960
focus-icon-color: null,
6061
focus-label-text-color: null,

packages/mdc-fab/_fab-theme.scss

Lines changed: 61 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,7 @@ $_light-theme: (
5151
container-height: 56px,
5252
container-shadow-color: black,
5353
container-shape: $shape-radius,
54+
container-surface-tint-layer-color: null,
5455
container-width: 56px,
5556
focus-container-elevation: null,
5657
focus-icon-color: null,
@@ -159,13 +160,25 @@ $custom-property-prefix: 'fab';
159160
@include _container-elevation(
160161
map.get($resolvers, elevation),
161162
map.get($theme, container-shadow-color),
163+
map.get($theme, container-surface-tint-layer-color),
162164
(
163165
default: map.get($theme, container-elevation),
164166
hover: map.get($theme, hover-container-elevation),
165167
focus: map.get($theme, focus-container-elevation),
166168
pressed: map.get($theme, pressed-container-elevation),
167169
)
168170
);
171+
@include _lowered-container-elevation(
172+
map.get($resolvers, elevation),
173+
map.get($theme, container-shadow-color),
174+
map.get($theme, container-surface-tint-layer-color),
175+
(
176+
default: map.get($theme, lowered-container-elevation),
177+
hover: map.get($theme, lowered-hover-container-elevation),
178+
focus: map.get($theme, lowered-focus-container-elevation),
179+
pressed: map.get($theme, lowered-pressed-container-elevation),
180+
)
181+
);
169182
@include _container-height(map.get($theme, container-height));
170183
@include _container-width(map.get($theme, container-width));
171184
@include icon-size(map.get($theme, icon-size));
@@ -299,20 +312,22 @@ $custom-property-prefix: 'fab';
299312
}
300313
}
301314

302-
@mixin _container-elevation($resolver, $shadow-color, $map) {
315+
@mixin _container-elevation($resolver, $shadow-color, $container-color, $map) {
303316
&:not(:disabled) {
304317
@include elevation-theme.with-resolver(
305318
$resolver,
306319
$elevation: state.get-default-state($map),
307320
$shadow-color: $shadow-color
308321
);
322+
@include elevation-theme.overlay-container-color($container-color);
309323

310324
&:hover {
311325
@include elevation-theme.with-resolver(
312326
$resolver,
313327
$elevation: state.get-hover-state($map),
314328
$shadow-color: $shadow-color
315329
);
330+
@include elevation-theme.overlay-container-color($container-color);
316331
}
317332

318333
&:focus {
@@ -321,6 +336,7 @@ $custom-property-prefix: 'fab';
321336
$elevation: state.get-focus-state($map),
322337
$shadow-color: $shadow-color
323338
);
339+
@include elevation-theme.overlay-container-color($container-color);
324340
}
325341

326342
&:active {
@@ -329,6 +345,7 @@ $custom-property-prefix: 'fab';
329345
$elevation: state.get-pressed-state($map),
330346
$shadow-color: $shadow-color
331347
);
348+
@include elevation-theme.overlay-container-color($container-color);
332349
}
333350
}
334351

@@ -342,6 +359,49 @@ $custom-property-prefix: 'fab';
342359
}
343360
}
344361

362+
@mixin _lowered-container-elevation(
363+
$resolver,
364+
$shadow-color,
365+
$container-color,
366+
$map
367+
) {
368+
&.mdc-fab--lowered:not(:disabled) {
369+
@include elevation-theme.with-resolver(
370+
$resolver,
371+
$elevation: state.get-default-state($map),
372+
$shadow-color: $shadow-color
373+
);
374+
@include elevation-theme.overlay-container-color($container-color);
375+
376+
&:hover {
377+
@include elevation-theme.with-resolver(
378+
$resolver,
379+
$elevation: state.get-hover-state($map),
380+
$shadow-color: $shadow-color
381+
);
382+
@include elevation-theme.overlay-container-color($container-color);
383+
}
384+
385+
&:focus {
386+
@include elevation-theme.with-resolver(
387+
$resolver,
388+
$elevation: state.get-focus-state($map),
389+
$shadow-color: $shadow-color
390+
);
391+
@include elevation-theme.overlay-container-color($container-color);
392+
}
393+
394+
&:active {
395+
@include elevation-theme.with-resolver(
396+
$resolver,
397+
$elevation: state.get-pressed-state($map),
398+
$shadow-color: $shadow-color
399+
);
400+
@include elevation-theme.overlay-container-color($container-color);
401+
}
402+
}
403+
}
404+
345405
///
346406
/// Sets outline width only when button is in focus. Also sets padding to
347407
/// include outline on focus (Helps prevent size jump on focus).

0 commit comments

Comments
 (0)