rsuite
Version:
A suite of react components
151 lines (123 loc) • 3.22 kB
text/less
@import '../../styles/common';
@import 'mixin';
//
// Messages
// --------------------------------------------------
// Base styles
// -------------------------
.@{ns}message {
border-radius: @message-border-radius;
font-size: @font-size-base;
line-height: @line-height-base;
position: relative;
.@{ns}message-container {
padding: 20px;
}
// Multiple messages should have spacing
// Hiding Message haven't spacing.
&:not(.@{ns}message-hiding) + .@{ns}message {
margin-top: 10px;
//The last message hiding haven't clearance.
&.@{ns}message-hiding:last-child {
transition: margin-top 0.1s linear 0.3s;
margin-top: 0;
}
}
// Only has icon
&.@{ns}message-has-icon .@{ns}message-container {
padding-left: @message-padding + @message-icon-size + @message-icon-margin-right;
}
// Only has title
&.@{ns}message-has-title {
h5 {
margin-top: 0;
margin-bottom: 0;
.ellipsis;
// When title and description all exist , additional a margin
& + .@{ns}message-description {
margin-top: 8px;
}
}
}
// Has icon && title
&.@{ns}message-has-icon.@{ns}message-has-title .@{ns}message-container {
padding-left: @message-padding + @message-icon-large-size + @message-icon-margin-right;
// Bigger icon
.@{ns}message-icon-wrapper .@{ns}icon {
font-size: @message-icon-large-size;
line-height: 1;
}
}
// Header
.@{ns}message-header {
color: @message-header-color;
line-height: unit(round(@message-icon-large-size / @message-title-size, 16));
}
// Description
.@{ns}message-description {
color: @B800;
}
// Icon wrapper
.@{ns}message-icon-wrapper {
position: absolute;
top: @message-padding;
left: @message-padding;
line-height: 1;
}
// Icon
.@{ns}message-icon-wrapper .@{ns}icon {
font-size: @message-icon-size;
line-height: @line-height-small;
}
// Close button
.@{ns}message-btn-close {
background: transparent;
position: absolute;
top: 0;
right: 0;
padding: @message-close-btn-padding;
font-size: @message-close-btn-size;
line-height: 1;
border: none;
outline: none ;
.icon-font;
&::before {
content: @default-close-btn-content;
}
// hidden aria-hidden dom
[aria-hidden] {
display: none;
}
}
// Animations
// ----------------------------
&.@{ns}message-show {
animation: messageMoveIn 0.3s ease-in forwards;
}
&.@{ns}message-hiding {
animation: messageMoveOut 0.3s ease-in forwards;
}
}
// Full the containers
.@{ns}message-full {
position: absolute;
top: 0;
left: 0;
width: 100%;
border-radius: 0;
}
// Alternate styles
// -------------------------
// Generate contextual modifier classes for colorizing the message.
.@{ns}message-success {
.message-variant(@message-success-bg; @message-success-icon-color);
}
.@{ns}message-info {
.message-variant(@message-info-bg; @message-info-icon-color);
}
.@{ns}message-warning {
.message-variant(@message-warning-bg; @message-warning-icon-color);
}
.@{ns}message-error {
.message-variant(@message-error-bg; @message-error-icon-color);
}