Files
xamxam/app/public/assets/css/components/toast.css

72 lines
1.7 KiB
CSS

/* ============================================================
TOAST — Bottom-center toast messages (CSS-only auto-fade).
Root class: .toast-container + .toast
============================================================ */
#toast-region {
position: fixed;
bottom: var(--space-l);
left: 50%;
transform: translateX(-50%);
z-index: 10000;
display: flex;
flex-direction: column;
align-items: center;
gap: var(--space-xs);
pointer-events: none;
width: max-content;
max-width: min(560px, calc(100vw - 2 * var(--space-l)));
}
.toast {
padding: var(--space-s) var(--space-m);
border-radius: var(--radius);
font-size: var(--step-0);
border-left: 4px solid;
box-shadow: 0 6px 24px rgba(0, 0, 0, 0.25);
pointer-events: auto;
/* enter then fade out — total visible ~6.35s */
animation: toast-enter 0.35s ease-out,
toast-exit 0.5s ease-in 6s forwards;
}
.toast--error {
background: var(--bg-secondary);
border-color: var(--error);
color: var(--text-primary);
}
.toast--success {
background: var(--bg-secondary);
border-color: var(--success);
color: var(--text-primary);
}
.toast--warning {
background: var(--bg-secondary);
border-color: var(--warning);
color: var(--text-primary);
animation: toast-enter 0.35s ease-out;
}
.toast--warning a {
color: inherit;
font-weight: 400;
text-decoration: none;
transition: color 0.15s;
}
.toast--warning a:hover {
color: var(--accent-primary);
}
@keyframes toast-enter {
from { opacity: 0; transform: translateY(12px); }
to { opacity: 1; transform: translateY(0); }
}
@keyframes toast-exit {
from { opacity: 1; }
to { opacity: 0; pointer-events: none; }
}