acud
Version:
acg react 组件库
214 lines (183 loc) • 4.51 kB
text/less
@import '../../style/themes/index';
@import '../../style/mixins/index';
@import './mixin';
@modal-prefix-cls: ~'@{acud-prefix}-modal';
@dialogbox-prefix: ~'@{modal-prefix-cls}-dialogbox';
.@{modal-prefix-cls} {
.reset-component();
// 背景蒙层
.modal-mask();
// 弹框
position: relative;
// 兼容旧版本样式,重置left、top和translate
left: auto;
top: auto;
transform: translate(0);
width: auto;
max-width: calc(100vw - 32px);
&-sm {
.modal-size-config(sm);
}
&-sm > &-content {
.modal-size-config-content(sm);
}
&-md {
.modal-size-config(md);
}
&-md > &-content {
.modal-size-config-content(md);
}
&-lg {
.modal-size-config(lg);
}
&-lg > &-content {
.modal-size-config-content(lg);
}
&-xl {
.modal-size-config(xl);
}
&-xl > &-content {
.modal-size-config-content(xl);
}
// 弹框内容
&-content {
position: relative;
background-color: @modal-content-bg-color;
background-clip: padding-box;
border: 0;
border-radius: @border-radius-base;
box-shadow: @shadow-2;
pointer-events: auto;
border-radius: @R4;
overflow: hidden;
height: 100%;
display: flex;
flex-direction: column;
}
// 内容头部
&-header {
padding: @modal-heading-padding;
color: @modal-heading-color;
font-weight: @modal-heading-font-weight;
flex: none;
}
// 头部关闭
&-close {
position: absolute;
top: 0;
right: 6 * @P;
color: @modal-close-color;
line-height: 1;
text-decoration: none;
background: transparent;
border: 0;
outline: 0;
cursor: pointer;
transition: color .3s;
&-x {
display: block;
margin-top: 6 * @P + 0.5*(@modal-heading-height - @modal-close-font-size);
font-size: @modal-close-font-size;
text-align: center;
text-transform: none;
text-rendering: auto;
font-weight: 700;
}
&:focus,
&:hover {
color: @modal-close-hover-color;
text-decoration: none;
font-weight: 900;
}
}
// 头部标题
&-title {
font-size: @modal-heading-font-size;
line-height: @modal-heading-height;
padding-right: @P * 3;
word-wrap: break-word;
}
// 内容body部分
&-body {
margin: @modal-body-margin;
font-size: @modal-body-font-size;
font-weight: @modal-body-font-weight;
line-height: @modal-body-line-height;
word-wrap: break-word;
color: @modal-body-font-color;
flex: 1;
overflow-y: auto;
}
// 内容footer部分
&-footer {
padding: @modal-footer-padding;
background: @modal-footer-bg-color;
text-align: right;
flex: none;
// TODO: 暂时解决 confirmLoading 时按钮对齐问题
display: flex;
align-items: center;
justify-content: flex-end;
.@{acud-prefix}-btn {
margin: 0;
}
.@{acud-prefix}-btn + .@{acud-prefix}-btn {
margin-left: @modal-footer-btn-space;
}
}
}
.@{dialogbox-prefix} {
width: @P * 100;
height: auto;
min-height: @P * 46;
&-icon {
height: 100%;
margin-right: @P * 3;
float: left;
// TODO: 没找到更好的居中办法
display: flex;
align-items: center;
padding-top: 2px;
}
&-title {
overflow: hidden;
padding-right: @P * 3;
}
&-content {
width: 100%;
padding-left: @P * 3 + @T6;
}
.@{modal-prefix-cls}-title {
.@{iconfont-css-prefix} {
font-size: @T6;
}
}
& > .@{modal-prefix-cls}-content {
min-height: @P * 46;
}
}
.@{dialogbox-prefix}-warning {
.@{dialogbox-prefix}-icon {
color: @W6;
}
}
.@{dialogbox-prefix}-info {
.@{dialogbox-prefix}-icon {
color: @B6;
}
}
.@{dialogbox-prefix}-success {
.@{dialogbox-prefix}-icon {
color: @S6;
}
}
.@{dialogbox-prefix}-error {
.@{dialogbox-prefix}-icon {
color: @E6;
}
}
.@{dialogbox-prefix}-confirm {
.@{dialogbox-prefix}-icon {
color: @W6;
}
}