rsuite
Version:
A suite of react components
99 lines (81 loc) • 1.87 kB
text/less
@import '../../styles/common';
@import 'animation';
//
// toaster
// --------------------------------------------------
.rs-toast {
// Reset pointer events ,to overwrite line:16
pointer-events: auto;
}
.rs-toast-container {
position: fixed;
z-index: @zindex-notification;
// Make sure the mouse can penetrate through the gap area.
pointer-events: none;
display: flex;
flex-direction: column;
// Notification has box-shadow on rs-notification-content
.rs-toast:not(.rs-notification) {
box-shadow: var(--rs-shadow-overlay);
}
&-top-center,
&-bottom-center {
align-items: center;
width: 100%;
.rs-toast-fade-entered {
animation-name: notificationMoveIn;
}
}
&-bottom-start,
&-top-start {
align-items: flex-start;
left: @toast-spacing;
.rs-toast-fade-entered {
animation-name: notificationMoveInLeft;
}
}
&-bottom-end,
&-top-end {
align-items: flex-end;
right: @toast-spacing;
.rs-toast-fade-entered {
margin-left: auto;
animation-name: notificationMoveInRight;
}
}
&-top-center,
&-top-start,
&-top-end {
top: @toast-spacing;
}
&-bottom-center,
&-bottom-start,
&-bottom-end {
bottom: @toast-spacing;
}
}
// Animations
.rs-toast-fade-entered,
.rs-toast-fade-exiting {
animation-fill-mode: forwards;
}
.rs-toast-fade-entered {
animation-duration: 0.4s;
animation-timing-function: cubic-bezier(0.99, 0.44, 0.44, 1.35);
}
.rs-toast-fade-exited,
.rs-toast-fade-entering {
opacity: 0;
}
// The same to @keyframe notificationMoveOut 100%.
.rs-toast-fade-exited {
transform-origin: 0 0;
transform: scaleY(0.8);
max-height: 0;
overflow: hidden;
}
.rs-toast-fade-exiting {
animation-duration: 0.3s;
animation-timing-function: cubic-bezier(0.64, 0.65, 0.57, 1.13);
animation-name: notificationMoveOut;
}