discourse/app/assets/stylesheets/common/float-kit/d-default-toast.scss
Joffrey JAFFEUX 552cf56afe
DEV: toasts improvements (#24046)
- more subtle animation when showing a toast
- resumes auto close when removing the mouse from the toast
- correctly follows reduced motion
- uses output with role status as element: https://web.dev/articles/building/a-toast-component
- shows toasts inside a section element
- prevents toast to all have the same width
- fixes a bug on mobile where we would limit the width and the close button wouldn't show correctly aligned

I would prefer to have tests for this, but the conjunction of css/animations and our helper changing `discourseLater` to 0 in tests is making it quite challenging for a rather low value. We have system specs using  toasts ensuring they show when they should.
2023-10-23 15:23:10 +02:00

101 lines
1.6 KiB
SCSS

.fk-d-default-toast {
display: flex;
flex: 1 1 auto;
padding: 0.5rem;
&__close-container {
width: calc(40px - 0.5rem);
height: 30px;
}
&__icon-container {
flex: 1 0 auto;
display: flex;
width: calc(40px - 0.5rem);
height: 30px;
align-items: center;
justify-content: center;
&.alert-success {
background-color: var(--success-low);
color: var(--primary);
}
&.alert-error {
background-color: var(--danger-low);
color: var(--primary);
}
&.alert-warning {
background-color: var(--highlight-bg);
color: var(--primary);
}
&.alert-info {
background-color: var(--tertiary-low);
color: var(--primary);
&.clickable {
color: var(--tertiary);
z-index: z("base");
}
}
.-success & {
.d-icon {
color: var(--success);
}
}
.-error & {
.d-icon {
color: var(--danger);
}
}
.-warning & {
.d-icon {
color: var(--highlight);
}
}
.-info & {
.d-icon {
color: var(--tertiary);
}
}
}
&__main-container {
box-sizing: border-box;
display: flex;
flex-direction: column;
width: 100%;
min-height: 30px;
}
&__texts {
min-height: 30px;
display: flex;
justify-content: center;
flex-direction: column;
}
&__actions {
display: flex;
flex-wrap: wrap;
padding-top: 1rem;
margin-bottom: -0.5rem;
.btn {
margin-right: 0.5rem;
margin-bottom: 0.5rem;
}
}
&__title {
display: flex;
font-weight: 700;
}
&__message {
display: flex;
}
}