@zenithui/time-picker
Version:
A ZenithUi Time Picker is React component enables users to select a time from a predefined list of options.
149 lines (127 loc) • 3.93 kB
CSS
:root {
--zenithui-time-picker-bg: white;
--zenithui-time-picker-text: #0f172a;
--zenithui-time-picker-border: #e2e8f0;
--zenithui-time-picker-hover-bg: #e2e8f0;
--zenithui-time-picker-focus-outline: #075985;
--zenithui-time-picker-disabled-bg: #e5e7eb;
--zenithui-time-picker-disabled-text: #6b7280;
--zenithui-time-picker-selected-bg: #0369a1;
--zenithui-time-picker-selected-hover: #075985;
--zenithui-time-picker-shadow: #00000026;
--zenithui-time-picker-scrollbar: #cbd5e1;
}
.dark {
--zenithui-time-picker-bg: #18181b;
--zenithui-time-picker-text: white;
--zenithui-time-picker-border: #334155;
--zenithui-time-picker-hover-bg: #475569;
--zenithui-time-picker-focus-outline: #0369a1;
--zenithui-time-picker-disabled-bg: #64748b;
--zenithui-time-picker-disabled-text: #94a3b8;
--zenithui-time-picker-selected-bg: #0284c7;
--zenithui-time-picker-selected-hover: #0369a1;
--zenithui-time-picker-shadow: #ffffff1a;
--zenithui-time-picker-scrollbar: #64748b;
}
.zenithui-time-trigger {
border: 1px solid var(--zenithui-time-picker-border);
background-color: var(--zenithui-time-picker-bg);
width: 100%;
max-width: 10rem;
color: var(--zenithui-time-picker-text);
cursor: pointer;
border-radius: .375rem;
justify-content: space-between;
align-items: center;
padding: .5rem 1rem;
font-size: .875rem;
transition: all .3s ease-in-out;
display: flex;
}
.zenithui-time-trigger:hover {
border-color: var(--zenithui-time-picker-hover-bg);
background-color: var(--zenithui-time-picker-hover-bg);
}
.zenithui-time-trigger:active {
border: 1px solid var(--zenithui-time-picker-border);
outline: none;
}
.zenithui-time-trigger:focus, .zenithui-time-trigger:focus-visible {
outline: 1px solid var(--zenithui-time-picker-focus-outline);
}
.zenithui-time-trigger:disabled {
cursor: not-allowed;
background-color: var(--zenithui-time-picker-disabled-bg);
color: var(--zenithui-time-picker-disabled-text);
opacity: .5;
}
.zenithui-time-trigger:disabled:hover {
background-color: var(--zenithui-time-picker-disabled-bg);
color: var(--zenithui-time-picker-disabled-text);
}
.zenithui-time-container {
border: 1px solid var(--zenithui-time-picker-border);
background-color: var(--zenithui-time-picker-bg);
border-radius: .375rem;
grid-template-columns: repeat(3, 1fr);
justify-items: center;
gap: .25rem;
width: 15rem;
height: 20rem;
padding: .75rem 0;
display: grid;
overflow: hidden;
}
.zenithui-time-custom-scroll {
height: 100%;
overflow-y: auto;
}
.zenithui-time-scroll-container {
pointer-events: auto;
flex-direction: column;
gap: .5rem;
padding: .25rem;
display: flex;
}
.zenithui-time-item {
background-color: var(--zenithui-time-picker-bg);
width: 3rem;
height: 3rem;
color: var(--zenithui-time-picker-text);
border: 1px solid var(--zenithui-time-picker-border);
cursor: pointer;
border-radius: .375rem;
justify-content: center;
align-items: center;
transition: all .2s ease-in-out;
display: flex;
}
.zenithui-time-item:focus, .zenithui-time-item:focus-visible {
outline: 2px solid var(--zenithui-time-picker-focus-outline);
}
.zenithui-time-item.zenithui-selected {
background-color: var(--zenithui-time-picker-selected-bg);
color: #fff;
}
.zenithui-time-item.zenithui-selected:hover {
background-color: var(--zenithui-time-picker-selected-hover);
}
.zenithui-time-item.zenithui-selected:focus, .zenithui-time-item.zenithui-selected:focus-visible {
outline: 2px solid var(--zenithui-time-picker-border);
}
.zenithui-time-custom-scroll {
scrollbar-width: thin;
}
.zenithui-time-custom-scroll::-webkit-scrollbar-thumb {
scrollbar-width: thin;
}
.zenithui-time-custom-scroll::-webkit-scrollbar-track {
background: none;
}
.count-down-text {
color: var(--zenithui-time-picker-text);
}
div[data-radix-popper-content-wrapper] {
z-index: 9999 ;
}