@nutui/nutui-react-taro
Version:
京东风格的轻量级移动端 React 组件库,支持一套代码生成 H5 和小程序
299 lines (297 loc) • 10.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))) ;
}
.nut-rate {
display: flex;
touch-action: pan-x;
}
.nut-rate.disabled .nut-rate-item-icon {
cursor: not-allowed;
}
.nut-rate.readonly .nut-rate-item-icon {
cursor: default;
}
.nut-rate-horizontal {
flex-direction: row;
align-items: center;
}
.nut-rate-vertical {
flex-direction: column;
align-items: center;
}
.nut-rate-list {
display: flex;
align-items: center;
}
.nut-rate-label {
color: var(--nutui-rate-label-color, var(--nutui-color-text-disabled, #b4b8bf));
white-space: nowrap;
}
.nut-rate-labels {
display: flex;
width: 100%;
}
.nut-rate-labels-item {
flex: 1;
text-align: center;
color: var(--nutui-rate-label-color, var(--nutui-color-text-disabled, #b4b8bf));
}
.nut-rate-item {
display: flex;
align-items: center;
flex-shrink: 0;
position: relative;
}
.nut-rate-item-half {
position: absolute;
height: 100%;
width: 50% ;
left: 0;
top: 0;
overflow: hidden;
}
.nut-rate-item-half .nut-icon {
flex-shrink: 0;
}
.nut-rate-item-icon {
display: flex;
align-items: center;
cursor: pointer;
}
.nut-rate-item-icon .nut-icon {
color: var(--nutui-rate-icon-color, var(--nutui-color-primary-icon, #ff3333));
}
.nut-rate-item-icon-disabled .nut-icon {
color: var(--nutui-rate-icon-inactive-color, var(--nutui-color-primary-icon-disabled, #dadce0));
}
.nut-rate-item-icon.nut-rate-item-icon.nut-rate-item-icon-half {
position: absolute;
left: 0;
top: 0;
overflow: hidden;
}
.nut-rate-item-icon.nut-rate-item-icon::before {
position: relative;
top: auto;
left: auto;
transform: none;
}
.nut-rate-item-icon-animate {
animation: nut-rate-bounce 0.3s ease-in-out;
}
.nut-rate-score {
/* #ifdef dynamic*/
display: flex;
/* #endif */
/* #ifndef dynamic*/
display: inline-flex;
/* #endif */
align-items: center;
color: var(--nutui-rate-font-color, var(--nutui-color-primary-icon, #ff3333));
font-family: "JDZH-Regular";
}
.nut-rate-score-disabled {
color: var(--nutui-rate-icon-inactive-color, var(--nutui-color-primary-icon-disabled, #dadce0));
}
.nut-rate-horizontal .nut-rate-item {
margin-left: var(--nutui-rate-item-margin, calc(4px * var(--nut-scale-f, 1)));
}
.nut-rate-horizontal .nut-rate-item:first-child {
margin-left: 0;
}
.nut-rate-horizontal .nut-rate-item-small {
margin-left: calc(2px * var(--nut-scale-f, 1));
}
.nut-rate-horizontal .nut-rate-item-small:first-child {
margin-left: 0;
}
.nut-rate-horizontal .nut-rate-item-small .nut-icon {
height: calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)));
width: calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)));
}
.nut-rate-horizontal .nut-rate-item-normal .nut-icon {
height: calc(16px * var(--nut-scale-font, var(--nut-scale-f, 1)));
width: calc(16px * var(--nut-scale-font, var(--nut-scale-f, 1)));
}
.nut-rate-horizontal .nut-rate-item-large .nut-icon {
height: calc(20px * var(--nut-scale-font, var(--nut-scale-f, 1)));
width: calc(20px * var(--nut-scale-font, var(--nut-scale-f, 1)));
}
.nut-rate-horizontal .nut-rate-label-small {
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
margin-right: calc(4px * var(--nut-scale-f, 1));
}
.nut-rate-horizontal .nut-rate-label-normal {
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
margin-right: calc(12px * var(--nut-scale-f, 1));
}
.nut-rate-horizontal .nut-rate-label-large {
font-size: var(--nutui-font-size-base, calc(14px * var(--nut-scale-font, var(--nut-scale-f, 1))));
margin-right: calc(12px * var(--nut-scale-f, 1));
}
.nut-rate-horizontal .nut-rate-score-small {
padding-left: calc(4px * var(--nut-scale-f, 1));
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
line-height: var(--nutui-line-height-s, var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
}
.nut-rate-horizontal .nut-rate-score-normal {
padding-left: calc(12px * var(--nut-scale-f, 1));
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
line-height: var(--nutui-line-height-s, var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
}
.nut-rate-horizontal .nut-rate-score-large {
padding-left: calc(12px * var(--nut-scale-f, 1));
font-size: var(--nutui-font-size-base, calc(14px * var(--nut-scale-font, var(--nut-scale-f, 1))));
line-height: var(--nutui-line-height-base, var(--nutui-font-size-base, calc(14px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
}
.nut-rate-vertical .nut-rate-list {
justify-content: center;
width: 100%;
}
.nut-rate-vertical .nut-rate-item {
margin-left: var(--nutui-rate-item-margin, calc(4px * var(--nut-scale-f, 1)));
}
.nut-rate-vertical .nut-rate-item:first-child {
margin-left: 0;
}
.nut-rate-vertical .nut-rate-item-small .nut-icon,
.nut-rate-vertical .nut-rate-item-normal .nut-icon {
height: calc(20px * var(--nut-scale-font, var(--nut-scale-f, 1)));
width: calc(20px * var(--nut-scale-font, var(--nut-scale-f, 1)));
}
.nut-rate-vertical .nut-rate-item-large {
flex: 1;
justify-content: center;
}
.nut-rate-vertical .nut-rate-item-large .nut-icon {
height: calc(28px * var(--nut-scale-font, var(--nut-scale-f, 1)));
width: calc(28px * var(--nut-scale-font, var(--nut-scale-f, 1)));
}
.nut-rate-vertical .nut-rate-label-small,
.nut-rate-vertical .nut-rate-label-normal {
font-size: var(--nutui-font-size-xs, calc(11px * var(--nut-scale-font, var(--nut-scale-f, 1))));
margin-top: calc(6px * var(--nut-scale-f, 1));
}
.nut-rate-vertical .nut-rate-label-large {
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
margin-top: calc(8px * var(--nut-scale-f, 1));
}
.nut-rate-vertical .nut-rate-labels {
width: 100%;
}
.nut-rate-vertical .nut-rate-labels-small,
.nut-rate-vertical .nut-rate-labels-normal {
margin-top: calc(6px * var(--nut-scale-f, 1));
}
.nut-rate-vertical .nut-rate-labels-small .nut-rate-labels-item,
.nut-rate-vertical .nut-rate-labels-normal .nut-rate-labels-item {
font-size: var(--nutui-font-size-xs, calc(11px * var(--nut-scale-font, var(--nut-scale-f, 1))));
}
.nut-rate-vertical .nut-rate-labels-large {
margin-top: calc(8px * var(--nut-scale-f, 1));
}
.nut-rate-vertical .nut-rate-labels-large .nut-rate-labels-item {
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
}
.nut-rate-vertical .nut-rate-score-small,
.nut-rate-vertical .nut-rate-score-normal {
font-size: var(--nutui-font-size-xs, calc(11px * var(--nut-scale-font, var(--nut-scale-f, 1))));
line-height: var(--nutui-line-height-xs, var(--nutui-font-size-xs, calc(11px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
margin-top: calc(6px * var(--nut-scale-f, 1));
}
.nut-rate-vertical .nut-rate-score-large {
font-size: var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1))));
line-height: var(--nutui-line-height-s, var(--nutui-font-size-s, calc(12px * var(--nut-scale-font, var(--nut-scale-f, 1)))));
margin-top: calc(8px * var(--nut-scale-f, 1));
}
@keyframes nut-rate-bounce {
0% {
transform: scale(1);
}
50% {
transform: scale(1.25);
}
100% {
transform: scale(1);
}
}
[dir=rtl] .nut-rate-horizontal .nut-rate-item,
.nut-rtl .nut-rate-horizontal .nut-rate-item {
margin-left: 0;
margin-right: var(--nutui-rate-item-margin, calc(4px * var(--nut-scale-f, 1)));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-item:first-child,
.nut-rtl .nut-rate-horizontal .nut-rate-item:first-child {
margin-right: 0;
}
[dir=rtl] .nut-rate-horizontal .nut-rate-item-small,
.nut-rtl .nut-rate-horizontal .nut-rate-item-small {
margin-left: 0;
margin-right: calc(2px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-item-small:first-child,
.nut-rtl .nut-rate-horizontal .nut-rate-item-small:first-child {
margin-right: 0;
}
[dir=rtl] .nut-rate-horizontal .nut-rate-label,
.nut-rtl .nut-rate-horizontal .nut-rate-label {
margin-right: 0;
}
[dir=rtl] .nut-rate-horizontal .nut-rate-label-small,
.nut-rtl .nut-rate-horizontal .nut-rate-label-small {
margin-left: calc(4px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-label-normal,
.nut-rtl .nut-rate-horizontal .nut-rate-label-normal {
margin-left: calc(12px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-label-large,
.nut-rtl .nut-rate-horizontal .nut-rate-label-large {
margin-left: calc(12px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-score,
.nut-rtl .nut-rate-horizontal .nut-rate-score {
padding-left: 0;
}
[dir=rtl] .nut-rate-horizontal .nut-rate-score-small,
.nut-rtl .nut-rate-horizontal .nut-rate-score-small {
padding-right: calc(4px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-score-normal,
.nut-rtl .nut-rate-horizontal .nut-rate-score-normal {
padding-right: calc(12px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-horizontal .nut-rate-score-large,
.nut-rtl .nut-rate-horizontal .nut-rate-score-large {
padding-right: calc(12px * var(--nut-scale-f, 1));
}
[dir=rtl] .nut-rate-vertical .nut-rate-item,
.nut-rtl .nut-rate-vertical .nut-rate-item {
margin-left: 0;
margin-right: var(--nutui-rate-item-margin, calc(4px * var(--nut-scale-f, 1)));
}
[dir=rtl] .nut-rate-vertical .nut-rate-item:first-child,
.nut-rtl .nut-rate-vertical .nut-rate-item:first-child {
margin-right: 0;
}
[dir=rtl] .nut-rate-item-half,
.nut-rtl .nut-rate-item-half {
left: auto;
right: 0;
}
[dir=rtl] .nut-rate-item-icon.nut-rate-item-icon.nut-rate-item-icon-half,
.nut-rtl .nut-rate-item-icon.nut-rate-item-icon.nut-rate-item-icon-half {
left: auto;
right: 0;
}
[dir=rtl] .nut-rate-item-icon.nut-rate-item-icon::before,
.nut-rtl .nut-rate-item-icon.nut-rate-item-icon::before {
left: auto;
right: auto;
}