Really-amin's picture
Upload 317 files
eebf5c4 verified
/**
* ═══════════════════════════════════════════════════════════════════
* TOAST NOTIFICATIONS β€” ULTRA ENTERPRISE EDITION
* Crypto Monitor HF β€” Glass + Neon Toast System
* ═══════════════════════════════════════════════════════════════════
*/
/* ═══════════════════════════════════════════════════════════════════
TOAST CONTAINER
═══════════════════════════════════════════════════════════════════ */
#alerts-container {
position: fixed;
top: calc(var(--header-height) + var(--status-bar-height) + var(--space-6));
right: var(--space-6);
z-index: var(--z-toast);
display: flex;
flex-direction: column;
gap: var(--space-3);
max-width: 420px;
width: 100%;
pointer-events: none;
}
/* ═══════════════════════════════════════════════════════════════════
TOAST BASE
═══════════════════════════════════════════════════════════════════ */
.toast {
background: var(--toast-bg);
border: 1px solid var(--border-medium);
border-left-width: 4px;
border-radius: var(--radius-md);
backdrop-filter: var(--blur-lg);
box-shadow: var(--shadow-lg);
padding: var(--space-4) var(--space-5);
display: flex;
align-items: start;
gap: var(--space-3);
pointer-events: all;
animation: toast-slide-in 0.3s var(--ease-spring);
position: relative;
overflow: hidden;
}
.toast.removing {
animation: toast-slide-out 0.25s var(--ease-in) forwards;
}
@keyframes toast-slide-in {
from {
transform: translateX(120%);
opacity: 0;
}
to {
transform: translateX(0);
opacity: 1;
}
}
@keyframes toast-slide-out {
to {
transform: translateX(120%);
opacity: 0;
}
}
/* ═══════════════════════════════════════════════════════════════════
TOAST VARIANTS
═══════════════════════════════════════════════════════════════════ */
.toast-success {
border-left-color: var(--success);
box-shadow: var(--shadow-lg), 0 0 0 1px rgba(34, 197, 94, 0.20);
}
.toast-error {
border-left-color: var(--danger);
box-shadow: var(--shadow-lg), 0 0 0 1px rgba(239, 68, 68, 0.20);
}
.toast-warning {
border-left-color: var(--warning);
box-shadow: var(--shadow-lg), 0 0 0 1px rgba(245, 158, 11, 0.20);
}
.toast-info {
border-left-color: var(--info);
box-shadow: var(--shadow-lg), 0 0 0 1px rgba(14, 165, 233, 0.20);
}
/* ═══════════════════════════════════════════════════════════════════
TOAST CONTENT
═══════════════════════════════════════════════════════════════════ */
.toast-icon {
flex-shrink: 0;
width: 20px;
height: 20px;
display: flex;
align-items: center;
justify-content: center;
}
.toast-success .toast-icon {
color: var(--success);
}
.toast-error .toast-icon {
color: var(--danger);
}
.toast-warning .toast-icon {
color: var(--warning);
}
.toast-info .toast-icon {
color: var(--info);
}
.toast-content {
flex: 1;
display: flex;
flex-direction: column;
gap: var(--space-1);
}
.toast-title {
font-size: var(--fs-sm);
font-weight: var(--fw-semibold);
color: var(--text-strong);
margin: 0;
}
.toast-message {
font-size: var(--fs-xs);
color: var(--text-soft);
line-height: var(--lh-relaxed);
}
/* ═══════════════════════════════════════════════════════════════════
TOAST CLOSE BUTTON
═══════════════════════════════════════════════════════════════════ */
.toast-close {
flex-shrink: 0;
width: 24px;
height: 24px;
display: flex;
align-items: center;
justify-content: center;
background: transparent;
border: none;
color: var(--text-muted);
cursor: pointer;
border-radius: var(--radius-xs);
transition: all var(--transition-fast);
}
.toast-close:hover {
background: var(--surface-glass);
color: var(--text-normal);
}
/* ═══════════════════════════════════════════════════════════════════
TOAST PROGRESS BAR
═══════════════════════════════════════════════════════════════════ */
.toast-progress {
position: absolute;
bottom: 0;
left: 0;
height: 3px;
background: currentColor;
opacity: 0.4;
animation: toast-progress-shrink 5s linear forwards;
}
@keyframes toast-progress-shrink {
from {
width: 100%;
}
to {
width: 0%;
}
}
.toast-success .toast-progress {
color: var(--success);
}
.toast-error .toast-progress {
color: var(--danger);
}
.toast-warning .toast-progress {
color: var(--warning);
}
.toast-info .toast-progress {
color: var(--info);
}
/* ═══════════════════════════════════════════════════════════════════
MOBILE ADJUSTMENTS
═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
#alerts-container {
top: auto;
bottom: calc(var(--mobile-nav-height) + var(--space-4));
right: var(--space-4);
left: var(--space-4);
max-width: none;
}
@keyframes toast-slide-in {
from {
transform: translateY(120%);
opacity: 0;
}
to {
transform: translateY(0);
opacity: 1;
}
}
@keyframes toast-slide-out {
to {
transform: translateY(120%);
opacity: 0;
}
}
}
/* ═══════════════════════════════════════════════════════════════════
END OF TOAST
═══════════════════════════════════════════════════════════════════ */