UNPKG

lu2

Version:

Simple and flexible UI component library based on native HTML and JavaScript

508 lines (433 loc) 11.6 kB
@charset "UTF-8"; @import '../ScrollSnap/index.css'; :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; }