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

@@ -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 {