UNPKG

tdesign-react

Version:
494 lines (417 loc) 10.9 kB
// 组件允许单个组件打包,因此默认引入公共基础样式 @import "../../base.less"; @import "./_var.less"; @import "./_mixin.less"; @import "../../mixins/_reset.less"; .@{prefix}-date-picker, .@{prefix}-date-range-picker { display: inline-flex; .reset; } .@{prefix}-date-picker__header-controller-month-popup, .@{prefix}-date-picker__header-controller-year-popup { > .@{prefix}-popup__content { max-height: @datepicker-panel-select-max-width; } } .@{prefix}-date-picker__panel-container, .@{prefix}-date-range-picker__panel-container { > .@{prefix}-popup__content { padding: 0; min-width: @datepicker-panel-container-min-width; } } .@{prefix}-date-picker__panel, .@{prefix}-date-range-picker__panel { display: flex; flex-direction: column; &--direction-row { flex-direction: row; } // 配合time-picker使用 需重置部分样式 .@{prefix}-time-picker__panel { width: @datepicker-time-panel-width; &-section-body { padding: 0; } &-body { margin: 0; } } } .@{prefix}-date-picker__panel-content, .@{prefix}-date-range-picker__panel-content, .@{prefix}-date-range-picker__panel-content-wrapper { display: flex; } .@{prefix}-date-picker__header { display: flex; align-items: center; justify-content: space-between; gap: @datepicker-header-gap; width: 100%; &-controller { display: inline-flex; gap: @datepicker-header-controller-gap; .@{prefix}-date-picker__header-controller-month { width: @datepicker-month-controller-width; display: flex; } .@{prefix}-date-picker__header-controller-year { width: @datepicker-year-controller-width; display: flex; } } } .@{prefix}-date-picker__table { table { width: 100%; border-collapse: collapse; th { text-align: center; color: @datepicker-th-font-color; font-weight: @datepicker-th-font-weight; } td.@{prefix}-date-picker__cell { text-align: center; font-weight: @datepicker-font-weight-medium; } th, th.@{prefix}-date-picker__table-header-cell, td.@{prefix}-date-picker__cell { padding: 0; border: 0; line-height: @text-line-height-base; } thead::after { content: "-"; display: block; line-height: @datepicker-thead-pseudo-line-height; color: transparent; } thead::before { content: "-"; display: block; line-height: @datepicker-thead-pseudo-line-height; color: transparent; } } // 周选择器交互 &-week-row { cursor: pointer; position: sticky; .@{prefix}-date-picker__cell:first-child .@{prefix}-date-picker__cell-inner { color: @datepicker-cell-disabled-color; } .@{prefix}-date-picker__cell:hover .@{prefix}-date-picker__cell-inner { box-shadow: none; background: none; } &::after { content: ""; position: absolute; left: @datepicker-week-firstcell-margin-left; right: 0; top: @datepicker-cell-inner-margin; z-index: 10; height: @datepicker-cell-height; border-radius: @border-radius-default; transition: @datepicker-transition; pointer-events: none; } &:hover { .@{prefix}-date-picker__cell:first-child .@{prefix}-date-picker__cell-inner { color: @brand-color; } &::after { box-shadow: inset 0 0 0 1px @brand-color; } } // 高亮 &--active { &::after { opacity: 1; z-index: 0; background-color: @datepicker-cell-active-background; } .@{prefix}-date-picker__cell:first-child .@{prefix}-date-picker__cell-inner { color: @brand-color; } .@{prefix}-date-picker__cell .@{prefix}-date-picker__cell-inner { background: transparent; color: @datepicker-cell-active-color; } } // 在高亮区间 &--range { &::after { opacity: 1; z-index: 0; background-color: @datepicker-highlight-color; } .@{prefix}-date-picker__cell .@{prefix}-date-picker__cell-inner { background: transparent; } } } } .@{prefix}-date-picker__footer { display: flex; justify-content: space-between; align-items: flex-start; padding: @datepicker-presets-padding; gap: @datepicker-presets-gap; &--bottom { border-top: 1px solid @datepicker-panel-divider-color; } &--top { border-bottom: 1px solid @datepicker-panel-divider-color; } &--left { flex-direction: column; border-right: 1px solid @datepicker-panel-divider-color; .@{prefix}-date-picker__presets { flex-direction: column; } } &--right { flex-direction: column; border-left: 1px solid @datepicker-panel-divider-color; .@{prefix}-date-picker__presets { flex-direction: column; } } } .@{prefix}-date-picker__presets { display: flex; gap: @datepicker-presets-gap; white-space: nowrap; min-width: @datepicker-presets-min-width; .@{prefix}-button { cursor: pointer; } a { color: @datepicker-presets-text-color; &:hover { color: @datepicker-presets-text-color-hover; } } } .@{prefix}-date-picker__panel-time, .@{prefix}-date-range-picker__panel-time { display: flex; flex-direction: column; gap: @datepicker-time-panel-gap; padding: @datepicker-time-panel-padding; border-left: 1px solid @datepicker-panel-divider-color; &-viewer { display: flex; height: @datepicker-time-header-viewer-size; line-height: @text-line-height-base; align-items: center; justify-content: center; color: @text-color-primary; } .@{prefix}-time-picker__panel-body { margin: 0; } } .@{prefix}-date-picker__panel-year, .@{prefix}-date-picker__panel-month, .@{prefix}-date-picker__panel-quarter, .@{prefix}-date-picker__panel-week, .@{prefix}-date-picker__panel-date { display: flex; flex-direction: column; padding: @datepicker-panel-padding; gap: @datepicker-panel-gap; width: @datepicker-panel-width; box-sizing: border-box; } // year month picker highlight .@{prefix}-date-picker__panel-year, .@{prefix}-date-picker__panel-month { .@{prefix}-date-picker__cell--hover-highlight + .@{prefix}-date-picker__cell--hover-highlight { &::before, &::after { opacity: 1; left: @datepicker-cell-month-year-left; } } .@{prefix}-date-picker__cell--hover-highlight + .@{prefix}-date-picker__cell--active { &::after { opacity: 1; left: @datepicker-cell-month-year-left; z-index: 5; } } .@{prefix}-date-picker__cell--highlight + .@{prefix}-date-picker__cell--highlight { &::before { left: @datepicker-cell-month-year-left; } } } .@{prefix}-date-picker__panel-year, .@{prefix}-date-picker__panel-month, .@{prefix}-date-picker__panel-quarter { .@{prefix}-date-picker__header-controller-year { width: 130px; display: flex; } .@{prefix}-date-picker__table { table { tbody { width: 100%; display: flex; gap: @datepicker-year-month-quarter-table-gap; flex-direction: column; tr { display: flex; justify-content: space-between; } } } } .@{prefix}-date-picker__cell--disabled + .@{prefix}-date-picker__cell--disabled:before { left: @datepicker-cell-disabled-left-large; } .@{prefix}-date-picker__cell:nth-child(1) { text-align: left; } .@{prefix}-date-picker__cell:nth-child(3) { text-align: right; } .@{prefix}-date-picker__cell-inner { width: @datepicker-cell-min-width-l; } } .@{prefix}-date-picker__cell { cursor: pointer; position: relative; padding: 0; &::before, &::after { content: ""; position: absolute; top: 50%; right: -5%; left: -5%; z-index: 1; opacity: 0; border-radius: @border-radius-default; height: @datepicker-cell-height; transform: translateY(-50%); transition: opacity @anim-duration-base @anim-time-fn-ease-out; } &:hover { .@{prefix}-date-picker__cell-inner { box-shadow: inset 0 0 0 1px @brand-color; } } &-inner { position: relative; z-index: 5; display: inline-flex; justify-content: center; align-items: center; width: @datepicker-cell-min-width; height: @datepicker-cell-height; margin: @datepicker-cell-inner-margin; border-radius: @datepicker-panel-border-radius; transition: @datepicker-transition; } &--now { .@{prefix}-date-picker__cell-inner { color: @datepicker-now-text-color; background: @datepicker-now-background-color; } } &--hover-highlight { &::after { opacity: 1; background-color: @datepicker-highlight-color; } } &--highlight { &::before { opacity: 1; background-color: @datepicker-highlight-color; } &.@{prefix}-date-picker__cell--hover-highlight { &::after { opacity: 1; background-color: @datepicker-hover-highlight-color; } } } &--additional { &:hover { .@{prefix}-date-picker__cell-inner { box-shadow: none; border-color: @datepicker-cell-hover-background; background-color: @datepicker-cell-hover-background; } } .@{prefix}-date-picker__cell-inner { color: @datepicker-cell-disabled-color; } } &--active { .@{prefix}-date-picker__cell-inner { color: @datepicker-cell-active-color; background-color: @datepicker-cell-active-background; } &-start { &::before { opacity: 1; left: @datepicker-cell-start-end-horizontal; border-top-left-radius: @border-radius-default; border-bottom-left-radius: @border-radius-default; } &:hover::before { left: -5%; } } &-end { &::before { opacity: 1; right: @datepicker-cell-start-end-horizontal; border-top-right-radius: @border-radius-default; border-bottom-right-radius: @border-radius-default; } &:hover::before { right: -5%; } } } &--disabled { &:hover { .@{prefix}-date-picker__cell-inner { box-shadow: none; background-color: @datepicker-cell-disable-background-color; } } .@{prefix}-date-picker__cell-inner { cursor: not-allowed; color: @datepicker-cell-disabled-color; background-color: @datepicker-cell-disable-background-color; } } &--disabled + &--disabled { &::before { opacity: 1; left: @datepicker-cell-disabled-left; background-color: @datepicker-cell-disable-background-color; border-radius: @border-radius-default; } } } // hover 日期淡化输入框 .@{prefix}-date-picker__input--placeholder { input { color: @text-color-placeholder; } }