mirror of
https://github.com/material-components/material-web.git
synced 2026-02-05 04:37:25 +08:00
BREAKING CHANGE: Replace `container-size` tokens with `container-width` and `container-height`. PiperOrigin-RevId: 566801178
117 lines
2.6 KiB
SCSS
117 lines
2.6 KiB
SCSS
//
|
|
// Copyright 2022 Google LLC
|
|
// SPDX-License-Identifier: Apache-2.0
|
|
//
|
|
|
|
// This file contains common static styles that are shared across icon button
|
|
// variants.
|
|
|
|
// go/keep-sorted start
|
|
@use 'sass:map';
|
|
// go/keep-sorted end
|
|
// go/keep-sorted start
|
|
@use '../../focus/focus-ring';
|
|
@use '../../icon/icon';
|
|
@use '../../tokens';
|
|
// go/keep-sorted end
|
|
|
|
@mixin styles() {
|
|
:host {
|
|
display: inline-flex;
|
|
outline: none;
|
|
-webkit-tap-highlight-color: transparent;
|
|
height: var(--_container-height);
|
|
width: var(--_container-width);
|
|
justify-content: center;
|
|
}
|
|
|
|
:host([touch-target='wrapper']) {
|
|
margin: max(0px, (48px - var(--_container-height)) / 2)
|
|
max(0px, (48px - var(--_container-width)) / 2);
|
|
}
|
|
|
|
md-focus-ring {
|
|
@include focus-ring.theme(
|
|
(
|
|
'shape-start-start': var(--_container-shape-start-start),
|
|
'shape-start-end': var(--_container-shape-start-end),
|
|
'shape-end-end': var(--_container-shape-end-end),
|
|
'shape-end-start': var(--_container-shape-end-start),
|
|
)
|
|
);
|
|
}
|
|
|
|
:host([disabled]) {
|
|
pointer-events: none;
|
|
}
|
|
|
|
.icon-button {
|
|
place-items: center;
|
|
background: none;
|
|
border: none;
|
|
box-sizing: border-box;
|
|
cursor: pointer;
|
|
display: flex;
|
|
place-content: center;
|
|
outline: none;
|
|
padding: 0;
|
|
position: relative;
|
|
text-decoration: none;
|
|
user-select: none;
|
|
z-index: 0;
|
|
flex: 1;
|
|
border-start-start-radius: var(--_container-shape-start-start);
|
|
border-start-end-radius: var(--_container-shape-start-end);
|
|
border-end-start-radius: var(--_container-shape-end-start);
|
|
border-end-end-radius: var(--_container-shape-end-end);
|
|
}
|
|
|
|
.icon {
|
|
::slotted(*) {
|
|
font-size: var(--_icon-size);
|
|
height: var(--_icon-size);
|
|
width: var(--_icon-size);
|
|
font-weight: inherit;
|
|
}
|
|
}
|
|
|
|
md-ripple {
|
|
z-index: -1; // Place behind content
|
|
border-start-start-radius: var(--_container-shape-start-start);
|
|
border-start-end-radius: var(--_container-shape-start-end);
|
|
border-end-start-radius: var(--_container-shape-end-start);
|
|
border-end-end-radius: var(--_container-shape-end-end);
|
|
}
|
|
|
|
.flip-icon .icon {
|
|
transform: scaleX(-1);
|
|
}
|
|
|
|
.icon {
|
|
display: inline-flex;
|
|
}
|
|
|
|
.link {
|
|
height: 100%;
|
|
outline: none;
|
|
position: absolute;
|
|
width: 100%;
|
|
}
|
|
|
|
.touch {
|
|
position: absolute;
|
|
height: max(48px, 100%);
|
|
width: max(48px, 100%);
|
|
}
|
|
|
|
:host([touch-target='none']) .touch {
|
|
display: none;
|
|
}
|
|
|
|
@media (forced-colors: active) {
|
|
:host([disabled]) {
|
|
--_disabled-icon-opacity: 1;
|
|
}
|
|
}
|
|
}
|