diff --git a/src/components/ha-fab.ts b/src/components/ha-fab.ts new file mode 100644 index 0000000000..f0917173a0 --- /dev/null +++ b/src/components/ha-fab.ts @@ -0,0 +1,20 @@ +import type { Fab } from "@material/mwc-fab"; +import "@material/mwc-fab"; +import { customElement } from "lit-element"; +import { Constructor } from "../types"; + +const MwcFab = customElements.get("mwc-fab") as Constructor; + +@customElement("ha-fab") +export class HaFab extends MwcFab { + protected firstUpdated(changedProperties) { + super.firstUpdated(changedProperties); + this.style.setProperty("--mdc-theme-secondary", "var(--primary-color)"); + } +} + +declare global { + interface HTMLElementTagNameMap { + "ha-fab": HaFab; + } +} diff --git a/src/components/media-player/ha-media-player-browse.ts b/src/components/media-player/ha-media-player-browse.ts index 93a5ca25e4..f1fbfab1d6 100644 --- a/src/components/media-player/ha-media-player-browse.ts +++ b/src/components/media-player/ha-media-player-browse.ts @@ -1,5 +1,5 @@ import "@material/mwc-button/mwc-button"; -import "@material/mwc-fab/mwc-fab"; +import "../ha-fab"; import "@material/mwc-list/mwc-list"; import "@material/mwc-list/mwc-list-item"; import { mdiArrowLeft, mdiClose, mdiPlay, mdiPlus } from "@mdi/js"; @@ -170,7 +170,7 @@ export class HaMediaPlayerBrowse extends LitElement { > ${this._narrow && currentItem?.can_play ? html` - + ` : ""} @@ -927,7 +927,7 @@ export class HaMediaPlayerBrowse extends LitElement { transition: width 0.4s, height 0.4s, padding-bottom 0.4s; } - mwc-fab { + ha-fab { position: absolute; --mdc-theme-secondary: var(--primary-color); bottom: -20px; @@ -1011,7 +1011,7 @@ export class HaMediaPlayerBrowse extends LitElement { margin-bottom: 0; } - :host([scroll]) mwc-fab { + :host([scroll]) ha-fab { bottom: 4px; right: 4px; --mdc-fab-box-shadow: none; diff --git a/src/panels/config/areas/ha-config-areas-dashboard.ts b/src/panels/config/areas/ha-config-areas-dashboard.ts index b9de85cb27..66cea0e01b 100644 --- a/src/panels/config/areas/ha-config-areas-dashboard.ts +++ b/src/panels/config/areas/ha-config-areas-dashboard.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { mdiPlus } from "@mdi/js"; import "@polymer/paper-item/paper-item"; import "@polymer/paper-item/paper-item-body"; @@ -124,7 +124,7 @@ export class HaConfigAreasDashboard extends LitElement { icon="hass:help-circle" @click=${this._showHelp} > - - + `; } diff --git a/src/panels/config/automation/blueprint-automation-editor.ts b/src/panels/config/automation/blueprint-automation-editor.ts index 2a966254b0..9229069d09 100644 --- a/src/panels/config/automation/blueprint-automation-editor.ts +++ b/src/panels/config/automation/blueprint-automation-editor.ts @@ -278,17 +278,9 @@ export class HaBlueprintAutomationEditor extends LitElement { ha-card { overflow: hidden; } - .errors { - padding: 20px; - font-weight: bold; - color: var(--error-color); - } .padding { padding: 16px; } - .content { - padding-bottom: 20px; - } .blueprint-picker-container { padding: 16px; display: flex; @@ -317,20 +309,6 @@ export class HaBlueprintAutomationEditor extends LitElement { :host(:not([narrow])) ha-settings-row ha-selector { width: 50%; } - mwc-fab { - position: relative; - bottom: calc(-80px - env(safe-area-inset-bottom)); - transition: bottom 0.3s; - } - mwc-fab.dirty { - bottom: 0; - } - .selected_menu_item { - color: var(--primary-color); - } - li[role="separator"] { - border-bottom-color: var(--divider-color); - } `, ]; } diff --git a/src/panels/config/automation/ha-automation-editor.ts b/src/panels/config/automation/ha-automation-editor.ts index a544fc3215..5db46262a8 100644 --- a/src/panels/config/automation/ha-automation-editor.ts +++ b/src/panels/config/automation/ha-automation-editor.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { mdiCheck, mdiContentDuplicate, @@ -271,7 +271,7 @@ export class HaAutomationEditor extends KeyboardShortcutMixin(LitElement) { ` : ""} - - + `; } @@ -524,21 +524,18 @@ export class HaAutomationEditor extends KeyboardShortcutMixin(LitElement) { .content { padding-bottom: 20px; } - span[slot="introduction"] a { - color: var(--primary-color); - } p { margin-bottom: 0; } ha-entity-toggle { margin-right: 8px; } - mwc-fab { + ha-fab { position: relative; bottom: calc(-80px - env(safe-area-inset-bottom)); transition: bottom 0.3s; } - mwc-fab.dirty { + ha-fab.dirty { bottom: 0; } .selected_menu_item { diff --git a/src/panels/config/automation/ha-automation-picker.ts b/src/panels/config/automation/ha-automation-picker.ts index e333c5c542..616c4b4b2f 100644 --- a/src/panels/config/automation/ha-automation-picker.ts +++ b/src/panels/config/automation/ha-automation-picker.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "@material/mwc-icon-button"; import { mdiPlus, mdiHelpCircle } from "@mdi/js"; import "@polymer/paper-tooltip/paper-tooltip"; @@ -170,7 +170,7 @@ class HaAutomationPicker extends LitElement { - - + `; } diff --git a/src/panels/config/automation/manual-automation-editor.ts b/src/panels/config/automation/manual-automation-editor.ts index d32fdf2dae..a3ad1219db 100644 --- a/src/panels/config/automation/manual-automation-editor.ts +++ b/src/panels/config/automation/manual-automation-editor.ts @@ -309,14 +309,6 @@ export class HaManualAutomationEditor extends LitElement { ha-card { overflow: hidden; } - .errors { - padding: 20px; - font-weight: bold; - color: var(--error-color); - } - .content { - padding-bottom: 20px; - } span[slot="introduction"] a { color: var(--primary-color); } @@ -326,20 +318,6 @@ export class HaManualAutomationEditor extends LitElement { ha-entity-toggle { margin-right: 8px; } - mwc-fab { - position: relative; - bottom: calc(-80px - env(safe-area-inset-bottom)); - transition: bottom 0.3s; - } - mwc-fab.dirty { - bottom: 0; - } - .selected_menu_item { - color: var(--primary-color); - } - li[role="separator"] { - border-bottom-color: var(--divider-color); - } `, ]; } diff --git a/src/panels/config/blueprint/ha-blueprint-overview.ts b/src/panels/config/blueprint/ha-blueprint-overview.ts index 4da528173e..ce732ab17d 100644 --- a/src/panels/config/blueprint/ha-blueprint-overview.ts +++ b/src/panels/config/blueprint/ha-blueprint-overview.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "@material/mwc-icon-button"; import { mdiPlus, mdiHelpCircle, mdiDelete, mdiRobot } from "@mdi/js"; import "@polymer/paper-tooltip/paper-tooltip"; @@ -174,7 +174,7 @@ class HaBlueprintOverview extends LitElement { - - + `; } diff --git a/src/panels/config/helpers/ha-config-helpers.ts b/src/panels/config/helpers/ha-config-helpers.ts index 68da162f1c..5c0fea1581 100644 --- a/src/panels/config/helpers/ha-config-helpers.ts +++ b/src/panels/config/helpers/ha-config-helpers.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { mdiPlus } from "@mdi/js"; import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu"; @@ -158,7 +158,7 @@ export class HaConfigHelpers extends LitElement { "ui.panel.config.helpers.picker.no_helpers" )} > - - + `; } diff --git a/src/panels/config/integrations/ha-config-integrations.ts b/src/panels/config/integrations/ha-config-integrations.ts index 1759a0a21a..d448668b46 100644 --- a/src/panels/config/integrations/ha-config-integrations.ts +++ b/src/panels/config/integrations/ha-config-integrations.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "@material/mwc-icon-button"; import "@material/mwc-list/mwc-list-item"; import { mdiDotsVertical, mdiPlus } from "@mdi/js"; @@ -474,7 +474,7 @@ class HaConfigIntegrations extends SubscribeMixin(LitElement) { ` : ""} - - + `; } diff --git a/src/panels/config/integrations/integration-panels/ozw/ozw-config-dashboard.ts b/src/panels/config/integrations/integration-panels/ozw/ozw-config-dashboard.ts index bbf4ba6188..f99c451ca4 100644 --- a/src/panels/config/integrations/integration-panels/ozw/ozw-config-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/ozw/ozw-config-dashboard.ts @@ -1,5 +1,4 @@ import "@material/mwc-button/mwc-button"; -import "@material/mwc-fab"; import { mdiCheckCircle, mdiCircle, mdiCloseCircle, mdiZWave } from "@mdi/js"; import "@polymer/paper-item/paper-icon-item"; import "@polymer/paper-item/paper-item-body"; diff --git a/src/panels/config/integrations/integration-panels/ozw/ozw-network-dashboard.ts b/src/panels/config/integrations/integration-panels/ozw/ozw-network-dashboard.ts index fccaa04a7f..655d1fae01 100644 --- a/src/panels/config/integrations/integration-panels/ozw/ozw-network-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/ozw/ozw-network-dashboard.ts @@ -1,5 +1,4 @@ import "@material/mwc-button/mwc-button"; -import "@material/mwc-fab"; import { mdiCheckCircle, mdiCircle, mdiCloseCircle } from "@mdi/js"; import { css, diff --git a/src/panels/config/integrations/integration-panels/ozw/ozw-network-nodes.ts b/src/panels/config/integrations/integration-panels/ozw/ozw-network-nodes.ts index bd796519a4..53155318c4 100644 --- a/src/panels/config/integrations/integration-panels/ozw/ozw-network-nodes.ts +++ b/src/panels/config/integrations/integration-panels/ozw/ozw-network-nodes.ts @@ -1,5 +1,4 @@ import "@material/mwc-button/mwc-button"; -import "@material/mwc-fab"; import { mdiAlert, mdiCheck } from "@mdi/js"; import { CSSResult, diff --git a/src/panels/config/integrations/integration-panels/ozw/ozw-node-config.ts b/src/panels/config/integrations/integration-panels/ozw/ozw-node-config.ts index 5eb89a30bb..3cb884f0d7 100644 --- a/src/panels/config/integrations/integration-panels/ozw/ozw-node-config.ts +++ b/src/panels/config/integrations/integration-panels/ozw/ozw-node-config.ts @@ -1,5 +1,4 @@ import "@material/mwc-button/mwc-button"; -import "@material/mwc-fab"; import { css, CSSResultArray, diff --git a/src/panels/config/integrations/integration-panels/ozw/ozw-node-dashboard.ts b/src/panels/config/integrations/integration-panels/ozw/ozw-node-dashboard.ts index 7ac930d8b4..38f94c906f 100644 --- a/src/panels/config/integrations/integration-panels/ozw/ozw-node-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/ozw/ozw-node-dashboard.ts @@ -1,5 +1,4 @@ import "@material/mwc-button/mwc-button"; -import "@material/mwc-fab"; import { css, CSSResultArray, diff --git a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts index 10d68ef551..29d956ceb4 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-config-dashboard.ts @@ -1,6 +1,6 @@ import "@polymer/paper-item/paper-item"; import "@polymer/paper-item/paper-item-body"; -import "@material/mwc-fab"; +import "../../../../../components/ha-fab"; import { css, CSSResultArray, @@ -88,13 +88,13 @@ class ZHAConfigDashboard extends LitElement { : ""} - - + `; diff --git a/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts b/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts index 3ece6f2a7c..909cb7aecf 100644 --- a/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts +++ b/src/panels/config/integrations/integration-panels/zha/zha-groups-dashboard.ts @@ -1,5 +1,5 @@ import "@material/mwc-button"; -import "@material/mwc-fab"; +import "../../../../../components/ha-fab"; import "../../../../../components/ha-icon-button"; import memoizeOne from "memoize-one"; import { @@ -127,14 +127,14 @@ export class ZHAGroupsDashboard extends LitElement { clickable > - - + `; diff --git a/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts b/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts index a0dd5f05dc..87af0ef6bf 100644 --- a/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts +++ b/src/panels/config/lovelace/dashboards/ha-config-lovelace-dashboards.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../../components/ha-fab"; import { mdiPlus } from "@mdi/js"; import "@polymer/paper-tooltip/paper-tooltip"; import { @@ -223,7 +223,7 @@ export class HaConfigLovelaceDashboards extends LitElement { hasFab clickable > - - + `; } diff --git a/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts b/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts index 96a9faa036..c0f81a18f7 100644 --- a/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts +++ b/src/panels/config/lovelace/resources/ha-config-lovelace-resources.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../../components/ha-fab"; import { mdiPlus } from "@mdi/js"; import "@polymer/paper-checkbox/paper-checkbox"; import "@polymer/paper-dropdown-menu/paper-dropdown-menu"; @@ -103,7 +103,7 @@ export class HaConfigLovelaceRescources extends LitElement { hasFab clickable > - - + `; } diff --git a/src/panels/config/person/ha-config-person.ts b/src/panels/config/person/ha-config-person.ts index 3ae66b1d24..013b7dabd8 100644 --- a/src/panels/config/person/ha-config-person.ts +++ b/src/panels/config/person/ha-config-person.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { mdiPlus } from "@mdi/js"; import "@polymer/paper-item/paper-icon-item"; import "@polymer/paper-item/paper-item-body"; @@ -146,14 +146,14 @@ class HaConfigPerson extends LitElement { ` : ""} - - + `; } diff --git a/src/panels/config/scene/ha-scene-dashboard.ts b/src/panels/config/scene/ha-scene-dashboard.ts index fdbc0c3f23..879f1893cd 100644 --- a/src/panels/config/scene/ha-scene-dashboard.ts +++ b/src/panels/config/scene/ha-scene-dashboard.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "@material/mwc-icon-button"; import { mdiPlus, mdiHelpCircle } from "@mdi/js"; import "@polymer/paper-tooltip/paper-tooltip"; @@ -152,14 +152,14 @@ class HaSceneDashboard extends LitElement { - - + `; diff --git a/src/panels/config/scene/ha-scene-editor.ts b/src/panels/config/scene/ha-scene-editor.ts index 1781e62ac9..73b0d2cae6 100644 --- a/src/panels/config/scene/ha-scene-editor.ts +++ b/src/panels/config/scene/ha-scene-editor.ts @@ -25,7 +25,7 @@ import "../../../components/device/ha-device-picker"; import "../../../components/entity/ha-entities-picker"; import "../../../components/ha-card"; import "../../../components/ha-icon-input"; -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { computeDeviceName, DeviceRegistryEntry, @@ -403,7 +403,7 @@ export class HaSceneEditor extends SubscribeMixin( ` : ""} - - + `; } @@ -786,12 +786,12 @@ export class HaSceneEditor extends SubscribeMixin( span[slot="introduction"] a { color: var(--primary-color); } - mwc-fab { + ha-fab { position: relative; bottom: calc(-80px - env(safe-area-inset-bottom)); transition: bottom 0.3s; } - mwc-fab.dirty { + ha-fab.dirty { bottom: 0; } `, diff --git a/src/panels/config/script/ha-script-editor.ts b/src/panels/config/script/ha-script-editor.ts index 5dd2a99083..1ed2095ef8 100644 --- a/src/panels/config/script/ha-script-editor.ts +++ b/src/panels/config/script/ha-script-editor.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { mdiCheck, mdiContentSave, @@ -388,7 +388,7 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { ` : ``} - - + `; } @@ -690,12 +690,12 @@ export class HaScriptEditor extends KeyboardShortcutMixin(LitElement) { span[slot="introduction"] a { color: var(--primary-color); } - mwc-fab { + ha-fab { position: relative; bottom: calc(-80px - env(safe-area-inset-bottom)); transition: bottom 0.3s; } - mwc-fab.dirty { + ha-fab.dirty { bottom: 0; } .selected_menu_item { diff --git a/src/panels/config/script/ha-script-picker.ts b/src/panels/config/script/ha-script-picker.ts index d261cc82f5..6718ef9682 100644 --- a/src/panels/config/script/ha-script-picker.ts +++ b/src/panels/config/script/ha-script-picker.ts @@ -16,7 +16,7 @@ import { fireEvent } from "../../../common/dom/fire_event"; import { computeStateName } from "../../../common/entity/compute_state_name"; import { computeRTL } from "../../../common/util/compute_rtl"; import { DataTableColumnContainer } from "../../../components/data-table/ha-data-table"; -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { triggerScript } from "../../../data/script"; import { showAlertDialog } from "../../../dialogs/generic/show-dialog-box"; import "../../../layouts/hass-tabs-subpage-data-table"; @@ -147,7 +147,7 @@ class HaScriptPicker extends LitElement { - - + `; diff --git a/src/panels/config/tags/ha-config-tags.ts b/src/panels/config/tags/ha-config-tags.ts index 9a30fc06fe..50c971eb10 100644 --- a/src/panels/config/tags/ha-config-tags.ts +++ b/src/panels/config/tags/ha-config-tags.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "@material/mwc-icon-button"; import { mdiCog, @@ -207,14 +207,14 @@ export class HaConfigTags extends SubscribeMixin(LitElement) { - - + `; } diff --git a/src/panels/config/users/ha-config-users.ts b/src/panels/config/users/ha-config-users.ts index c870804c7f..55dbb018e2 100644 --- a/src/panels/config/users/ha-config-users.ts +++ b/src/panels/config/users/ha-config-users.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import { mdiPlus } from "@mdi/js"; import { customElement, @@ -112,14 +112,14 @@ export class HaConfigUsers extends LitElement { hasFab clickable > - - + `; } diff --git a/src/panels/config/zone/ha-config-zone.ts b/src/panels/config/zone/ha-config-zone.ts index c96a3ec8f1..94864843bf 100644 --- a/src/panels/config/zone/ha-config-zone.ts +++ b/src/panels/config/zone/ha-config-zone.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "@material/mwc-icon-button"; import { mdiPencil, mdiPencilOff, mdiPlus } from "@mdi/js"; import "@polymer/paper-item/paper-icon-item"; @@ -255,14 +255,14 @@ export class HaConfigZone extends SubscribeMixin(LitElement) { ` : ""} - - + `; } diff --git a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts index d9e0ea7b77..b13d38e4f1 100644 --- a/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts +++ b/src/panels/lovelace/editor/unused-entities/hui-unused-entities.ts @@ -1,4 +1,4 @@ -import "@material/mwc-fab"; +import "../../../../components/ha-fab"; import { css, CSSResult, @@ -108,13 +108,13 @@ export class HuiUnusedEntities extends LitElement { selected: this._selectedEntities.length, })}" > - - + `; } @@ -189,12 +189,12 @@ export class HuiUnusedEntities extends LitElement { padding-right: 16px; padding-left: calc(16px + env(safe-area-inset-left)); } - mwc-fab { + ha-fab { position: relative; bottom: calc(-80px - env(safe-area-inset-bottom)); transition: bottom 0.3s; } - .fab.selected mwc-fab { + .fab.selected ha-fab { bottom: 0; } `; diff --git a/src/panels/lovelace/views/default-view-editable.ts b/src/panels/lovelace/views/default-view-editable.ts index 8fbb84c0be..d32e0774b4 100644 --- a/src/panels/lovelace/views/default-view-editable.ts +++ b/src/panels/lovelace/views/default-view-editable.ts @@ -1,3 +1,3 @@ // hui-view dependencies for when in edit mode. -import "@material/mwc-fab"; +import "../../../components/ha-fab"; import "../components/hui-card-options"; diff --git a/src/panels/lovelace/views/hui-masonry-view.ts b/src/panels/lovelace/views/hui-masonry-view.ts index 548b3d55b2..b160ef9766 100644 --- a/src/panels/lovelace/views/hui-masonry-view.ts +++ b/src/panels/lovelace/views/hui-masonry-view.ts @@ -83,7 +83,7 @@ export class MasonryView extends LitElement implements LovelaceViewElement {
${this.lovelace?.editMode ? html` - - + ` : ""} `; @@ -296,7 +296,7 @@ export class MasonryView extends LitElement implements LovelaceViewElement { margin: 4px 4px 8px; } - mwc-fab { + ha-fab { position: sticky; float: right; right: calc(16px + env(safe-area-inset-right)); @@ -304,7 +304,7 @@ export class MasonryView extends LitElement implements LovelaceViewElement { z-index: 1; } - mwc-fab.rtl { + ha-fab.rtl { float: left; right: auto; left: calc(16px + env(safe-area-inset-left)); diff --git a/src/panels/lovelace/views/hui-panel-view.ts b/src/panels/lovelace/views/hui-panel-view.ts index 0edfff7799..f9884543dc 100644 --- a/src/panels/lovelace/views/hui-panel-view.ts +++ b/src/panels/lovelace/views/hui-panel-view.ts @@ -75,7 +75,7 @@ export class PanelView extends LitElement implements LovelaceViewElement { ${this._card} ${this.lovelace?.editMode && this.cards.length === 0 ? html` - - + ` : ""} `; @@ -137,7 +137,7 @@ export class PanelView extends LitElement implements LovelaceViewElement { height: 100%; } - mwc-fab { + ha-fab { position: sticky; float: right; right: calc(16px + env(safe-area-inset-right)); @@ -145,7 +145,7 @@ export class PanelView extends LitElement implements LovelaceViewElement { z-index: 1; } - mwc-fab.rtl { + ha-fab.rtl { float: left; right: auto; left: calc(16px + env(safe-area-inset-left));