variablen und empty states

This commit is contained in:
2026-03-12 16:47:53 +01:00
parent 0b9014dcbf
commit cb7256aebc
15 changed files with 323 additions and 49 deletions

View File

@@ -70,6 +70,10 @@
--tooltip-radius: 8px;
--tooltip-offset: 8px;
--app-badge-background-color: coral;
--app-empty-border-color: var(--app-muted-border-color);
--app-empty-bg: var(--app-card-background-color);
--app-empty-text: var(--app-color);
--app-empty-hint: var(--app-muted-color);
}
/* Icons */
@@ -293,6 +297,20 @@
--app-notice-error-color: var(--app-form-element-invalid-border-color);
--app-notice-error-border-color: var(--app-form-element-invalid-border-color);
--app-notice-error-background-color: rgb(255 0 0 / 13%);
--app-action-success-background: #1f7a45;
--app-action-success-border: #1f7a45;
--app-action-success-color: #fff;
--app-action-success-hover-background: #176238;
--app-action-success-hover-border: #176238;
--app-action-success-focus-color: rgba(31, 122, 69, 0.45);
--app-action-success-outline-background: rgba(31, 122, 69, 0.14);
--app-action-danger-background: #b33636;
--app-action-danger-border: #b33636;
--app-action-danger-color: #fff;
--app-action-danger-hover-background: #952d2d;
--app-action-danger-hover-border: #952d2d;
--app-action-danger-focus-color: rgba(179, 54, 54, 0.45);
--app-action-danger-outline-background: rgba(179, 54, 54, 0.14);
--app-switch-background-color: #bfc7d9;
--app-switch-checked-background-color: var(--app-primary-background);
--app-switch-color: #fff;
@@ -311,10 +329,6 @@
--app-card-box-shadow: var(--app-box-shadow);
--app-card-sectioning-background-color: rgb(251, 251.5, 252.25);
--app-details-card-open-summary-bg: var(--app-card-sectioning-background-color);
--app-empty-border-color: var(--app-muted-border-color);
--app-empty-bg: var(--app-card-background-color);
--app-empty-text: var(--app-color);
--app-empty-hint: var(--app-muted-color);
--app-dropdown-background-color: #fff;
--app-dropdown-border-color: #eff1f4;
--app-dropdown-box-shadow: var(--app-box-shadow);
@@ -531,6 +545,20 @@
--app-form-element-valid-focus-color: var(
--app-form-element-valid-active-border-color
);
--app-action-success-background: #1f7a45;
--app-action-success-border: #1f7a45;
--app-action-success-color: #fff;
--app-action-success-hover-background: #176238;
--app-action-success-hover-border: #176238;
--app-action-success-focus-color: rgba(31, 122, 69, 0.5);
--app-action-success-outline-background: rgba(31, 122, 69, 0.2);
--app-action-danger-background: #b33636;
--app-action-danger-border: #b33636;
--app-action-danger-color: #fff;
--app-action-danger-hover-background: #952d2d;
--app-action-danger-hover-border: #952d2d;
--app-action-danger-focus-color: rgba(179, 54, 54, 0.5);
--app-action-danger-outline-background: rgba(179, 54, 54, 0.2);
--app-switch-background-color: #333c4e;
--app-switch-checked-background-color: var(--app-primary-background);
--app-switch-color: #fff;
@@ -766,6 +794,20 @@
--app-notice-error-color: var(--app-form-element-invalid-border-color);
--app-notice-error-border-color: var(--app-form-element-invalid-border-color);
--app-notice-error-background-color: rgba(149.5, 74, 80, 0.2);
--app-action-success-background: #1f7a45;
--app-action-success-border: #1f7a45;
--app-action-success-color: #fff;
--app-action-success-hover-background: #176238;
--app-action-success-hover-border: #176238;
--app-action-success-focus-color: rgba(31, 122, 69, 0.5);
--app-action-success-outline-background: rgba(31, 122, 69, 0.2);
--app-action-danger-background: #b33636;
--app-action-danger-border: #b33636;
--app-action-danger-color: #fff;
--app-action-danger-hover-background: #952d2d;
--app-action-danger-hover-border: #952d2d;
--app-action-danger-focus-color: rgba(179, 54, 54, 0.5);
--app-action-danger-outline-background: rgba(179, 54, 54, 0.2);
--app-switch-background-color: #333c4e;
--app-switch-checked-background-color: var(--app-primary-background);
--app-switch-color: #fff;

