@charset "utf-8";
// 定义datepicker的基础构造
@mixin _datepicker {
@include fullscreen;
@include flexbox;
@include flex-direction(column);
background-color: #fff;
text-align: center;
> .weeks {
@include flex(1, column);
position: relative;
}
> .week-bar,
.week {
@include flexbox;
width: 100%;
> li {
@include flex;
}
}
// 星期一,二...条(bar)
> .week-bar {
position: relative;
z-index: 2;
height: map-get($datepicker, week-bar-height);
line-height: map-get($datepicker, week-bar-height);
background-color: map-get($datepicker, week-bar-bgcolor);
color: map-get($datepicker, week-bar-color);
font-size: map-get($datepicker, week-bar-font-size);
}
// 底边线设置
.month-bar,
.sticky-bar,
.week {
@include border(
$border-width: 0 0 1px
);
}
// 月份bar
.month-bar,
.sticky-bar {
height: map-get($datepicker, month-bar-height);
line-height: map-get($datepicker, month-bar-height);
background-color: map-get($datepicker, month-bar-bgcolor);
color: map-get($datepicker, month-bar-color);
font-size: map-get($datepicker, month-bar-font-size);
font-weight: normal;
&::after {
border-color: map-get($datepicker, month-bar-border-color);
}
}
// 吸顶月份bar
.sticky-bar {
position: absolute;
z-index: 1;
top: 0;
left: 0;
right: 0;
}
// 日期每行
.week {
color: map-get($datepicker, week-color);
&::after {
border-color: map-get($datepicker, week-border-color);
}
> li {
position: relative;
height: map-get($datepicker, week-height);
}
}
.day,
.special {
display: inline-block;
margin: map-get($datepicker, day-margin);
font-size: map-get($datepicker, day-font-size);
line-height: map-get($datepicker, day-height);
vertical-align: top;
}
// 每个单日定义
.day {
@include square(map-get($datepicker, day-height));
@include border-radius(map-get($datepicker, day-radius));
}
// 特殊的日子
.special {
color: map-get($datepicker, special-color);
// 今天是特殊日子的场景
~ .special {
margin: -.05rem 0 0;
}
}
.today,
.holiday {
> .day {
display: none;
}
}
// 周末
.weekend {
color: map-get($datepicker, weekend-color);
}
// 不可选的日子
.disabled {
&,
> .special {
color: map-get($datepicker, disabled-color) !important;
}
}
// 起始和结束日定义
.start,
.end {
> .day {
display: inline-block;
background-color: map-get($datepicker, on-bgcolor);
color: map-get($datepicker, on-color);
}
> .special {
display: none;
}
&::after {
display: block;
color: map-get($datepicker, on-tip-color);
font-size: map-get($datepicker, on-tip-font-size);
}
}
.start::after {
content: map-get($datepicker, start-content);
}
.end::after {
content: map-get($datepicker, end-content);
}
// 选中日期段背景
.range {
background-color: map-get($datepicker, range-bgcolor);
}
}
/**
* @module widget
* @method yo-datepicker
* @version 1.8.1
* @description 构造yo-datepicker的自定义使用方法
* @demo http://doyoe.github.io/Yo/demo/widget/yo-datepicker.html
* @param {String} $name 定义扩展名称 <1.8.1>
* @param {Length} $week-bar-height 定义星期bar高度 <1.8.1>
* @param {Color} $week-bar-bgcolor 定义星期bar背景色 <1.8.1>
* @param {Color} $week-bar-color 定义星期bar文本色 <1.8.1>
* @param {Length} $week-bar-font-size 定义星期bar字号 <1.8.1>
* @param {Length} $month-bar-height 定义月份bar高度 <1.8.1>
* @param {Color} $month-bar-bordercolor 定义月份bar边线色 <1.8.1, 2.0.0>
* @param {Color} $month-bar-border-color 定义月份bar边线色 <2.0.0>
* @param {Color} $month-bar-bgcolor 定义月份bar背景色 <1.8.1>
* @param {Color} $month-bar-color 定义月份bar文本色 <1.8.1>
* @param {Length} $month-bar-font-size 定义月份bar字号 <1.8.1>
* @param {Length} $week-height 定义每行高度 <1.8.1>
* @param {Color} $week-bordercolor 定义每行边线色 <1.8.1, 2.0.0>
* @param {Color} $week-border-color 定义每行边线色 <2.0.0>
* @param {Color} $week-color 定义每行文本色 <1.8.1>
* @param {Length} $day-height 定义每日高度 <1.8.1>
* @param {Length} $day-margin 定义每日间距 <1.8.1>
* @param {Length} $day-radius 定义每日圆角 <1.8.1>
* @param {Length} $day-font-size 定义每日字号 <1.8.1>
* @param {Color} $special-color 定义特殊日文本色 <1.8.1>
* @param {Color} $weekend-color 定义周末文本色 <1.8.1>
* @param {Color} $disabled-color 定义禁用日子文本色 <1.8.1>
* @param {Color} $on-bgcolor 定义选中日期背景色 <1.8.1>
* @param {Color} $on-color 定义选中日期文本色 <1.8.1>
* @param {Color} $on-tip-color 定义选中日期提示语文本色 <1.8.1>
* @param {Length} $on-tip-font-size 定义选中日期提示语字号 <1.8.1>
* @param {String} $start-content 定义开始日期提示语 <1.8.1>
* @param {String} $end-content 定义结束日期提示语 <1.8.1>
* @param {Color} $range-bgcolor 选中日期段背景 <2.1.1>
*/
@mixin yo-datepicker(
$name: default,
$week-bar-height: default,
$week-bar-bgcolor: default,
$week-bar-color: default,
$week-bar-font-size: default,
$month-bar-height: default,
$month-bar-border-color: default,
$month-bar-bgcolor: default,
$month-bar-color: default,
$month-bar-font-size: default,
$week-height: default,
$week-border-color: default,
$week-color: default,
$day-height: default,
$day-margin: default,
$day-radius: default,
$day-font-size: default,
$special-color: default,
$weekend-color: default,
$disabled-color: default,
$on-bgcolor: default,
$on-color: default,
$on-tip-color: default,
$on-tip-font-size: default,
$start-content: default,
$end-content: default,
$range-bgcolor: default) {
// 区别是否新增实例还是修改本身
$name: if($name == default, "", "-#{$name}");
// 如果值为default,则取config的定义
@if $week-bar-height == default {
$week-bar-height: map-get($datepicker, week-bar-height);
}
@if $week-bar-bgcolor == default {
$week-bar-bgcolor: map-get($datepicker, week-bar-bgcolor);
}
@if $week-bar-color == default {
$week-bar-color: map-get($datepicker, week-bar-color);
}
@if $week-bar-font-size == default {
$week-bar-font-size: map-get($datepicker, week-bar-font-size);
}
@if $month-bar-height == default {
$month-bar-height: map-get($datepicker, month-bar-height);
}
@if $month-bar-border-color == default {
$month-bar-border-color: map-get($datepicker, month-bar-border-color);
}
@if $month-bar-bgcolor == default {
$month-bar-bgcolor: map-get($datepicker, month-bar-bgcolor);
}
@if $month-bar-color == default {
$month-bar-color: map-get($datepicker, month-bar-color);
}
@if $month-bar-font-size == default {
$month-bar-font-size: map-get($datepicker, month-bar-font-size);
}
@if $week-height == default {
$week-height: map-get($datepicker, week-height);
}
@if $week-border-color == default {
$week-border-color: map-get($datepicker, week-border-color);
}
@if $week-color == default {
$week-color: map-get($datepicker, week-color);
}
@if $day-height == default {
$day-height: map-get($datepicker, day-height);
}
@if $day-margin == default {
$day-margin: map-get($datepicker, day-margin);
}
@if $day-radius == default {
$day-radius: map-get($datepicker, day-radius);
}
@if $day-font-size == default {
$day-font-size: map-get($datepicker, day-font-size);
}
@if $special-color == default {
$special-color: map-get($datepicker, special-color);
}
@if $weekend-color == default {
$weekend-color: map-get($datepicker, weekend-color);
}
@if $disabled-color == default {
$disabled-color: map-get($datepicker, disabled-color);
}
@if $on-bgcolor == default {
$on-bgcolor: map-get($datepicker, on-bgcolor);
}
@if $on-color == default {
$on-color: map-get($datepicker, on-color);
}
@if $on-tip-color == default {
$on-tip-color: map-get($datepicker, on-tip-color);
}
@if $on-tip-font-size == default {
$on-tip-font-size: map-get($datepicker, on-tip-font-size);
}
@if $start-content == default {
$start-content: map-get($datepicker, start-content);
}
@if $end-content == default {
$end-content: map-get($datepicker, end-content);
}
@if $range-bgcolor == default {
$range-bgcolor: map-get($datepicker, range-bgcolor);
}
.yo-datepicker#{$name} {
// 星期一,二...条(bar)
> .week-bar {
@if $week-bar-height != map-get($datepicker, week-bar-height) {
height: $week-bar-height;
line-height: $week-bar-height;
}
@if $week-bar-bgcolor != map-get($datepicker, week-bar-bgcolor) {
background-color: $week-bar-bgcolor;
}
@if $week-bar-color != map-get($datepicker, week-bar-color) {
color: $week-bar-color;
}
@if $week-bar-font-size != map-get($datepicker, week-bar-font-size) {
font-size: $week-bar-font-size;
}
}
.month-bar,
.sticky-bar {
&::after {
@if $month-bar-border-color != map-get($datepicker, month-bar-border-color) {
border-color: $month-bar-border-color;
}
}
}
// 月份bar
.month-bar {
@if $month-bar-height != map-get($datepicker, month-bar-height) {
height: $month-bar-height;
line-height: $month-bar-height;
}
@if $month-bar-bgcolor != map-get($datepicker, month-bar-bgcolor) {
background-color: $month-bar-bgcolor;
}
@if $month-bar-color != map-get($datepicker, month-bar-color) {
color: $month-bar-color;
}
@if $month-bar-font-size != map-get($datepicker, month-bar-font-size) {
font-size: $month-bar-font-size;
}
}
// 吸顶月份bar
> .sticky-bar {
@if $month-bar-height != map-get($datepicker, month-bar-height) {
top: $month-bar-height;
}
}
// 日期每行
.week {
&::after {
@if $week-border-color != map-get($datepicker, week-border-color) {
border-color: $week-border-color;
}
}
@if $week-color != map-get($datepicker, week-color) {
color: $week-color;
}
> li {
@if $week-height != map-get($datepicker, week-height) {
height: $week-height;
}
}
}
.day,
.special {
@if $day-margin != map-get($datepicker, day-margin) {
margin: $day-margin;
}
@if $day-font-size != map-get($datepicker, day-font-size) {
font-size: $font-size;
}
@if $day-height != map-get($datepicker, day-height) {
line-height: $height;
}
}
// 每个单日定义
.day {
@if $day-height != map-get($datepicker, day-height) {
@include square($day-height);
}
@if $day-radius != map-get($datepicker, day-radius) {
border-radius: $day-radius;
}
}
// 特殊的日子
.special {
@if $special-color != map-get($datepicker, special-color) {
color: $special-color;
}
}
// 周末
.weekend {
@if $weekend-color != map-get($datepicker, weekend-color) {
color: $weekend-color;
}
}
// 不可选的日子
.disabled {
&,
> .special {
@if $disabled-color != map-get($datepicker, disabled-color) {
color: $disabled-color !important;
}
}
}
// 起始和结束日定义
.start,
.end {
> .day {
@if $on-bgcolor != map-get($datepicker, on-bgcolor) {
background-color: $on-bgcolor;
}
@if $on-color != map-get($datepicker, on-color) {
color: $on-color;
}
}
&::after {
@if $on-tip-color != map-get($datepicker, on-tip-color) {
color: $on-tip-color;
}
@if $on-tip-font-size != map-get($datepicker, on-tip-font-size) {
font-size: $on-tip-font-size;
}
}
}
.start::after {
@if $start-content != map-get($datepicker, start-content) {
content: $start-content;
}
}
.end::after {
@if $end-content != map-get($datepicker, end-content) {
content: $end-content;
}
}
.range {
@if $range-bgcolor != map-get($datepicker, range-bgcolor) {
background-color: $range-bgcolor;
}
}
// 增量扩展
@content;
}
}
// 调用本文件时载入datepicker基础构造
.yo-datepicker {
@include _datepicker;
}