diff --git a/src/components/ha-drawer.ts b/src/components/ha-drawer.ts index acd80dbc3b..b23c897885 100644 --- a/src/components/ha-drawer.ts +++ b/src/components/ha-drawer.ts @@ -32,6 +32,9 @@ export class HaDrawer extends DrawerBase { .mdc-drawer.mdc-drawer--modal.mdc-drawer--open { z-index: 200; } + .mdc-drawer-app-content { + transform: translateZ(0); + } `, ]; } diff --git a/src/components/ha-top-app-bar-fixed.ts b/src/components/ha-top-app-bar-fixed.ts index 49501ac01b..d75c74f651 100644 --- a/src/components/ha-top-app-bar-fixed.ts +++ b/src/components/ha-top-app-bar-fixed.ts @@ -1,19 +1,43 @@ import { TopAppBarFixedBase } from "@material/mwc-top-app-bar-fixed/mwc-top-app-bar-fixed-base"; import { styles } from "@material/mwc-top-app-bar/mwc-top-app-bar.css"; import { css } from "lit"; -import { customElement } from "lit/decorators"; +import { customElement, property } from "lit/decorators"; + +let drawerContent: HTMLElement | undefined; @customElement("ha-top-app-bar-fixed") export class HaTopAppBarFixed extends TopAppBarFixedBase { + private get _drawerContent() { + if (!drawerContent) { + drawerContent = document + .querySelector("home-assistant")! + .renderRoot.querySelector("home-assistant-main")! + .renderRoot.querySelector("ha-drawer")! + .renderRoot.querySelector(".mdc-drawer-app-content") as HTMLElement; + } + return drawerContent; + } + + @property({ type: Object }) + get scrollTarget() { + return this._scrollTarget || this._drawerContent || window; + } + + protected updateRootPosition() {} + static override styles = [ styles, css` + .mdc-top-app-bar { + position: sticky; + top: 0; + } .mdc-top-app-bar__row { height: var(--header-height); border-bottom: var(--app-header-border-bottom); } .mdc-top-app-bar--fixed-adjust { - padding-top: var(--header-height); + padding-top: 0; } .mdc-top-app-bar { --mdc-typography-headline6-font-weight: 400; diff --git a/src/layouts/home-assistant-main.ts b/src/layouts/home-assistant-main.ts index c0a116163a..cd9cdf67b7 100644 --- a/src/layouts/home-assistant-main.ts +++ b/src/layouts/home-assistant-main.ts @@ -174,7 +174,6 @@ export class HomeAssistantMain extends LitElement { /* remove the grey tap highlights in iOS on the fullscreen touch targets */ -webkit-tap-highlight-color: rgba(0, 0, 0, 0); --mdc-drawer-width: 56px; - --mdc-top-app-bar-width: calc(100% - var(--mdc-drawer-width)); } :host([expanded]) { --mdc-drawer-width: calc(256px + env(safe-area-inset-left)); diff --git a/src/panels/lovelace/hui-root.ts b/src/panels/lovelace/hui-root.ts index 3f42fa57cc..0f9e67446f 100644 --- a/src/panels/lovelace/hui-root.ts +++ b/src/panels/lovelace/hui-root.ts @@ -961,12 +961,17 @@ class HUIRoot extends LitElement { position: fixed; top: 0; width: var(--mdc-top-app-bar-width, 100%); - z-index: 2; - transition: box-shadow 0.3s ease-out; padding-top: env(safe-area-inset-top); + z-index: 4; + transition: box-shadow 200ms linear; } :host([scrolled]) .header { - box-shadow: 0px 0px 8px 0px rgba(0, 0, 0, 0.75); + box-shadow: var( + --mdc-top-app-bar-fixed-box-shadow, + 0px 2px 4px -1px rgba(0, 0, 0, 0.2), + 0px 4px 5px 0px rgba(0, 0, 0, 0.14), + 0px 1px 10px 0px rgba(0, 0, 0, 0.12) + ); } .edit-mode .header { background-color: var(--app-header-edit-background-color, #455a64); @@ -1054,6 +1059,7 @@ class HUIRoot extends LitElement { var(--primary-background-color) ); overflow: auto; + transform: translateZ(0); } /** * In edit mode we have the tab bar on a new line * diff --git a/src/panels/profile/ha-change-password-card.ts b/src/panels/profile/ha-change-password-card.ts index fda74d6ef6..b4b3e0a7b1 100644 --- a/src/panels/profile/ha-change-password-card.ts +++ b/src/panels/profile/ha-change-password-card.ts @@ -33,78 +33,72 @@ class HaChangePasswordCard extends LitElement { protected render(): TemplateResult { return html` -
- -
- ${this._errorMsg - ? html`${this._errorMsg}` - : ""} - ${this._statusMsg - ? html`${this._statusMsg}` - : ""} + +
+ ${this._errorMsg + ? html`${this._errorMsg}` + : ""} + ${this._statusMsg + ? html`${this._statusMsg}` + : ""} - + - ${this._currentPassword - ? html` - ` - : ""} -
+ ${this._currentPassword + ? html` + ` + : ""} +
-
- ${this._loading - ? html`
- -
` - : html`${this.hass.localize( - "ui.panel.profile.change_password.submit" - )}`} -
-
-
+
+ ${this._loading + ? html`
+ +
` + : html`${this.hass.localize( + "ui.panel.profile.change_password.submit" + )}`} +
+ `; } diff --git a/src/panels/profile/ha-panel-profile.ts b/src/panels/profile/ha-panel-profile.ts index bc4afb7721..f5465fd676 100644 --- a/src/panels/profile/ha-panel-profile.ts +++ b/src/panels/profile/ha-panel-profile.ts @@ -5,6 +5,7 @@ import { customElement, property, state } from "lit/decorators"; import { fireEvent } from "../../common/dom/fire_event"; import "../../components/ha-card"; import "../../components/ha-menu-button"; +import "../../components/ha-top-app-bar-fixed"; import { isExternal } from "../../data/external"; import { CoreFrontendUserData, @@ -30,7 +31,6 @@ import "./ha-push-notifications-row"; import "./ha-refresh-tokens-card"; import "./ha-set-suspend-row"; import "./ha-set-vibrate-row"; -import "../../components/ha-top-app-bar-fixed"; @customElement("ha-panel-profile") class HaPanelProfile extends LitElement {