View File

@@ -21,6 +21,20 @@ html[data-contrast="high"][data-theme="light"],
--app-blockquote-border-color: var(--app-muted-border-color);
--app-tooltip-background-color: #000;
--app-tooltip-color: #fff;
--app-action-success-background: #0f5f00;
--app-action-success-border: #0f5f00;
--app-action-success-color: #fff;
--app-action-success-hover-background: #084700;
--app-action-success-hover-border: #084700;
--app-action-success-focus-color: rgba(15, 95, 0, 0.65);
--app-action-success-outline-background: rgba(15, 95, 0, 0.2);
--app-action-danger-background: #8f0000;
--app-action-danger-border: #8f0000;
--app-action-danger-color: #fff;
--app-action-danger-hover-background: #6f0000;
--app-action-danger-hover-border: #6f0000;
--app-action-danger-focus-color: rgba(143, 0, 0, 0.65);
--app-action-danger-outline-background: rgba(143, 0, 0, 0.2);
}
html[data-contrast="high"][data-theme^="dark"],
@@ -42,5 +56,19 @@ html[data-contrast="high"][data-theme^="dark"],
--app-blockquote-border-color: var(--app-muted-border-color);
--app-tooltip-background-color: #fff;
--app-tooltip-color: #0b0f14;
--app-action-success-background: #0f5f00;
--app-action-success-border: #0f5f00;
--app-action-success-color: #fff;
--app-action-success-hover-background: #084700;
--app-action-success-hover-border: #084700;
--app-action-success-focus-color: rgba(15, 95, 0, 0.7);
--app-action-success-outline-background: rgba(15, 95, 0, 0.24);
--app-action-danger-background: #8f0000;
--app-action-danger-border: #8f0000;
--app-action-danger-color: #fff;
--app-action-danger-hover-background: #6f0000;
--app-action-danger-hover-border: #6f0000;
--app-action-danger-focus-color: rgba(143, 0, 0, 0.7);
--app-action-danger-outline-background: rgba(143, 0, 0, 0.24);
}
}

View File

