//== foundational variables ==// $black: hsl(0, 0%, 4%) !default; $white: hsl(0, 0%, 100%) !default; $light: hsl(0, 0%, 96%) !default; // white-ter $dark: hsl(0, 0%, 21%) !default; // grey-darker $link: hsl(217, 71%, 53%) !default; // blue $grey-dark: lighten($black, 25%) !default; $grey-light: darken($light, 25%) !default; $grey-lighter: darken($light, 10%) !default; //== datepicker variables ==// $dp-background-color: $white !default; $dp-border-color: $grey-lighter !default; $dp-border-radius: 4px !default; $dp-border-radius-small: 2px !default; $dp-line-height-base: 1.5 !default; $dp-font-size-normal: 1rem !default; $dp-font-size-small: 0.75rem !default; $dp-font-weight-semibold: 600 !default; $dp-font-weight-bold: 700 !default; $dp-dropdown-offset: 4px !default; $dp-dropdown-shadow: 0 2px 3px rgba($black, 0.1), 0 0 0 1px rgba($black, 0.1) !default; $dp-dropdown-z: 20 !default; $dp-title-background-color: $light !default; $dp-cell-size-base: 2.25rem !default; $dp-cell-focus-background-color: darken($light, 5%) !default; $dp-cell-prevnext-color: hsl(0, 0%, 48%) !default; // grey $dp-cell-disabled-color: $grey-lighter !default; $dp-cell-selected-background-color: $link !default; $dp-cell-selected-color: #fff !default; // link(blue)-invert $dp-cell-selected-font-weight: 600 !default; $dp-cell-today-background-color: hsl(171, 100%, 41%) !default; // turquoise (primary) $dp-cell-today-color: #fff !default; // turquoise-invert $dp-cell-highlighted-background-color: $light !default; $dp-range-start-end-background-color: $grey-light !default; $dp-range-start-end-color: $dp-cell-selected-color !default; $dp-range-background-color: $grey-lighter !default; $dp-range-today-background-color: $dp-cell-today-background-color !default; $dp-week-color: $grey-light !default; $dp-footer-background-color: $light !default; $dp-input-in-edit-border-color: darken($link, 5%) !default; $dp-input-in-edit-focus-box-shadow-size: 0 0 0.25em 0.25em !default; //== non-configurable variables ==// $dp-cell-shrink-threshold: $dp-cell-size-base * 10; // = 8 * 1.25 $dp-cell-shrinked-width: $dp-cell-size-base * 7 / 8; //== mixins ==// @import 'mixins'; //== styles ==// .datepicker { display: none; &.active { display: block; } } .datepicker-dropdown { position: absolute; top: 0; left: 0; z-index: $dp-dropdown-z; padding-top: $dp-dropdown-offset; &.datepicker-orient-top { padding-top: 0; padding-bottom: $dp-dropdown-offset; } } .datepicker-picker { display: inline-block; border-radius: $dp-border-radius; background-color: $dp-background-color; .datepicker-dropdown & { box-shadow: $dp-dropdown-shadow; } span { display: block; flex: 1; border: 0; border-radius: $dp-border-radius; cursor: default; text-align: center; -webkit-touch-callout: none; user-select: none; } } .datepicker-main { padding: 2px; } .datepicker-footer { box-shadow: inset 0 1px 1px rgba($black, 0.1); background-color: $dp-footer-background-color; } %flex-container { display: flex; } %flex-wrap { flex-wrap: wrap; } %flex-basis-day { flex-basis: percentage(1 / 7); } %flex-basis-month-year { flex-basis: 25%; } %datepicker-cell-height { height: $dp-cell-size-base; line-height: $dp-cell-size-base; } .datepicker-title { box-shadow: inset 0 -1px 1px rgba($black, 0.1); background-color: $dp-title-background-color; padding: 0.375rem 0.75rem; text-align: center; font-weight: $dp-font-weight-bold; } .datepicker-controls { @extend %flex-container; .datepicker-header & { padding: 2px 2px 0; } @if mixin-exists(dp-button) { @include dp-button; } @else { .button { $button-color: $dark; $button-background-color: $white; $button-border-color: $grey-lighter; $button-border-width: 1px; $button-padding-vertical: calc(0.375em - #{$button-border-width}); $button-padding-horizontal: 0.75em; $button-hover-color: $dark; // link-hover $button-hover-border-color: $grey-light; // link-hover-border $button-focus-color: $dark; // link-focus $button-focus-border-color: $link; // link-focus-border $button-focus-box-shadow-size: 0 0 0 0.125em; $button-focus-box-shadow-color: rgba($link, 0.25); $button-active-color: $dark; // link-active $button-active-border-color: $grey-dark; // link-active-border display: inline-flex; position: relative; align-items: center; justify-content: center; margin: 0; border: $button-border-width solid $button-border-color; border-radius: $dp-border-radius; // control-radius box-shadow: none; background-color: $button-background-color; cursor: pointer; padding: $button-padding-vertical $button-padding-horizontal; height: 2.25em; // control-height vertical-align: top; text-align: center; line-height: $dp-line-height-base; // control-line-height white-space: nowrap; color: $button-color; font-size: $dp-font-size-normal; // size-normal &:focus, &:active { outline: none; } &:hover { border-color: $button-hover-border-color; color: $button-hover-color; } &:focus { border-color: $button-focus-border-color; color: $button-focus-color; &:not(:active) { box-shadow: $button-focus-box-shadow-size $button-focus-box-shadow-color; } } &:active { border-color: $button-active-border-color; color: $button-active-color; } &[disabled] { cursor: not-allowed; } .datepicker-header & { @include dp-header-button-common; &:hover { background-color: darken($white, 2.5%); } &:focus { &:not(:active) { box-shadow: 0 0 0 0.125em rgba($white, 0.25); } } &:active { background-color: darken($white, 5%); } &[disabled] { box-shadow: none; } } .datepicker-footer & { @include dp-footer-button-common; } } } .view-switch { flex: auto; } .prev-btn, .next-btn { padding-right: 0.375rem; padding-left: 0.375rem; width: $dp-cell-size-base; &.disabled { visibility: hidden; } } } .datepicker-view { @extend %flex-container; .days-of-week { @extend %flex-container; } .dow { @extend %flex-basis-day; height: $dp-font-size-normal * $dp-line-height-base; line-height: $dp-font-size-normal * $dp-line-height-base; font-size: ($dp-font-size-small + $dp-font-size-normal) / 2; font-weight: $dp-font-weight-bold; } .week { @extend %datepicker-cell-height; width: $dp-cell-size-base; color: $dp-week-color; font-size: $dp-font-size-small; @media (max-width: $dp-cell-shrink-threshold) { width: $dp-cell-shrinked-width; } } } .datepicker-grid { @extend %flex-container; @extend %flex-wrap; width: $dp-cell-size-base * 7; @media (max-width: $dp-cell-shrink-threshold) { .calendar-weeks + .days & { width: $dp-cell-shrinked-width * 7; } } } .datepicker-cell { @extend %datepicker-cell-height; &:not(.disabled):hover { background-color: darken($dp-background-color, 2.5%); cursor: pointer; } &.focused:not(.selected) { background-color: $dp-cell-focus-background-color; } &.selected { &, &:hover { background-color: $dp-cell-selected-background-color; color: $dp-cell-selected-color; font-weight: $dp-cell-selected-font-weight; } } &.disabled { color: $dp-cell-disabled-color; } &.prev, &.next { &:not(.disabled) { color: $dp-cell-prevnext-color; } &.selected { color: darken($dp-cell-selected-color, 10%); } } &.highlighted:not(.selected):not(.range):not(.today) { border-radius: 0; background-color: $dp-cell-highlighted-background-color; &:not(.disabled):hover { background-color: darken($dp-cell-highlighted-background-color, 2.5%); } &.focused { background-color: $dp-cell-focus-background-color; } } &.today { &:not(.selected) { background-color: $dp-cell-today-background-color; &:not(.disabled) { color: $dp-cell-today-color; } } &.focused:not(.selected) { background-color: darken($dp-cell-today-background-color, 2.5%); } } &%range-start-end-common { background-color: $dp-range-start-end-background-color; color: $dp-range-start-end-color; } &%range-start-end-focused-common { background-color: darken($dp-range-start-end-background-color, 2.5%); } &.range-start { border-radius: $dp-border-radius 0 0 $dp-border-radius; &:not(.selected) { @extend %range-start-end-common; } &.focused:not(.selected) { @extend %range-start-end-focused-common; } } &.range-end { border-radius: 0 $dp-border-radius $dp-border-radius 0; &:not(.selected) { @extend %range-start-end-common; } &.focused:not(.selected) { @extend %range-start-end-focused-common; } } &.range { border-radius: 0; background-color: $dp-range-background-color; &:not(.disabled):not(.focused):not(.today):hover { background-color: darken($dp-range-background-color, 2.5%); } &.disabled { color: darken($dp-range-background-color, 10%); } &.focused { background-color: darken($dp-range-background-color, 5%); } @if $dp-range-today-background-color != $dp-cell-today-background-color { &.today { background-color: $dp-range-today-background-color; } } } .datepicker-view .days & { @extend %flex-basis-day; } .datepicker-view.datepicker-grid & { @extend %flex-basis-month-year; height: $dp-cell-size-base * 2; line-height: $dp-cell-size-base * 2; } } .datepicker-input.in-edit { border-color: $dp-input-in-edit-border-color; &:focus, &:active { box-shadow: $dp-input-in-edit-focus-box-shadow-size rgba($dp-input-in-edit-border-color, 0.2); } }