@roadtrip/css
Version:
CSS framework for Roadtrip Design System
210 lines (169 loc) • 3.07 kB
CSS
/*
* Toast
*
* Index
* - Toast
* - Toast feedback
* - Toast icon
* - Toast close
*
*/
.toast-container {
position: fixed;
right: 0;
bottom: 1rem;
left: 0;
z-index: 1;
display: flex;
justify-content: center;
width: 328px;
margin: 0 auto;
visibility: hidden;
opacity: 0;
transition: opacity 0.3s ease-in-out, visibility 0.15s, transform 0.3s ease-in-out;
transform: translateY(-100%);
}
@media (min-width: 1200px) {
.toast-container {
right: 1.5rem;
bottom: 3rem;
left: auto;
width: auto;
}
}
/**
* Open state
*/
.toast-open {
visibility: visible;
opacity: 1;
transform: none;
}
/* TOAST
-------------------- */
.toast {
position: relative;
box-sizing: border-box;
display: flex;
flex: 0 0 100%;
flex-flow: wrap;
align-items: flex-start;
width: 328px;
padding: 0.75rem 2rem 0.6rem 1rem;
margin-right: 0.5rem;
font-family: var(--road-font);
font-size: var(--road-body-medium);
line-height: 1.4;
color: var(--road-on-info-surface-inverse);
text-align: left;
pointer-events: none;
background: var(--road-info-surface-inverse);
border-radius: 0.25rem;
}
.toast-top .toast {
border-radius: 0 0 0.25rem 0.25rem;
}
@media (min-width: 575px) {
.toast {
padding: 1rem;
margin-right: auto;
margin-left: auto;
}
}
/* TOAST FEEDBACK
-------------------- */
/**
* Success
*/
.toast-success {
color: var(--road-on-success-surface-inverse);
background: var(--road-success-surface-inverse);
}
/**
* Warning
*/
.toast-warning {
color: var(--road-on-warning-surface-inverse);
background: var(--road-warning-surface-inverse);
}
/**
* Danger
*/
.toast-danger {
color: var(--road-on-danger-surface-inverse);
pointer-events: all;
background: var(--road-danger-surface-inverse);
}
/* TOAST ICON
-------------------- */
.toast-icon {
top: auto;
left: 0.5rem;
height: auto;
margin-top: -5px;
margin-right: 0.5rem;
fill: var(--road-info-icon-inverse);
}
.toast-warning .toast-icon {
fill: var(--road-warning-icon-inverse);
}
@media (min-width: 575px) {
.toast-icon {
position: relative;
top: auto;
left: auto;
margin-right: 0.5rem;
}
}
/* TOAST CLOSE
-------------------- */
.toast-close {
position: absolute;
right: 0.5rem;
padding: 0;
color: inherit;
cursor: pointer;
background: none;
border: 0;
border-radius: 4px;
fill: var(--road-info-icon-inverse);
}
.toast-warning .toast-close {
fill: var(--road-warning-icon-inverse);
}
.toast-close:focus {
outline: none;
}
.toast-close-icon {
display: block;
width: 24px;
}
/* TOAST LABEL
-------------------- */
.toast-label{
width: 240px;
margin: 0;
}
/* TOAST PROGRESS
-------------------- */
.toast .progress{
position: absolute;
bottom: 0;
left: 0;
flex-basis: 100%;
width: 100%;
margin-top: 0.5rem;
}
.toast .progress .progress-bar{
animation: load 5s normal forwards;
}
/* ANIMATION
-------------------- */
@keyframes load {
0% {
width: 0;
}
100% {
width: 100%;
}
}