@@ -1,8 +1,54 @@
@layer components {
.danger:is(button, [type="submit"], [type="button"], [role="button"]) {
--app-background-color: var(--app-notice-error-border-color);
--app-border-color: var(--app-notice-error-border-color);
--app-color: var(--app-secondary-inverse);
.app-action-success:is(button, [type="submit"], [type="button"], [role="button"]) {
--app-background-color: var(--app-action-success-background);
--app-border-color: var(--app-action-success-border);
--app-color: var(--app-action-success-color);
}
.app-action-success:is(button, [type="submit"], [type="button"], [role="button"]):is(
[aria-current]:not([aria-current="false"]),
:hover,
:active,
:focus
) {
--app-background-color: var(--app-action-success-hover-background);
--app-border-color: var(--app-action-success-hover-border);
--app-color: var(--app-action-success-color);
}
.app-action-success:is(button, [type="submit"], [type="button"], [role="button"]).outline {
--app-background-color: transparent;
--app-border-color: var(--app-action-success-border);
--app-color: var(--app-action-success-border);
}
.app-action-success:is(
button,
[type="submit"],
[type="button"],
[role="button"]
).outline:is(
[aria-current]:not([aria-current="false"]),
:hover,
:active,
:focus
) {
--app-background-color: var(--app-action-success-outline-background);
--app-border-color: var(--app-action-success-border);
--app-color: var(--app-action-success-border);
}
.app-action-success:is(button, [type="submit"], [type="button"], [role="button"]):focus {
--app-box-shadow:
var(--app-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
0 0 0 var(--app-outline-width) var(--app-action-success-focus-color);
}
.danger:is(button, [type="submit"], [type="button"], [role="button"]),
.app-action-danger:is(button, [type="submit"], [type="button"], [role="button"]) {
--app-background-color: var(--app-action-danger-background);
--app-border-color: var(--app-action-danger-border);
--app-color: var(--app-action-danger-color);
}
.danger:is(button, [type="submit"], [type="button"], [role="button"]):is(
@@ -10,16 +56,23 @@
:hover,
:active,
:focus
),
.app-action-danger:is(button, [type="submit"], [type="button"], [role="button"]):is(
[aria-current]:not([aria-current="false"]),
:hover,
:active,
:focus
) {
--app-background-color: var(--app-form-element-invalid-active-border-color);
--app-border-color: var(--app-form-element-invalid-active-border-color);
--app-color: var(--app-secondary-inverse);
--app-background-color: var(--app-action-danger-hover-background);
--app-border-color: var(--app-action-danger-hover-border);
--app-color: var(--app-action-danger-color);
}
.danger:is(button, [type="submit"], [type="button"], [role="button"]).outline {
.danger:is(button, [type="submit"], [type="button"], [role="button"]).outline,
.app-action-danger:is(button, [type="submit"], [type="button"], [role="button"]).outline {
--app-background-color: transparent;
--app-border-color: var(--app-notice-error-border-color);
--app-color: var(--app-notice-error-border-color);
--app-border-color: var(--app-action-danger-border);
--app-color: var(--app-action-danger-border);
}
.danger:is(
@@ -32,15 +85,27 @@
:hover,
:active,
:focus
),
.app-action-danger:is(
button,
[type="submit"],
[type="button"],
[role="button"]
).outline:is(
[aria-current]:not([aria-current="false"]),
:hover,
:active,
:focus
) {
--app-background-color: var(--app-notice-error-background-color);
--app-border-color: var(--app-notice-error-border-color);
--app-color: var(--app-notice-error-border-color);
--app-background-color: var(--app-action-danger-outline-background);
--app-border-color: var(--app-action-danger-border);
--app-color: var(--app-action-danger-border);
}
.danger:is(button, [type="submit"], [type="button"], [role="button"]):focus {
.danger:is(button, [type="submit"], [type="button"], [role="button"]):focus,
.app-action-danger:is(button, [type="submit"], [type="button"], [role="button"]):focus {
--app-box-shadow:
var(--app-button-hover-box-shadow, 0 0 0 rgba(0, 0, 0, 0)),
0 0 0 var(--app-outline-width) var(--app-form-element-invalid-focus-color);
0 0 0 var(--app-outline-width) var(--app-action-danger-focus-color);
}
}

View File

@@ -4,25 +4,43 @@
border-radius: var(--app-border-radius);
background: var(--app-empty-bg);
color: var(--app-empty-text);
padding: calc(var(--app-spacing) * 0.875) var(--app-spacing);
padding: calc(var(--app-spacing) * 1.5) var(--app-spacing);
display: grid;
gap: calc(var(--app-spacing) * 0.35);
text-align: center;
justify-items: center;
}
.app-empty-state[data-size="compact"] {
padding: calc(var(--app-spacing) * 0.625) calc(var(--app-spacing) * 0.75);
padding: calc(var(--app-spacing) * 0.75) calc(var(--app-spacing) * 0.75);
gap: calc(var(--app-spacing) * 0.25);
}
.app-empty-state[data-size="small"] {
padding: calc(var(--app-spacing) * 0.5) calc(var(--app-spacing) * 0.5);
gap: calc(var(--app-spacing) * 0.15);
}
.app-empty-state[data-align="left"] {
text-align: left;
justify-items: start;
}
.app-empty-state-icon {
color: var(--app-empty-hint);
opacity: 0.5;
margin-bottom: calc(var(--app-spacing) * 0.15);
}
.app-empty-state[data-size="compact"] .app-empty-state-icon {
width: 28px;
height: 28px;
margin-bottom: 0;
}
.app-empty-state-message {
margin: 0;
color: var(--app-empty-text);
font-size: 0.95rem;
color: var(--app-empty-hint);
font-size: 12px;
line-height: 1.4;
}
@@ -31,11 +49,12 @@
color: var(--app-empty-hint);
font-size: 0.85rem;
line-height: 1.3;
opacity: 0.75;
}
.app-empty-state-action {
justify-self: center;
margin-top: calc(var(--app-spacing) * 0.15);
margin-top: calc(var(--app-spacing) * 0.25);
}
.app-empty-state[data-align="left"] .app-empty-state-action {