UNPKG

@lemonadejs/calendar

Version:

LemonadeJS reactive JavaScript calendar plugin

303 lines (254 loc) 7.59 kB
.lm-calendar { user-select: none; -moz-user-select: none; -webkit-user-drag: none; -webkit-touch-callout: none; -webkit-user-select: none; -ms-user-select: none; position: relative; } .lm-calendar button { cursor: pointer; } .lm-calendar .lm-modal { min-width: initial; min-height: initial; } .lm-calendar-options { display: none; } .lm-modal > div > .lm-calendar-options { display: flex; justify-content: space-between; border-bottom: 1px solid var(--lm-border-color, #ccc); } .lm-modal > div > .lm-calendar-options button { border: 0; background-color: transparent; text-transform: uppercase; cursor: pointer; padding: 15px; font-weight: bold; } .lm-calendar-header { display: flex; flex-direction: column; } .lm-calendar-header > div:first-child { display: flex; align-items: center; padding: 10px; flex: 1; user-select: none; } .lm-calendar-header .lm-calendar-labels { display: flex; flex: 1; cursor: pointer; padding-left: 5px; } .lm-calendar-header .lm-calendar-labels > button { font-size: 1.2em; border: 0; padding: 4px; background-color: transparent; font-weight: bold; } .lm-calendar-navigation { display: grid; grid-template-columns: repeat(2, 1fr); gap: 6px; } .lm-calendar-navigation button { padding: 8px; border: 0; border-radius: 24px; } .lm-calendar-navigation i:hover { background-color: var(--lm-background-color-hover, #ebebeb); color: #000; } .lm-calendar-weekdays { display: none; grid-template-columns: repeat(7, 1fr); padding: 0 8px 0 8px; font-size: 0.8em; } .lm-calendar-container[data-view="days"] .lm-calendar-weekdays { display: grid; align-items: center; flex: 1; } .lm-calendar-weekdays > div { display: inline-block; padding: 6px; box-sizing: border-box; text-align: center; font-weight: bold; line-height: 2em; } .lm-calendar-content { display: grid; grid-template-columns: repeat(7, 1fr); padding: 8px; font-size: 0.8em; outline: none; } .lm-calendar-content > div { box-sizing: border-box; text-align: center; aspect-ratio: 1 / 1; display: flex; flex-direction: column; justify-content: center; align-items: center; padding: 6px; cursor: pointer; border-radius: 100px; background-origin: padding-box; } .lm-calendar-container[data-view="months"] .lm-calendar-content { grid-template-columns: repeat(4, 1fr); } .lm-calendar-container[data-view="years"] .lm-calendar-content { grid-template-columns: repeat(4, 1fr); } .lm-calendar-content > div[data-grey="true"] { color: #ccc; } .lm-calendar-content > div[data-bold="true"] { font-weight: bold; } .lm-calendar-content > div[data-event="true"]::before { content: ''; position: absolute; margin-top: 22px; width: 3px; height: 3px; border-radius: 3px; background-color: red; } .lm-calendar-content > div[data-selected="true"] { font-weight: bold; background-color: #eee; color: #000; } .lm-calendar-content:focus > div[data-selected="true"] { outline: 2px solid black; outline-offset: -2px; } .lm-calendar-content > div:hover { background-color: #eee; color: #000; } .lm-calendar-content > div[data-range="true"] { position: relative; } .lm-calendar-content > div[data-start="true"], .lm-calendar-content > div[data-end="true"] { background-color: var(--lm-main-color, #2196f3); color: initial; } .lm-calendar-content > div[data-range="true"]::before { content: ""; position: absolute; left: 0; right: 0; top: calc(25%); height: 50%; background-color: var(--lm-main-color-alpha, #2196f388); } .lm-calendar-content > div[data-start="true"]::before { left: 32px; } .lm-calendar-content > div[data-end="true"]::before { right: 32px; } .lm-calendar-footer > div { flex: 1; } .lm-calendar-footer { display: flex; margin: 0 10px 0 10px; padding: 8px 0 8px 0; line-height: 34px; border-top: 1px solid var(--lm-border-color-light, #e9e9e9); } .lm-calendar-footer[data-visible="false"] { display: none; } .lm-calendar-footer select { border: 0; background-color: transparent; padding: 6px; -moz-appearance: none; -webkit-appearance: none; margin: 2px; border-radius: 32px; font-size: 1.1em; width: initial; } .lm-calendar-footer select:focus { background-color: #eee; } .lm-calendar-footer input { border: transparent; padding: 8px; width: 100%; cursor: pointer; background-color: var(--lm-border-color-light, #e9e9e9); } .lm-calendar-input { padding-right: 24px !important; box-sizing: border-box; background: url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" height="24" viewBox="0 -960 960 960" width="24"><path d="M200-80q-33 0-56.5-23.5T120-160v-560q0-33 23.5-56.5T200-800h40v-80h80v80h320v-80h80v80h40q33 0 56.5 23.5T840-720v560q0 33-23.5 56.5T760-80H200Zm0-80h560v-400H200v400Zm0-480h560v-80H200v80Zm0 0v-80 80Zm280 240q-17 0-28.5-11.5T440-440q0-17 11.5-28.5T480-480q17 0 28.5 11.5T520-440q0 17-11.5 28.5T480-400Zm-160 0q-17 0-28.5-11.5T280-440q0-17 11.5-28.5T320-480q17 0 28.5 11.5T360-440q0 17-11.5 28.5T320-400Zm320 0q-17 0-28.5-11.5T600-440q0-17 11.5-28.5T640-480q17 0 28.5 11.5T680-440q0 17-11.5 28.5T640-400ZM480-240q-17 0-28.5-11.5T440-280q0-17 11.5-28.5T480-320q17 0 28.5 11.5T520-280q0 17-11.5 28.5T480-240Zm-160 0q-17 0-28.5-11.5T280-280q0-17 11.5-28.5T320-320q17 0 28.5 11.5T360-280q0 17-11.5 28.5T320-240Zm320 0q-17 0-28.5-11.5T600-280q0-17 11.5-28.5T640-320q17 0 28.5 11.5T680-280q0 17-11.5 28.5T640-240Z" fill="gray" /></svg>') top 50% right 1px no-repeat; } .lm-calendar-time[data-visible="false"] { display: none; } .lm-ripple { background-position: center; transition: background 0.8s; } .lm-ripple:hover { background: var(--lm-background-color-hover, #ebebeb) radial-gradient(circle, transparent 1%, var(--lm-background-color-hover, #ebebeb) 1%) center/15000%; } .lm-ripple:active { background-color: var(--lm-background-color-active, #e8e8e8); background-size: 100%; transition: background 0s; } .lm-dark-mode .lm-calendar-weekdays { color: #aaa; } .lm-dark-mode .lm-calendar-labels > button { background-color: initial; } .lm-dark-mode .lm-calendar-content:focus > div[data-selected="true"] { outline-color: white; } .lm-dark-mode .lm-calendar-content > div[data-grey="true"] { color: var(--lm-font-grayout, #777); } .lm-dark-mode .lm-calendar-footer select:focus { background-color: #3a3a45; } .lm-calendar[data-grid="true"] .lm-calendar-weekdays { padding: 0; } .lm-calendar[data-grid="true"] .lm-calendar-content { border-top: 1px solid transparent; border-left: 1px solid transparent; border-right: 1px solid #ccc; border-bottom: 1px solid #ccc; padding: 0; } .lm-calendar[data-grid="true"] .lm-calendar-content > div { border-top: 1px solid #ccc; border-left: 1px solid #ccc; border-right: 1px solid transparent; border-bottom: 1px solid transparent; border-radius: 0; justify-content: start; align-items: end; }