funda-ui
Version:
React components using pure Bootstrap 5+ which does not contain any external style and script libraries.
435 lines (432 loc) • 13.9 kB
CSS
/* ======================================================
<!-- Date -->
/* ====================================================== */
.date2d__trigger {
--date2d-trigger-focus-border-color:#86b7fe;
--date2d-trigger-focus-box-shadow: 0 0 0 0.25rem rgba(13,110,253,.25);
--date2d-trigger-clear-bg: rgb(156, 156, 156);
width: 100%;
/* tools */
}
.date2d__trigger.focus .date2d__control input {
box-shadow: var(--date2d-trigger-focus-box-shadow);
border-color: var(--date2d-trigger-focus-border-color);
outline: 0;
}
.date2d__trigger .date2d__control {
position: relative;
}
.date2d__trigger .date2d__control .form-control {
color: transparent;
pointer-events: none;
}
.date2d__trigger .date2d__control .date2d__control-tools {
position: absolute;
top: 0.3rem;
right: 0.5rem;
z-index: 6;
cursor: pointer;
height: 1.5rem;
line-height: 1.5rem;
/* required */
display: flex;
align-items: center;
}
.date2d__trigger .date2d__control .date2d__control-tools.date2d__control-tools--hover-show-tools {
transform: scale(0);
transition: 0.1s ease-in-out;
transition-delay: 0.25s;
}
.date2d__trigger .date2d__control .date2d__control-tools .date2d__control-tools__close {
display: inline-block;
margin-right: 0.2rem;
pointer-events: all;
}
.date2d__trigger .date2d__control .date2d__control-tools .date2d__control-tools__close svg path {
fill: var(--date2d-trigger-clear-bg);
}
.date2d__trigger .date2d__control__inputplaceholder {
display: inline-block;
position: relative;
width: 100%;
position: absolute;
top: 50%;
left: 0;
z-index: 1;
transform: translateY(-50%);
margin-left: 0.5rem;
font-size: 0.875rem;
white-space: nowrap;
width: calc(100% - 2rem);
overflow: hidden;
}
.date2d__trigger .date2d__control__inputplaceholder > input {
padding: 0 ;
margin: 0 ;
border: none;
background: transparent;
box-shadow: none;
border: none;
width: 1.0714285714rem;
text-align: center;
outline: 0 ;
border-color: transparent ;
box-shadow: none ;
}
.date2d__trigger .date2d__control__inputplaceholder .date2d__control__inputplaceholder--year {
width: 2.1428571429rem;
}
.date2d__trigger .date2d__control .input-group:not(.has-left-content) .date2d__control__inputplaceholder {
left: 0.5rem;
}
.date2d__trigger.date2d__trigger--hover-show-tools:hover .date2d__control-tools.date2d__control-tools--hover-show-tools {
transform: scale(1);
}
.date2d__wrapper {
--date2d-box-shadow: 0 5px 15px 0 rgba(0,0,0,.07), 0 15px 35px 0 rgba(50,50,93,.1);
--date2d-bg: #fff;
--date2d-font-size: 0.75rem;
--date2d-title-font-size: 0.875rem;
--date2d-title-bg: #f8f9fa;
--date2d-border-color: #ddd;
--date2d-title-border-color: #eee;
--date2d-timeselected-bg: #0b5ed7;
--date2d-timeselected-text-color: #fff;
--date2d-time-btn-hover-bg: rgba(0, 58, 166, .1);
position: absolute;
z-index: 1055; /* --bs-modal-zindex */
display: none;
white-space: nowrap;
border-radius: 4px;
text-align: left;
box-shadow: var(--date2d-box-shadow);
background: var(--date2d-bg);
font-size: var(--date2d-font-size);
opacity: 0;
/* Time Control */
}
.date2d__wrapper.active {
display: block ;
animation-name: date2d-show;
animation-duration: 0.05s;
animation-timing-function: linear;
animation-delay: 0.1s;
animation-iteration-count: 1;
animation-fill-mode: forwards;
}
.date2d__wrapper ul, .date2d__wrapper li {
white-space: normal;
margin: 0;
padding: 0;
list-style: none;
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist,
.date2d__wrapper .date2d__tools-container .date2d__secondslist {
border-top: 1px solid var(--date2d-border-color);
border-bottom: 1px solid var(--date2d-border-color);
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist h3,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist h3,
.date2d__wrapper .date2d__tools-container .date2d__secondslist h3 {
font-size: var(--date2d-title-font-size);
padding: 0.2rem 0.5rem 0.3rem;
border-bottom: 1px solid var(--date2d-title-border-color);
background: var(--date2d-title-bg);
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist ul,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul {
padding: 0.15rem;
width: 5.625rem;
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist ul li,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul li,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul li {
display: inline-block;
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist ul li a,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul li a,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul li a {
display: inline-block;
width: 1.75rem;
height: 1.75rem;
border-radius: 50%;
line-height: 2.2;
font-size: var(--date2d-font-size);
text-align: center;
text-decoration: none;
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist ul li a.selected,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul li a.selected,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul li a.selected {
color: var(--date2d-timeselected-text-color);
background-color: var(--date2d-timeselected-bg);
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist ul li a.disabled,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul li a.disabled,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul li a.disabled {
opacity: 0.4;
pointer-events: none;
}
.date2d__wrapper .date2d__tools-container .date2d__hourslist ul li:hover,
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul li:hover,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul li:hover {
background-color: var(--date2d-time-btn-hover-bg);
}
.date2d__wrapper .date2d__tools-container .date2d__minuteslist ul,
.date2d__wrapper .date2d__tools-container .date2d__secondslist ul {
width: 10.9375rem;
}
@keyframes date2d-show {
0% {
opacity: 0;
}
100% {
opacity: 1;
}
}
/*----------- Calendar ------------*/
.date2d-cal__wrapper {
--date2d-cal-wrapper-min-width: 300px;
--date2d-cal-body-bg: #fff;
--date2d-cal-border-color: #ddd;
--date2d-cal-border-color-hover: #333;
--date2d-cal-header-fs: 1.125rem;
--date2d-cal-default-border-color: #eee;
--date2d-cal-day-border-color: #ddd;
--date2d-cal-day-hover-bg: #f6f6f6;
--date2d-cal-dayselected-bg: #0b5ed7;
--date2d-cal-dayselected-text-color: #fff;
--date2d-cal-year-month-btn-border-color: #ddd;
--date2d-cal-year-month-btn-hover-bg: rgba(0, 58, 166, .1);
--date2d-cal-year-month-btn-selected-bg: rgba(0, 58, 166, 1);
--date2d-cal-year-month-btn-selected-color: #fff;
--date2d-cal-month-wrapper-w: 18.75rem;
--date2d-cal-year-wrapper-w: 18.75rem;
--date2d-cal-header-arrow-bg: #000;
--date2d-cal-header-text-color: #000;
--date2d-cal-header-prevnext-btn-bg: transparent;
--date2d-cal-header-prevnext-btn-color: #000;
--date2d-cal-header-prevnext-btn-radius: 0.25rem;
--date2d-cal-delete-btn-color: #ee4949;
--date2d-cal-footer-today-btn-bg: rgba(0, 58, 166, 1);
--date2d-cal-footer-today-btn-color: #fff;
--date2d-cal-event-bg: rgb(255, 240, 227);
position: relative;
min-width: var(--date2d-cal-wrapper-min-width);
border: 1px solid var(--date2d-cal-border-color);
/* --HEADER --*/
/*-- BODY --*/
/*-- CELL --*/
/*-- SELECTION --*/
/* --BUTTON --*/
}
.date2d-cal__wrapper .date2d-cal__header {
font-size: var(--date2d-cal-header-fs);
font-weight: bold;
padding: 10px 10px 5px 10px;
display: flex;
justify-content: space-between;
}
.date2d-cal__wrapper .date2d-cal__header .date2d-cal__header__btns .date2d-cal__btn {
margin-right: 1rem;
color: var(--date2d-cal-header-text-color);
}
.date2d-cal__wrapper .date2d-cal__header .date2d-cal__header__btns .date2d-cal__btn svg {
margin-left: 0.3rem;
}
.date2d-cal__wrapper .date2d-cal__header .date2d-cal__header__btns .date2d-cal__btn svg path {
fill: var(--date2d-cal-header-arrow-bg);
}
.date2d-cal__wrapper .date2d-cal__header .date2d-cal__header__btns .date2d-cal__btn.active svg {
transform: rotate(180deg);
}
.date2d-cal__wrapper .date2d-cal__body {
background: var(--date2d-cal-body-bg);
width: 100%;
display: flex;
flex-wrap: wrap;
}
.date2d-cal__wrapper .date2d-cal__row {
display: flex;
width: 100%;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell {
flex: 1;
position: relative;
height: auto;
min-height: 3.5em;
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
text-align: center;
border-width: 0;
border-color: var(--date2d-cal-default-border-color);
border-style: solid;
border-top-width: 1px;
border-right-width: 1px;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell.disabled {
opacity: 0.4;
pointer-events: none;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell.last-cell {
border-right-width: 0;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell.last-row {
border-bottom-width: 1px;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell.date2d-cal__day--week {
min-height: 2.75em;
align-items: end;
padding-inline-end: 0.75rem;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell .date2d-cal__day__event {
background-color: var(--date2d-cal-event-bg);
width: 100%;
padding: 0.1rem 0.5rem;
margin: 0.5rem;
border-radius: 0;
margin-top: 2.5rem;
text-align: left;
font-size: 0.75rem;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell .date2d-cal__day__eventdel {
position: absolute;
z-index: 1;
left: 0;
top: 0;
display: none;
color: var(--date2d-cal-delete-btn-color);
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell .date2d-cal__day__eventdel svg path {
fill: var(--date2d-cal-delete-btn-color);
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell > span {
position: absolute;
right: 0.25rem;
top: 0;
display: inline-block;
padding: 0.1rem;
border-radius: 50%;
width: 1.7rem;
height: 1.7rem;
line-height: 2;
margin: 0.5rem 0;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell > span.disabled {
opacity: 0.2;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell:not(.empty) {
cursor: pointer;
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell.selected > span {
color: var(--date2d-cal-dayselected-text-color);
background-color: var(--date2d-cal-dayselected-bg);
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell:not(.empty):hover {
background-color: var(--date2d-cal-day-hover-bg);
}
.date2d-cal__wrapper .date2d-cal__row .date2d-cal__cell:not(.empty):hover .date2d-cal__day__eventdel {
display: block;
}
.date2d-cal__wrapper .date2d-cal__month-wrapper {
position: absolute;
width: var(--date2d-cal-month-wrapper-w);
height: auto;
z-index: 1;
top: calc(1rem + 22px);
left: 50%;
transform: translateX(-50%);
display: none;
}
.date2d-cal__wrapper .date2d-cal__month-wrapper.active {
display: block;
}
.date2d-cal__wrapper .date2d-cal__month-wrapper .date2d-cal__month-container {
display: grid;
grid-template-columns: repeat(3, 1fr);
grid-template-rows: repeat(4, 2.5em);
grid-gap: 10px;
}
.date2d-cal__wrapper .date2d-cal__year-wrapper {
position: absolute;
width: var(--date2d-cal-year-wrapper-w);
height: auto;
z-index: 1;
top: calc(1rem + 22px);
left: 50%;
transform: translateX(-50%);
display: none;
}
.date2d-cal__wrapper .date2d-cal__year-wrapper.active {
display: block;
}
.date2d-cal__wrapper .date2d-cal__year-wrapper .date2d-cal__year-container {
display: grid;
grid-template-columns: repeat(4, 1fr);
grid-template-rows: repeat(5, 2.5em);
grid-gap: 5px;
}
.date2d-cal__wrapper .date2d-cal__year,
.date2d-cal__wrapper .date2d-cal__month {
display: flex;
align-items: center;
justify-content: center;
padding: 5px;
font-size: 0.875em;
border: 1px solid var(--date2d-cal-year-month-btn-border-color);
border-radius: 0.25rem;
cursor: pointer;
}
.date2d-cal__wrapper .date2d-cal__year:hover,
.date2d-cal__wrapper .date2d-cal__month:hover {
background-color: var(--date2d-cal-year-month-btn-hover-bg);
}
.date2d-cal__wrapper .date2d-cal__year.selected,
.date2d-cal__wrapper .date2d-cal__month.selected {
background-color: var(--date2d-cal-year-month-btn-selected-bg);
color: var(--date2d-cal-year-month-btn-selected-color);
}
.date2d-cal__wrapper .date2d-cal__year.disabled,
.date2d-cal__wrapper .date2d-cal__month.disabled {
opacity: 0.4;
pointer-events: none;
}
.date2d-cal__wrapper .date2d-cal__btn {
border: none;
outline: none;
background: none;
padding: 0;
margin: 0;
box-shadow: none;
cursor: pointer;
/* required */
display: inline-flex;
align-items: center;
}
.date2d-cal__wrapper .date2d-cal__btn svg path {
fill: var(--date2d-cal-header-arrow-bg);
}
.date2d-cal__wrapper .date2d-cal__btn.disabled {
opacity: 0.4;
pointer-events: none;
}
.date2d-cal__wrapper .date2d-cal__btn--prev, .date2d-cal__wrapper .date2d-cal__btn--next {
border-radius: var(--date2d-cal-header-prevnext-btn-radius);
color: var(--date2d-cal-header-prevnext-btn-color);
background-color: var(--date2d-cal-header-prevnext-btn-bg);
}
.date2d-cal__wrapper .date2d-cal__btn--prev svg path, .date2d-cal__wrapper .date2d-cal__btn--next svg path {
fill: var(--date2d-cal-header-prevnext-btn-color);
}
.date2d-cal__wrapper .date2d-cal__btn--today {
border: 1px solid var(--date2d-cal-border-color);
border-radius: 0.25rem;
font-size: 0.875em;
padding: 0.2rem 1rem;
color: var(--date2d-cal-footer-today-btn-color);
background-color: var(--date2d-cal-footer-today-btn-bg);
}