Use border color for focus state of button and select in dashboard (#24429)

This commit is contained in:
Paul Bottein 2025-02-27 20:36:41 +01:00 committed by Bram Kragten
parent 587751f5b4
commit 99f86bb9cf
8 changed files with 22 additions and 10 deletions

View File

@ -28,6 +28,7 @@ export class HaControlButton extends LitElement {
static styles = css` static styles = css`
:host { :host {
display: block; display: block;
--control-button-focus-color: var(--secondary-text-color);
--control-button-icon-color: var(--primary-text-color); --control-button-icon-color: var(--primary-text-color);
--control-button-background-color: var(--disabled-color); --control-button-background-color: var(--disabled-color);
--control-button-background-opacity: 0.2; --control-button-background-opacity: 0.2;
@ -66,9 +67,13 @@ export class HaControlButton extends LitElement {
z-index: 0; z-index: 0;
font-size: inherit; font-size: inherit;
color: inherit; color: inherit;
transition:
box-shadow 180ms ease-in-out,
color 180ms ease-in-out;
color: var(--control-button-icon-color);
} }
.button:focus-visible { .button:focus-visible {
--control-button-background-opacity: 0.4; box-shadow: 0 0 0 2px var(--control-button-focus-color);
} }
.button::before { .button::before {
content: ""; content: "";
@ -85,10 +90,6 @@ export class HaControlButton extends LitElement {
pointer-events: none; pointer-events: none;
white-space: normal; white-space: normal;
} }
.button {
transition: color 180ms ease-in-out;
color: var(--control-button-icon-color);
}
.button ::slotted(*) { .button ::slotted(*) {
pointer-events: none; pointer-events: none;
opacity: 0.95; opacity: 0.95;

View File

@ -184,7 +184,7 @@ export class HaControlNumberButton extends LitElement {
static styles = css` static styles = css`
:host { :host {
display: block; display: block;
--control-number-buttons-focus-color: var(--primary-color); --control-number-buttons-focus-color: var(--secondary-text-color);
--control-number-buttons-background-color: var(--disabled-color); --control-number-buttons-background-color: var(--disabled-color);
--control-number-buttons-background-opacity: 0.2; --control-number-buttons-background-opacity: 0.2;
--control-number-buttons-border-radius: 10px; --control-number-buttons-border-radius: 10px;
@ -228,6 +228,7 @@ export class HaControlNumberButton extends LitElement {
color: inherit; color: inherit;
user-select: none; user-select: none;
-webkit-tap-highlight-color: transparent; -webkit-tap-highlight-color: transparent;
transition: box-shadow 180ms ease-in-out;
outline: none; outline: none;
} }
.value::before { .value::before {

View File

@ -137,6 +137,7 @@ export class HaControlSelectMenu extends SelectBase {
css` css`
:host { :host {
display: inline-block; display: inline-block;
--control-select-menu-focus-color: var(--secondary-text-color);
--control-select-menu-text-color: var(--primary-text-color); --control-select-menu-text-color: var(--primary-text-color);
--control-select-menu-background-color: var(--disabled-color); --control-select-menu-background-color: var(--disabled-color);
--control-select-menu-background-opacity: 0.2; --control-select-menu-background-opacity: 0.2;
@ -167,7 +168,9 @@ export class HaControlSelectMenu extends SelectBase {
background: none; background: none;
/* For safari border-radius overflow */ /* For safari border-radius overflow */
z-index: 0; z-index: 0;
transition: color 180ms ease-in-out; transition:
box-shadow 180ms ease-in-out,
color 180ms ease-in-out;
gap: 10px; gap: 10px;
width: 100%; width: 100%;
user-select: none; user-select: none;
@ -205,7 +208,7 @@ export class HaControlSelectMenu extends SelectBase {
} }
.select-anchor:focus-visible { .select-anchor:focus-visible {
--control-select-menu-background-opacity: 0.4; box-shadow: 0 0 0 2px var(--control-select-menu-focus-color);
} }
.select-anchor::before { .select-anchor::before {

View File

@ -37,8 +37,8 @@ export class HaMoreInfoControlSelectContainer extends LitElement {
overflow: auto; overflow: auto;
-ms-overflow-style: none; /* IE and Edge */ -ms-overflow-style: none; /* IE and Edge */
scrollbar-width: none; /* Firefox */ scrollbar-width: none; /* Firefox */
margin: 0 -24px; margin: -2px -24px;
padding: 0 24px; padding: 2px 24px;
} }
.controls-scroll::-webkit-scrollbar { .controls-scroll::-webkit-scrollbar {
display: none; display: none;

View File

@ -5,6 +5,7 @@ export const cardFeatureStyles = css`
box-sizing: border-box; box-sizing: border-box;
--control-select-menu-height: var(--feature-height); --control-select-menu-height: var(--feature-height);
--control-select-menu-border-radius: var(--feature-border-radius); --control-select-menu-border-radius: var(--feature-border-radius);
--control-select-menu-focus-color: var(--feature-color);
line-height: 1.2; line-height: 1.2;
display: block; display: block;
width: 100%; width: 100%;
@ -24,6 +25,9 @@ export const cardFeatureStyles = css`
flex-basis: 20px; flex-basis: 20px;
--control-button-padding: 0px; --control-button-padding: 0px;
} }
ha-control-button {
--control-button-focus-color: var(--feature-color);
}
ha-control-slider { ha-control-slider {
--control-slider-color: var(--feature-color); --control-slider-color: var(--feature-color);
--control-slider-background: var(--feature-color); --control-slider-background: var(--feature-color);

View File

@ -157,6 +157,7 @@ export class HaStateControlToggle extends LitElement {
ha-control-button.active { ha-control-button.active {
--control-button-icon-color: white; --control-button-icon-color: white;
--control-button-background-color: var(--color); --control-button-background-color: var(--color);
--control-button-focus-color: var(--color);
--control-button-background-opacity: 1; --control-button-background-opacity: 1;
} }
ha-control-button:not(:last-child) { ha-control-button:not(:last-child) {

View File

@ -188,6 +188,7 @@ export class HaStateControlLockToggle extends LitElement {
ha-control-button.active { ha-control-button.active {
--control-button-icon-color: white; --control-button-icon-color: white;
--control-button-background-color: var(--color); --control-button-background-color: var(--color);
--control-button-focus-color: var(--color);
--control-button-background-opacity: 1; --control-button-background-opacity: 1;
} }
ha-control-button:not(:last-child) { ha-control-button:not(:last-child) {

View File

@ -166,6 +166,7 @@ export class HaStateControlValveToggle extends LitElement {
ha-control-button.active { ha-control-button.active {
--control-button-icon-color: white; --control-button-icon-color: white;
--control-button-background-color: var(--color); --control-button-background-color: var(--color);
--control-button-focus-color: var(--color);
--control-button-background-opacity: 1; --control-button-background-opacity: 1;
} }
ha-control-button:not(:last-child) { ha-control-button:not(:last-child) {