536 lines
12 KiB
SCSS
Raw Normal View History

2025-03-07 00:29:07 -06:00
@use '../../scss/_bootstrap-extended/include' as light;
@use '../../scss/_bootstrap-extended/include-dark' as dark;
@import '../../scss/_custom-variables/libs';
@import 'mixins';
$fullcalendar-event-padding-y: 0.25rem !default;
$fullcalendar-event-padding-x: 0.75rem !default;
$fullcalendar-event-margin-top: 0.625rem !default;
$fullcalendar-event-font-size: light.$font-size-base !default;
$fullcalendar-event-font-weight: light.$font-weight-medium !default;
$fullcalendar-toolbar-btn-padding: light.$input-btn-padding-y - 0.115 light.$input-btn-padding-x !default;
$fullcalendar-fc-popover-z-index: 1090 !default;
$fullcalendar-event-border-radius: light.$border-radius-sm !default;
$fullcalendar-today-background-light: light.rgba-to-hex(light.$gray-50, light.$rgba-to-hex-bg) !default;
$fullcalendar-today-background-dark: dark.rgba-to-hex(dark.$gray-50, dark.$rgba-to-hex-bg) !default;
// Calendar
.fc {
.fc-scrollgrid-section {
height: 0px;
}
a[data-navlink]:hover {
text-decoration: none;
}
.fc-timegrid-slot {
height: 4em !important;
}
.fc-timeGridWeek-view {
.fc-timegrid-slot-minor {
border-top-style: none;
}
}
.fc-timeGridDay-view {
.fc-timegrid-slot-minor {
border-top-style: solid;
}
}
.fc-col-header-cell-cushion {
padding-top: 8.7px !important;
padding-bottom: 8.7px !important;
}
.fc-toolbar {
flex-wrap: wrap;
.fc-prev-button,
.fc-next-button {
display: inline-block;
background-color: transparent;
border-color: transparent;
&:hover,
&:active,
&:focus {
background-color: transparent !important;
border-color: transparent !important;
box-shadow: none !important;
}
}
.fc-button {
border-radius: light.$border-radius;
&:not(.fc-next-button):not(.fc-prev-button) {
padding: $fullcalendar-toolbar-btn-padding;
&:active,
&:focus {
box-shadow: none !important ;
}
}
}
> * > :not(:first-child) {
margin-left: 0 !important;
@include app-rtl(true) {
margin-right: 0 !important;
}
}
.fc-toolbar-chunk {
display: flex;
align-items: center;
}
.fc-button-group {
.fc-button {
text-transform: capitalize;
}
& + div {
display: flex;
align-items: center;
flex-wrap: wrap;
}
}
.fc--button:empty,
.fc-toolbar-chunk:empty {
display: none;
}
.fc-sidebarToggle-button + div {
margin-left: 0;
}
}
table.fc-scrollgrid {
.fc-col-header {
.fc-col-header-cell {
border-left: none;
}
}
}
.fc-view-harness {
min-height: 650px;
.fc-col-header-cell-cushion {
padding-bottom: 3px;
padding-top: 3px;
}
// To remove border on weekday row
.fc-scrollgrid-section-header > * {
@include app-ltr(true) {
border-inline-end-width: 0px;
}
@include app-rtl(true) {
border-inline-start-width: 0px;
}
}
.fc-timegrid-event .fc-event-time {
font-size: 0.6875rem;
}
.fc-v-event .fc-event-title {
font-size: $fullcalendar-event-font-size;
padding-top: 0.2rem;
font-weight: $fullcalendar-event-font-weight;
}
.fc-timegrid-event .fc-event-main {
padding: $fullcalendar-event-padding-y $fullcalendar-event-padding-x 0;
}
}
.fc-daygrid-day-events {
.fc-event,
.fc-more-link {
margin-inline: 0.5rem !important;
}
}
// To fix firefox thead border issue
.fc-day-today {
background-clip: padding-box;
}
//! Fix: white color issue of event text
.fc-h-event .fc-event-main,
.fc-v-event .fc-event-main {
color: inherit !important;
}
.fc-daygrid-block-event .fc-event-time,
.fc-daygrid-dot-event .fc-event-title {
font-weight: $fullcalendar-event-font-weight;
}
.fc-daygrid-body-natural {
.fc-daygrid-day-events {
margin-top: 0.94rem !important;
margin-bottom: 0.94rem !important;
}
}
.fc-view-harness {
margin: 0 -1.5rem;
.fc-daygrid-body {
.fc-daygrid-day {
.fc-daygrid-day-top {
flex-direction: row;
.fc-daygrid-day-number {
float: left;
padding: 0.5rem;
}
}
.fc-daygrid-day-bottom .fc-daygrid-more-link {
margin-top: 0.625rem;
}
}
}
.fc-event {
font-size: $fullcalendar-event-font-size;
font-weight: $fullcalendar-event-font-weight;
padding: $fullcalendar-event-padding-y $fullcalendar-event-padding-x;
border-radius: $fullcalendar-event-border-radius;
border: 0;
.fc-event-title {
font-weight: light.$font-weight-medium;
}
}
.fc-daygrid-event-harness {
// ! week & day events are using this style for all day only, not for other events
.fc-event {
&.private-event {
background-color: transparent !important;
border-color: transparent !important;
}
}
}
.fc-event .fc-daygrid-event-dot {
display: none;
}
}
.fc-daygrid-event-harness + .fc-daygrid-event-harness .fc-daygrid-event {
margin-top: $fullcalendar-event-margin-top !important;
}
.fc-timegrid {
.fc-timegrid-divider {
display: none;
}
.fc-timegrid-event {
border-radius: 0px;
box-shadow: none;
padding-top: $fullcalendar-event-padding-x;
.fc-event-time {
font-size: inherit;
}
}
}
.fc-daygrid-event-harness-abs .fc-event {
margin-bottom: 0.625rem;
}
.fc-timegrid-slot-label-frame {
text-align: center;
}
.fc-timegrid-axis-cushion,
.fc-timegrid-slot-label-cushion {
font-size: light.$font-size-sm;
}
.fc-timegrid-axis-cushion {
text-transform: capitalize;
padding: 0.5rem 0.4375rem;
}
.fc-timegrid-slot-label-cushion {
text-transform: uppercase;
padding: $fullcalendar-event-padding-x !important;
}
.fc-list-day-cushion,
.fc-list-table td {
padding-inline: 1rem;
}
.fc-popover {
z-index: $fullcalendar-fc-popover-z-index !important;
.fc-popover-header {
padding: 0.566rem;
}
}
.fc-list {
.fc-list-table {
border-bottom: 1px solid;
}
}
&.fc-theme-standard {
.fc-list {
border: none;
}
}
.fc-day-other {
.fc-daygrid-day-top {
opacity: 1;
}
}
}
// Light style
@if $enable-light-style {
.light-style {
.fc {
.fc-toolbar {
.fc-prev-button,
.fc-next-button {
.fc-icon {
color: light.$headings-color;
}
}
}
.fc-col-header-cell-cushion {
color: light.$headings-color;
}
&.fc-theme-standard .fc-list-day-cushion {
background-color: $fullcalendar-today-background-light !important;
}
table.fc-scrollgrid {
border-color: light.$border-color;
.fc-col-header {
tbody {
border: none;
}
.fc-col-header-cell {
border-color: light.$border-color;
}
}
td {
border-color: light.$border-color;
}
}
.fc-timegrid-axis-cushion {
color: light.$text-muted;
}
.fc-timegrid-slot-label-cushion {
color: light.$headings-color;
}
.private-event {
.fc-event-time,
.fc-event-title {
color: light.$danger;
}
}
.fc-day-today:not(.fc-col-header-cell) {
background-color: $fullcalendar-today-background-light !important;
.fc-popover-body {
background-color: light.$card-bg !important;
}
}
.fc-popover {
.fc-popover-header {
background: light.$body-bg;
}
}
.fc-list {
.fc-list-table {
th {
border: 0;
background: light.$body-bg;
}
.fc-list-event {
cursor: pointer;
&:hover {
td {
background-color: light.$gray-25;
}
}
td {
border-color: light.$border-color;
color: light.$body-color;
}
}
.fc-list-day {
th {
color: light.$headings-color;
}
}
tbody > tr:first-child th {
border-top: 1px solid light.$border-color;
}
}
.fc-list-empty {
background-color: light.$body-bg;
}
}
// Border color
table,
tbody,
thead,
tbody td {
border-color: light.$border-color;
}
.fc-day-other {
.fc-daygrid-day-top {
color: light.$text-muted;
}
}
}
// ? Style event here
@each $color, $value in light.$theme-colors {
// FC event
@include light.bg-label-variant('.fc-event-#{$color}:not(.fc-list-event)', $value);
// FC list event
.fc-event-#{$color}.fc-list-event {
.fc-list-event-dot {
border-color: $value !important;
}
}
}
}
}
// Dark Style
@if $enable-dark-style {
.dark-style {
.fc {
.fc-toolbar {
.fc-prev-button,
.fc-next-button {
.fc-icon {
color: dark.$headings-color;
}
}
.fc-sidebarToggle-button {
color: dark.$white;
}
}
.fc-col-header-cell-cushion {
color: dark.$headings-color;
}
&.fc-theme-standard .fc-list-day-cushion {
background-color: $fullcalendar-today-background-dark !important;
}
.fc-timegrid-axis-cushion {
color: dark.$text-muted;
}
.fc-timegrid-slot-label-cushion {
color: dark.$headings-color;
}
table.fc-scrollgrid {
border-color: dark.$border-color;
.fc-col-header {
tbody {
border: none;
}
.fc-col-header-cell {
border-color: dark.$border-color;
}
}
td {
border-color: dark.$border-color;
}
}
.private-event {
.fc-event-time,
.fc-event-title {
color: dark.$danger;
}
}
.fc-day-today:not(.fc-col-header-cell) {
background-color: $fullcalendar-today-background-dark !important;
.fc-popover-body {
background-color: dark.$card-bg !important;
}
}
.fc-divider {
background: dark.$border-color;
border-color: dark.$border-color;
}
.fc-popover {
background-color: dark.$body-bg;
border: 0;
.fc-popover-header {
background-color: dark.$light;
}
}
.fc-list {
.fc-list-table {
th {
border: 0;
background: dark.$body-bg;
}
.fc-list-event {
cursor: pointer;
&:hover {
td {
background-color: dark.$gray-50;
}
}
td {
border-color: dark.$border-color;
color: dark.$body-color;
}
}
.fc-list-day {
th {
color: dark.$headings-color;
}
}
tbody > tr:first-child th {
border-top: 1px solid dark.$border-color;
}
}
.fc-list-empty {
background-color: dark.$body-bg;
}
}
table,
.fc-timegrid-axis,
tbody,
thead,
tbody td {
border-color: dark.$border-color;
}
// FC day
.fc-timegrid-axis-cushion.fc-scrollgrid-shrink-cushion {
color: dark.$text-muted;
}
// FC table list disabled bg
.fc-day-disabled {
background-color: rgba(dark.$base, 0.16);
}
.fc-day-other {
.fc-daygrid-day-top {
color: dark.$text-muted;
}
}
}
// ? Style event here
@each $color, $value in dark.$theme-colors {
// FC event
@include dark.bg-label-variant('.fc-event-#{$color}:not(.fc-list-event)', $value);
.fc-event-#{$color}:not(.fc-list-event) {
box-shadow: none;
}
// FC list event
.fc-event-#{$color}.fc-list-event {
.fc-list-event-dot {
border-color: $value !important;
}
}
}
}
}
// Media Queries
@include light.media-breakpoint-down(sm) {
.fc {
.fc-header-toolbar {
.fc-toolbar-chunk + .fc-toolbar-chunk {
margin-top: 1rem;
}
}
}
}