@nutui/nutui-react
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
220 lines (218 loc) • 9.3 kB
CSS
:root,
page {
--nut-scale-f: 1;
--nut-scale-font: var(--nut-scale-f, 1);
--nut-scale-icon: var(--nut-scale-f, 1);
--nut-icon-height: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) ;
--nut-icon-width: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) ;
--nut-icon-line-height: calc(16px * var(--nut-scale-icon, var(--nut-scale-f, 1))) ;
}
/* #ifdef harmony */
/* #endif */
/* #ifndef harmony */
/* #endif */
.nut-dialog {
display: flex;
flex-direction: column;
align-items: center;
width: var(--nutui-dialog-width, calc(295px * var(--nut-scale-f, 1)));
min-width: var(--nutui-dialog-min-width, calc(240px * var(--nut-scale-f, 1)));
/* #ifndef harmony dynamic*/
max-height: 67%;
/* #endif */
min-height: var(--nutui-dialog-min-height, calc(124px * var(--nut-scale-f, 1)));
padding: var(--nutui-dialog-padding, calc(24px * var(--nut-scale-f, 1)));
box-sizing: border-box;
}
.nut-dialog-outer {
position: fixed;
max-height: 100%;
background-color: var(--nutui-dialog-background, var(--nutui-color-background-overlay, #ffffff));
/* #ifndef dynamic*/
transition: transform 0.2s, -webkit-transform 0.2s;
/* #endif */
-webkit-overflow-scrolling: touch;
top: 50%;
left: 50%;
-webkit-transform: translate(-50%, -50%);
transform: translate(-50%, -50%);
border-radius: var(--nutui-dialog-border-radius, var(--nutui-radius-xl, calc(12px * var(--nut-scale-f, 1))));
animation-duration: 0.3s;
}
.nut-dialog-close {
position: absolute ;
z-index: 1;
cursor: pointer;
width: var(--nutui-dialog-close-width, calc(16px * var(--nut-scale-f, 1)));
height: var(--nutui-dialog-close-height, calc(16px * var(--nut-scale-f, 1)));
display: flex;
justify-content: center;
align-items: center;
color: var(--nutui-dialog-close-color, #ffffff);
}
.nut-dialog-close .nut-icon {
font-size: var(--nutui-dialog-close-width, calc(16px * var(--nut-scale-f, 1)));
width: var(--nutui-dialog-close-width, calc(16px * var(--nut-scale-f, 1)));
height: var(--nutui-dialog-close-height, calc(16px * var(--nut-scale-f, 1)));
}
.nut-dialog-close-top-right {
top: var(--nutui-dialog-close-top, calc(16px * var(--nut-scale-f, 1)));
right: var(--nutui-dialog-close-right, calc(16px * var(--nut-scale-f, 1)));
}
.nut-dialog-close-top-left {
top: var(--nutui-dialog-close-top, calc(16px * var(--nut-scale-f, 1)));
left: var(--nutui-dialog-close-left, calc(16px * var(--nut-scale-f, 1)));
}
.nut-dialog-close-bottom {
bottom: calc(-64px * var(--nut-scale-f, 1));
width: var(--nutui-dialog-bottom-close-icon-size, var(--nutui-font-size-xxl, calc(24px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
height: var(--nutui-dialog-bottom-close-icon-size, var(--nutui-font-size-xxl, calc(24px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
left: 50%;
transform: translateX(-50%);
}
.nut-dialog-close-bottom .nut-icon {
color: var(--nutui-color-text-disabled, #c2c4cc);
background-color: var(--nutui-color-mask-part, rgba(0, 0, 0, 0.4));
border-radius: 50%;
width: var(--nutui-dialog-bottom-close-icon-size, var(--nutui-font-size-xxl, calc(24px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
height: var(--nutui-dialog-bottom-close-icon-size, var(--nutui-font-size-xxl, calc(24px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
}
.nut-dialog-close:active {
opacity: 0.7;
}
.nut-dialog-header {
display: block;
text-align: center;
font-size: var(--nutui-dialog-header-font-size, var(--nutui-font-size-xl, calc(18px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
font-weight: var(--nutui-dialog-header-font-weight, var(--nutui-font-weight-bold, 600));
color: var(--nutui-color-title, #1a1a1a);
margin-bottom: var(--nutui-dialog-title-margin-bottom, calc(8px * var(--nut-scale-f, 1)));
width: 100%;
overflow: hidden;
text-overflow: ellipsis;
white-space: nowrap;
}
.nut-dialog-content {
width: 100%;
margin: var(--nutui-dialog-content-margin, 0 0 calc(20px * var(--nut-scale-f, 1)) 0);
max-height: var(--nutui-dialog-content-max-height, calc(268px * var(--nut-scale-f, 1)));
line-height: var(--nutui-dialog-content-line-height, calc(20px * var(--nut-scale-f, 1)));
font-size: var(--nutui-font-size-base, calc(14px * var(--nut-scale-font, var(--nut-scale-f, 1))));
color: var(--nutui-color-title, #1a1a1a);
word-wrap: break-word;
word-break: break-all;
white-space: pre-wrap;
text-align: var(--nutui-dialog-content-text-align, left);
overflow-y: auto;
}
.nut-dialog-footer {
display: flex;
align-items: center;
width: 100%;
justify-content: space-around;
}
.nut-dialog-footer.vertical {
flex-direction: column;
}
.nut-dialog-footer.vertical .nut-button {
min-width: 100%;
}
.nut-dialog-footer.vertical .nut-dialog-footer-cancel {
margin: 0;
color: var(--nutui-color-text, #505259);
font-size: var(--nutui-font-size-base, calc(14px * var(--nut-scale-font, var(--nut-scale-f, 1))));
display: flex;
justify-content: center;
margin-top: var(--nutui-dialog-vertical-footer-ok-margin-top, calc(16px * var(--nut-scale-f, 1)));
background: transparent;
}
.nut-dialog-footer .nut-button {
min-width: var(--nutui-dialog-footer-button-min-width, calc(117px * var(--nut-scale-f, 1)));
border-radius: var(--nutui-dialog-footer-button-border, calc(6px * var(--nut-scale-f, 1)));
padding: var(--nutui-button-large-padding, 0 calc(12px * var(--nut-scale-f, 1)));
}
.nut-dialog-footer-cancel.nut-dialog-footer-cancel {
margin-right: var(--nutui-dialog-footer-cancel-margin-right, calc(12px * var(--nut-scale-f, 1)));
background: var(--nutui-dialog-footer-cancel-bg, var(--nutui-color-background-sunken, #f7f8fc));
color: var(--nutui-button-default-color, var(--nutui-color-title, #1a1a1a));
border-color: var(--nutui-button-default-border-color, transparent);
}
.nut-dialog-footer-cancel.nut-dialog-footer-cancel .nut-button-children {
color: var(--nutui-button-default-color, var(--nutui-color-title, #1a1a1a));
}
.nut-dialog-footer-ok-container {
position: relative;
display: flex;
align-items: center;
width: 100%;
justify-content: space-around;
}
.nut-dialog-footer-ok-container .nut-dialog-footer-ok-badge {
position: absolute;
right: 0;
top: var(--nutui-dialog-footer-badge-top, calc(-8px * var(--nut-scale-f, 1)));
display: flex;
align-items: center;
height: var(--nutui-dialog-footer-badge-height, calc(14px * var(--nut-scale-f, 1)));
padding: var(--nutui-dialog-footer-badge-padding, 0 calc(3px * var(--nut-scale-f, 1)));
background: var(--nutui-dialog-footer-badge-bg-ok, var(--nutui-color-danger-light, #ffebef));
border-radius: var(--nutui-dialog-footer-badge-border-radius, calc(2px * var(--nut-scale-f, 1)) calc(2px * var(--nut-scale-f, 1)) 0px calc(2px * var(--nut-scale-f, 1)));
font-size: var(--nutui-dialog-footer-badge-fontsize, calc(10px * var(--nut-scale-f, 1)));
color: var(--nutui-dialog-footer-badge-color-ok, var(--nutui-color-primary, #ff0f23));
}
.nut-dialog-footer-ok {
max-width: var(--nutui-dialog-footer-ok-max-width, calc(128px * var(--nut-scale-f, 1)));
font-weight: var(--nutui-font-weight-medium, 500);
}
.nut-dialog-footer-ok .nut-button-children {
font-weight: var(--nutui-font-weight-medium, 500);
}
.nut-dialog-footer-block.nut-button {
min-width: 100%;
}
.nut-dialog-footer-cancel-container {
position: relative;
display: flex;
align-items: center;
width: 100%;
justify-content: space-around;
}
.nut-dialog-footer-cancel-container .nut-dialog-footer-cancel-badge {
position: absolute;
right: var(--nutui-dialog-footer-cancel-margin-right, calc(12px * var(--nut-scale-f, 1)));
top: var(--nutui-dialog-footer-badge-top, calc(-8px * var(--nut-scale-f, 1)));
display: flex;
align-items: center;
height: var(--nutui-dialog-footer-badge-height, calc(14px * var(--nut-scale-f, 1)));
padding: var(--nutui-dialog-footer-badge-padding, 0 calc(3px * var(--nut-scale-f, 1)));
background: var(--nutui-dialog-footer-badge-bg-cancel, var(--nutui-color-danger-light, #ffebef));
border-radius: var(--nutui-dialog-footer-badge-border-radius, calc(2px * var(--nut-scale-f, 1)) calc(2px * var(--nut-scale-f, 1)) 0px calc(2px * var(--nut-scale-f, 1)));
font-size: var(--nutui-dialog-footer-badge-fontsize, calc(10px * var(--nut-scale-f, 1)));
color: var(--nutui-dialog-footer-badge-color-cancel, var(--nutui-color-primary, #ff0f23));
}
[dir=rtl] .nut-dialog-outer,
.nut-rtl .nut-dialog-outer {
left: auto;
right: 50%;
-webkit-transform: translate(50%, -50%);
transform: translate(50%, -50%);
}
[dir=rtl] .nut-dialog-close-top-right,
.nut-rtl .nut-dialog-close-top-right {
right: auto;
left: var(--nutui-dialog-close-right, calc(16px * var(--nut-scale-f, 1)));
}
[dir=rtl] .nut-dialog-close-top-left,
.nut-rtl .nut-dialog-close-top-left {
left: auto;
right: var(--nutui-dialog-close-left, calc(16px * var(--nut-scale-f, 1)));
}
[dir=rtl] .nut-dialog-footer-cancel.nut-dialog-footer-cancel,
.nut-rtl .nut-dialog-footer-cancel.nut-dialog-footer-cancel {
margin-right: 0;
margin-left: var(--nutui-dialog-footer-cancel-margin-right, calc(12px * var(--nut-scale-f, 1)));
}
[dir=rtl] .nut-dialog-content,
.nut-rtl .nut-dialog-content {
text-align: var(--nutui-dialog-content-text-align, right);
}