@zenithui/day-picker
Version:
A ZenithUi Time Picker is React component enables users to select a date or date range from calendar.
193 lines (162 loc) • 4.34 kB
CSS
:root {
--zenithui-day-picker-bg-color: white;
--zenithui-day-picker-text-color: black;
--zenithui-day-picker-selected-text-color: white;
--zenithui-day-picker-shadow-color: #0000001a;
--zenithui-day-picker-hover-bg: #f3f4f6;
--zenithui-day-picker-selected-bg: #3b82f6;
--zenithui-day-picker-selected-bg-hover: #3b82f6bf;
--zenithui-day-picker-range-bg: #3b82f680;
--zenithui-day-picker-outline-color: #3b82f680;
}
.dark {
--zenithui-day-picker-bg-color: #1e1e1e;
--zenithui-day-picker-text-color: white;
--zenithui-day-picker-selected-text-color: black;
--zenithui-day-picker-shadow-color: #fff3;
--zenithui-day-picker-hover-bg: #374151;
--zenithui-day-picker-selected-bg: #fff;
--zenithui-day-picker-selected-bg-hover: #ffffffbf;
--zenithui-day-picker-range-bg: #ffffff40;
--zenithui-day-picker-outline-color: #ffffff80;
}
.zenithui-calendar {
background-color: var(--zenithui-day-picker-bg-color);
width: 100%;
min-width: 300px;
max-width: 320px;
color: var(--zenithui-day-picker-text-color);
border-radius: 8px;
padding: 16px;
}
.zenithui-calendar-header {
justify-content: space-between;
align-items: center;
margin-bottom: 16px;
display: flex;
}
.zenithui-nav-button {
cursor: pointer;
background: none;
border: none;
border-radius: 6px;
padding: 8px;
transition: transform .2s ease-in-out, background .2s;
}
.zenithui-nav-button:hover {
background-color: var(--zenithui-day-picker-hover-bg);
}
.zenithui-nav-button:focus {
outline: 2px solid var(--zenithui-day-picker-hover-bg);
}
.zenithui-nav-button:disabled {
cursor: not-allowed;
opacity: .5;
}
.zenithui-arrow-icon {
width: 20px;
height: 20px;
}
.zenithui-arrow-icon.left {
transform: rotate(180deg);
}
.zenithui-month-caption {
cursor: pointer;
background: none;
border: 2px solid #0000;
border-radius: 6px;
justify-content: center;
align-items: center;
min-width: 100px;
height: 40px;
font-size: 14px;
font-weight: 500;
transition: transform .2s ease-in-out, background .2s;
display: flex;
}
.zenithui-month-caption:hover {
border: 2px solid var(--zenithui-day-picker-hover-bg);
}
.zenithui-month-caption:focus {
outline: 2px solid var(--zenithui-day-picker-hover-bg);
}
.zenithui-month-caption:disabled {
cursor: not-allowed;
opacity: .5;
}
.zenithui-months {
grid-template-columns: repeat(3, 1fr);
gap: 4px;
display: grid;
}
.zenithui-weekdays {
text-align: center;
color: gray;
grid-template-columns: repeat(7, 1fr);
font-size: 12px;
display: grid;
}
.zenithui-weekday {
padding: 8px 0;
}
.zenithui-days {
grid-template-columns: repeat(7, 1fr);
gap: 4px;
display: grid;
}
.zenithui-gap-x-4 {
gap: 4px 0;
}
.zenithui-day {
cursor: pointer;
background-color: var(--zenithui-day-picker-bg-color);
width: 100%;
height: 40px;
color: var(--zenithui-day-picker-text-color);
border-radius: 6px;
justify-content: center;
align-items: center;
font-size: 14px;
font-weight: 500;
transition: background .3s ease-in-out;
display: flex;
}
.zenithui-day:hover {
background-color: var(--zenithui-day-picker-hover-bg);
}
.zenithui-day:disabled {
cursor: not-allowed;
opacity: .5;
}
.zenithui-day[data-selected="true"] {
background-color: var(--zenithui-day-picker-selected-bg);
color: var(--zenithui-day-picker-selected-text-color);
}
.zenithui-day[data-selected="true"]:hover {
background-color: var(--zenithui-day-picker-selected-bg-hover);
color: var(--zenithui-day-picker-selected-text-color);
}
.zenithui-day[data-range-start="true"] {
background-color: var(--zenithui-day-picker-selected-bg);
color: var(--zenithui-day-picker-selected-text-color);
border-radius: 6px 0 0 6px;
}
.zenithui-day[data-range-end="true"] {
background-color: var(--zenithui-day-picker-selected-bg);
color: var(--zenithui-day-picker-selected-text-color);
border-radius: 0 6px 6px 0;
}
.zenithui-day[data-range-dates="true"] {
background-color: var(--zenithui-day-picker-range-bg);
color: var(--zenithui-day-picker-selected-text-color);
border-radius: 0;
}
.zenithui-day[data-today="true"] {
border: 1.5px solid var(--zenithui-day-picker-outline-color);
}
.zenithui-day[data-outside-date="true"] {
opacity: .5;
}
.zenithui-day[data-visibility="true"] {
visibility: hidden;
}