.toast-container { position: fixed; bottom: 20px; right: 20px; z-index: 99999; display: flex; flex-direction: column; gap: 12px; pointer-events: none; } .toast { display: flex; align-items: center; gap: 12px; padding: 12px 16px; background: rgba(26, 26, 26, 0.95); border-radius: 6px; box-shadow: 0 4px 12px rgba(0, 0, 0, 0.4), 0 0 1px rgba(255, 255, 255, 0.1); backdrop-filter: blur(8px); min-width: 280px; max-width: 400px; pointer-events: auto; animation: toastSlideIn 0.3s cubic-bezier(0.21, 1.02, 0.73, 1) forwards; border-left: 3px solid var(--toast-color); } @keyframes toastSlideIn { from { transform: translateX(calc(100% + 20px)); opacity: 0; } to { transform: translateX(0); opacity: 1; } } .toast-icon { display: flex; align-items: center; justify-content: center; flex-shrink: 0; color: var(--toast-color); } .toast-message { flex: 1; font-size: 13px; line-height: 1.5; color: #e0e0e0; word-break: break-word; } .toast-close { display: flex; align-items: center; justify-content: center; flex-shrink: 0; background: none; border: none; color: rgba(255, 255, 255, 0.5); cursor: pointer; padding: 4px; border-radius: 3px; transition: all 0.2s; } .toast-close:hover { background: rgba(255, 255, 255, 0.1); color: rgba(255, 255, 255, 0.8); } .toast-close:active { transform: scale(0.95); } /* Toast 类型样式 */ .toast-success { --toast-color: #4caf50; border-left-color: #4caf50; } .toast-error { --toast-color: #f44336; border-left-color: #f44336; } .toast-warning { --toast-color: #ff9800; border-left-color: #ff9800; } .toast-info { --toast-color: #2196f3; border-left-color: #2196f3; } /* 移除时的动画 */ .toast.removing { animation: toastSlideOut 0.3s cubic-bezier(0.21, 1.02, 0.73, 1) forwards; } @keyframes toastSlideOut { from { transform: translateX(0); opacity: 1; } to { transform: translateX(calc(100% + 20px)); opacity: 0; } } /* 响应式调整 */ @media (max-width: 768px) { .toast-container { left: 20px; right: 20px; } .toast { min-width: unset; max-width: unset; } }