mailwolt/resources/js/plugins/Toastra/src/message.css

778 lines
20 KiB
CSS
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

* {
--toast-white: 255,255,255;
--toast-black: 0,0,0;
--toast-green: 102, 187, 106;
--toast-red: 239, 83, 80;
--toast-nutral: 189, 189, 189;
--toast-orange: 255, 165, 0;
--toast-yellow: 212 194 129;
--toast-gray: 238, 238, 238;
--toast-dark-gray: 140, 140, 140;
--white: 255, 255, 255;
--box-shaddow-inset: inset 10px -10px 15px -15px;
--box-shaddow-outset: 0px 10px 10px -4px rgb(0 0 0 / 0.4);
--toast-lightmode: #ffffff;
--toast-darkmode: #1b1b1e;
--toast-progressbar: #8f8f8f;
--glass-bg: rgba(17, 24, 39, 0.55); /* #111827 @ ~55% */
--glass-bg-light: rgba(31, 41, 55, 0.40); /* #1F2937 */
--glass-border: rgba(255, 255, 255, 0.08);
--glass-ring: rgba(34, 197, 94, 0.35); /* soft green glow */
}
.notification {
position: fixed;
z-index: 999999;
max-width: 350px;
width: 100%;
}
.top-right {
top: 20px;
right: 20px;
}
.top-center {
top: 20px;
left: 50%;
transform: translateX(-50%);
}
.bottom-left {
bottom: 20px;
left: 20px;
}
.bottom-right {
bottom: 20px;
right: 20px;
}
.bottom-center {
bottom: 20px;
left: 50%;
transform: translateX(-50%);
}
.top-left {
top: 20px;
left: 20px;
}
.notification-title {
padding-right: 30px;
}
.notification-icon {
min-width: 1.7rem;
background-repeat: no-repeat;
background-position: center;
padding: 2px;
border-radius: 5px;
}
.notification-dismiss-btn {
position: absolute;
top: 12px;
right: 12px;
backdrop-filter: blur(10px);
border-radius: 5px;
box-shadow: 0 0 6px -2px black;
transition: background 200ms;
}
.notification-dismiss-btn:hover {
background: rgba(255, 255, 255, 0.44);
}
.notification-dismiss-btn svg {
width: 1.5rem;
}
/*.default-mode {*/
.notification-toast-default {
background: var(--toast-white);
color: rgba(var(--toast-black));
/*box-shadow: var(--box-shaddow-inset) rgba(var(--black-300)), var(--box-shaddow-outset);*/
}
.notification-toast-update {
color: var(--toast-white);
svg :nth-child(1) {
stroke: rgba(var(--toast-white));
}
}
.notification-toast-success {
color: rgba(var(--toast-black));
svg path {
stroke: rgba(var(--toast-green));
}
.notification-icon {
background: rgba(var(--toast-green),.1);
box-shadow: var(--box-shaddow-inset) rgba(var(--toast-green),.5);
}
.notification-title {
color: rgba(var(--toast-green));
}
.notification-dismiss-btn {
background: rgba(var(--toast-green),.1);
}
}
.notification-toast-success:before {
background: rgba(var(--toast-green));
}
.notification-toast-warning {
color: rgba(var(--toast-black));
svg path {
stroke: rgba(var(--toast-orange));
}
.notification-icon {
background: rgba(var(--toast-orange),.1);
box-shadow: var(--box-shaddow-inset) rgba(var(--toast-orange),.5);
}
.notification-title {
color: rgba(var(--toast-orange));
}
.notification-dismiss-btn {
background: rgba(var(--toast-orange),.1);
}
}
.notification-toast-warning:before {
background: rgba(var(--toast-orange));
}
.notification-toast-info {
color: rgba(var(--toast-black));
svg path {
stroke: rgba(var(--toast-gray));
}
.notification-icon {
background: rgba(var(--toast-dark-gray),.1);
box-shadow: var(--box-shaddow-inset) rgba(var(--toast-dark-gray),.5);
}
.notification-title {
color: rgba(var(--toast-gray));
}
.notification-dismiss-btn {
background: rgba(var(--toast-gray),.1);
}
}
.notification-toast-info:before {
background: rgba(var(--toast-dark-gray));
}
.notification-toast-error {
color: rgba(var(--toast-black));
svg path {
stroke: rgba(var(--toast-red));
}
.notification-icon {
background: rgba(var(--toast-red),.1);
box-shadow: var(--box-shaddow-inset) rgba(var(--toast-red),.5);
}
.notification-title {
color: rgba(var(--toast-red));
}
.notification-dismiss-btn {
background: rgba(var(--toast-red),.1);
}
}
.notification-toast-error:before {
background: rgba(var(--toast-red));
}
/*}*/
.light-mode {
.notification-toast-default,
.notification-toast-success,
.notification-toast-update,
.notification-toast-warning,
.notification-toast-info,
.notification-toast-error {
background: var(--toast-lightmode);
color: rgba(var(--toast-black));
}
}
.dark-mode {
.notification-toast-default,
.notification-toast-success,
.notification-toast-update,
.notification-toast-warning,
.notification-toast-info,
.notification-toast-error {
background: var(--toast-darkmode);
color: var(--toast-white);
}
}
.notification-toast-default .notification-progressbar {
background: var(--toast-progressbar);
}
.notification-toast-success .notification-progressbar {
background: rgba(var(--toast-green));
}
.notification-toast-info .notification-progressbar {
background: var(--toast-progressbar);
}
.notification-toast-warning .notification-progressbar {
background: rgba(var(--toast-orange));
}
.notification-toast-error .notification-progressbar {
background: rgba(var(--toast-red));
}
.notification-toast-update .notification-progressbar {
background: var(--toast-progressbar);
}
.top-right .notification-container,
.bottom-right .notification-container {
margin-left: auto;
}
.top-left .notification-container,
.bottom-left .notification-container {
margin-right: auto;
}
.top-center .notification-container,
.bottom-center .notification-container {
margin-right: auto;
margin-left: auto;
}
.notification-progressbar {
position: absolute;
bottom: 0;
right: 0;
height: 3px;
width: 0;
transition: width attr(data-duration ms) linear;
border-radius: 2px;
}
.notification-container {
position: relative;
margin: 5px;
width: fit-content;
border-radius: 10px;
opacity: 0.95;
overflow: hidden;
transition: opacity 500ms ease-in-out,
transform 500ms;
}
.notification-container:before {
content: "";
position: absolute;
width: 30px;
height: 30px;
filter: blur(15px);
top: 50%;
transform: translateY(-50%);
left: -20px;
border-radius: 100%;
}
.notification-message {
font-size: 13px;
line-height: 1;
}
.notification-active {
right: 5px;
}
.notification-block {
position: relative;
display: flex;
align-items: center;
padding: 15px 15px;
gap: 10px;
}
.notification-block b {
line-height: 2;
}
.notification-animation {
padding: 0.125rem;
animation: update 1s linear infinite;
}
@keyframes update {
from {
transform: rotate(0deg);
}
to {
transform: rotate(360deg);
}
}
.slide-in.slide-down {
animation: slideInDown 600ms;
}
.slide-out.slide-down {
animation: slideOutDown 600ms;
}
@keyframes slideInDown {
from {
transform: translateY(-100vh);
}
to {
transform: unset;
}
}
@keyframes slideOutDown {
from {
transform: unset;
}
to {
transform: translateY(-100vh);
}
}
.slide-in.slide-up {
animation: slideInUp 600ms;
}
.slide-out.slide-up {
animation: slideOutUp 600ms;
}
@keyframes slideInUp {
from {
transform: translateY(100vh);
}
to {
transform: unset;
}
}
@keyframes slideOutUp {
from {
transform: unset;
}
to {
transform: translateY(100vh);
}
}
.slide-in.slide-right {
animation: slideInRight 600ms;
}
.slide-out.slide-right {
animation: slideOutRight 600ms;
}
@keyframes slideInRight {
from {
transform: translateX(100vh);
}
to {
transform: unset;
}
}
@keyframes slideOutRight {
from {
transform: unset;
}
to {
transform: translateX(100vh);
}
}
.slide-in.slide-left {
animation: slideInLeft 600ms;
}
.slide-out.slide-left {
animation: slideOutLeft 600ms;
}
@keyframes slideInLeft {
from {
transform: translateX(-100vh);
}
to {
transform: unset;
}
}
@keyframes slideOutLeft {
from {
transform: unset;
}
to {
transform: translateX(-100vh);
}
}
/*.notification.glass-mode .notification-container {*/
/* backdrop-filter: blur(10px);*/
/* background: rgba(31,41,55,.45);*/
/* border: 1px solid rgba(255,255,255,.08);*/
/* border-radius: 14px;*/
/* box-shadow: 0 8px 30px rgba(0,0,0,.25);*/
/*}*/
/*.notification-title { color: #e5e7eb; } !* text-gray-200 *!*/
/*.notification-text { color: #cbd5e1; } !* text-gray-300 *!*/
/*!* Root container gets .glass-mode in addition to .notification *!*/
/*.notification.glass-mode {*/
/* !* Positions bleiben wie gehabt *!*/
/*}*/
/*!* Ein einzelner Toast *!*/
/*.notification.glass-mode .notification-container {*/
/* background: var(--glass-bg);*/
/* backdrop-filter: blur(10px);*/
/* -webkit-backdrop-filter: blur(10px);*/
/* border: 1px solid var(--glass-border);*/
/* border-radius: 14px;*/
/* box-shadow: 0 8px 30px rgba(0,0,0,.25);*/
/* color: rgba(var(--toast-white), .95);*/
/*}*/
/*!* Innerer Block *!*/
/*.notification.glass-mode .notification-block {*/
/* background: linear-gradient(*/
/* 180deg,*/
/* rgba(255,255,255,0.02) 0%,*/
/* rgba(0,0,0,0.05) 100%*/
/* );*/
/* border-radius: 12px;*/
/*}*/
/*!* Titel/Copy *!*/
/*.notification.glass-mode .notification-title {*/
/* color: rgba(229,231,235,.95); !* gray-200 *!*/
/* font-weight: 600;*/
/*}*/
/*.notification.glass-mode .notification-message {*/
/* color: rgba(203,213,225,.95); !* gray-300 *!*/
/*}*/
/*!* Dismiss *!*/
/*.notification.glass-mode .notification-dismiss-btn {*/
/* background: rgba(255,255,255,0.06);*/
/* border: 1px solid var(--glass-border);*/
/* box-shadow: 0 4px 16px rgba(0,0,0,.2);*/
/*}*/
/*.notification.glass-mode .notification-dismiss-btn:hover {*/
/* background: rgba(255,255,255,0.12);*/
/*}*/
/*!* Icon-Kapsel *!*/
/*.notification.glass-mode .notification-icon {*/
/* background: var(--glass-bg-light);*/
/* border: 1px solid var(--glass-border);*/
/* box-shadow: inset 0 1px 0 rgba(255,255,255,.04);*/
/*}*/
/*!* Progressbar (fein, halbtransparent) *!*/
/*.notification.glass-mode .notification-progressbar {*/
/* height: 2px;*/
/* border-radius: 1px;*/
/* opacity: .9;*/
/*}*/
/*!* Variants dezente Akzentfarbe + linkes Accent-Bar *!*/
/*.notification.glass-mode .notification-container { position: relative; }*/
/*.notification.glass-mode .notification-container::before {*/
/* content: "";*/
/* position: absolute;*/
/* inset: 0 0 0 auto; !* deaktiviert — wir nutzen unten per Variant *!*/
/*}*/
/*!* SUCCESS *!*/
/*.notification.glass-mode .notification-toast-success {*/
/* --accent: rgba(var(--toast-green), 1);*/
/*}*/
/*.notification.glass-mode .notification-toast-success .notification-icon {*/
/* background: rgba(var(--toast-green), .12);*/
/* border-color: rgba(var(--toast-green), .25);*/
/*}*/
/*.notification.glass-mode .notification-toast-success .notification-title {*/
/* color: rgba(var(--toast-green), .95);*/
/*}*/
/*.notification.glass-mode .notification-toast-success .notification-progressbar {*/
/* background: var(--accent);*/
/*}*/
/*.notification.glass-mode .notification-toast-success::before {*/
/* content: "";*/
/* position: absolute;*/
/* left: 0; top: 0; bottom: 0; width: 3px;*/
/* background: linear-gradient(180deg, var(--accent), rgba(var(--toast-green), .6));*/
/* border-radius: 3px 0 0 3px;*/
/*}*/
/*!* INFO / UPDATE (neutral) *!*/
/*.notification.glass-mode .notification-toast-info,*/
/*.notification.glass-mode .notification-toast-update {*/
/* --accent: rgba(var(--toast-dark-gray), 1);*/
/*}*/
/*.notification.glass-mode .notification-toast-info .notification-icon,*/
/*.notification.glass-mode .notification-toast-update .notification-icon {*/
/* background: rgba(var(--toast-dark-gray), .12);*/
/* border-color: rgba(var(--toast-dark-gray), .25);*/
/*}*/
/*.notification.glass-mode .notification-toast-info .notification-title,*/
/*.notification.glass-mode .notification-toast-update .notification-title {*/
/* color: rgba(var(--toast-gray), .95);*/
/*}*/
/*.notification.glass-mode .notification-toast-info .notification-progressbar,*/
/*.notification.glass-mode .notification-toast-update .notification-progressbar {*/
/* background: var(--accent);*/
/*}*/
/*.notification.glass-mode .notification-toast-info::before,*/
/*.notification.glass-mode .notification-toast-update::before {*/
/* content: "";*/
/* position: absolute;*/
/* left: 0; top: 0; bottom: 0; width: 3px;*/
/* background: linear-gradient(180deg, var(--accent), rgba(var(--toast-dark-gray), .6));*/
/* border-radius: 3px 0 0 3px;*/
/*}*/
/*!* WARNING *!*/
/*.notification.glass-mode .notification-toast-warning {*/
/* --accent: rgba(var(--toast-orange), 1);*/
/*}*/
/*.notification.glass-mode .notification-toast-warning .notification-icon {*/
/* background: rgba(var(--toast-orange), .12);*/
/* border-color: rgba(var(--toast-orange), .25);*/
/*}*/
/*.notification.glass-mode .notification-toast-warning .notification-title {*/
/* color: rgba(var(--toast-orange), .95);*/
/*}*/
/*.notification.glass-mode .notification-toast-warning .notification-progressbar {*/
/* background: var(--accent);*/
/*}*/
/*.notification.glass-mode .notification-toast-warning::before {*/
/* content: "";*/
/* position: absolute;*/
/* left: 0; top: 0; bottom: 0; width: 3px;*/
/* background: linear-gradient(180deg, var(--accent), rgba(var(--toast-orange), .6));*/
/* border-radius: 3px 0 0 3px;*/
/*}*/
/*!* ERROR *!*/
/*.notification.glass-mode .notification-toast-error {*/
/* --accent: rgba(var(--toast-red), 1);*/
/*}*/
/*.notification.glass-mode .notification-toast-error .notification-icon {*/
/* background: rgba(var(--toast-red), .12);*/
/* border-color: rgba(var(--toast-red), .25);*/
/*}*/
/*.notification.glass-mode .notification-toast-error .notification-title {*/
/* color: rgba(var(--toast-red), .95);*/
/*}*/
/*.notification.glass-mode .notification-toast-error .notification-progressbar {*/
/* background: var(--accent);*/
/*}*/
/*.notification.glass-mode .notification-toast-error::before {*/
/* content: "";*/
/* position: absolute;*/
/* left: 0; top: 0; bottom: 0; width: 3px;*/
/* background: linear-gradient(180deg, var(--accent), rgba(var(--toast-red), .6));*/
/* border-radius: 3px 0 0 3px;*/
/*}*/
/* ===== Toast · Glass v2 (Badge) ===== */
.notification.glass-mode .notification-container {
backdrop-filter: blur(14px);
background: rgba(17, 24, 39, .52); /* dunkleres Glas */
border: 1px solid rgba(255,255,255,.09);
border-radius: 16px;
box-shadow: 0 12px 40px rgba(0,0,0,.28);
}
.notification.glass-mode .notification-block {
padding: 14px 16px 16px 16px;
gap: 12px;
}
/* Icon als soft pill */
.notification.glass-mode .notification-icon {
width: 34px;
height: 34px;
display: grid;
place-items: center;
border-radius: 10px;
background: rgba(255,255,255,.06);
border: 1px solid rgba(255,255,255,.08);
box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
/* Headline-Zeile: Badge + Title */
.notification.glass-mode .notification-title {
display: flex;
align-items: center;
gap: 10px;
padding-right: 36px; /* Platz für Close */
font-weight: 700;
letter-spacing: .2px;
color: #e5e7eb; /* text-gray-200 */
}
/* Badge aus data-badge rendern */
.notification.glass-mode .notification-container[data-badge] .notification-title::before {
content: attr(data-badge);
font-size: 10px;
font-weight: 700;
letter-spacing: .6px;
padding: 4px 8px;
border-radius: 9px;
border: 1px solid rgba(255,255,255,.10);
background: rgba(31,41,55,.55); /* dunkles Glas */
color: #cbd5e1; /* text-gray-300 */
box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
/* Subtext */
.notification.glass-mode .notification-message {
margin-top: 6px;
line-height: 1.35;
color: #cbd5e1; /* text-gray-300 */
}
/* Close-Button dezenter */
.notification.glass-mode .notification-dismiss-btn {
top: 10px; right: 10px;
width: 30px; height: 30px;
display: grid; place-items: center;
background: rgba(255,255,255,.06);
border: 1px solid rgba(255,255,255,.10);
box-shadow: 0 6px 20px rgba(0,0,0,.25);
}
.notification.glass-mode .notification-dismiss-btn:hover {
background: rgba(255,255,255,.12);
}
/* Progressbar dünn & soft */
.notification.glass-mode .notification-progressbar {
height: 2px;
border-radius: 2px;
opacity: .9;
}
/* --- State-Akzente -------------------------------------------------- */
:root {
--toast-accent-cyan: 14,116,144; /* cyan-700 */
--toast-accent-green: 34,197, 94; /* green-500 */
--toast-accent-red: 239, 68, 68; /* red-500 */
--toast-accent-amber:245,158, 11; /* amber-500 */
--toast-accent-gray: 148,163,184; /* slate-400 */
}
/* Update / running */
.notification-toast-update .notification-icon {
background: rgba(var(--toast-accent-cyan), .12);
border-color: rgba(var(--toast-accent-cyan), .28);
}
.notification-toast-update .notification-title { color:#e6fbff; }
.notification-toast-update .notification-progressbar {
background: rgba(var(--toast-accent-cyan), .85);
}
/* Success */
.notification-toast-success .notification-icon {
background: rgba(var(--toast-accent-green), .10);
border-color: rgba(var(--toast-accent-green), .25);
}
.notification-toast-success .notification-title { color: #bbf7d0; } /* green-200 */
.notification-toast-success .notification-progressbar {
background: rgba(var(--toast-accent-green), .9);
}
/* Error */
.notification-toast-error .notification-icon {
background: rgba(var(--toast-accent-red), .10);
border-color: rgba(var(--toast-accent-red), .28);
}
.notification-toast-error .notification-title { color: #fecaca; } /* red-200 */
.notification-toast-error .notification-progressbar {
background: rgba(var(--toast-accent-red), .9);
}
/* Info */
.notification-toast-info .notification-icon {
background: rgba(var(--toast-accent-gray), .10);
border-color: rgba(var(--toast-accent-gray), .25);
}
.notification-toast-info .notification-title { color:#e5e7eb; }
.notification-toast-info .notification-progressbar {
background: rgba(var(--toast-accent-gray), .85);
}
/* Title row with inline badge */
.notification-title {
display: flex;
align-items: center;
gap: .5rem; /* Space between badge and title */
line-height: 1.2;
margin-bottom: .15rem;
}
/* The badge itself (glass-styled) */
.notification-badge {
font-size: 10px;
font-weight: 700;
letter-spacing: .6px;
padding: 4px 8px;
border-radius: 9px;
border: 1px solid rgba(255,255,255,.10);
background: rgba(31,41,55,.55);
color: #cbd5e1; /* gray-300 */
box-shadow: inset 0 1px 0 rgba(255,255,255,.08);
}
/* keep your bold style on the title text itself */
.notification-title-text b {
color: #e5e7eb; /* gray-200 */
font-weight: 800;
letter-spacing: .3px;
}
/* Subtitle (domain) on its own line, slightly larger and brighter */
.notification-subtitle {
margin-top: .25rem;
font-weight: 700;
color: #e5e7eb; /* gray-200 */
}
/* Glass container (you already had this, listing again for completeness) */
.notification.glass-mode .notification-container {
backdrop-filter: blur(10px);
background: rgba(31,41,55,.45);
border: 1px solid rgba(255,255,255,.08);
border-radius: 14px;
box-shadow: 0 8px 30px rgba(0,0,0,.25);
}