lu2
Version:
Simple and flexible UI component library based on native HTML and JavaScript
1,771 lines (1,566 loc) • 102 kB
CSS
@charset "UTF-8";
/**
* @variables.css
* @description 基础参数变量
* @author zhangxinxu
* @create 21-12-30
**/
:root {
/* 基础颜色变量 */
--ui-primary: #2a80eb;
--ui-dark: #4c5161;
--ui-gray: #a2a9b6;
--ui-dark-gray: #b6bbc6;
--ui-light: #f7f9fa;
--ui-white: #ffffff;
--ui-blue: var(--ui-primary);
--ui-green: #1cad70;
--ui-orange: #f59b00;
--ui-red: #eb4646;
--ui-purple: #c12cea;
/* hover的颜色 */
--ui-list-active: #f0f7ff;
/* selected的颜色 */
--ui-list-selected: #e0f0ff;
/* disabled禁用色 */
--ui-disabled: #ccd0d7;
/* 边框颜色 */
--ui-border: #d0d0d5;
/* 深一点的边框颜色 */
--ui-dark-border: #ababaf;
/* 浅一点的边框颜色 */
--ui-light-border: #ededef;
--ui-light-background: var(--ui-light-border);
/* 透明度 */
--ui-opacity: .4;
/* 圆角变量 */
--ui-radius: .25rem;
/* 基础字号 */
--ui-font: 1rem;
/* 动画时间 */
--ui-animate-time: .2s;
/* 小图标等图形尺寸 */
--ui-basic-width: 1.25rem;
--ui-basic-height: 1.25rem;
/* 组件基础高度 */
--ui-component-height: 3rem;
/* 按下反馈背景 */
--ui-image-active: linear-gradient(rgba(0, 0, 0, .05), rgba(0, 0, 0, .05));
}
/* 单复选框默认的自定义属性 */
[type="radio"],
[type="checkbox"] {
--ui-place-size: 1.5rem;
}
[type="radio"] {
--ui-image-default: var(--ui-radio-default, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E %3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z'%3E%3C/path%3E %3C/svg%3E"));
--ui-image-checked: var(--ui-radio-checked, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E %3Cpath d='M256 56c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m0-48C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 168c-44.183 0-80 35.817-80 80s35.817 80 80 80 80-35.817 80-80-35.817-80-80-80z'%3E%3C/path%3E %3C/svg%3E"))
}
[type="checkbox"] {
--ui-image-default: var(--ui-checkbox-default, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E %3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200z'%3E%3C/path%3E %3C/svg%3E"));
--ui-image-checked: var(--ui-checkbox-checked, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E %3Cpath d='M256 8C119.033 8 8 119.033 8 256s111.033 248 248 248 248-111.033 248-248S392.967 8 256 8zm0 48c110.532 0 200 89.451 200 200 0 110.532-89.451 200-200 200-110.532 0-200-89.451-200-200 0-110.532 89.451-200 200-200m140.204 130.267l-22.536-22.718c-4.667-4.705-12.265-4.736-16.97-.068L215.346 303.697l-59.792-60.277c-4.667-4.705-12.265-4.736-16.97-.069l-22.719 22.536c-4.705 4.667-4.736 12.265-.068 16.971l90.781 91.516c4.667 4.705 12.265 4.736 16.97.068l172.589-171.204c4.704-4.668 4.734-12.266.067-16.971z'%3E%3C/path%3E %3C/svg%3E"));
--ui-image-indeterminate: var(--ui-checkbox-indeterminate, url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E %3Cpath d='M504 256C504 119 393 8 256 8S8 119 8 256s111 248 248 248 248-111 248-248zm-448 0c0-110.5 89.5-200 200-200s200 89.5 200 200-89.5 200-200 200S56 366.5 56 256zm296-80v160c0 8.8-7.2 16-16 16H176c-8.8 0-16-7.2-16-16V176c0-8.8 7.2-16 16-16h160c8.8 0 16 7.2 16 16z'%3E%3C/path%3E %3C/svg%3E"));
}
/* 其余一些图标图像 */
html {
--ui-image-loading: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M512 1024q-104 0-199-40-92-39-163-110T40 711Q0 616 0 512q0-15 10.5-25.5T36 476t25.5 10.5T72 512q0 90 35 171 33 79 94 140t140 95q81 34 171 34t171-35q79-33 140-94t95-140q34-81 34-171t-35-171q-33-79-94-140t-140-95q-81-34-171-34-15 0-25.5-10.5T476 36t10.5-25.5T512 0q104 0 199 40 92 39 163 110t110 163q40 95 40 199t-40 199q-39 92-110 163T711 984q-95 40-199 40z'/%3E%3C/svg%3E");
--ui-image-search: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M638.72 638.72a256 256 0 1 0-361.984-361.984A256 256 0 0 0 638.72 638.72zm58.71 119.04a384 384 0 1 1 85.418-95.573l202.24 202.24a64.256 64.256 0 0 1 .597 91.136 63.744 63.744 0 0 1-91.05-.598l-197.206-197.12z'/%3E%3C/svg%3E");
--ui-image-clear: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 512 512'%3E %3Cpath d='M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm121.6 313.1c4.7 4.7 4.7 12.3 0 17L338 377.6c-4.7 4.7-12.3 4.7-17 0L256 312l-65.1 65.6c-4.7 4.7-12.3 4.7-17 0L134.4 338c-4.7-4.7-4.7-12.3 0-17l65.6-65-65.6-65.1c-4.7-4.7-4.7-12.3 0-17l39.6-39.6c4.7-4.7 12.3-4.7 17 0l65 65.7 65.1-65.6c4.7-4.7 12.3-4.7 17 0l39.6 39.6c4.7 4.7 4.7 12.3 0 17L312 256l65.6 65.1z'%3E%3C/path%3E %3C/svg%3E");
--ui-image-arrow: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath d='M145.659 68.949a12.874 12.874 0 0 0-18.473 0L99.479 97.233 71.772 68.949a12.874 12.874 0 0 0-18.473 0c-5.099 5.208-5.099 13.648 0 18.857l46.18 47.14 46.181-47.14c5.099-5.208 5.099-13.649-.001-18.857z'/%3E%3C/svg%3E");
--ui-image-close: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M594.698 511.995l186.788-186.808a37.693 37.693 0 0 0 0-53.35l-26.7-26.702c-14.7-14.75-38.6-14.75-53.351 0L514.637 431.933 327.839 245.13a37.755 37.755 0 0 0-53.402 0l-26.65 26.701a37.693 37.693 0 0 0 0 53.35L434.576 511.99 247.788 698.778a37.755 37.755 0 0 0 0 53.401l26.65 26.701a37.847 37.847 0 0 0 53.4 0l186.799-186.819L701.44 778.885c14.75 14.7 38.65 14.7 53.35 0l26.701-26.7a37.755 37.755 0 0 0 0-53.402L594.698 511.995z'/%3E%3C/svg%3E");
--ui-image-success: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath fill='%23FFF' d='M163.038 57.226c-5.217-4.162-5.713-4.289-11.674-7.244-2.683-1.344-6.633 2.113-8.569 4.67l-52.648 67.042-34.301-43.387c-1.94-2.558-5.516-3.499-8.2-2.293-6.11 3.095-5.496 2.992-10.715 7.029-2.386 1.883-2.535 5.245-.597 7.793 0 0 36.97 46.917 41.44 52.565 6.557 8.068 18.483 7.669 24.744 0 4.62-5.781 61.117-78.506 61.117-78.506 1.937-2.559 1.788-5.918-.597-7.669z'/%3E%3C/svg%3E");
--ui-image-error: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200' viewBox='0 0 200 200'%3E%3Cpath fill='%23FFF' d='M116.153 99.999l36.484-36.486a7.369 7.369 0 0 0 0-10.423l-5.212-5.213a7.375 7.375 0 0 0-10.425 0l-36.484 36.485-36.485-36.485a7.374 7.374 0 0 0-10.424 0l-5.211 5.213a7.365 7.365 0 0 0 0 10.423L84.88 99.999l-36.483 36.485a7.369 7.369 0 0 0 0 10.426l5.211 5.213a7.38 7.38 0 0 0 10.424 0l36.485-36.486L137 152.122a7.38 7.38 0 0 0 10.425 0l5.212-5.213a7.372 7.372 0 0 0 0-10.426l-36.484-36.484z'/%3E%3C/svg%3E");
--ui-image-warning: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' fill='%23FFF' viewBox='0 0 16 16'%3E%3Cpath d='M7.005 3.1a1 1 0 1 1 1.99 0l-.388 6.35a.61.61 0 0 1-1.214 0L7.005 3.1zM7 12a1 1 0 1 1 2 0 1 1 0 0 1-2 0z'/%3E%3C/svg%3E");
}
[arrow="right"] {
--ui-image-arrow: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M704 511.904v-.112a47.84 47.84 0 0 0-14.688-34.544l.016-.016-288-288-.128.128a48 48 0 1 0-64.464 71.04l251.488 251.488L333.44 766.672l.016.016a48 48 0 0 0 67.856 67.856l.016.016 288-288-.016-.016A47.84 47.84 0 0 0 704 512v-.096z'/%3E%3C/svg%3E");
}
[arrow="left"] {
--ui-image-arrow: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M690.56 766.672L435.776 511.904l251.488-251.488A48 48 0 1 0 622.8 189.36l-.128-.128-288 288 .016.016A47.84 47.84 0 0 0 320 511.792v.224c0 13.584 5.632 25.808 14.688 34.544l-.016.016 288 288 .016-.016a48 48 0 0 0 67.872-67.888z'/%3E%3C/svg%3E");
}
[arrow="up"] {
--ui-image-arrow: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M834.544 622.688L546.56 334.672l-.016.016A47.84 47.84 0 0 0 512 320h-.224a47.84 47.84 0 0 0-34.544 14.688l-.016-.016-288 288 .128.128a48 48 0 1 0 71.056 64.464l251.488-251.488L766.672 690.56l.016-.016a48 48 0 0 0 67.856-67.856z'/%3E%3C/svg%3E");
}
[arrow="down"] {
--ui-image-arrow: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M848 368a48 48 0 0 0-81.312-34.544l-.016-.016-254.784 254.784L260.4 336.736a48 48 0 1 0-71.04 64.464l-.128.128 288 288 .016-.016A47.84 47.84 0 0 0 511.792 704h.224a47.84 47.84 0 0 0 34.544-14.688l.016.016 288-288-.016-.016C842.88 392.688 848 380.944 848 368z'/%3E%3C/svg%3E");
}
[arrow="none"] {
--ui-image-arrow: url();
}
/**
*
* @reset.css
* @author zhangxinxu
* @create 21-12-30
**/
body {
-webkit-tap-highlight-color: transparent;
-webkit-text-size-adjust: none;
}
/* 禁止长按的效果 */
a {
-webkit-touch-callout: none;
color: inherit;
text-decoration: none;
}
a[href]:active,
button:active,
[role="button"]:active,
[role="link"]:active {
background-image: var(--ui-image-active, linear-gradient(rgba(0, 0, 0, .05), rgba(0, 0, 0, .05)));
}
html {
font-size: medium;
}
@media (min-width: 375px) {
html {
/* 375px尺寸作为16px基准,414px正好18px大小 */
font-size: calc(100% + 2 * (100vw - 375px) / 39);
}
}
/*
* 414px ~ 1280px
* 18px ~ 20px
*/
@media (min-width: 414px) {
html {
font-size: min(calc(112.5% + 2 * (100vw - 414px) / 1066), 24px);
}
}
@media (any-pointer: fine) {
html {
font-size: medium;
}
}
/**
*
* @Button.css
* @author zhangxinxu
* @create 15-06-12
* @edited 17-06-13
17-11-07 use png+spin for loading
19-07-09 IE9+, no external links
20-04-03 version edge
22-01-21 version hope1
*/
/* button基础变量 */
:root {
--ui-button-height: var(--ui-component-height, 3rem);
--ui-button-line-height: var(--ui-basic-height, 1.25rem);
--ui-button-radius: var(--ui-radius, .25rem);
--ui-button-color: var(--ui-dark, #4c5161);
--ui-button-loading-img: var(--ui-image-loading, url(https://qidian.gtimg.com/lulu/hope/ui/Loading/assets/loading.svg));
}
.ui-button,
[is="ui-button"] {
display: inline-flex;
width: var(--ui-button-width, auto);
height: var(--ui-button-height, auto);
line-height: var(--ui-button-line-height);
font-size: calc(0.75rem + (var(--ui-button-height, 3rem) - 1.5rem) / 6);
justify-content: center;
align-items: center;
color: var(--ui-white, #fff);
border-radius: var(--ui-button-radius);
border: 1px solid var(--ui-button-color);
padding: calc((var(--ui-button-height) - var(--ui-button-line-height) - 2px) / 2) calc(var(--ui-button-height) / 3);
background: var(--ui-button-color) no-repeat center;
text-decoration: none;
box-sizing: border-box;
transition: border-color var(--ui-animate-time, .2s), box-shadow var(--ui-animate-time, .2s), opacity var(--ui-animate-time, .2s);
font-family: inherit;
fill: currentColor;
flex: none;
outline: 0 none;
cursor: pointer;
overflow: visible;
}
[is="ui-button"]:active {
background: var(--ui-button-color) no-repeat center;
}
[is="ui-button"][height] {
padding-top: 0; padding-bottom: 0;
}
[is="ui-button"][width] {
padding-left: 0; padding-right: 0;
}
.ui-button[width="100%"],
[is="ui-button"][width="100%"] {
width: 100%;
}
.ui-button[size="small"],
[is="ui-button"][size="small"] {
--ui-button-height: 2.5rem;
}
.ui-button[size="mini"],
[is="ui-button"][size="mini"] {
--ui-button-height: 2rem;
}
.ui-button[size="tiny"],
[is="ui-button"][size="tiny"] {
--ui-button-height: 1.5rem;
}
div.ui-button,
div[is="ui-button"] {
display: flex;
}
::-moz-focus-inner {
border: 0;
}
@media (hover: hover) {
.ui-button:hover,
[is="ui-button"]:hover {
text-decoration: none;
}
.ui-button:not(.disabled):not(.loading):not(:disabled):hover,
[is="ui-button"]:not(.disabled):not(.loading):not(:disabled):hover {
filter: brightness(1.05);
}
}
.ui-button:not(.disabled):not(.loading):active,
[is="ui-button"]:not(.disabled):not(.loading):active {
box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1),
inset 0 0 0 100px rgba(0, 0, 0, 0.1);
}
/* normal button */
[type="normal"],
[type="default"],
[data-type="normal"],
[data-type="default"] {
--ui-button-color: var(--ui-white, #fff);
color: var(--ui-dark, #4c5161);
border-color: var(--ui-border);
}
/* primary button */
[data-type="primary"],
[data-type="remind"],
[type="primary"],
[type="remind"] {
--ui-button-color: var(--ui-blue, #2a80eb);
}
/* success button */
[data-type="success"],
[type="success"],
[data-type="safe"],
[type="safe"] {
--ui-button-color: var(--ui-green, #1cad70);
}
/* warning button */
[data-type^="warn"],
[type^="warn"] {
--ui-button-color: var(--ui-orange, #f59b00);
}
/* danger button */
[data-type="danger"],
[data-type="error"],
[type="danger"],
[type="error"] {
--ui-button-color: var(--ui-red, #eb4646);
}
.ui-button[plain],
[is="ui-button"][plain] {
color: var(--ui-button-color);
background-color: var(--ui-white, #fff);
}
.ui-button[blank],
[is="ui-button"][blank] {
color: var(--ui-button-color);
background-color: transparent;
border: 0;
--ui-button-radius: 0;
flex: 1;
}
/* disabled status */
.ui-button.disabled,
.ui-button:disabled,
[is="ui-button"].disabled,
[is="ui-button"]:disabled {
opacity: var(--ui-opacity, .4);
cursor: default;
}
/* loading status */
.ui-button.loading,
[is="ui-button"].loading {
pointer-events: none;
color: transparent !important;
position: relative;
cursor: default;
}
/* button 按钮 */
.ui-button.loading::before,
[is="ui-button"].loading::before {
content: "";
position: absolute;
inset: 0;
width: var(--ui-basic-width, 1.25rem);
height: var(--ui-basic-height, 1.25rem);
background-color: var(--ui-white,#fff);
-webkit-mask: var(--ui-button-loading-img);
mask: var(--ui-button-loading-img);
-webkit-mask-size: 100% 100%;
mask-size: 100% 100%;
margin: auto;
animation: spin 1s var(--ui-timing-function, linear) infinite;
}
@supports not (inset: 0) {
.ui-button.loading::before,
[is="ui-button"].loading::before {
left: 0; top: 0; right: 0; bottom: 0;
}
}
/* 白底按钮 */
.ui-button[plain].loading::before,
[is="ui-button"][plain].loading::before {
background-color: var(--ui-button-color);
}
[data-type="normal"].loading::before,
[data-type="default"].loading::before,
[type="normal"].loading::before,
[type="default"].loading::before {
background-color: var(--ui-blue,#2a80eb);
}
@keyframes spin {
from {
transform: rotate(0);
}
to {
transform: rotate(360deg);
}
}
/* error */
.ui-button[is-error],
[is="ui-button"][is-error] {
border-color: var(--ui-red, #eb4646) !important;
}
/**
*
* @Checkbox.css
* @author zhangxinxu
* @create 22-01-18
**/
/* checkbox基础变量 */
html {
--ui-checkbox-place: var(--ui-place-size, 1.5rem);
--ui-checkbox-size: var(--ui-basic-width, 1.25rem);
--ui-checkbox-radial: calc(var(--ui-checkbox-size) / 2);
}
[is="ui-checkbox"] {
--ui-mask-default: var(--ui-image-default, url(https://qidian.gtimg.com/lulu/hope/ui/Checkbox/assets/default.svg));
--ui-mask-indeterminate: var(--ui-image-indeterminate, url(https://qidian.gtimg.com/lulu/hope/ui/Checkbox/assets/indeterminate.svg));
--ui-mask-checked: var(--ui-image-checked, url(https://qidian.gtimg.com/lulu/hope/ui/Checkbox/assets/checked.svg));
}
[is="ui-checkbox"] {
all: initial;
-webkit-appearance: none;
appearance: none;
display: inline-flex;
width: var(--ui-checkbox-place);
height: var(--ui-checkbox-place);
vertical-align: calc(-0.5ex - (calc(var(--ui-checkbox-place) / 2 - var(--ui-checkbox-size) / 2)));
color: var(--ui-border, #d0d0d5);
background-color: currentColor;
-webkit-mask: no-repeat center / var(--ui-checkbox-size) var(--ui-radio-size);
mask: no-repeat center / var(--ui-checkbox-size) var(--ui-checkbox-size);
-webkit-mask-image: var(--ui-mask-default);
mask-image: var(--ui-mask-default);
-webkit-user-select: none;
user-select: none;
outline: none;
cursor: pointer;
}
[is="ui-checkbox"]:checked {
color: var(--ui-primary, #2a80eb);
-webkit-mask-image: var(--ui-mask-checked);
mask-image: var(--ui-mask-checked);
}
[is="ui-checkbox"]:indeterminate {
color: var(--ui-primary, #2a80eb);
-webkit-mask-image: var(--ui-mask-indeterminate);
mask-image: var(--ui-mask-indeterminate);
}
[is="ui-checkbox"]:disabled {
color: var(--ui-dark-border, #ababaf);
opacity: var(--ui-opacity, .4);
cursor: default;
}
[is="ui-checkbox"][is-error] {
color: var(--ui-red, #eb4646) !important;
}
@media (hover: hover) {
[is="ui-checkbox"]:enabled:hover {
filter: brightness(.9);
}
}
[is="ui-checkbox"][extends] {
display: none;
}
/**
*
* @Switch.css
* @author zhangxinxu
* @create 15-06-18
* @edit 17-06-14 keyboard accessible
* @editor shanyerong
* @edit 2020-04-30
**/
:root {
--ui-switch-width: 4rem;
--ui-switch-height: 2rem;
}
[is="ui-switch"] {
-webkit-appearance: none;
display: inline-flex;
outline: none;
box-sizing: border-box;
box-shadow: inset 0 1px, inset 1px 0, inset -1px 0, inset 0 -1px;
background-clip: content-box;
-webkit-appearance: none;
width: var(--ui-switch-width);
height: var(--ui-switch-height);
border: 2px solid;
border-radius: var(--ui-switch-height);
background-color: currentColor;
color: var(--ui-dark-gray, #b6bbc6);
font-size: 0;
transition: all var(--ui-animate-time, .2s);
cursor: pointer;
-webkit-user-select: none;
-ms-user-select: none;
user-select: none;
-webkit-tap-highlight-color: transparent;
}
[is="ui-switch"]:checked {
color: var(--ui-blue, #2a80eb);
background-color: var(--ui-blue, #2a80eb);
}
[is="ui-switch"]::before {
content: '';
flex: 0;
transition: flex var(--ui-animate-time, .2s);
}
[is="ui-switch"]::after {
content: "";
width: calc(var(--ui-switch-height) - 4px);
height: calc(var(--ui-switch-height) - 4px);
border-radius: 100%;
background-color: var(--ui-white, #ffffff);
opacity: 1;
visibility: visible;
}
[is="ui-switch"]:active {
box-shadow: inset 1px 1px 1px rgba(0, 0, 0, 0.1);
}
[is="ui-switch"]:checked::before {
flex: 1;
}
[is="ui-switch"]:disabled {
opacity: var(--ui-opacity, .4);
cursor: default;
}
:root {
--ui-date-popup-height: 20rem;
}
/**
*
* @Date.css
* @author xinxuzhang
* @create 15-07-03
*
**/
[is="ui-datetime"]::-webkit-clear-button,
[is="ui-datetime"]::-webkit-inner-spin-button,
[is="ui-datetime"]::-webkit-calendar-picker-indicator {
display: none;
}
[type="date"][is="ui-datetime"]::-webkit-datetime-edit-text {
color: transparent;
background: linear-gradient(
to bottom,
transparent 9px,
var(--ui-dark, #4c5161) 9px,
var(--ui-dark, #4c5161) 10px,
transparent 10px
)
no-repeat center;
background-size: 80% 100%;
}
[is="ui-datetime"]::-webkit-datetime-edit-text,
[is="ui-datetime"]::-webkit-datetime-edit-year-field,
[is="ui-datetime"]::-webkit-datetime-edit-month-field,
[is="ui-datetime"]::-webkit-datetime-edit-day-field,
[is="ui-datetime"]::-webkit-datetime-edit-hour-field,
[is="ui-datetime"]::-webkit-datetime-edit-minute-field,
[is="ui-datetime"]::-webkit-datetime-edit-ampm-field {
background: none;
color: var(--ui-dark, #4c5161);
}
[is="ui-datetime"]:disabled::-webkit-datetime-edit-text,
[is="ui-datetime"]:disabled::-webkit-datetime-edit-year-field,
[is="ui-datetime"]:disabled::-webkit-datetime-edit-month-field,
[is="ui-datetime"]:disabled::-webkit-datetime-edit-day-field,
[is="ui-datetime"]:disabled::-webkit-datetime-edit-hour-field,
[is="ui-datetime"]:disabled::-webkit-datetime-edit-minute-field,
[is="ui-datetime"]:disabled::-webkit-datetime-edit-ampm-field {
opacity: var(--ui-opacity, .4);
}
[is="ui-datetime"]:valid::-webkit-datetime-edit {
visibility: hidden;
}
[is="ui-datetime"]::-webkit-datetime-edit {
overflow: visible;
}
[is="ui-datetime"] {
font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
height: var(--ui-input-height);
line-height: var(--ui-input-line-height);
padding: calc((var(--ui-input-height) - var(--ui-input-line-height) - 2px) / 2) 8px;
padding-right: 20px; /* 下拉图标 */
border: 1px solid var(--ui-border, #d0d0d5);
border-radius: var(--ui-radius, 4px);
box-sizing: border-box;
font-size: var(--ui-font, 14px);
outline: none;
color: var(--ui-dark, #4c5161);
transition: border-color var(--ui-animate-time, .2s), background-color var(--ui-animate-time, .2s);
-webkit-tap-highlight-color: transparent;
-webkit-appearance: none;
background: var(--ui-white, #fff) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-205 297 200 200'%3E%3Cpath d='M-59.3 365.9c-5.1-5.2-13.4-5.2-18.5 0l-27.7 28.3-27.7-28.3c-5.1-5.2-13.4-5.2-18.5 0s-5.1 13.6 0 18.9l46.2 47.1 46.2-47.1c5.1-5.2 5.1-13.6 0-18.9z' fill='%232a80eb'/%3E%3C/svg%3E")
no-repeat right .25rem center;
background-size: 20px 20px;
user-select: none;
cursor: pointer;
}
[is="ui-datetime"]:read-write {
/* avoid firefox invalid style */
box-shadow: none;
color: transparent;
}
:disabled[is="ui-datetime"] {
color: var(--ui-gray, #a2a9b6);
background: var(--ui-light, #f7f9fa) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-205 297 200 200'%3E%3Cpath d='M-59.3 365.9c-5.1-5.2-13.4-5.2-18.5 0l-27.7 28.3-27.7-28.3c-5.1-5.2-13.4-5.2-18.5 0s-5.1 13.6 0 18.9l46.2 47.1 46.2-47.1c5.1-5.2 5.1-13.6 0-18.9z' fill='%232a80eb' fill-opacity='0.4' /%3E%3C/svg%3E") no-repeat right 3px center;
background-size: 20px 20px;
cursor: default;
}
:active[is="ui-datetime"] {
background-color: var(--ui-light, #f7f9fa);
}
[is-error][is="ui-datetime"] {
border-color: var(--ui-red, #eb4646);
}
[is="ui-datetime"]:not(:disabled):hover {
border-color: var(--ui-dark-border, #ababaf);
}
[is="ui-datetime"]:not(:disabled):active {
background-color: var(--ui-light, #f7f9fa);
}
[is="ui-datetime"]:not([type]) {
width: 125px;
}
[is="ui-datetime"][type="date"] {
min-width: 125px;
}
[is="ui-datetime"][type="year"],
[is="ui-datetime"][type="time"],
[is="ui-datetime"][type="hour"],
[is="ui-datetime"][type="minute"] {
width: 6em;
}
[is="ui-datetime"][type="month"] {
width: 125px;
}
[is="ui-datetime"][type="time"] {
width: auto;
}
/* for Safari */
@supports not (text-align-last: auto) {
[is="ui-datetime"][type="time"] {
max-width: 125px;
}
}
@supports not (-moz-appearance: none) {
[is="ui-datetime"][type="time"] {
padding-right: 2.25em;
}
}
/* 选择浮层 */
.ui-date-container {
display: flex;
-webkit-user-select: none;
user-select: none;
justify-content: center;
}
.ui-year-container,
.ui-month-container,
.ui-day-container {
position: relative;
}
.ui-year-container::before,
.ui-month-container::before,
.ui-day-container::before,
.ui-hour-container::before,
.ui-minute-container::before,
.ui-second-container::before {
content: '';
height: 2.5rem;
box-shadow: 0 1px var(--ui-light-border, #ededef), 0 -1px var(--ui-light-border, #ededef);
position: absolute;
left: -50vw; right: -50vw;
top: calc(50% - 1.25rem);
pointer-events: none;
}
.ui-year-container::after,
.ui-month-container::after,
.ui-day-container::after,
.ui-hour-container::after,
.ui-minute-container::after,
.ui-second-container::after {
content: '';
position: absolute;
left: 0; right: 0; top: 0; bottom: 0;
background: linear-gradient(#fff, #fff1 calc(50% - 5rem) calc(50% + 5rem), #fff);
pointer-events: none;
}
.ui-date-container[is-error]::before {
content: '超出范围';
font-size: .75rem;
line-height: 2;
position: absolute;
left: 1rem;
top: calc(50% - .75rem);
color: var(--ui-red, #eb4646);
}
.ui-date-container ui-scroll-snap-item {
line-height: 1.5rem;
padding: 1rem;
}
.ui-date-container ui-scroll-snap-item:empty {
height: calc(var(--ui-date-popup-height) / 2 - 1.75rem);
box-sizing: border-box;
}
.ui-date-container ui-scroll-snap {
height: var(--ui-date-popup-height);
}
.ui-date-container [selected] {
color: var(--ui-blue, #2a80eb);
}
.ui-date-container [disabled] {
color: var(--ui-gray, #a2a9b6);
}
.ui-date-container a {
text-decoration: none;
transition: background-color var(--ui-animate-time, .2s), color var(--ui-animate-time, .2s);
}
.ui-date-head {
padding: 5px 0 0;
overflow: hidden;
}
.ui-date-content {
display: flex;
}
.ui-date-switch {
display: block;
line-height: 30px;
margin: 0 35px;
border-radius: calc(var(--ui-radius, 4px) - 2px);
color: var(--ui-dark, #4c5161);
text-align: center;
}
a.ui-date-switch:hover,
a.ui-date-item:not(.selected):hover {
color: var(--ui-dark, #4c5161);
background-color: #f0f0f2;
}
.ui-minute-x,
.ui-hour-x,
.ui-year-x,
.ui-month-x,
.ui-date-x {
width: 225px;
}
.ui-minute-x[data-step="1"] {
width: 328px;
}
.ui-minute-x[data-step="2"] {
width: 276px;
}
.ui-minute-body {
padding-left: 12px;
padding-bottom: 12px;
}
.ui-hour-body {
padding: 8px 0 12px 12px;
}
.ui-year-body,
.ui-month-body,
.ui-date-body {
padding-left: 5px;
padding-right: 2px;
padding-bottom: 5px;
}
.ui-date-item {
display: inline-block;
border-radius: calc(var(--ui-radius, 4px) - 2px);
text-align: center;
font-size: 13px;
color: var(--ui-dark, #4c5161);
}
span.ui-date-item {
opacity: var(--ui-opacity, .4);
}
.ui-date-item.col0,
.ui-date-item.col6,
.ui-day-item.col0,
.ui-day-item.col6 {
color: var(--ui-red, #eb4646);
}
.ui-date-tr:last-child .ui-date-item:empty {
display: none;
}
.ui-minute-body .ui-date-item,
.ui-hour-body .ui-date-item {
width: 45px;
line-height: 26px;
margin-top: 4px;
margin-right: 7px;
}
.ui-year-body .ui-date-item,
.ui-month-body .ui-date-item {
width: 45px;
line-height: 54px;
margin-top: 5px;
margin-left: 7px;
}
.ui-date-now {
display: block;
line-height: 30px;
margin: 0 5px 5px;
text-align: center;
}
.ui-day-x {
padding: 0 2px 0 5px;
text-align: center;
}
.ui-day-item,
.ui-date-body .ui-date-item {
display: inline-block;
width: 28px;
line-height: 28px;
margin-right: 3px;
margin-top: 1px;
vertical-align: top;
}
.ui-range-x {
width: 458px;
}
.ui-range-body {
overflow: hidden;
}
.ui-range-body .ui-date-half + .ui-date-half {
border-left: 1px solid #f0f0f2;
margin-left: -1px;
}
.ui-range-footer {
padding: 5px 15px 15px;
text-align: right;
}
.ui-range-footer > .ui-button {
margin-left: 10px;
}
.ui-date-container .selected {
background-color: var(--ui-blue, #2a80eb);
color: var(--ui-white, #ffffff);
cursor: default;
}
.ui-date-container span.selected {
opacity: var(--ui-opacity, .4);
}
.ui-range-body .ui-date-half {
width: 229px;
}
.ui-range-body .ui-date-body {
padding-left: 6px;
padding-right: 0;
}
.ui-range-body .ui-month-body {
margin-bottom: 15px;
}
.ui-range-date-body .selected {
width: 26px;
line-height: 26px;
border: 1px solid var(--ui-blue, #2a80eb);
border-right-width: 4px;
margin-right: 0;
border-radius: 0;
}
.ui-range-body .selected.col0 {
margin-left: -6px;
border-left-width: 7px;
}
.ui-range-body .selected.col6 {
border-right-width: 10px;
}
.ui-range-body .selected.ui-date-first:not(.col0) {
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
}
.ui-range-body .selected.ui-date-last:not(.col6) {
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
}
.ui-range-body .ui-date-begin,
.ui-range-body .ui-date-end {
border-radius: 0;
width: 26px;
background-color: var(--ui-white, #ffffff);
color: var(--ui-dark, #4c5161);
}
.ui-range-body .ui-date-begin {
border-right-width: 4px;
border-left-width: 1px;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
}
.ui-range-body .ui-date-end {
margin-right: 3px;
border-right-width: 1px;
border-top-right-radius: 2px;
border-bottom-right-radius: 2px;
}
.ui-range-body .ui-date-begin:hover,
.ui-range-body .ui-date-end:hover {
background-color: var(--ui-white, #ffffff);
color: var(--ui-dark, #4c5161);
}
.ui-range-body .ui-date-begin.col6 {
border-right-width: 0;
padding-right: 9px;
}
.ui-range-body .ui-date-begin.col0 {
border-left-width: 1px;
margin-left: 0;
}
.ui-range-body .ui-date-end.col0 {
border-left-width: 0;
padding-left: 7px;
}
.ui-range-body .ui-date-end.col6 {
border-right-width: 1px;
}
.ui-range-body .ui-date-begin.ui-date-end {
margin-right: 3px;
padding: 0;
border: 1px solid var(--ui-blue, #2a80eb);
border-radius: calc(var(--ui-radius, 4px) - 2px);
}
.ui-range-body .ui-date-begin + .ui-date-end {
border-left-width: 1px;
margin-right: 3px;
}
.ui-time-x {
display: inline-flex;
gap: 5px;
padding: 5px;
}
.ui-time-col {
height: calc(290px);
overflow: auto;
overflow: overlay;
scrollbar-width: none;
overscroll-behavior: contain;
}
.ui-time-col::-webkit-scrollbar {
display: none;
}
.ui-time-item {
display: block;
border: 0;
background-color: var(--ui-white, #fff);
padding: 0 1em;
height: var(--ui-component-height, 40px);
color: var(--ui-dark, #4c5161);
}
.ui-time-item:disabled {
opacity: var(--ui-opacity, .4);
}
.ui-time-item:not(:disabled):not(.selected):hover {
background-color: var(--ui-list-hover, #f0f7ff);
}
.ui-time-item[data-visibility="false"] {
display: none;
}
/**
*
* @Dialog.css
* @author zhangxinxu
* @create 15-06-18
* @edit 19-10-31
*
**/
:root {
--ui-url-close: url("data:image/svg+xml,%3Csvg viewBox='0 0 1024 1024' xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cpath d='M594.698 511.995l186.788-186.808a37.693 37.693 0 0 0 0-53.35l-26.7-26.702c-14.7-14.75-38.6-14.75-53.351 0L514.637 431.933 327.839 245.13a37.755 37.755 0 0 0-53.402 0l-26.65 26.701a37.693 37.693 0 0 0 0 53.35L434.576 511.99 247.788 698.778a37.755 37.755 0 0 0 0 53.401l26.65 26.701a37.847 37.847 0 0 0 53.4 0l186.799-186.819L701.44 778.885c14.75 14.7 38.65 14.7 53.35 0l26.701-26.7a37.755 37.755 0 0 0 0-53.402L594.698 511.995z' fill='%23bbb'/%3E%3C/svg%3E");
--ui-dialog-icon-url: url("data:image/svg+xml,%3Csvg width='401' height='401' viewBox='0 0 401 401' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M200.501.5C310.958.5 400.5 90.042 400.5 200.5c0 110.457-89.542 199.999-199.999 199.999C90.043 400.499.5 310.957.5 200.5.5 90.042 90.043.5 200.501.5zm5.002 280.002h-10a5 5 0 0 0-5 4.999v20.002a5 5 0 0 0 5 5h10a5 5 0 0 0 5-5v-20.002a5 5 0 0 0-5-4.999zm0-179.999h-10a5 5 0 0 0-5 5v150a5 5 0 0 0 5 5h10a5 5 0 0 0 5-5v-150a5 5 0 0 0-5-5z' fill='%23F59B00' fill-rule='nonzero'/%3E%3C/svg%3E");
--ui-dialog-success-url:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='400' viewBox='0 0 400 400'%3E%3Cpath fill='%231cad70' d='M400.5 200.5c0 110.457-89.542 199.999-199.999 199.999C90.043 400.499.5 310.957.5 200.5m0 0C.5 90.042 90.043.5 200.501.5 310.958.5 400.5 90.042 400.5 200.5'/%3E%3Cpath fill='%23FFF' d='M286.398 147.132c-1.654-1.134-3.306-2.395-6.801-4.293-4.271-2.336-9.259 2.624-12.391 6.816l-77.641 102.279-47.916-63.522c-3.144-4.188-4.902-8.468-13.073-1.859-3.097 2.123.234-.361-3.969 2.881-3.884 3.064-4.105 8.598-.971 12.774 0 0 38.641 55.817 45.883 65.074 10.625 13.22 29.944 12.57 40.087 0 7.483-9.473 77.757-107.584 77.757-107.584 3.14-4.194 2.898-9.697-.965-12.566z'/%3E%3C/svg%3E");
}
[is="ui-dialog"] {
position: fixed;
left: 0;
top: 0;
height: 100%;
width: 100%;
padding: 0;
border: 0;
background-color: rgba(25, 28, 34, 0.88);
color: var(--ui-dark, #4c5161);
font-size: var(--ui-font, 14px);
overflow: auto;
z-index: 19;
display: grid;
place-items: center;
}
[is="ui-dialog"]:not([open]) {
display: none;
}
.ui-dialog-animation {
animation: dialogyFadeIn var(--ui-animate-time, .2s) both;
}
/* 多个弹框出现的时候,隐藏后面弹框的背景 */
[is="ui-dialog"][open] + [is="ui-dialog"] {
transition: background-color var(--ui-animate-time, .2s);
background-color: transparent;
}
.ui-dialog {
display: flex;
flex-direction: column;
width: var(--ui-dialog-width, fit-content);
height: var(--ui-dialog-height, fit-content);
max-width: calc(100vw - 2rem);
line-height: 1.5;
text-align: center;
border-radius: var(--ui-dialog-radius, 1rem);
background-color: var(--ui-white, #fff);
outline: none;
position: relative;
}
.ui-dialog-animation .ui-dialog {
animation: tinydown var(--ui-animate-time, .2s);
}
.ui-dialog-title {
margin: 0;
padding: 1.5rem 1.5rem 0;
font-size: 100%;
font-weight: bold;
color: var(--ui-dark, #4c5161);
-webkit-user-select: none;
user-select: none;
}
.ui-dialog-close {
position: absolute;
top: .25rem;
right: .25rem;
width: 2.5rem;
height: 2.5rem;
border: 0;
background: none;
font-size: 0;
border-top-right-radius: var(--ui-dialog-radius, 1rem);
cursor: pointer;
z-index: 1;
}
.ui-dialog-close::before {
content: '';
position: absolute;
left: 0; top: 0;
width: inherit; height: inherit;
background-color: var(--ui-gray, #a2a9b6);
transition: background-color var(--ui-animate-time, .2s);
-webkit-mask: var(--ui-url-close) no-repeat center / 1.5rem;
mask: var(--ui-url-close) no-repeat center / 1.5rem;
}
.ui-dialog-close:hover::before {
background-color: var(--ui-dark, #4c5161);
}
.ui-dialog-body {
display: flow-root;
padding: 1rem 1.5rem;
}
.ui-dialog-title:empty ~ .ui-dialog-body {
min-height: 2.5rem;
}
.ui-dialog-footer {
display: flex;
margin-top: auto;
max-height: 3rem;
opacity: 1;
transition: max-height var(--ui-animate-time, .2s), opacity var(--ui-animate-time, .2s) var(--ui-animate-time, .2s);
overflow: hidden;
}
.ui-dialog-footer:not(:empty) {
box-shadow: 0 -1px var(--ui-light-border, #ededef);
}
.ui-dialog-footer:empty {
max-height: 0;
opacity: 0;
}
.ui-dialog-footer .ui-button {
flex: 1;
}
.ui-dialog-stretch {
max-height: 2000px;
height: calc(100% - 50px);
}
.ui-dialog-stretch .ui-dialog-footer {
position: absolute;
left: 0;
bottom: 0;
right: 0;
}
.ui-dialog-stretch .ui-dialog-body {
position: absolute;
left: 0;
right: 0;
top: 50px;
bottom: 90px;
padding: 0 0 0 25px;
overflow: auto;
}
/* alert | comfirm */
[icon] .ui-dialog-confirm::before,
[icon] .ui-dialog-alert::before {
content: '';
display: block;
height: 4rem;
background-size: contain;
background-repeat: no-repeat;
background-position: top;
}
.ui-dialog-success::before {
background-image: var(--ui-dialog-success-url), none;
}
.ui-dialog-warning::before,
.ui-dialog-danger::before,
.ui-dialog-remind::before {
-webkit-mask-image: var(--ui-dialog-icon-url);
mask-image: var(--ui-dialog-icon-url);
-webkit-mask-repeat: no-repeat;
mask-repeat: no-repeat;
-webkit-mask-position: top;
mask-position: top;
-webkit-mask-size: 2.5rem;
mask-size: 2.5rem;
}
.ui-dialog-remind::before {
background-color: var(--ui-blue, #2a80eb);
}
.ui-dialog-warning::before {
background-color: var(--ui-orange, #f59b00);
}
.ui-dialog-danger::before {
background-color: var(--ui-red, #eb4646);
}
.ui-dialog-alert,
.ui-dialog-confirm {
max-width: min(340px, calc(100vw - 2rem));
min-width: 288px;
min-height: 40px;
word-wrap: break-word;
overflow: hidden;
position: relative;
}
.ui-dialog-wrap > h6 {
font-size: 100%;
margin-bottom: .375rem;
margin-top: 0;
}
.ui-dialog-wrap > p {
margin: 0;
}
.ui-dialog-remind,
.ui-dialog-success,
.ui-dialog-warning,
.ui-dialog-danger {
display: flex;
flex-direction: column;
justify-content: center;
margin-bottom: 1.25rem;
}
.ui-dialog-loading {
min-width: 14.5rem;
}
.ui-dialog-loading .ui-dialog-footer {
visibility: hidden;
}
.ui-dialog-loading .ui-dialog-title,
.ui-dialog-loading .ui-dialog-close {
display: none;
}
@keyframes dialogyFadeIn {
0% { opacity: 0; }
100% { opacity: 1; }
}
/**
* @Drop.css
* @author zhangxinxu
* @create 20-12-15
* @edit 22-06-16 zhangxinxu
**/
ui-drop {
display: inline-flex;
}
ui-drop[tabindex="0"] {
cursor: pointer;
}
ui-drop ~ .ui-drop-target {
position: absolute;
z-index: 9;
}
ui-drop:not([open]) ~ .ui-drop-target {
display: none;
}
/**
*
* @DropList.css
* @author xinxuzhang
* @create 15-07-01
* @edit 19-10-20 sunmeiye
* @edit 22-06-16 zhangxinxu
**/
.ui-droplist-x {
position: absolute;
width: 111px;
padding: 7px 0;
background-color: var(--ui-white, #ffffff);
box-shadow: 0 2px 5px rgba(0, 0, 0, .25);
--safe-area: 3px;
border: 1px solid var(--ui-border, #d0d0d5);
border-radius: var(--ui-radius, 4px);
font-size: var(--ui-font, 14px);
animation: fadeIn var(--ui-animate-time, .2s);
z-index: 9;
}
.ui-droplist-li {
display: block;
line-height: 20px;
padding: 7px 12px 8px;
color: var(--ui-dark, #4c5161);
text-decoration: none;
cursor: pointer;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
.ui-droplist-hr {
border: 0;
border-bottom: 1px solid var(--ui-border, #d0d0d5);
margin: 7px 12px;
opacity: .4;
}
.ui-droplist-hr:first-child {
display: none;
}
a.ui-droplist-li:hover {
color: var(--ui-dark, #4c5161);
background-color: var(--ui-list-hover, #f0f7ff);
}
a.ui-droplist-li:hover::after {
background-position: 0 -20px;
}
span.ui-droplist-li {
color: var(--ui-gray, #a2a9b6);
cursor: default;
}
.ui-droplist-li[role="heading"] {
font-weight: 700;
padding-bottom: 5px;
cursor: default;
}
[role="heading"] ~ .ui-droplist-li:not([role="heading"]) {
padding-left: 24px;
}
.ui-droplist-li.disabled {
opacity: var(--ui-opacity, .4);
}
.ui-droplist-li[data-sublist]::before {
transform: rotate(-90deg);
margin-top: 1px;
float: right;
}
.ui-droplist-x > .selected {
background-color: var(--ui-list-selected, #e0f0ff);
}
.selected + .ui-droplist-xx > .ui-droplist-x {
display: block;
}
.ui-droplist-xx {
position: relative;
}
.ui-droplist-xx > .ui-droplist-x {
display: none;
left: calc(100% - 5px);
top: -35px;
}
.ui-droplist-xx > .reverse {
left: auto;
right: calc(100% - 5px);
}
.ui-droplist-arrow:not(:empty) {
display: inline-flex;
align-items: center;
vertical-align: middle;
}
.ui-droplist-arrow:empty,
.ui-droplist-arrow:not(:empty)::after,
.ui-droplist-li[data-sublist]::before {
content: '';
display: inline-block;
width: 20px;
height: 20px;
background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-205 197 200 400'%3E%3Cpath d='M-59.7 271.6c-4.2-4.1-11-4.1-15.3 0l-30.5 29.6-30.5-29.6c-4.2-4.1-11-4.1-15.3 0-4.2 4.1-4.2 10.7 0 14.8l38.2 37c4.2 4.1 11 4.1 15.3 0l38.2-37c4.1-4.1 4.1-10.7-.1-14.8z' fill='%23a2a9b6'/%3E%3Cpath d='M-58.7 471.6c-4.2-4.1-11-4.1-15.3 0l-30.5 29.6-30.5-29.6c-4.2-4.1-11-4.1-15.3 0-4.2 4.1-4.2 10.7 0 14.8l38.2 37c4.2 4.1 11 4.1 15.3 0l38.2-37c4.1-4.1 4.1-10.7-.1-14.8z' fill='%232a80eb'/%3E%3C/svg%3E"), none;
background-size: 20px 40px;
vertical-align: -5px;
}
a:active .ui-droplist-arrow:empty,
.ui-droplist-arrow:not(:empty):active::after {
background-position: 0 -20px;
}
/**
*
* @ErrorTip.css
* @author zhangxinxu
* @create 22-06-01
*
**/
:root {
--ui-tips-triangle-size: 6px; /* 底为 6*2,高为 6 */
--ui-tips-bg: #373c42;
--ui-tips-error-bg: linear-gradient(90deg, #ff8da2, #ec5b60);
}
/* JS生成的,和CSS定位样式不合并,保持独立 */
.ui-tips-x {
position: absolute;
width: fit-content;
z-index: 99;
margin-top: -6px;
max-width: 20em;
padding: calc(6px + var(--ui-tips-triangle-size)) calc(10px + var(--ui-tips-triangle-size));
line-height: 18px;
color: var(--ui-white, #fff);
font-size: calc(var(--ui-font, 14px) - 2px);
font-style: normal;
text-align: left;
}
.ui-tips-x::before,
.ui-tips-x::after {
content: "";
display: block;
position: absolute;
width: 100%;
height: 100%;
left: 0;
top: 0;
background: var(--ui-tips-bg);
}
.ui-tips-x::before {
z-index:-1;
clip-path: inset(
var(--ui-tips-triangle-size)
var(--ui-tips-triangle-size)
var(--ui-tips-triangle-size)
var(--ui-tips-triangle-size)
round calc(var(--ui-radius, 4px) - 1px));
}
.ui-tips-x::after {
clip-path: polygon(
calc(50% - var(--ui-tips-triangle-size)) calc(100% - (var(--ui-tips-triangle-size) + 1px)),
calc(50% + var(--ui-tips-triangle-size)) calc(100% - (var(--ui-tips-triangle-size) + 1px)),
50% 100%
);}
@media (any-hover: none) {
html {
--hoverNone: 'true';
}
}
/* 悬浮在左右侧的,限定最大宽度 */
.ui-tips-x[data-align="8-6"],
.ui-tips-x[data-align="6-8"] {
max-width: 600px;
}
/* 悬浮在目标正下方,箭头在框体 50% 0 位置 */
.ui-tips-x[data-align="7-5"] {
margin-top: 6px;
}
.ui-tips-x[data-align="7-5"]::after {
clip-path: polygon(
calc(50% - var(--ui-tips-triangle-size)) calc(0% + (var(--ui-tips-triangle-size) + 1px)),
calc(50% + var(--ui-tips-triangle-size)) calc(0% + (var(--ui-tips-triangle-size) + 1px)),
50% 0%
);
}
/* 悬浮在目标左上,箭头在框体 100% -16px, 100% 位置 */
.ui-tips-x[data-align="2-3"] {
margin-left: 12px;
margin-top: -6px;
}
.ui-tips-x[data-align="2-3"]::after {
clip-path: polygon(
calc(100% - 16px) calc(100% - (var(--ui-tips-triangle-size) + 1px)),
calc(100% - (16px + var(--ui-tips-triangle-size)*2)) calc(100% - (var(--ui-tips-triangle-size) + 1px)),
calc(100% - (16px + var(--ui-tips-triangle-size))) 100%
);
}
/* 悬浮在目标右上,箭头在框体 16px, 100% 位置 */
.ui-tips-x[data-align="1-4"] {
margin-left: -12px;
margin-top: -6px;
}
.ui-tips-x[data-align="1-4"]::after {
clip-path: polygon(
16px calc(100% - (var(--ui-tips-triangle-size) + 1px)),
calc(16px + var(--ui-tips-triangle-size)*2) calc(100% - (var(--ui-tips-triangle-size) + 1px)),
calc(16px + var(--ui-tips-triangle-size)) 100%
);
}
/* 悬浮在目标左侧,箭头在框体 100%, 50% 位置 */
.ui-tips-x[data-align="8-6"] {
margin-left: -6px;
margin-top: 0;
}
.ui-tips-x[data-align="8-6"]::after {
clip-path: polygon(
calc(100% - (var(--ui-tips-triangle-size) + 1px)) calc(50% - var(--ui-tips-triangle-size)),
calc(100% - (var(--ui-tips-triangle-size) + 1px)) calc(50% + var(--ui-tips-triangle-size)),
100% 50%
);
}
/* 悬浮在目标右侧,箭头在框体 0%, 50% 位置 */
.ui-tips-x[data-align="6-8"] {
margin-left: 6px;
margin-top: 0;
}
.ui-tips-x[data-align="6-8"]::after {
clip-path: polygon(
calc(0% + (var(--ui-tips-triangle-size) + 1px)) calc(50% - var(--ui-tips-triangle-size)),
calc(0% + (var(--ui-tips-triangle-size) + 1px)) calc(50% + var(--ui-tips-triangle-size)),
0% 50%
);
}
/* 悬浮在目标左下侧,箭头在框体 100% - 16px, 0% 位置 */
.ui-tips-x[data-align="3-2"] {
margin-left: 12px;
margin-top: 6px;
}
.ui-tips-x[data-align="3-2"]::after {
clip-path: polygon(
calc(100% - 16px) calc(0% + (var(--ui-tips-triangle-size) + 1px)),
calc(100% - (16px + var(--ui-tips-triangle-size)*2)) calc(0% + (var(--ui-tips-triangle-size) + 1px)),
calc(100% - (16px + var(--ui-tips-triangle-size))) 0%
);
}
/* 悬浮在目标右下侧,箭头在框体 16px, 0% 位置*/
.ui-tips-x[data-align="4-1"] {
margin-left: -12px;
margin-top: 6px;
}
.ui-tips-x[data-align="4-1"]::after {
clip-path: polygon(
16px calc(0% + (var(--ui-tips-triangle-size) + 1px)),
calc(16px + var(--ui-tips-triangle-size)*2) calc(0% + (var(--ui-tips-triangle-size) + 1px)),
calc(16px + var(--ui-tips-triangle-size)) 0%
);
}
/* 错误提示的tips效果 */
.ui-tips-error:not(.none) {
animation: fadeIn var(--ui-animate-time, .2s), fallDown var(--ui-animate-time, .2s);
}
.ui-tips-error.ui-tips-x::before,
.ui-tips-error.ui-tips-x::after {
background: var(--ui-tips-error-bg);
/*background-color: var(--ui-red, #eb4646);*/
}
/* 浮层元素固定的样式 */
ui-float {
position: fixed;
top: 0;
left: 0;
z-index: 29;
}
ui-float:not([open]) {
display: none;
}
/**
*
* @FollowText.css
* @author zhangxinxu
* @create 22-06-09
**/
/*
* 结构如下:
* <ui-float type="text success"></ui-float>
*
*/
ui-float[type~="text"] {
position: absolute;
padding: .75rem 1rem;
line-height: 1.25rem;
font-size: .875rem;
white-space: nowrap;
animation: textPopup 1s both;
-webkit-user-select: none;
user-select: none;
}
@keyframes textPopup {
0%, 100% { opacity: 0; }
5% { opacity: 1; }
100% { transform: translateY(-50px); }
}
ui-float[type~="success"] {
color: var(--ui-green, #1cad70);
}
ui-float[type~="error"] {
color: var(--ui-red, #eb4646);
}
ui-float[type~="warning"] {
color: var(--ui-orange, #f59b00);
}
/**
* @hr.css
* @description 分隔线样式效果
* @author zhangxinxu
* @create 22-01-14
**/
hr {
border-width: 0;
margin: 1em 0;
--ui-hr-border: var(--ui-border, #d0d0d5);
}
hr[v] {
min-height: 100%;
align-self: stretch;
border-left: 1px solid var(--ui-hr-border);
transform: scaleX(.51);
margin: 0;
}
hr:not([color]) {
border-color: var(--ui-hr-border);
}
hr:not([class*="ui-hr"]):not([v]),
.ui-hr-solid,
.ui-hr-weak,
.ui-hr-dashed {
border-top-width: 1px;
border-style: solid;
}
.ui-hr-dashed {
--mask-dashed: repeating-linear-gradient(to right, #000 0 var(--ui-hr-filled, 4px), transparent 0 calc(var(--ui-hr-filled, 4px) + var(--ui-hr-open, 6px)));
}
.ui-hr-dashed:not([data-content]) {
-webkit-mask-image: var(--mask-dashed);
mask-image: var(--mask-dashed);
}
.ui-hr-weak {
-webkit-mask-image: linear-gradient(to right, transparent, black, transparent);
mask-image: linear-gradient(to right, transparent, black, transparent);
}
.ui-hr-twill {
padding: 3px;
background: repeating-linear-gradient(135deg, var(--ui-hr-border) 0px, var(--ui-hr-border) 1px, transparent 1px, transparent 6px);
}
.ui-hr-twill-colorful {
padding: 3px;
background: linear-gradient(135deg, var(--ui-red, #eb4646), var(--ui-orange, #f59b00), var(--ui-green, #1cad70), var(--ui-blue, #2a80eb), var(--ui-purple, #c12cea));
--mask-image: repeating-linear-gradient(135deg, #000 0px, #000 1px, transparent 1px, transparent 6px);
-webkit-mask-image: var(--mask-image);
mask-image: var(--mask-image);
}
.ui-hr-wavy {
color: var(--ui-hr-border);
height: .5em;
white-space: nowrap;
letter-spacing: 100vw;
padding-top: .5em;
overflow: hidden;
}
.ui-hr-wavy::before {
content: "\2000\2000";
/* 不支持浏览器实线代替 */
text-decoration: overline;
/* 现代浏览器 */
text-decoration-style: wavy;
}
.ui-hr-shadow {
padding-top: 10px;
color: var(--ui-hr-border);
box-shadow: inset 0 10px 10px -10px, inset 0 1px rgb(0 0 0 / 5%);
margin-top: 0;
}
/* 带内容 */
hr[data-content] {
color: var(--ui-gray, #a2a9b6);
border: 0;
background: none;
font-size: 12px;
padding: 1em 0;
position: relative;
overflow: hidden;
}
hr[data-content]::before {
content: attr(data-content);
position: absolute;
padding: 0 1ch;
line-height: 1px;
border: solid var(--ui-hr-border);
border-width: 0 99vw;
width: fit-content;
white-space: nowrap;
left: 50%;
transform: translateX(-50%);
-webkit-text-fill-color: transparent;
}
/* 真实的内容,这么实现是方便实现 0.5px 尺寸 */
hr[data-content]::after {
content: attr(data-content);
position: absolute;
padding: 0 1ch;
line-height: 1px;
left: 50%;
transform: translateX(-50%);
}
.ui-hr-dashed[data-content]::before {
border-image: repeating-linear-gradient(90deg, var(--ui-hr-border), var(--ui-hr-border) 1px, transparent 1px, transparent 2px) 0 15% / / 0 repeat;
}
hr[data-content][color]::before {
border-left-color: inherit;
border-right-color: inherit;
}
/* 尺寸处理 */
hr:not([class*="ui-hr"]):not([v]),
hr[size="0.5"]:not([data-content]),
hr[size=".5"]:not([data-content]) {
transform: scaleY(0.51);
}
hr[size="2"]:not([data-content]),
hr[size="2"]:not([data-content]) {
transform: scaleY(2);
}
hr[size="0.5"][data-content]::before,
hr[size=".5"][data-content]::before {
transform: translateX(-50%) scaleY(0.51);
}
hr[size="2"][data-content]::before,
hr[size="2"][data-content]::before {
transform: translateX(-50%) scaleY(2);
}
/**
*
* @Input.css
* @author zhangxinxu(.com)
* @create 15-06-16
* @edit 17-06-13
19-07-18 version pure
20-04-03 version edge
22-01-25 version hope
*/
/* input基础变量 */
:root {
--ui-input-height: var(--ui-component-height, 3rem);
--ui-input-line-height: var(--ui-basic-height, 1.25rem);
--ui-input-radius