UNPKG

@nutui/nutui-react

Version:

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

707 lines (699 loc) 22.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-range-container { display: flex; flex-direction: row; position: relative; width: 100%; height: var(--nutui-range-height, 4px); align-items: center; justify-content: space-between; } .nut-range-container-native { height: auto; } .nut-range { display: block; position: relative; height: var(--nutui-range-height, 4px); margin: 0 var(--nutui-range-margin, 15px); background-color: var(--nutui-range-inactive-color, var(--nutui-color-primary-light-pressed, #ffebf1)); border-radius: 2px; flex: 1; cursor: pointer; } .nut-range::before { position: absolute; inset-block: -8px; inset-inline: 0; content: ""; } .nut-range-min, .nut-range-max { font-size: var(--nutui-font-size-s, 12px); color: var(--nutui-range-color, var(--nutui-color-title, #1a1a1a)); user-select: none; } .nut-range-bar { display: block; position: relative; width: 100%; height: 100%; max-width: 100%; max-height: 100%; background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff0f23)); border-radius: 2px; transition: all 0.2s; } .nut-range-button { position: absolute; display: flex; width: var(--nutui-range-button-width, 24px); height: var(--nutui-range-button-height, 24px); background: var(--nutui-range-button-background, #ffffff); border-radius: 50%; box-shadow: 0px 1px 2px 0px rgba(0, 0, 0, 0.15); border: var(--nutui-range-button-border, 1px solid var(--nutui-color-primary, #ff0f23)); outline: none; align-items: center; top: 50%; left: 50%; } .nut-range-button-wrapper, .nut-range-button-wrapper-right, .nut-range-button-wrapper-left { width: var(--nutui-range-button-width, 24px); height: var(--nutui-range-button-height, 24px); } .nut-range-button-wrapper, .nut-range-button-wrapper-right { touch-action: none; position: absolute; top: 50%; left: 100%; cursor: grab; outline: none; } .nut-range-button-wrapper-left { position: absolute; top: 50%; left: 0; cursor: grab; outline: none; touch-action: none; } .nut-range-button-number { position: relative; width: 200%; height: 24px; line-height: 14px; padding: 5px 0; left: 50%; display: flex; align-items: center; justify-content: center; user-select: none; font-size: var(--nutui-font-size-s, 12px); color: var(--nutui-range-color, var(--nutui-color-title, #1a1a1a)); text-align: center; vertical-align: center; box-sizing: border-box; } .nut-range-disabled { cursor: not-allowed; opacity: 0.54; } .nut-range-disabled .nut-range-button-wrapper, .nut-range-disabled .nut-range-button-wrapper-left, .nut-range-disabled .nut-range-button-wrapper-right { cursor: not-allowed; } .nut-range-mark { position: absolute; width: 100%; height: 14px; overflow: visible; top: 50%; } .nut-range-mark-text-wrapper { position: absolute; height: 100%; top: 14px; display: inline-block; transform: translateX(-10px); } .nut-range-mark-text { position: absolute; line-height: 16px; font-size: 12px; color: #999; text-align: center; word-break: keep-all; user-select: none; } .nut-range-tick { position: absolute; top: -20px; width: 11px; height: 11px; left: 0px; border-radius: 6px; background: var(--nutui-range-inactive-color, var(--nutui-color-primary-light-pressed, #ffebf1)); } .nut-range-tick-active { background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff0f23)); } .nut-range-vertical-container { height: 100%; flex-direction: column; padding: 0px 15px; } .nut-range-vertical { width: var(--nutui-range-height, 4px); margin: var(--nutui-range-margin, 15px) 0px; } .nut-range-vertical-button-wrapper, .nut-range-vertical-button-wrapper-right { position: absolute; top: initial; top: 100%; left: 50%; right: initial; } .nut-range-vertical-button-wrapper-left { top: 0px; left: 50%; right: initial; } .nut-range-vertical-button-number { left: 0px; top: 50%; } .nut-range-vertical-mark { position: absolute; width: 36px; height: 100%; top: initial; right: 50%; overflow: visible; font-size: 12px; padding: 0px; } .nut-range-vertical-mark-hm { left: -34px; } .nut-range-vertical-mark-text-wrapper { height: 16px; position: absolute; display: inline-block; user-select: none; transform: translateY(-11px); } .nut-range-vertical-mark-text { height: 100%; line-height: 16px; color: #999; text-align: center; word-break: keep-all; } .nut-range-vertical-tick { position: absolute; top: 2px; left: 31px; width: 10px; height: 10px; border-radius: 5px; background: var(--nutui-range-inactive-color, var(--nutui-color-primary-light-pressed, #ffebf1)); } .nut-range-vertical-tick-active { background: var(--nutui-range-active-color, var(--nutui-color-primary, #ff0f23)); } [dir=rtl] .nut-range-button-wrapper, [dir=rtl] .nut-range-button-wrapper-right, .rtl-nut-range-button-wrapper, .rtl-nut-range-button-wrapper-right { left: 0; right: initial; } [dir=rtl] .nut-range-button-wrapper-left, .rtl-nut-range-button-wrapper-left { right: 0; left: initial; } [dir=rtl] .nut-range-tick, .rtl-nut-range-tick { right: 0px; left: initial; } [dir=rtl] .nut-range-mark-text, .rtl-nut-range-mark-text { transform: translateX(10px); } [dir=rtl] .nut-range-vertical-button-wrapper, [dir=rtl] .nut-range-vertical-button-wrapper-right, .rtl-nut-range-vertical-button-wrapper, .rtl-nut-range-vertical-button-wrapper-right { right: 50%; left: initial; } [dir=rtl] .nut-range-vertical-button-wrapper-left, .rtl-nut-range-vertical-button-wrapper-left { right: 50%; left: initial; } [dir=rtl] .nut-range-vertical-mark, .rtl-nut-range-vertical-mark { right: auto; left: 50%; } [dir=rtl] .nut-range-vertical-tick, .rtl-nut-range-vertical-tick { left: auto; right: 30px; margin-left: 0; margin-right: 0px; } [dir=rtl] .nut-range-vertical-mark-text-wrapper, .rtl-nut-range-vertical-mark-text-wrapper { transform: translateY(-11px); } .nut-audio-icon { position: relative; display: inline-block; } .nut-audio-icon-box { display: flex; align-items: center; justify-content: center; width: 30px; height: 30px; background: #ffffff; border-radius: 50%; box-shadow: 0 0 8px var(--nutui-color-text-disabled, #c2c4cc); } .nut-audio-icon .nut-audio-icon-stop { position: relative; } .nut-audio-icon .nut-audio-icon-stop::after { position: absolute; left: 50%; top: 50%; transform: translateX(-50%); content: ""; height: 2px; width: 30px; background: var(--nutui-color-text-disabled, #c2c4cc); transform: rotate(45deg); transform-origin: 8px -18px; } .nut-audio-progress { display: flex; align-items: center; width: 100%; margin: 0px auto; padding: 10px 0; } .nut-audio-progress-bar-wrapper { flex: 1; margin: 0 10px; } .nut-audio-progress .time { min-width: 50px; font-size: 12px; text-align: center; } .nut-audio-progress .nut-range-button { width: 8px; height: 8px; } .nut-audio .custom-button-group .nut-button-primary { margin: 0 5px; } .nut-audio .custom-button-group-disable .nut-button-primary { margin: 0 5px; pointer-events: none; } .nut-audio .disable { color: blue; } .nut-audio .nut-audio-none-container .nut-voice { border: 1px solid var(--nutui-color-title, #1a1a1a); align-items: center; } [dir=rtl] .nut-audio-icon .nut-audio-icon-stop::after, .nut-rtl .nut-audio-icon .nut-audio-icon-stop::after { left: auto; right: 50%; transform: rotate(-45deg); transform-origin: 20px -18px; }