color-q/src/components/Notification.module.css
2025-01-03 17:21:09 +08:00

133 lines
3.0 KiB
CSS

@layer components {
.notification_positioner {
position: absolute;
bottom: 20px;
right: 20px;
width: 25vw;
display: flex;
flex-direction: column-reverse;
justify-content: flex-start;
align-items: stretch;
gap: 10px;
z-index: 600;
}
.message_box_positioner {
position: absolute;
}
.toast_positioner {
position: absolute;
left: 50%;
transform: translateX(-50%);
bottom: 20vh;
z-index: 700;
}
.notification {
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
gap: 10px;
padding: 10px 15px;
border-radius: 2px;
.notification_icon {
flex-shrink: 0;
font-size: 24px;
}
.notificaiton_content {
flex-grow: 1;
.notification_title {
font-size: 1.4em;
font-weight: bold;
}
}
.notification_close {
flex-shrink: 0;
font-size: 16px;
align-self: flex-start;
cursor: pointer;
}
}
.toast {
position: absolute;
bottom: 0;
left: 50%;
transform: translateX(-50%);
display: flex;
flex-direction: row;
justify-content: flex-start;
align-items: center;
gap: 10px;
padding: 4px 8px;
border-radius: 2px;
width: 35vw;
.toast_icon {
flex-shrink: 0;
font-size: 18px;
}
.toast_content {
flex-grow: 1;
display: inline-block;
overflow-wrap: break-word;
}
.toast_close {
flex-shrink: 0;
font-size: 14px;
cursor: pointer;
}
}
.kind_info {
color: var(--color-typo-dark);
background-color: var(--color-info);
box-shadow: 2px 2px 4px oklch(from var(--color-info) l c h / 40%);
}
.kind_promption {
color: var(--color-typo-dark);
background-color: var(--color-blue);
box-shadow: 2px 2px 4px oklch(from var(--color-blue) l c h / 40%);
}
.kind_success {
color: var(--color-typo-dark);
background-color: var(--color-success);
box-shadow: 2px 2px 4px oklch(from var(--color-success) l c h / 40%);
}
.kind_warning {
color: var(--color-typo-dark);
background-color: var(--color-warn);
box-shadow: 2px 2px 4px oklch(from var(--color-warn) l c h / 40%);
}
.kind_error {
color: var(--color-typo-dark);
background-color: var(--color-danger);
box-shadow: 2px 2px 4px oklch(from var(--color-danger) l c h / 40%);
}
.kind_custom {
color: var(--color-typo-dark);
background-color: var(--color-wumeizi);
box-shadow: 2px 2px 4px oklch(from var(--color-wumeizi) l c h / 40%);
}
.slide_in_enter {
transform: translateX(100%);
opacity: 0;
}
.slide_in_enter_active {
transition: all 500ms ease-in-out;
transform: translateX(0);
opacity: 1;
}
.slide_out_exit_active {
transition: all 500ms ease-in-out;
opacity: 0;
}
.fade_in_enter {
opacity: 0;
}
.fade_in_enter_active {
transition: all 500ms ease-in-out;
opacity: 1;
}
.fade_out_exit_active {
transition: all 500ms ease-in-out;
opacity: 0;
}
}