// Calendars .calendar { border: @border-width solid @border-color; border-radius: @border-radius; display: block; min-width: 280px; text-align: center; .calendar-nav { align-items: center; background: @bg-color; border-top-left-radius: @border-radius; border-top-right-radius: @border-radius; display: flex; font-size: @font-size-lg; padding: @layout-spacing; } .calendar-header, .calendar-body { display: flex; flex-wrap: wrap; justify-content: center; padding: @layout-spacing 0; .calendar-date { flex: 0 0 14.28%; // 7 calendar-items each row max-width: 14.28%; } } .calendar-header { background: @bg-color; border-bottom: @border-width solid @border-color; color: @gray-color; font-size: @font-size-sm; } .calendar-body { color: @gray-color-dark; } .calendar-date { border: 0; padding: @unit-1; .date-item { appearance: none; background: transparent; border: @border-width solid transparent; border-radius: 50%; color: @gray-color-dark; .control-transition(); cursor: pointer; height: @unit-7; line-height: @unit-5; outline: none; padding: @unit-h; position: relative; text-align: center; text-decoration: none; vertical-align: middle; white-space: nowrap; width: @unit-7; &.date-today { border-color: @secondary-color-dark; color: @primary-color; } &:focus { .control-shadow(); } &:focus, &:hover { background: @secondary-color-light; border-color: @secondary-color-dark; color: @primary-color; text-decoration: none; } &:active, &.active { background: @primary-color-dark; border-color: darken(@primary-color-dark, 5%); color: @light-color; } // Calendar badge support &.badge { &::after { position: absolute; top: 3px; right: 3px; transform: translate(50%, -50%); } } } &.disabled .date-item, &.disabled .calendar-event, .date-item:disabled, .calendar-event:disabled { cursor: default; opacity: .25; pointer-events: none; } } .calendar-range { position: relative; &::before { background: @secondary-color; content: ""; height: @unit-7; left: 0; position: absolute; right: 0; top: 50%; transform: translateY(-50%); } &.range-start { &::before { left: 50%; } } &.range-end { &::before { right: 50%; } } .date-item { color: @primary-color; } } &.calendar-lg { .calendar-body { padding: 0; .calendar-date { border-bottom: @border-width solid @border-color; border-right: @border-width solid @border-color; display: flex; flex-direction: column; height: 5.5rem; padding: 0; &:nth-child(7n) { border-right: 0; } &:nth-last-child(-n+7) { border-bottom: 0; } } } .date-item { align-self: flex-end; height: @unit-7; margin-right: @layout-spacing-sm; margin-top: @layout-spacing-sm; } .calendar-range { &::before { top: 19px; } &.range-start { &::before { left: auto; width: 19px; } } &.range-end { &::before { right: 19px; } } } .calendar-events { flex-grow: 1; line-height: 1; overflow-y: auto; padding: @layout-spacing-sm; } .calendar-event { background: @secondary-color; border-radius: @border-radius; color: @primary-color; font-size: @font-size-sm; display: block; margin: @unit-h auto; overflow: hidden; padding: 3px 4px; text-align: left; text-overflow: ellipsis; vertical-align: baseline; white-space: nowrap; } } }