UNPKG

funda-ui

Version:

React components using pure Bootstrap 5+ which does not contain any external style and script libraries.

301 lines (300 loc) 11 kB
/* ====================================================== <!-- Event Calendar --> /* ====================================================== */ .custom-event-cal__wrapper { --custom-event-cal-wrapper-min-width: 400px; --custom-event-cal-body-bg: #fff; --custom-event-cal-border-color: #ddd; --custom-event-cal-border-color-hover: #333; --custom-event-cal-header-fs: 1.125rem; --custom-event-cal-default-border-color: #eee; --custom-event-cal-day-border-color: #ddd; --custom-event-cal-day-hover-bg: #f6f6f6; --custom-event-cal-dayselected-bg: #0b5ed7; --custom-event-cal-dayselected-text-color: #fff; --custom-event-cal-year-month-btn-border-color: #ddd; --custom-event-cal-year-month-btn-hover-bg: rgba(0, 58, 166, .1); --custom-event-cal-year-month-btn-selected-bg: rgba(0, 58, 166, 1); --custom-event-cal-year-month-btn-selected-color: #fff; --custom-event-cal-month-wrapper-w: 18.75rem; --custom-event-cal-year-wrapper-w: 18.75rem; --custom-event-cal-header-arrow-bg: #000; --custom-event-cal-header-text-color: #000; --custom-event-cal-header-prevnext-btn-bg: transparent; --custom-event-cal-header-prevnext-btn-color: #000; --custom-event-cal-header-prevnext-btn-radius: 0.25rem; --custom-event-cal-table-add-btn-color: #0b5ed7; --custom-event-cal-delete-btn-color: #ee4949; --custom-event-cal-footer-today-btn-bg: rgba(0, 58, 166, 1); --custom-event-cal-footer-today-btn-color: #fff; --custom-event-cal-event-default-bg: rgb(255, 240, 227); --custom-event-cal-table-event-font-size: 0.75rem; position: relative; min-width: var(--custom-event-cal-wrapper-min-width); border: 1px solid var(--custom-event-cal-border-color); /* Required when using onKeyDown */ /* --HEADER --*/ /*-- BODY --*/ /*-- CELL --*/ /*-- SELECTION --*/ /* --BUTTON --*/ } .custom-event-cal__wrapper[tabindex]:focus-visible { outline: none; } .custom-event-cal__wrapper .custom-event-cal__header { font-size: var(--custom-event-cal-header-fs); font-weight: bold; padding: 10px 10px 5px 10px; display: flex; justify-content: space-between; } .custom-event-cal__wrapper .custom-event-cal__header .custom-event-cal__header__btns .custom-event-cal__btn { margin-right: 1rem; color: var(--custom-event-cal-header-text-color); } .custom-event-cal__wrapper .custom-event-cal__header .custom-event-cal__header__btns .custom-event-cal__btn svg { margin-left: 0.3rem; } .custom-event-cal__wrapper .custom-event-cal__header .custom-event-cal__header__btns .custom-event-cal__btn svg path { fill: var(--custom-event-cal-header-arrow-bg); } .custom-event-cal__wrapper .custom-event-cal__header .custom-event-cal__header__btns .custom-event-cal__btn.active svg { transform: rotate(180deg); } .custom-event-cal__wrapper .custom-event-cal__body { background: var(--custom-event-cal-body-bg); width: 100%; display: flex; flex-wrap: wrap; } .custom-event-cal__wrapper .custom-event-cal__row { display: flex; width: 100%; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell { flex: 1; position: relative; height: auto; min-height: 4.75em; display: flex; align-items: center; justify-content: center; flex-direction: column; text-align: center; border-width: 0; border-color: var(--custom-event-cal-default-border-color); border-style: solid; border-top-width: 1px; border-right-width: 1px; /* Delete button */ /* Add button */ /* DAY NUMBER */ /* ITEMS */ } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell.disabled { opacity: 0.4; pointer-events: none; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell.last-cell { border-right-width: 0; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell.last-row { border-bottom-width: 1px; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell.custom-event-cal__day--week { min-height: 2.75em; align-items: end; padding-inline-end: 0.75rem; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell:not(.empty):hover { background-color: var(--custom-event-cal-day-hover-bg); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__event { margin-bottom: 1px; font-size: var(--custom-event-cal-table-event-font-size); background-color: var(--custom-event-cal-event-default-bg); text-align: left; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__event:hover { cursor: pointer; opacity: 0.8; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__cell-item.first { margin-top: 2.5rem; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventdel { position: absolute; z-index: 1; right: -5px; top: 0; display: none; color: var(--custom-event-cal-delete-btn-color); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventdel svg { width: 10px; fill: var(--custom-event-cal-delete-btn-color); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventdel svg path { fill: var(--custom-event-cal-delete-btn-color); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventdel:hover svg { transform: scale(1.2); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell:not(.empty) .custom-event-cal__cell-item:hover .custom-event-cal__day__eventdel { display: block; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventadd { position: absolute; z-index: 1; left: 0; bottom: -8.5px; display: none; width: 20px; color: var(--custom-event-cal-table-add-btn-color); text-align: left; pointer-events: none; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventadd > a { pointer-events: auto; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventadd svg { width: 15px; fill: var(--custom-event-cal-table-add-btn-color); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventadd svg path { fill: var(--custom-event-cal-table-add-btn-color); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell .custom-event-cal__day__eventadd:hover svg { transform: scale(1.2); } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell:hover .custom-event-cal__day__eventadd { display: block; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell > span { position: absolute; right: 0.25rem; top: 0.25rem; display: inline-block; padding: 0.1rem; border-radius: 50%; width: 1.7rem; height: 1.7rem; line-height: 1.5; margin: 0.5rem 0; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell > span.disabled { opacity: 0.2; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell > div { position: relative; width: 100%; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell.empty > div { opacity: 0.2; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell:not(.empty) { cursor: pointer; } .custom-event-cal__wrapper .custom-event-cal__row .custom-event-cal__cell.selected > span { color: var(--custom-event-cal-dayselected-text-color); background-color: var(--custom-event-cal-dayselected-bg); } .custom-event-cal__wrapper .custom-event-cal__month-wrapper { position: absolute; width: var(--custom-event-cal-month-wrapper-w); height: auto; z-index: 1; top: calc(1rem + 22px); left: 50%; transform: translateX(-50%); display: none; } .custom-event-cal__wrapper .custom-event-cal__month-wrapper.active { display: block; } .custom-event-cal__wrapper .custom-event-cal__month-wrapper .custom-event-cal__month-container { display: grid; grid-template-columns: repeat(3, 1fr); grid-template-rows: repeat(4, 2.5em); grid-gap: 10px; } .custom-event-cal__wrapper .custom-event-cal__year-wrapper { position: absolute; width: var(--custom-event-cal-year-wrapper-w); height: auto; z-index: 1; top: calc(1rem + 22px); left: 50%; transform: translateX(-50%); display: none; } .custom-event-cal__wrapper .custom-event-cal__year-wrapper.active { display: block; } .custom-event-cal__wrapper .custom-event-cal__year-wrapper .custom-event-cal__year-container { display: grid; grid-template-columns: repeat(4, 1fr); grid-template-rows: repeat(5, 2.5em); grid-gap: 5px; } .custom-event-cal__wrapper .custom-event-cal__year, .custom-event-cal__wrapper .custom-event-cal__month { display: flex; align-items: center; justify-content: center; padding: 5px; font-size: 0.875em; border: 1px solid var(--custom-event-cal-year-month-btn-border-color); border-radius: 0.25rem; cursor: pointer; } .custom-event-cal__wrapper .custom-event-cal__year:hover, .custom-event-cal__wrapper .custom-event-cal__month:hover { background-color: var(--custom-event-cal-year-month-btn-hover-bg); } .custom-event-cal__wrapper .custom-event-cal__year.selected, .custom-event-cal__wrapper .custom-event-cal__month.selected { background-color: var(--custom-event-cal-year-month-btn-selected-bg); color: var(--custom-event-cal-year-month-btn-selected-color); } .custom-event-cal__wrapper .custom-event-cal__year.disabled, .custom-event-cal__wrapper .custom-event-cal__month.disabled { opacity: 0.4; pointer-events: none; } .custom-event-cal__wrapper .custom-event-cal__btn { border: none; outline: none; background: none; padding: 0; margin: 0; box-shadow: none; cursor: pointer; /* required */ display: inline-flex; align-items: center; } .custom-event-cal__wrapper .custom-event-cal__btn svg path { fill: var(--custom-event-cal-header-arrow-bg); } .custom-event-cal__wrapper .custom-event-cal__btn.disabled { opacity: 0.4; pointer-events: none; } .custom-event-cal__wrapper .custom-event-cal__btn--prev, .custom-event-cal__wrapper .custom-event-cal__btn--next { border-radius: var(--custom-event-cal-header-prevnext-btn-radius); color: var(--custom-event-cal-header-prevnext-btn-color); background-color: var(--custom-event-cal-header-prevnext-btn-bg); } .custom-event-cal__wrapper .custom-event-cal__btn--prev svg path, .custom-event-cal__wrapper .custom-event-cal__btn--next svg path { fill: var(--custom-event-cal-header-prevnext-btn-color); } .custom-event-cal__wrapper .custom-event-cal__btn--today { border: 1px solid var(--custom-event-cal-border-color); border-radius: 0.25rem; font-size: 0.875em; padding: 0.2rem 1rem; color: var(--custom-event-cal-footer-today-btn-color); background-color: var(--custom-event-cal-footer-today-btn-bg); }