From 67fb7f61c26e5e7db7be9c5b5c7759108af4d7cc Mon Sep 17 00:00:00 2001
From: Wendelin <12148533+wendevlin@users.noreply.github.com>
Date: Thu, 12 Feb 2026 19:03:28 +0100
Subject: [PATCH] Remove ha-divider and replace with wa-divider (#29609)
* Replace ha-divider with wa-divider in onboarding and dashboard components
* Refactor styles in onboarding-welcome component for consistency and responsiveness
---
src/components/ha-divider.ts | 50 -------------------
src/onboarding/onboarding-welcome.ts | 54 +++++++++++++++------
src/panels/profile/ha-pick-dashboard-row.ts | 8 +--
3 files changed, 42 insertions(+), 70 deletions(-)
delete mode 100644 src/components/ha-divider.ts
diff --git a/src/components/ha-divider.ts b/src/components/ha-divider.ts
deleted file mode 100644
index 87fa45f70f..0000000000
--- a/src/components/ha-divider.ts
+++ /dev/null
@@ -1,50 +0,0 @@
-import { css, html, LitElement, nothing } from "lit";
-import { ifDefined } from "lit/directives/if-defined";
-import { customElement, property } from "lit/decorators";
-
-@customElement("ha-divider")
-export class HaMdDivider extends LitElement {
- @property() public label?: string;
-
- public render() {
- return html`
-
-
- ${this.label
- ? html`
- ${this.label}
-
- `
- : nothing}
-
- `;
- }
-
- static styles = css`
- :host {
- width: var(--ha-divider-width, 100%);
- }
- div {
- display: flex;
- align-items: center;
- justify-content: center;
- }
- .label {
- padding: var(--ha-divider-label-padding, 0 16px);
- }
- .line {
- flex: 1;
- background-color: var(--divider-color);
- height: var(--ha-divider-line-height, 1px);
- }
- `;
-}
-
-declare global {
- interface HTMLElementTagNameMap {
- "ha-divider": HaMdDivider;
- }
-}
diff --git a/src/onboarding/onboarding-welcome.ts b/src/onboarding/onboarding-welcome.ts
index 5bfab27cde..fb424c98de 100644
--- a/src/onboarding/onboarding-welcome.ts
+++ b/src/onboarding/onboarding-welcome.ts
@@ -1,15 +1,15 @@
+import "@home-assistant/webawesome/dist/components/divider/divider";
import type { CSSResultGroup, TemplateResult } from "lit";
import { LitElement, css, html } from "lit";
import { customElement, property } from "lit/decorators";
-import type { LocalizeFunc } from "../common/translations/localize";
-import type { HomeAssistant } from "../types";
-import { onBoardingStyles } from "./styles";
import { fireEvent } from "../common/dom/fire_event";
+import type { LocalizeFunc } from "../common/translations/localize";
import "../components/ha-button";
-import "../components/ha-divider";
+import "../components/ha-icon-button-next";
import "../components/ha-md-list";
import "../components/ha-md-list-item";
-import "../components/ha-icon-button-next";
+import type { HomeAssistant } from "../types";
+import { onBoardingStyles } from "./styles";
@customElement("onboarding-welcome")
class OnboardingWelcome extends LitElement {
@@ -26,9 +26,16 @@ class OnboardingWelcome extends LitElement {
${this.localize("ui.panel.page-onboarding.welcome.start")}
-
+
+
+
+ ${this.localize(
+ "ui.panel.page-onboarding.welcome.or_restore"
+ )}
+
+
@@ -83,24 +90,39 @@ class OnboardingWelcome extends LitElement {
display: flex;
flex-direction: column;
align-items: flex-start;
- margin-bottom: -16px;
+ margin-bottom: calc(var(--ha-space-4) * -1);
}
h1 {
- margin-top: 16px;
- margin-bottom: 8px;
+ margin-top: var(--ha-space-4);
+ margin-bottom: var(--ha-space-2);
}
p {
margin: 0;
}
.start {
- margin: 32px 0;
+ margin: var(--ha-space-8) 0;
width: 100%;
}
- ha-divider {
- --ha-divider-width: calc(100% + 64px);
- margin-left: -32px;
- margin-right: -32px;
+ .divider {
+ width: calc(100% + var(--ha-space-16));
+ position: relative;
+ margin-left: calc(var(--ha-space-8) * -1);
+ margin-right: calc(var(--ha-space-8) * -1);
}
+ .divider div {
+ position: absolute;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ top: 0;
+ bottom: 0;
+ width: 100%;
+ }
+ .divider div span {
+ background-color: var(--card-background-color);
+ padding: 0 var(--ha-space-4);
+ }
+
ha-md-list {
width: 100%;
padding-bottom: 0;
diff --git a/src/panels/profile/ha-pick-dashboard-row.ts b/src/panels/profile/ha-pick-dashboard-row.ts
index 862367eeb4..5a8179da44 100644
--- a/src/panels/profile/ha-pick-dashboard-row.ts
+++ b/src/panels/profile/ha-pick-dashboard-row.ts
@@ -1,12 +1,12 @@
+import "@home-assistant/webawesome/dist/components/divider/divider";
import type { CSSResultGroup, PropertyValues, TemplateResult } from "lit";
import { css, html, LitElement, nothing } from "lit";
import { customElement, property, state } from "lit/decorators";
import memoizeOne from "memoize-one";
-import "../../components/ha-divider";
import "../../components/ha-dropdown-item";
import "../../components/ha-icon";
-import type { HaSelectSelectEvent } from "../../components/ha-select";
import "../../components/ha-select";
+import type { HaSelectSelectEvent } from "../../components/ha-select";
import "../../components/ha-settings-row";
import "../../components/ha-spinner";
import "../../components/ha-svg-icon";
@@ -57,7 +57,7 @@ class HaPickDashboardRow extends LitElement {
>
${this.hass.localize("ui.panel.profile.dashboard.system")}
-
+
${PANEL_DASHBOARDS.map((panel) => {
const panelInfo = this.hass.panels[panel] as
| PanelInfo
@@ -80,7 +80,7 @@ class HaPickDashboardRow extends LitElement {
})}
${this._dashboards.length
? html`
-
+
${this._dashboards.map((dashboard) => {
if (
!this.hass.user!.is_admin &&