UNPKG

@nutui/nutui-react

Version:

京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序

587 lines (580 loc) 20.9 kB
/* #ifdef harmony */ /* #endif */ /* #ifndef harmony */ /* #endif */ .nut-button { position: relative; display: flex; display: inline-block; /* #ifdef harmony*/ width: 80px; /* #endif */ /* #ifndef harmony*/ width: auto; /* #endif */ flex-direction: row; justify-content: center; align-items: center; flex-shrink: 0; box-sizing: border-box; margin: 0; padding: 0; height: var(--nutui-button-default-height, 32px); font-size: var(--nutui-button-default-font-size, var(--nutui-font-size-base, 14px)); font-weight: var(--nutui-font-weight, 400); text-align: center; cursor: pointer; transition: opacity 0.2s; user-select: none; touch-action: manipulation; -webkit-appearance: none; -webkit-tap-highlight-color: rgba(0, 0, 0, 0); color: var(--nutui-button-default-color, var(--nutui-color-title, #1a1a1a)); background: var(--nutui-button-default-background-color, transparent); border-width: var(--nutui-button-border-width, 0.5px); } .nut-button-text { margin-left: var(--nutui-button-text-icon-margin, 4px); } .nut-button-text-right { margin-right: var(--nutui-button-text-icon-margin, 4px); } .nut-button-children { display: flex; flex-direction: row; background: transparent; } .nut-button::before { position: absolute; top: 50%; left: 50%; width: 100%; height: 100%; background-color: var(--nutui-color-mask, rgba(0, 0, 0, 0.7)); border: inherit; border-color: var(--nutui-color-mask, rgba(0, 0, 0, 0.7)); border-radius: inherit; transform: translate(-50%, -50%); opacity: 0; content: " "; } .nut-button::after { border: none; } .nut-button:active::before { opacity: 0.1; } .nut-button-wrap { height: 100%; width: 100%; display: flex; flex-direction: row; align-items: center; justify-content: center; /* #ifndef harmony */ background: initial; /* #endif */ } .nut-button-wrap .nut-icon { font-size: var(--nutui-button-default-font-size, var(--nutui-font-size-base, 14px)); width: var(--nutui-button-default-font-size, var(--nutui-font-size-base, 14px)); height: var(--nutui-button-default-font-size, var(--nutui-font-size-base, 14px)); } .nut-button-loading::before, .nut-button-disabled::before { display: none; } .nut-button-disabled { cursor: not-allowed; color: #ffffff; } .nut-button.nut-button-icononly { width: var(--nutui-button-default-height, 32px); padding: 0; } .nut-button-round { border-radius: var(--nutui-button-border-radius, var(--nutui-radius-s, 6px)); } .nut-button-default { padding: var(--nutui-button-default-padding, 0px 12px); border-style: solid; border-color: var(--nutui-button-default-border-color, var(--nutui-color-text-disabled, #c2c4cc)); } .nut-button-default-disabled, .nut-button-default-solid-disabled { color: var(--nutui-button-primary-color, #ffffff); background: var(--nutui-button-default-disabled, var(--nutui-color-text-disabled, #c2c4cc)); border-color: var(--nutui-button-default-disabled, var(--nutui-color-text-disabled, #c2c4cc)); } .nut-button-default-none-disabled { color: var(--nutui-button-default-disabled-color, var(--nutui-color-text-help, #888b94)); } .nut-button-default-outline-disabled, .nut-button-default-dashed-disabled { background: transparent; color: var(--nutui-button-default-disabled, var(--nutui-color-text-disabled, #c2c4cc)); border-color: var(--nutui-button-default-disabled, var(--nutui-color-text-disabled, #c2c4cc)); } .nut-button-normal { padding: var(--nutui-button-normal-padding, 0px 12px); } .nut-button-xlarge { height: var(--nutui-button-xlarge-height, 48px); padding: var(--nutui-button-xlarge-padding, 0px 24px); font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px)); border-radius: var(--nutui-button-xlarge-border-radius, var(--nutui-radius-base, 8px)); } .nut-button-xlarge .nut-button-text { margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px); } .nut-button-xlarge .nut-button-text-right { margin-right: var(--nutui-button-xlarge-text-icon-margin, 6px); } .nut-button-xlarge .nut-icon { font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px)); width: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px)); height: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px)); } .nut-button-xlarge-children { font-size: var(--nutui-button-xlarge-font-size, var(--nutui-font-size-xl, 18px)); } .nut-button-large { height: var(--nutui-button-large-height, 40px); padding: var(--nutui-button-large-padding, 0px 16px); font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px)); border-radius: var(--nutui-button-large-border-radius, var(--nutui-radius-base, 8px)); } .nut-button-large .nut-button-text { margin-left: var(--nutui-button-xlarge-text-icon-margin, 6px); } .nut-button-large .nut-button-text-right { margin-right: var(--nutui-button-xlarge-text-icon-margin, 6px); } .nut-button-large .nut-icon { font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px)); width: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px)); height: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px)); } .nut-button-large-children { font-size: var(--nutui-button-large-font-size, var(--nutui-font-size-l, 16px)); } .nut-button-small { height: var(--nutui-button-small-height, 28px); padding: var(--nutui-button-small-padding, 0px 8px); font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px)); border-radius: var(--nutui-button-small-border-radius, var(--nutui-radius-s, 6px)); } .nut-button-small .nut-icon { font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px)); width: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px)); height: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px)); } .nut-button-small-children { font-size: var(--nutui-button-small-font-size, var(--nutui-font-size-s, 12px)); } .nut-button-mini { height: var(--nutui-button-mini-height, 24px); padding: var(--nutui-button-mini-padding, 0px 8px); font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px)); border-radius: var(--nutui-button-mini-border-radius, var(--nutui-radius-xs, 4px)); } .nut-button-mini .nut-icon { font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px)); width: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px)); height: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px)); } .nut-button-mini-children { font-size: var(--nutui-button-mini-font-size, var(--nutui-font-size-xs, 11px)); } .nut-button-primary { color: var(--nutui-button-primary-color, #ffffff); background-origin: border-box; border-color: transparent; } .nut-button-primary-children { color: var(--nutui-button-primary-color, #ffffff); } .nut-button-primary-solid { background: linear-gradient(90deg, var(--nutui-color-primary-stop-1, #ff475d) 0%, var(--nutui-color-primary-stop-2, #ff0f23) 100%); color: var(--nutui-button-primary-color, #ffffff); border-color: transparent; font-weight: var(--nutui-font-weight-bold, 600); } .nut-button-primary-solid.nut-button-small, .nut-button-primary-solid.nut-button-mini { font-weight: var(--nutui-font-weight, 400); } .nut-button-primary-disabled, .nut-button-primary-disabled.nut-button-icononly, .nut-button-primary-solid-disabled { color: var(--nutui-button-primary-color, #ffffff); background: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); border-color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); } .nut-button-primary-none { color: var(--nutui-button-primary-border-color, var(--nutui-color-primary, #ff0f23)); } .nut-button-primary-none-disabled { color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); } .nut-button-primary-outline { color: var(--nutui-button-primary-border-color, var(--nutui-color-primary, #ff0f23)); border-color: var(--nutui-button-primary-border-color, var(--nutui-color-primary, #ff0f23)); } .nut-button-primary-outline-disabled { color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); border-color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); } .nut-button-primary-dashed { color: var(--nutui-button-primary-border-color, var(--nutui-color-primary, #ff0f23)); border-color: var(--nutui-button-primary-border-color, var(--nutui-color-primary, #ff0f23)); } .nut-button-primary-dashed-disabled { color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); border-color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); } .nut-button-primary.nut-button-solid.nut-button-normal { font-weight: var(--nutui-font-weight-bold, 600); } .nut-button-success { color: var(--nutui-button-success-color, #ffffff); background: var(--nutui-button-success-background-color, var(--nutui-color-success, #00d900)); background-origin: border-box; border-color: transparent; } .nut-button-success-children { color: var(--nutui-button-success-color, #ffffff); } .nut-button-success-solid-disabled { background: var(--nutui-button-success-disabled, var(--nutui-color-success-disabled, #b2f0ae)); border-color: var(--nutui-button-success-disabled, var(--nutui-color-success-disabled, #b2f0ae)); } .nut-button-success-outline, .nut-button-success-dashed { color: var(--nutui-button-success-border-color, var(--nutui-color-success, #00d900)); border-color: var(--nutui-button-success-border-color, var(--nutui-color-success, #00d900)); } .nut-button-success-outline-disabled, .nut-button-success-dashed-disabled { color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); border-color: var(--nutui-button-primary-disabled, var(--nutui-color-primary-disabled-special, #ffadbe)); } .nut-button-success-none { color: var(--nutui-button-success-border-color, var(--nutui-color-success, #00d900)); } .nut-button-success-none-disabled { color: var(--nutui-button-success-disabled, var(--nutui-color-success-disabled, #b2f0ae)); } .nut-button-info { color: var(--nutui-button-info-color, #ffffff); background: var(--nutui-button-info-background-color, var(--nutui-color-info-background, #0073ff)); background-origin: border-box; border-color: transparent; } .nut-button-info-children { color: var(--nutui-button-info-color, #ffffff); } .nut-button-info-solid-disabled { background: var(--nutui-button-info-disabled, var(--nutui-color-info-disabled, #89a6f8)); border-color: var(--nutui-button-info-disabled, var(--nutui-color-info-disabled, #89a6f8)); } .nut-button-info-outline, .nut-button-info-dashed { color: var(--nutui-button-info-border-color, var(--nutui-color-info, #0073ff)); border-color: var(--nutui-button-info-border-color, var(--nutui-color-info, #0073ff)); } .nut-button-info-outline-disabled, .nut-button-info-dashed-disabled { color: var(--nutui-button-info-disabled, var(--nutui-color-info-disabled, #89a6f8)); border-color: var(--nutui-button-info-disabled, var(--nutui-color-info-disabled, #89a6f8)); } .nut-button-info-none { color: var(--nutui-button-info-border-color, var(--nutui-color-info, #0073ff)); } .nut-button-info-none-disabled { color: var(--nutui-button-info-disabled, var(--nutui-color-info-disabled, #89a6f8)); } .nut-button-danger { color: var(--nutui-button-danger-color, #ffffff); background: var(--nutui-button-danger-background-color, var(--nutui-color-danger, #ff0f23)); background-origin: border-box; border-color: transparent; } .nut-button-danger-children { color: var(--nutui-button-danger-color, #ffffff); } .nut-button-danger-solid-disabled { background: var(--nutui-button-danger-disabled, var(--nutui-color-danger-disabled, var(--nutui-color-primary-disabled-special, #ffadbe))); border-color: var(--nutui-button-danger-disabled, var(--nutui-color-danger-disabled, var(--nutui-color-primary-disabled-special, #ffadbe))); } .nut-button-danger-outline, .nut-button-danger-dashed { color: var(--nutui-button-danger-border-color, var(--nutui-color-danger, #ff0f23)); border-color: var(--nutui-button-danger-border-color, var(--nutui-color-danger, #ff0f23)); } .nut-button-danger-outline-disabled, .nut-button-danger-dashed-disabled { color: var(--nutui-button-danger-disabled, var(--nutui-color-danger-disabled, var(--nutui-color-primary-disabled-special, #ffadbe))); border-color: var(--nutui-button-danger-disabled, var(--nutui-color-danger-disabled, var(--nutui-color-primary-disabled-special, #ffadbe))); } .nut-button-danger-none { color: var(--nutui-button-danger-border-color, var(--nutui-color-danger, #ff0f23)); } .nut-button-danger-none-disabled { color: var(--nutui-button-danger-disabled, var(--nutui-color-danger-disabled, var(--nutui-color-primary-disabled-special, #ffadbe))); } .nut-button-warning { color: var(--nutui-button-warning-color, #ffffff); background: var(--nutui-button-warning-background-color, var(--nutui-color-warning, #ffbf00)); background-origin: border-box; border-color: transparent; } .nut-button-warning-children { color: var(--nutui-button-warning-color, #ffffff); } .nut-button-warning-disabled, .nut-button-warning-solid-disabled { color: var(--nutui-button-warning-color, #ffffff); background: var(--nutui-button-warning-disabled, var(--nutui-color-warning-disabled, #fdd3b9)); border-color: var(--nutui-button-warning-disabled, var(--nutui-color-warning-disabled, #fdd3b9)); } .nut-button-warning-outline, .nut-button-warning-dashed { color: var(--nutui-button-warning-border-color, var(--nutui-color-warning, #ffbf00)); border-color: var(--nutui-button-warning-border-color, var(--nutui-color-warning, #ffbf00)); } .nut-button-warning-outline-disabled, .nut-button-warning-dashed-disabled { color: var(--nutui-button-warning-disabled, var(--nutui-color-warning-disabled, #fdd3b9)); border-color: var(--nutui-button-warning-disabled, var(--nutui-color-warning-disabled, #fdd3b9)); } .nut-button-warning-none { color: var(--nutui-button-warning-border-color, var(--nutui-color-warning, #ffbf00)); } .nut-button-warning-none-disabled { color: var(--nutui-button-warning-disabled, var(--nutui-color-warning-disabled, #fdd3b9)); } .nut-button-block { display: block; width: 100%; } .nut-button-outline { background: transparent; border-style: solid; } .nut-button-dashed { background: transparent; border-style: dashed; } .nut-button-none { background: transparent; border-color: transparent; } .nut-button-loading { cursor: default; opacity: 0.9; } .nut-button-square { border-radius: var(--nutui-button-square-border-radius, 0); } [dir=rtl] .nut-button-text, .nut-rtl .nut-button-text { margin-left: 0; margin-right: var(--nutui-button-text-icon-margin, 4px); } [dir=rtl] .nut-button-text.right, .nut-rtl .nut-button-text.right { margin-left: var(--nutui-button-text-icon-margin, 4px); } [dir=rtl] .nut-button::before, .nut-rtl .nut-button::before { left: auto; right: 50%; transform: translate(50%, -50%); } .nut-overlay { position: fixed; top: 0; left: 0; bottom: 0; right: 0; width: 100%; height: 100%; background-color: var(--nutui-overlay-bg-color, var(--nutui-color-mask, rgba(0, 0, 0, 0.7))); z-index: var(--nutui-overlay-zIndex, 1000); } .nut-overflow-hidden { overflow: hidden !important; } @keyframes nut-fade-in { 0% { opacity: 0; } 1% { opacity: 0; } 100% { opacity: 1; } } @keyframes nut-fade-out { 0% { opacity: 1; } 1% { opacity: 1; } 100% { opacity: 0; } } .nut-overlay-slide-enter-active, .nut-overlay-slide-appear-active { animation-fill-mode: both; animation-name: nut-fade-in; animation-duration: var(--nutui-overlay-animation-duration, 0.3s); } .nut-overlay-slide-exit-active { animation-fill-mode: both; animation-name: nut-fade-out; animation-duration: var(--nutui-overlay-animation-duration, 0.3s); } [dir=rtl] .nut-overlay, .nut-rtl .nut-overlay { left: auto; right: 0; } .nut-dialog { display: flex; flex-direction: column; align-items: center; width: var(--nutui-dialog-width, 295px); min-width: var(--nutui-dialog-min-width, 240px); /* #ifndef harmony*/ max-height: 67%; /* #endif */ min-height: var(--nutui-dialog-min-height, 124px); padding: var(--nutui-dialog-padding, 24px); box-sizing: border-box; } .nut-dialog-outer { position: fixed; max-height: 100%; background-color: #ffffff; transition: transform 0.2s, -webkit-transform 0.2s; -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, 12px)); animation-duration: 0.3s; } .nut-dialog-close { position: absolute !important; z-index: 1; cursor: pointer; width: var(--nutui-dialog-close-width, 16px); height: var(--nutui-dialog-close-height, 16px); 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, 16px); width: var(--nutui-dialog-close-width, 16px); height: var(--nutui-dialog-close-height, 16px); } .nut-dialog-close-top-right { top: var(--nutui-dialog-close-top, 16px); right: var(--nutui-dialog-close-right, 16px); } .nut-dialog-close-top-left { top: var(--nutui-dialog-close-top, 16px); left: var(--nutui-dialog-close-left, 16px); } .nut-dialog-close-bottom { bottom: -64px; width: var(--nutui-dialog-bottom-close-icon-size, 24px); height: var(--nutui-dialog-bottom-close-icon-size, 24px); 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, 24px); height: var(--nutui-dialog-bottom-close-icon-size, 24px); } .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-l, 16px)); font-weight: var(--nutui-dialog-header-font-weight, var(--nutui-font-weight-bold, 600)); color: var(--nutui-color-title, #1a1a1a); width: 100%; overflow: hidden; text-overflow: ellipsis; white-space: nowrap; } .nut-dialog-content { width: 100%; margin: var(--nutui-dialog-content-margin, 12px 0 16px 0); max-height: var(--nutui-dialog-content-max-height, 268px); line-height: var(--nutui-dialog-content-line-height, 20px); font-size: var(--nutui-font-size-base, 14px); 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, 14px); display: flex; justify-content: center; margin-top: var(--nutui-dialog-vertical-footer-ok-margin-top, 16px); } .nut-dialog-footer .nut-button { min-width: var(--nutui-dialog-footer-button-min-width, 117px); } .nut-dialog-footer-cancel.nut-dialog-footer-cancel { margin-right: var(--nutui-dialog-footer-cancel-margin-right, 12px); } .nut-dialog-footer-ok { max-width: var(--nutui-dialog-footer-ok-max-width, 128px); font-weight: var(--nutui-font-weight-bold, 600); } .nut-dialog-footer-block.nut-button { min-width: 100%; } [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, 16px); } [dir=rtl] .nut-dialog-close-top-left, .nut-rtl .nut-dialog-close-top-left { left: auto; right: var(--nutui-dialog-close-left, 16px); } [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, 12px); } [dir=rtl] .nut-dialog-content, .nut-rtl .nut-dialog-content { text-align: var(--nutui-dialog-content-text-align, right); }