Timepicker
Bootstrap 5 Timepicker component
Use MDB custom Timepicker component to select time.
Note: Read the API tab to find all available options and advanced customization
Basic example
MDB allows us to automatically initialize a Timepicker when the page is loaded. You have to
have a class timepicker
in your picker wrapper.
<div class="form-outline timepicker">
<input type="text" class="form-control" id="form11" />
<label class="form-label" for="form11">Select a time</label>
</div>
Inline Timepicker with 12h
MDB Timepicker allows you to use a inline version timepicker. Default version is with 12h.
<div class="form-outline timepicker-inline-12">
<input type="text" class="form-control" id="form41" />
<label class="form-label" for="form41">Select a time</label>
</div>
const pickerInline = document.querySelector('.timepicker-inline-12');
const timepickerMaxMin = new mdb.Timepicker(pickerInline, {
format12:true,
inline: true
});
Inline Timepicker with 24h
MDB Timepicker allows you to use a inline version timepicker. You have to add options
format24
to true.
<div class="form-outline timepicker-inline-24">
<input type="text" class="form-control" id="form43" />
<label class="form-label" for="form43">Select a time</label>
</div>
const pickerInline = document.querySelector('.timepicker-inline-24');
const timepickerMaxMin = new mdb.Timepicker(pickerInline, {
format24:true,
inline: true
});
Custom Icon
You can set your custom icon to input. If you will add the icon, the main icon from the input
will be replaced with yours. You have to add class
timepicker-toggle-button
to your element with data-mdb-toggle
and
timepicker-icon
to your icon.
With icon
<div class="form-outline timepicker">
<input type="text" class="form-control" id="form2" />
<label class="form-label" for="form2">Select a time</label>
<i
class="fab fa-react fa-2x timepicker-icon timepicker-toggle-button"
tabindex="0"
type="button"
role="button"
data-mdb-toggle="timepicker"
></i>
</div>
Without icon
MDBTimepicker allows to set input without icon. You can set this with
data-mdb-with-icon
set to false
or with the options
withIcon
set to false
if you are initiate timepicker with js.
<div class="timepicker" data-mdb-with-icon="false">
<div class="form-outline">
<input type="text" class="form-control" id="form14" />
<label class="form-label" for="form14">Select a time</label>
</div>
<button class="btn btn-primary mt-2" data-mdb-toggle="timepicker">
Toggle Timepicker
</button>
</div>
<div id="timepicer-without-icon" class="mt-3">
<div class="form-outline" data-mdb-with-icon="false">
<input type="text" class="form-control" id="form1" />
<label class="form-label" for="form1">Select a time</label>
</div>
<button class="btn btn-primary mt-2" data-mdb-toggle="timepicer-without-icon">
Toggle Timepicker
</button>
</div>
const wiTimepicker = document.querySelector('#timepicer-without-icon');
const wiInitTimepicker = new mdb.Timepicker(wiTimepicker, {
withIcon: false
})
Default time
MDB Timepicker allows to initialize a default time in the picker and input. You can set it
with option defaultTime
. This options accepts strings like:
- 12:34
- 12:34 PM
- 12:34 AM
and also new Date() format like:
- new Date()
- new Date().toLocaleTimeString([],{timeStyle: 'short'})
Note: If you are using string with PM/AM, you have to have option format24 set to false otherwise your default time will be formate to 24h. Also if you are using string without PM/AM and you would like have 24h format hour you have to set option format24 to true. If you will only put a string without PM/AM and format24 set to false you are gonna have a timepicker with 12h and format set to AM with default.
<div class="form-outline timepicker-default-time-string-pm">
<input type="text" class="form-control" id="form27" />
<label class="form-label" for="form27">With string PM</label>
</div>
<div class="form-outline timepicker-default-time-string-am">
<input type="text" class="form-control" id="form28" />
<label class="form-label" for="form28">With string AM</label>
</div>
<div class="form-outline timepicker-default-time-string-without-pm-am">
<input type="text" class="form-control" id="form29" />
<label class="form-label" for="form29">With string without AM/PM</label>
</div>
<div class="form-outline timepicker-default-time-string-24h ">
<input type="text" class="form-control" id="form210" />
<label class="form-label" for="form210">With string 24h</label>
</div>
<div class="form-outline timepicker-default-time-with-new-date-12h">
<input type="text" class="form-control" id="form211" />
<label class="form-label" for="form211">With new Date with 12h</label>
</div>
<div class="form-outline timepicker-default-time-with-new-date-24h">
<input type="text" class="form-control" id="form212" />
<label class="form-label" for="form212">With new Date with 24h</label>
</div>
//Default time string PM
const pickerStartedPM = document.querySelector('.timepicker-default-time-string-pm ');
const tmStartedPM = new mdb.Timepicker(pickerStartedPM, {
defaultTime: '02:12 PM'
});
//Default time string AM
const pickerStartedAM = document.querySelector('.timepicker-default-time-string-am');
const tmStartedAM = new mdb.Timepicker(pickerStartedAM, {
defaultTime: '05:12 AM'
});
//Default time without PM/AM
const pickerStartedWithoutPmAm = document.querySelector(
'.timepicker-default-time-string-without-pm-am'
);
const tmStartedWithoutPmAm = new mdb.Timepicker(pickerStartedWithoutPmAm, {
defaultTime: '05:12',
});
//Default time with 24h
const pickerStartedWith24h = document.querySelector('.timepicker-default-time-string-24h');
const tmStartedWith24h = new mdb.Timepicker(pickerStartedWith24h, {
defaultTime: '23:44',
format24: true,
});
//Default time date 12h
const pickerStartedWithDate12h = document.querySelector('.timepicker-default-time-with-new-date-12h');
const tmStartedWithDate12h = new mdb.Timepicker(pickerStartedWithDate12h, {
defaultTime: new Date(),
});
//Default time date 24h
const pickerStartedWithDate24h = document.querySelector('.timepicker-default-time-with-new-date-24h');
const tmStartedWithDate24h = new mdb.Timepicker(pickerStartedWithDate24h, {
defaultTime: new Date(),
format24: true,
});
Handle input value
If you want handle input value on modal approve, you have to add custom event to selected picker.
<div class="form-outline" id="timepicker-value">
<input type="text" class="form-control" data-mdb-timepicker-format24="true" />
<label class="form-label" for="form3">Select a time</label>
</div>
<div class="my-2">Input value: <span id="span-input-value"></span></div>
const timepickerValue = document.querySelector('#timepicker-value');
const tminputValue = new mdb.Timepicker(timepickerValue);
timepickerValue.addEventListener('input.mdb.timepicker', (input) => {
const valueDiv = document.querySelector('#span-input-value');
valueDiv.innerText = input.target.value;
});
Format 24h
Timepicker allows you to use time format with 24 hours. You can set it with the JavaScript
options or with data-mdb-format24
and set it to true.
<div class="form-outline timepicker" data-mdb-format24="true">
<input type="text" class="form-control" data-mdb-toggle="timepicker" />
<label class="form-label" for="form3">Select a time</label>
</div>
Just Input
You can set a timepicker to just an input.
<div class="form-outline timepicker" data-mdb-with-icon="false">
<input type="text" class="form-control" id="form22" data-mdb-toggle="timepicker" />
<label class="form-label" for="form22">Select a time</label>
</div>
Increment
You can set a increment value by 5 to a minutes.
<div class="form-outline timepicker-inc ">
<input type="text" class="form-control" id="form45" />
<label class="form-label" for="form45">Select a time</label>
</div>
const pickerInc = document.querySelector('.timepicker-inc');
const timepickerInc = new mdb.Timepicker(pickerInc, {
increment: true,
});
Max time
You can max time to timepicker with options.
<div class="form-outline timepicker-max-time">
<input type="text" class="form-control" id="form46" />
<label class="form-label" for="form46">Select a time</label>
</div>
const pickerMaxTime = document.querySelector('.timepicker-max-time');
const timepickerMaxTime = new mdb.Timepicker(pickerMaxTime, {
maxTime: '6:35'
});
Max time with PM
You can max time to timepicker with options.
<div class="form-outline timepicker-max-time-pm">
<input type="text" class="form-control" id="form48" />
<label class="form-label" for="form48">Select a time</label>
</div>
const pickerMaxTimePM = document.querySelector('.timepicker-max-time-pm');
const tmMaxPm = new mdb.Timepicker(pickerMaxTimePM, {
maxTime: '6:35 PM'
});
Max time with AM
You can max time to timepicker with options.
<div class="form-outline timepicker-max-time-am">
<input type="text" class="form-control" id="form410" />
<label class="form-label" for="form410">Select a time</label>
</div>
const pickerMaxTimeAM = document.querySelector('.timepicker-max-time-am');
const tmMaxAm = new mdb.Timepicker(pickerMaxTimeAM, {
maxTime: '6:35 AM'
});
Min time
You can min time to timepicker with options.
<div class="form-outline timepicker-min-time">
<input type="text" class="form-control" id="form412" />
<label class="form-label" for="form412">Select a time</label>
</div>
const pickerMinTime = document.querySelector('.timepicker-min-time');
const timepickerMinTime = new mdb.Timepicker(pickerMinTime, {
minTime: '10:15'
});
Min time with PM
You can min time to timepicker with options.
<div class="form-outline timepicker-min-time-pm ">
<input type="text" class="form-control" id="form414" />
<label class="form-label" for="form414">Select a time</label>
</div>
const pickerMinTimePM = document.querySelector('.timepicker-min-time-pm');
const tmMinPm = new mdb.Timepicker(pickerMinTimePM, {
minTime: '6:35 PM'
});
Min time with AM
You can min time to timepicker with options.
<div class="form-outline timepicker-min-time-am" style="width:22rem">
<input type="text" class="form-control" id="form416" />
<label class="form-label" for="form416">Select a time</label>
</div>
const pickerMinTimeAM = document.querySelector('.timepicker-min-time-am');
const tmMinAm = new mdb.Timepicker(pickerMinTimeAM, {
minTime: '6:35 AM'
});
Disable past
Use the disablePast
option to disallow past time selection.
<div class="form-outline timepicker-disable-past">
<input type="text" class="form-control" id="form4" />
<label class="form-label" for="form4">Select a time</label>
</div>
const pickerDisablePast = document.querySelector('.timepicker-disable-past');
const timepickerDisablePast = new mdb.Timepicker(pickerDisablePast, {
disablePast: true
});
Disable future
Use the disableFuture
option to disallow future time selection.
<div class="form-outline timepicker-disable-future">
<input type="text" class="form-control" id="form5" />
<label class="form-label" for="form5">Select a time</label>
</div>
const pickerDisableFuture = document.querySelector('.timepicker-disable-future');
const timepickerDisableFuture = new mdb.Timepicker(pickerDisableFuture, {
disableFuture: true
});
Accessibility
We added proper aria attributes to the timepicker controls to make the component accessible. It's possible to change the values of those attributes by modyfing the component options:
amLabel: 'AM',
cancelLabel: 'Cancel',
clearLabel: 'Clear',
invalidLabel: 'Invalid Time Format',
okLabel: 'Ok',
pmLabel: 'PM',
Timepicker - API
Usage
Timepicker allows to select a time and display it
on the selected output. It can be initialized automatically by adding timepicker
class, or manually with JS.
Via data attributes
Add .timepicker
class to selected wrapper with input. It will automatically initialize
timepicker using this element.
<div class="form-outline timepicker">
<input type="text" class="form-control" id="form1" />
<label class="form-label" for="form1">Example label</label>
</div>
Via JavaScript
Call Timepicker manually with:
const myTimepicker = new mdb.Timepicker(document.getElementById('wrapper-id'), options)
Options
Options can be passed via data attributes or JavaScript. For data attributes, append the
option name to data-mdb-
, as in
data-mdb-format24=""
.
Name | Type | Default | Description |
---|---|---|---|
appendValidationInfo
|
Boolean | true |
Allows to append div with information about invalid format |
bodyID |
String | "" |
Allows to set Timepicker modal body ID. |
cancelLabel |
String | "Cancel" |
Text of cancel button. |
clearLabel |
String | "Clear" |
Text of clear button. |
closeModalOnMinutesClick |
Boolean | false |
Allows to close modal if minutes are selected. |
container |
String | 'body' |
Allows to set the parent element for the timepicker. |
disabled |
Boolean | false |
Set a disabled attribute to input in wrapper |
enableValidation |
Boolean | true |
Enables input validation |
footerID |
String | false |
Allows to set Timepicker modal footer ID |
format12 |
Boolean | true |
Allows to use format 12h |
format24 |
Boolean | false |
Allows to use format 24h |
headID |
String | "" |
Allows to set Timepicker modal head ID |
increment |
Boolean | false |
Allows to set increment minutes by 5 |
inline |
Boolean | false |
Allows to use a inline version of timepicker |
invalidLabel |
String | "Invalid Time Format" |
Allows to change a text in the invalid div |
minTime |
String | "" |
Allows to set min time for picker. It accepts minutes and optionally AM/PM format. |
maxTime |
String | "" |
Allows to set max time for picker. It accepts minutes and optionally AM/PM format. |
modalID |
String | "" |
Allows to set Timepicker modal ID |
okLabel |
String | "Ok" |
Allows to change a text inside submit button |
overflowHidden |
Boolean | true |
Allows to disable/enable a overflow hidden to body if modal is shown |
pickerID |
String | "" |
Allows to set Timepicker picker ID |
readOnly |
Boolean | false |
Allows to set readonly property to input inside wrapper |
showClearBtn |
Boolean | true |
Allows to attach/remove clear button in modal. |
switchHoursToMinutesOnClick |
Boolean | true |
Allows to enable/disable switching to minutes if hours are selected |
withicon |
Boolean | true |
Allows to enable/disable append a icon to input |
iconClass |
String | 'fas fas fa-clock fa-sm timepicker-icon' |
Allows to set custom classes to timepicker icon |
pmLabel |
String | 'PM' |
Allows to set custom text to PM button |
amLabel |
String | 'AM' |
Allows to set custom text to AM button |
Methods
Name | Description | Example |
---|---|---|
dispose
|
Destroy timepicker with this method |
myTimepicker.dispose()
|
getInstance
|
Static method which allows you to get the timepicker instance associated to a DOM element. |
Timepicker.getInstance(myTimepicker)
|
getOrCreateInstance
|
Static method which returns the timepicker instance associated to a DOM element or create a new one in case it wasn't initialized. |
Timepicker.getOrCreateInstance(myTimepicker)
|
update
|
Updates options of a timepicker instance. |
Timepicker.update({inline: true})
|
const timepickerEl = document.getElementById('myTimepicker')
const timepicker = new mdb.Timepicker(timepickerEl)
timepicker.dispose();
Events
Name | Description |
---|---|
input.mdb.timepicker
|
This event fires when timepicker modal is approved and showing current elements with data-mdb-toggle. You can use it for taking a value when you are saving value to input. |
const myTimepicker = document.getElementById('myTimepicker')
myTimepicker.addEventListener('input.mdb.timepicker', (e) => {
// do something...
})
CSS variables
As part of MDB’s evolving CSS variables approach, timepicker now use local CSS variables for enhanced real-time customization. Values for the CSS variables are set via Sass, so Sass customization is still supported, too.
Timepicker CSS variables are in different classes which belong to this component. To make it easier to use them, you can find below all of the used CSS variables.
// .timepicker
// &-wrapper
--#{$prefix}timepicker-wrapper-bg: #{$timepicker-wrapper-bg};
--#{$prefix}timepicker-elements-min-width: #{$timepicker-elements-min-width};
--#{$prefix}timepicker-elements-min-height: #{$timepicker-elements-min-height};
--#{$prefix}timepicker-elements-background: #{$timepicker-elements-background};
--#{$prefix}timepicker-elements-border-top-right-radius: #{$timepicker-elements-border-top-right-radius};
--#{$prefix}timepicker-elements-border-top-left-radius: #{$timepicker-elements-border-top-left-radius};
--#{$prefix}timepicker-elements-media-border-bottom-left-radius: #{$timepicker-elements-media-border-bottom-left-radius};
--#{$prefix}timepicker-head-bg: #{$timepicker-head-bg};
--#{$prefix}timepicker-head-height: #{$timepicker-head-height};
--#{$prefix}timepicker-head-border-top-right-radius: #{$timepicker-head-border-top-right-radius};
--#{$prefix}timepicker-head-border-top-left-radius: #{$timepicker-head-border-top-left-radius};
--#{$prefix}timepicker-head-padding-y: #{$timepicker-head-padding-y};
--#{$prefix}timepicker-head-padding-right: #{$timepicker-head-padding-right};
--#{$prefix}timepicker-head-padding-left: #{$timepicker-head-padding-left};
--#{$prefix}timepicker-head-media-padding: #{$timepicker-head-media-padding};
--#{$prefix}timepicker-head-media-padding-right: #{$timepicker-head-media-padding-right};
--#{$prefix}timepicker-head-media-min-height: #{$timepicker-head-media-min-height};
--#{$prefix}timepicker-head-inline-border-bottom-right-radius: #{$timepicker-head-inline-border-bottom-right-radius};
--#{$prefix}timepicker-head-inline-border-bottom-left-radius: #{$timepicker-head-inline-border-bottom-left-radius};
--#{$prefix}timepicker-button-font-size: #{$timepicker-button-font-size};
--#{$prefix}timepicker-button-min-width: #{$timepicker-button-min-width};
--#{$prefix}timepicker-button-font-weight: #{$timepicker-button-font-weight};
--#{$prefix}timepicker-button-line-height: #{$timepicker-button-line-height};
--#{$prefix}timepicker-button-border-radius: #{$timepicker-button-border-radius};
--#{$prefix}timepicker-button-letter-spacing: #{$timepicker-button-letter-spacing};
--#{$prefix}timepicker-button-color: #{$timepicker-button-color};
--#{$prefix}timepicker-button-transition: #{$timepicker-button-transition};
--#{$prefix}timepicker-button-padding-x: #{$timepicker-button-padding-x};
--#{$prefix}timepicker-button-height: #{$timepicker-button-height};
--#{$prefix}timepicker-button-margin-bottom: #{$timepicker-button-margin-bottom};
--#{$prefix}timepicker-button-hover-bg: #{$timepicker-button-hover-bg};
--#{$prefix}timepicker-button-focus-bg: #{$timepicker-button-focus-bg};
--#{$prefix}timepicker-submit-inline-height: #{$timepicker-submit-inline-height};
--#{$prefix}timepicker-submit-inline-min-width: #{$timepicker-submit-inline-min-width};
--#{$prefix}timepicker-submit-inline-margin-left: #{$timepicker-submit-inline-margin-left};
--#{$prefix}timepicker-submit-inline-color: #{$timepicker-submit-inline-color};
--#{$prefix}timepicker-current-font-size: #{$timepicker-current-font-size};
--#{$prefix}timepicker-current-font-weight: #{$timepicker-current-font-weight};
--#{$prefix}timepicker-current-line-height: #{$timepicker-current-line-height};
--#{$prefix}timepicker-current-letter-spacing: #{$timepicker-current-letter-spacing};
--#{$prefix}timepicker-current-color: #{$timepicker-current-color};
--#{$prefix}timepicker-current-opacity: #{$timepicker-current-opacity};
--#{$prefix}timepicker-clock-wrapper-min-width: #{$timepicker-clock-wrapper-min-width};
--#{$prefix}timepicker-clock-wrapper-max-width: #{$timepicker-clock-wrapper-max-width};
--#{$prefix}timepicker-clock-wrapper-min-height: #{$timepicker-clock-wrapper-min-height};
--#{$prefix}timepicker-mode-wrapper-font-size: #{$timepicker-mode-wrapper-font-size};
--#{$prefix}timepicker-mode-wrapper-color: #{$timepicker-mode-wrapper-color};
--#{$prefix}timepicker-clock-inner-top: #{$timepicker-clock-inner-top};
--#{$prefix}timepicker-clock-inner-left: #{$timepicker-clock-inner-left};
--#{$prefix}timepicker-clock-inner-transform: #{$timepicker-clock-inner-transform};
--#{$prefix}timepicker-clock-inner-width: #{$timepicker-clock-inner-width};
--#{$prefix}timepicker-clock-inner-height: #{$timepicker-clock-inner-height};
--#{$prefix}timepicker-time-tips-inner-width: #{$timepicker-time-tips-inner-width};
--#{$prefix}timepicker-time-tips-inner-height: #{$timepicker-time-tips-inner-height};
--#{$prefix}timepicker-time-tips-inner-font-size: #{$timepicker-time-tips-inner-font-size};
--#{$prefix}timepicker-time-tips-inner-font-weight: #{$timepicker-time-tips-inner-font-weight};
--#{$prefix}timepicker-clock-width: #{$timepicker-clock-width};
--#{$prefix}timepicker-clock-height: #{$timepicker-clock-height};
--#{$prefix}timepicker-clock-bg: #{$timepicker-clock-bg};
--#{$prefix}timepicker-time-tips-inner-active-color: #{$timepicker-time-tips-inner-active-color};
--#{$prefix}timepicker-time-tips-inner-active-bg: #{$timepicker-time-tips-inner-active-bg};
--#{$prefix}timepicker-time-tips-inner-active-font-weight: #{$timepicker-time-tips-inner-active-font-weight};
--#{$prefix}timepicker-time-tips-inner-disabled-color: #{$timepicker-time-tips-inner-disabled-color};
--#{$prefix}timepicker-dot-font-weight: #{$timepicker-dot-font-weight};
--#{$prefix}timepicker-dot-line-height: #{$timepicker-dot-line-height};
--#{$prefix}timepicker-dot-letter-spacing: #{$timepicker-dot-letter-spacing};
--#{$prefix}timepicker-dot-color: #{$timepicker-dot-color};
--#{$prefix}timepicker-dot-media-font-size: #{$timepicker-dot-media-font-size};
--#{$prefix}timepicker-dot-media-font-weight: #{$timepicker-dot-media-font-weight};
--#{$prefix}timepicker-dot-font-size: #{$timepicker-dot-font-size};
--#{$prefix}timepicker-dot-opacity: #{$timepicker-dot-opacity};
--#{$prefix}timepicker-current-inline-font-size: #{$timepicker-current-inline-font-size};
--#{$prefix}timepicker-item-width: #{$timepicker-item-width};
--#{$prefix}timepicker-item-height: #{$timepicker-item-height};
--#{$prefix}timepicker-item-padding: #{$timepicker-item-padding};
--#{$prefix}timepicker-item-font-size: #{$timepicker-item-font-size};
--#{$prefix}timepicker-item-middle-dot-top: #{$timepicker-item-middle-dot-top};
--#{$prefix}timepicker-item-middle-dot-left: #{$timepicker-item-middle-dot-left};
--#{$prefix}timepicker-item-middle-dot-width: #{$timepicker-item-middle-dot-width};
--#{$prefix}timepicker-item-middle-dot-height: #{$timepicker-item-middle-dot-height};
--#{$prefix}timepicker-item-middle-dot-transform: #{$timepicker-item-middle-dot-transform};
--#{$prefix}timepicker-item-middle-dot-border-radius: #{$timepicker-item-middle-dot-border-radius};
--#{$prefix}timepicker-item-middle-dot-bg: #{$timepicker-item-middle-dot-bg};
--#{$prefix}timepicker-hand-pointer-bg: #{$timepicker-hand-pointer-bg};
--#{$prefix}timepicker-hand-pointer-bottom: #{$timepicker-hand-pointer-bottom};
--#{$prefix}timepicker-hand-pointer-height: #{$timepicker-hand-pointer-height};
--#{$prefix}timepicker-hand-pointer-left: #{$timepicker-hand-pointer-left};
--#{$prefix}timepicker-hand-pointer-width: #{$timepicker-hand-pointer-width};
--#{$prefix}timepicker-transform-transition: #{$timepicker-transform-transition};
--#{$prefix}timepicker-time-tips-width: #{$timepicker-time-tips-width};
--#{$prefix}timepicker-time-tips-height: #{$timepicker-time-tips-height};
--#{$prefix}timepicker-time-tips-height: #{$timepicker-time-tips-height};
--#{$prefix}timepicker-time-tips-font-size: #{$timepicker-time-tips-font-size};
--#{$prefix}timepicker-time-tips-active-color: #{$timepicker-time-tips-active-color};
--#{$prefix}timepicker-circle-top: #{$timepicker-circle-top};
--#{$prefix}timepicker-circle-left: #{$timepicker-circle-left};
--#{$prefix}timepicker-circle-width: #{$timepicker-circle-width};
--#{$prefix}timepicker-circle-border-width: #{$timepicker-circle-border-width};
--#{$prefix}timepicker-circle-border-color: #{$timepicker-circle-border-color};
--#{$prefix}timepicker-circle-height: #{$timepicker-circle-height};
--#{$prefix}timepicker-hour-mode-color: #{$timepicker-hour-mode-color};
--#{$prefix}timepicker-hour-mode-opacity: #{$timepicker-hour-mode-opacity};
--#{$prefix}timepicker-hour-mode-hover-bg: #{$timepicker-hour-mode-hover-bg};
--#{$prefix}timepicker-hour-mode-font-size: #{$timepicker-hour-mode-font-size};
--#{$prefix}timepicker-hour-mode-active-color: #{$timepicker-hour-mode-active-color};
--#{$prefix}timepicker-footer-border-bottom-left-radius: #{$timepicker-footer-border-bottom-left-radius};
--#{$prefix}timepicker-footer-border-bottom-right-radius: #{$timepicker-footer-border-bottom-right-radius};
--#{$prefix}timepicker-footer-height: #{$timepicker-footer-height};
--#{$prefix}timepicker-footer-padding-x: #{$timepicker-footer-padding-x};
--#{$prefix}timepicker-footer-bg: #{$timepicker-footer-bg};
--#{$prefix}timepicker-container-max-height: #{$timepicker-container-max-height};
--#{$prefix}timepicker-container-box-shadow: #{$box-shadow-4};
--#{$prefix}timepicker-icon-up-down-transition: #{$timepicker-icon-up-down-transition};
--#{$prefix}timepicker-icon-up-down-transform: #{$timepicker-icon-up-down-transform};
--#{$prefix}timepicker-icon-up-down-left: #{$timepicker-icon-up-down-left};
--#{$prefix}timepicker-icon-up-down-width: #{$timepicker-icon-up-down-width};
--#{$prefix}timepicker-icon-up-down-height: #{$timepicker-icon-up-down-height};
--#{$prefix}timepicker-icon-up-top: #{$timepicker-icon-up-top};
--#{$prefix}timepicker-icon-down-bottom: #{$timepicker-icon-down-bottom};
--#{$prefix}timepicker-icon-btn-width: #{$timepicker-icon-btn-width};
--#{$prefix}timepicker-icon-btn-height: #{$timepicker-icon-btn-height};
--#{$prefix}timepicker-input-color: #{$timepicker-input-color};
--#{$prefix}timepicker-clock-animation: #{$timepicker-clock-animation};
// &-wrapper-inline
--#{$prefix}timepicker-wrapper-inline-border-radius: #{$timepicker-wrapper-inline-border-radius};
// @media screen and (min-width: 320px) and (max-width: 825px) and (orientation: landscape)
--#{$prefix}timepicker-elements-media-border-bottom-left-radius
// &-toggle-button
--#{$prefix}timepicker-btn-icon-right: #{$timepicker-btn-icon-right};
--#{$prefix}timepicker-btn-icon-top: #{$timepicker-btn-icon-top};
--#{$prefix}timepicker-btn-icon-transform: #{$timepicker-btn-icon-transform};
--#{$prefix}timepicker-btn-icon-transition: #{$timepicker-btn-icon-transition};
--#{$prefix}timepicker-btn-icon-hover-color: #{$timepicker-btn-icon-hover-color};
--#{$prefix}timepicker-btn-icon-focus-color: #{$timepicker-btn-icon-focus-color};
// .timepicker-modal
--#{$prefix}timepicker-zindex: #{$timepicker-zindex};
SCSS variables
$timepicker-zindex: 1065;
$timepicker-wrapper-bg: rgba(0, 0, 0, 0.4);
$timepicker-wrapper-inline-border-radius: 0.5rem;
$timepicker-elements-min-width: 310px;
$timepicker-elements-min-height: 325px;
$timepicker-elements-background: $white;
$timepicker-elements-border-top-right-radius: 0.6rem;
$timepicker-elements-border-top-left-radius: 0.6rem;
$timepicker-elements-media-border-bottom-left-radius: 0.5rem;
$timepicker-head-bg: $primary;
$timepicker-head-height: 100px;
$timepicker-head-border-top-right-radius: 0.5rem;
$timepicker-head-border-top-left-radius: 0.5rem;
$timepicker-head-padding-y: 10px;
$timepicker-head-padding-right: 24px;
$timepicker-head-padding-left: 50px;
$timepicker-head-media-padding: 10px;
$timepicker-head-media-padding-right: 10px;
$timepicker-head-media-min-height: 305px;
$timepicker-head-inline-border-bottom-right-radius: 0.5rem;
$timepicker-head-inline-border-bottom-left-radius: 0.5rem;
$timepicker-button-font-size: 0.8rem;
$timepicker-button-min-width: 64px;
$timepicker-button-font-weight: 500;
$timepicker-button-line-height: 40px;
$timepicker-button-border-radius: 10px;
$timepicker-button-letter-spacing: 0.1rem;
$timepicker-button-color: $primary;
$timepicker-button-transition: background-color 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
box-shadow 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms, border 250ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
$timepicker-button-hover-bg: rgba(0, 0, 0, 0.08);
$timepicker-button-focus-bg: $timepicker-button-hover-bg;
$timepicker-button-padding-x: 10px;
$timepicker-button-height: 40px;
$timepicker-button-margin-bottom: 10px;
$timepicker-submit-inline-height: 48px;
$timepicker-submit-inline-min-width: 48px;
$timepicker-submit-inline-margin-left: 30px;
$timepicker-submit-inline-color: $white;
$timepicker-current-font-size: 3.75rem;
$timepicker-current-font-weight: 300;
$timepicker-current-line-height: 1.2;
$timepicker-current-letter-spacing: -0.00833em;
$timepicker-current-color: $white;
$timepicker-current-opacity: 0.54;
$timepicker-mode-wrapper-font-size: 18px;
$timepicker-mode-wrapper-color: rgba(255, 255, 255, 0.54);
$timepicker-clock-wrapper-min-width: 310px;
$timepicker-clock-wrapper-max-width: 325px;
$timepicker-clock-wrapper-min-height: 305px;
$timepicker-clock-animation: show-up-clock 350ms linear;
$timepicker-clock-width: 260px;
$timepicker-clock-height: 260px;
$timepicker-clock-bg: rgba(0, 0, 0, 0.07);
$timepicker-clock-inner-top: 50%;
$timepicker-clock-inner-left: 50%;
$timepicker-clock-inner-transform: translate(-50%, -50%);
$timepicker-clock-inner-width: 160px;
$timepicker-clock-inner-height: 160px;
$timepicker-time-tips-inner-width: 32px;
$timepicker-time-tips-inner-height: 32px;
$timepicker-time-tips-inner-font-size: 1.1rem;
$timepicker-time-tips-inner-font-weight: 300;
$timepicker-time-tips-inner-active-color: $white;
$timepicker-time-tips-inner-active-bg: $primary;
$timepicker-time-tips-inner-active-font-weight: 400;
$timepicker-time-tips-inner-disabled-color: #b3afaf;
$timepicker-dot-font-weight: 300;
$timepicker-dot-line-height: 1.2;
$timepicker-dot-letter-spacing: -0.00833em;
$timepicker-dot-color: $white;
$timepicker-dot-font-size: 3.75rem;
$timepicker-dot-opacity: 0.54;
$timepicker-dot-media-font-size: 3rem;
$timepicker-dot-media-font-weight: 400;
$timepicker-current-inline-font-size: 2.5rem;
$timepicker-item-width: 20px;
$timepicker-item-height: 20px;
$timepicker-item-padding: 10px;
$timepicker-item-font-size: 1.1em;
$timepicker-item-middle-dot-top: 50%;
$timepicker-item-middle-dot-left: 50%;
$timepicker-item-middle-dot-width: 6px;
$timepicker-item-middle-dot-height: $timepicker-item-middle-dot-width;
$timepicker-item-middle-dot-transform: translate(-50%, -50%);
$timepicker-item-middle-dot-border-radius: 50%;
$timepicker-item-middle-dot-bg: $primary;
$timepicker-hand-pointer-bg: $primary;
$timepicker-hand-pointer-bottom: 50%;
$timepicker-hand-pointer-height: 40%;
$timepicker-hand-pointer-left: calc(50% - 1px);
$timepicker-hand-pointer-width: 2px;
$timepicker-transform-transition: transform 400ms cubic-bezier(0.4, 0, 0.2, 1) 0ms,
height 400ms cubic-bezier(0.4, 0, 0.2, 1) 0ms;
$timepicker-time-tips-width: 32px;
$timepicker-time-tips-height: 32px;
$timepicker-time-tips-font-size: 1.1rem;
$timepicker-time-tips-active-color: $white;
$timepicker-circle-top: -21px;
$timepicker-circle-left: -15px;
$timepicker-circle-width: 4px;
$timepicker-circle-border-width: 14px;
$timepicker-circle-border-color: $primary;
$timepicker-circle-height: 4px;
$timepicker-hour-mode-color: $white;
$timepicker-hour-mode-opacity: 0.54;
$timepicker-hour-mode-hover-bg: rgba(0, 0, 0, 0.15);
$timepicker-hour-mode-active-color: $white;
$timepicker-hour-mode-font-size: 2.5rem;
$timepicker-footer-border-bottom-left-radius: 0.5rem;
$timepicker-footer-border-bottom-right-radius: 0.5rem;
$timepicker-footer-height: 56px;
$timepicker-footer-padding-x: 12px;
$timepicker-footer-bg: $white;
$timepicker-container-max-height: calc(100% - 64px);
$timepicker-icon-up-down-transition: 0.2s ease all;
$timepicker-icon-up-down-transform: translate(-50%, -50%);
$timepicker-icon-up-down-left: 50%;
$timepicker-icon-up-down-width: 30px;
$timepicker-icon-up-down-height: 30px;
$timepicker-icon-up-top: -35px;
$timepicker-icon-down-bottom: -47px;
$timepicker-icon-btn-width: 30px;
$timepicker-icon-btn-height: 30px;
$timepicker-input-color: $primary;
$timepicker-btn-icon-right: -10px;
$timepicker-btn-icon-transform: translate(-50%, -50%);
$timepicker-btn-icon-top: 50%;
$timepicker-btn-icon-transition: all 0.3s ease;
$timepicker-btn-icon-hover-color: $primary;
$timepicker-btn-icon-focus-color: $primary;