UNPKG

@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
: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 !important; }