tntd
Version:
tntd是基于 TNT Design 设计体系的 React UI 组件库,主要用于研发企业级中后台产品。
212 lines (187 loc) • 4.21 kB
text/less
@dialog-prefix-cls: ~'@{ant-prefix}-modal';
@table-prefix-cls: ~'@{ant-prefix}-table';
@modal-footer-padding-vertical: 10px;
@modal-footer-padding-horizontal: 16px;
.@{dialog-prefix-cls} {
.reset-component;
position: relative;
top: 100px;
width: auto;
margin: 0 auto;
padding-bottom: 24px;
pointer-events: none;
&-wrap {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: @zindex-modal;
overflow: auto;
outline: 0;
-webkit-overflow-scrolling: touch;
}
&-title {
margin: 0;
color: @modal-heading-color;
font-weight: 500;
font-size: @font-size-lg;
line-height: 22px;
word-wrap: break-word;
}
&-content {
position: relative;
background-color: @component-background;
background-clip: padding-box;
border: 0;
border-radius: @border-radius-base;
box-shadow: @shadow-2;
pointer-events: auto;
}
&-close {
position: absolute;
top: 0;
right: 0;
z-index: @zindex-popup-close;
padding: 0;
color: @text-color-secondary;
font-weight: 700;
line-height: 1;
text-decoration: none;
background: transparent;
border: 0;
outline: 0;
cursor: pointer;
transition: color 0.3s;
&-x {
display: block;
width: 56px;
height: 56px;
font-size: 20px;
font-style: normal;
line-height: 56px;
text-align: center;
text-transform: none;
text-rendering: auto;
}
.tntd-anticon {
font-size: 20px;
}
&:focus,
&:hover {
color: @icon-color-hover;
text-decoration: none;
}
}
&-header {
padding: 16px 24px;
color: @text-color;
background: @modal-header-bg;
border: 0;
border-radius: @border-radius-base @border-radius-base 0 0;
}
&-body {
padding: @padding-lg;
font-size: @font-size-base;
line-height: @line-height-base;
word-wrap: break-word;
}
&-footer {
padding: @padding-xs @padding-lg @padding-lg;
text-align: right;
background: @modal-footer-bg;
border: 0;
border-radius: 0 0 @border-radius-base @border-radius-base;
button + button {
margin-bottom: 0;
margin-left: @margin-base;
}
// 如果button没有type类型默认设置为type: tertiary的样式(兼容老业务用了footer的场景)
button:not([class*="ant-btn-"]):not([class*="tnt-btn-"]) {
color: #17233d;
background-color: #f8f9fb;
border-color: #f8f9fb;
text-shadow: none;
box-shadow: none;
&:hover{
color: var(--blue-6);
background-color: #f0f5ff;
border-color: #f0f5ff;
}
}
}
&.zoom-enter,
&.zoom-appear {
transform: none; // reset scale avoid mousePosition bug
opacity: 0;
animation-duration: @animation-duration-slow;
user-select: none; // https://github.com/ant-design/ant-design/issues/11777
}
&-mask {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: @zindex-modal-mask;
height: 100%;
background-color: @modal-mask-bg;
filter: ~'alpha(opacity=50)';
&-hidden {
display: none;
}
}
&-open {
overflow: hidden;
}
}
.@{dialog-prefix-cls}-centered {
text-align: center;
&::before {
display: inline-block;
width: 0;
height: 100%;
vertical-align: middle;
content: '';
}
.@{dialog-prefix-cls} {
top: 0;
display: inline-block;
text-align: left;
vertical-align: middle;
}
}
@media (max-width: @screen-sm-max) {
.@{dialog-prefix-cls} {
max-width: calc(100vw - 16px);
margin: 8px auto;
}
.@{dialog-prefix-cls}-centered {
.@{dialog-prefix-cls} {
flex: 1;
}
}
}
.modal-inner-scroll{
max-height: calc(100vh - 200px);
padding-bottom: 0;
overflow: hidden;
.ant-modal-body{
max-height: calc(100vh - 200px - 56px - 64px);
display: flex;
flex-flow: column;
overflow: auto;
padding: 0;
&>*:first-of-type{
margin: auto;
}
}
&.modal-inner-scroll-footer{
.ant-modal-body{
max-height: calc(100vh - 200px - 56px);
}
}
.ant-modal-footer{
padding: 16px 24px 16px;
}
}