Files
frontend/src/components/ha-outlined-icon-button.ts
2025-05-06 15:30:04 +02:00

46 lines
1.3 KiB
TypeScript

import { IconButton } from "@material/web/iconbutton/internal/icon-button";
import { styles } from "@material/web/iconbutton/internal/outlined-styles";
import { styles as sharedStyles } from "@material/web/iconbutton/internal/shared-styles";
import { css } from "lit";
import { customElement } from "lit/decorators";
@customElement("ha-outlined-icon-button")
export class HaOutlinedIconButton extends IconButton {
protected override getRenderClasses() {
return {
...super.getRenderClasses(),
outlined: true,
};
}
static override styles = [
css`
.icon-button {
border-radius: var(--_container-shape);
}
`,
sharedStyles,
styles,
css`
:host {
--ha-icon-display: block;
--md-sys-color-on-surface: var(--secondary-text-color);
--md-sys-color-on-surface-variant: var(--secondary-text-color);
--md-sys-color-on-surface-rgb: var(--rgb-secondary-text-color);
--md-sys-color-outline: var(--secondary-text-color);
}
:host([no-ripple]) .outlined {
--md-ripple-focus-opacity: 0;
--md-ripple-hover-opacity: 0;
--md-ripple-pressed-opacity: 0;
}
`,
];
}
declare global {
interface HTMLElementTagNameMap {
"ha-outlined-icon-button": HaOutlinedIconButton;
}
}