choerodon-ui
Version:
An enterprise-class UI design language and React-based implementation
390 lines (327 loc) • 6.83 kB
text/less
@import '../../../../lib/style/themes/default';
@import '../../../../lib/style/mixins/index';
@import 'mixin';
@modal-prefix-cls: ~'@{c7n-pro-prefix}-modal';
@modal-prefix-cursor-cls: ~'@{modal-prefix-cls}-resizer-cursor-line';
.line-vertical() {
top: 0;
width: 0.1rem;
height: 100%;
border-right: 0.04rem solid rgba(255, 255, 255, 0);
border-left: 0.04rem solid rgba(255, 255, 255, 0);
cursor: col-resize;
}
.line-horizontal() {
left: 0;
width: 100%;
height: 0.1rem;
border-top: 0.04rem solid rgba(255, 255, 255, 0);
border-bottom: 0.04rem solid rgba(255, 255, 255, 0);
cursor: row-resize;
}
.@{modal-prefix-cls} {
position: fixed;
top: 1rem;
width: 5.2rem;
max-width: 100%;
max-height: 100%;
margin: 0 auto;
// min-height: 2.4rem;
&:active {
transition: none;
}
&-center {
right: 0;
left: 0;
}
&-content {
position: relative;
height: 100%;
min-height: inherit;
background-color: @component-background;
background-clip: padding-box;
border: 0;
border-radius: @border-radius-base;
box-shadow: @modal-content-shadow;
}
&-title {
margin: 0;
color: @modal-title-color;
font-weight: @modal-title-font-weight;
font-size: @modal-title-font-size-base;
line-height: @modal-title-line-height;
}
&-header {
position: relative;
padding: @modal-header-padding;
color: @text-color;
background: @component-background;
border-radius: @border-radius-base @border-radius-base 0 0;
}
&-body {
max-height: ~'calc(100vh - 1.2rem)';
padding: @modal-body-padding;
overflow: auto;
font-size: @font-size-base;
line-height: @line-height-base;
}
&-footer {
padding: @modal-footer-padding;
text-align: right;
border-radius: 0 0 @border-radius-base @border-radius-base;
button+button {
margin-bottom: 0;
margin-left: 0.08rem;
}
&-without-border {
padding-top: 0;
border-top: none;
}
}
&-container {
position: absolute;
top: 0;
left: 0;
z-index: @zindex-modal-container;
}
&-container-embedded & {
position: absolute;
}
.modal-active;
.modal-border;
&-title-none {
border-bottom: none ;
}
&-header-buttons {
position: absolute;
top: 0;
right: 0;
bottom: 0;
}
&-header-button {
width: 0.55rem;
height: 100%;
padding: 0;
color: @text-color-secondary;
font-weight: 700;
font-size: @font-size-lg;
line-height: 1;
text-decoration: none;
background: transparent;
border: 0;
outline: 0;
cursor: pointer;
transition: color @animation-duration-slow;
&:focus,
&:hover {
color: #444;
}
}
&-movable {
cursor: move;
user-select: none;
}
&-fullscreen {
top: 0;
right: 0;
bottom: 0;
left: 0;
width: auto;
.@{modal-prefix-cls}-content {
display: flex;
flex-direction: column;
flex-wrap: nowrap;
border-radius: @border-radius-base;
}
.@{modal-prefix-cls}-body {
flex-grow: 1;
max-height: none;
}
.@{modal-prefix-cls}-footer {
flex-shrink: 0;
}
}
.drawer(@modal-prefix-cls);
&-auto-center {
top: 0;
display: flex;
align-items: center;
justify-content: center;
height: 100%;
}
&-auto-center &-content {
width: 100%;
min-width: 5.2rem;
height: min-content;
}
&-resizer-mask {
position: absolute;
top: 0;
left: 0;
z-index: 20;
width: 100%;
height: 100%;
}
&-resizer-content {
display: flex;
flex-direction: column;
.@{modal-prefix-cls}-body {
flex: 1;
}
}
&-resizer-cursor {
position: absolute;
z-index: 21;
user-select: none;
&-modal {
right: 0;
bottom: 0;
width: 0.14rem;
height: 0.1rem;
transform: rotate(-45deg);
cursor: se-resize;
}
&-icon {
position: relative;
display: block;
width: 0.14rem;
height: 0.05rem;
&::before,
&::after {
position: absolute;
height: 0.01rem;
background: @text-color-secondary;
content: '';
}
&::before {
top: 0;
width: 100%;
}
&::after {
bottom: 0;
left: 25%;
width: 50%;
}
&:focus,
&:hover {
&::before,
&::after {
color: #444;
}
}
}
&-drawer-right,
&-drawer-left,
&-drawer-up,
&-drawer-down {
position: absolute;
box-sizing: border-box;
&::before,
&::after {
position: absolute;
display: block;
content: "";
}
&::before {
top: calc(50% - 0.13rem);
left: -0.01rem;
width: 0.03rem;
height: 0.26rem;
margin-top: 0.07rem;
margin-bottom: 0.07rem;
background: @component-background;
}
&::after {
top: calc(50% - 0.06rem);
left: 0;
width: 0.02rem;
height: 0.12rem;
margin-top: 0.07rem;
margin-bottom: 0.07rem;
border-right: 0.01rem solid #7a869a;
border-left: 0.01rem solid #7a869a;
}
&:hover {
.@{modal-prefix-cursor-cls} {
background-color: @link-hover-color;
}
}
&:active {
.@{modal-prefix-cursor-cls} {
background-color: @link-active-color;
}
}
}
&-drawer-right,
&-drawer-left {
.line-vertical();
}
&-drawer-right {
left: -0.05rem;
}
&-drawer-left {
right: -0.05rem;
}
&-drawer-up,
&-drawer-down {
.line-horizontal();
}
&-drawer-up {
bottom: -0.05rem;
}
&-drawer-down {
top: -0.05rem;
}
.@{modal-prefix-cursor-cls} {
width: 100%;
height: 100%;
transition: all @animation-duration-fast;
}
}
}
.@{c7n-pro-prefix}-confirm {
&-icon {
padding-right: 0.16rem;
vertical-align: top;
.@{iconfont-css-prefix} {
font-size: 0.24rem;
line-height: 1.5;
}
}
&-info {
color: @info-color;
}
&-confirm,
&-warning {
color: @warning-color;
}
&-success {
color: @success-color;
}
&-error {
color: @error-color;
}
&-title {
overflow: auto;
color: @modal-confirm-title-color;
font-weight: @modal-confirm-title-font-weight;
font-size: @modal-confirm-title-font-size-base;
line-height: @modal-confirm-title-line-height;
}
&-content {
color: @text-color;
font-size: @font-size-base;
}
&-title+&-content {
margin-top: 0.08rem;
}
}
.@{c7n-pro-prefix}-mask {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 2;
background-color: @modal-mask-bg;
}