// ──────────────────────────────────────────────────────────────── // Komponente · Button // ──────────────────────────────────────────────────────────────── .btn { --btn-h: 40px; display: inline-flex; align-items: center; justify-content: center; gap: var(--sp-2); height: var(--btn-h); padding: 0 var(--sp-4); font-family: var(--font-sans); font-size: var(--fs-md); font-weight: var(--fw-medium); letter-spacing: .01em; white-space: nowrap; color: var(--fg); background: var(--surface); border: 1px solid var(--line); border-radius: var(--r-md); cursor: pointer; user-select: none; transition: background var(--dur-fast) var(--ease), border-color var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease), box-shadow var(--dur-fast) var(--ease), transform var(--dur-fast) var(--ease); &:hover { background: var(--surface-2); border-color: color-mix(in srgb, var(--accent) 45%, var(--line)); } &:active { transform: translateY(1px); } &:disabled, &[aria-disabled="true"] { opacity: .5; cursor: not-allowed; pointer-events: none; } } // Varianten .btn--primary { color: var(--on-accent); background: var(--accent); border-color: color-mix(in srgb, var(--accent) 75%, #000); &:hover { background: color-mix(in srgb, var(--accent) 88%, #fff); border-color: color-mix(in srgb, var(--accent) 75%, #000); } } .btn--ember { color: var(--on-accent); background: var(--ember); border-color: color-mix(in srgb, var(--ember) 78%, #000); &:hover { background: color-mix(in srgb, var(--ember) 88%, #fff); } } .btn--danger { color: var(--on-accent); background: var(--off); border-color: color-mix(in srgb, var(--off) 78%, #000); &:hover { background: color-mix(in srgb, var(--off) 88%, #fff); } } .btn--ghost { background: transparent; border-color: transparent; &:hover { background: color-mix(in srgb, var(--accent) 8%, transparent); border-color: transparent; } } .btn--outline { color: var(--accent); background: transparent; border-color: color-mix(in srgb, var(--accent) 50%, transparent); &:hover { background: color-mix(in srgb, var(--accent) 10%, transparent); border-color: var(--accent); } } // Groessen .btn--sm { --btn-h: 32px; padding: 0 var(--sp-3); font-size: var(--fs-sm); border-radius: var(--r-sm); } .btn--lg { --btn-h: 48px; padding: 0 var(--sp-6); font-size: var(--fs-base); } .btn--block { display: flex; width: 100%; } .btn--icon { width: var(--btn-h); padding: 0; } // Gesperrte Versalien (Marken-Knopf) .btn--caps { letter-spacing: var(--tracking-wide); text-transform: uppercase; font-size: var(--fs-sm); }