Countdown
React Bootstrap 5 Countdown plugin
Countdown plugin built with Bootstrap 5, React 18 and Material Design 2.0. Examples of timers, counters, stopwatch, number counts, counter box & more.Note: Read the API tab to find all available options and advanced customization
Basic example
Create default Countdown by adding countdown to a <MDBCountdown> component with a Countdown expiration date value. Add <MDBCountdownUnit> components and an property type with time unit to a child element to indicate which time units should be displayed inside Countdown.
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown countdown='31 December 2022 23:59:59'> <MDBCountdownUnit /> <MDBCountdownUnit type='hours' /> <MDBCountdownUnit type='minutes' /> <MDBCountdownUnit type='seconds' /> </MDBCountdown> ); } Interval
Create interval that will reset timer every time initial countdown ends.
import React, { useState } from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { const [defaultDate, setDefaultDate] = useState(new Date('5 November 2022 12:35')); const handleInterval = (date: any) => { const newDate = new Date(date.getTime() + 60000); setDefaultDate(newDate); }; return ( <MDBCountdown countdown={defaultDate} onEnd={() => handleInterval(defaultDate)}> <MDBCountdownUnit /> <MDBCountdownUnit type='hours' /> <MDBCountdownUnit type='minutes' /> <MDBCountdownUnit type='seconds' /> </MDBCountdown> ); } Label
Create label for each time unit by adding label property with a text of your choice.
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown countdown='31 December 2022 23:59:59'> <MDBCountdownUnit label='days' /> <MDBCountdownUnit label='hours' type='hours' /> <MDBCountdownUnit label='minutes' type='minutes' /> <MDBCountdownUnit label='seconds' type='seconds' /> </MDBCountdown> ); } Separator
Add separator to a <MDBCountdown> component to insert separator between each time unit.
Separator won't be visible for Countdown column position
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown separator=':' countdown='31 December 2022 23:59:59'> <MDBCountdownUnit /> <MDBCountdownUnit type='hours' /> <MDBCountdownUnit type='minutes' /> <MDBCountdownUnit type='seconds' /> </MDBCountdown> ); } Styling
Countdown position
Change default horizontal position of Countdown with position="vertical" property.
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown position='vertical' countdown='31 December 2022 23:59:59'> <MDBCountdownUnit /> <MDBCountdownUnit type='hours' /> <MDBCountdownUnit type='minutes' /> <MDBCountdownUnit type='seconds' /> </MDBCountdown> ); } Label position
Change default vertical position of Countdown label with labelPosition="horizontal"
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown labelPosition='horizontal' countdown='31 December 2022 23:59:59'> <MDBCountdownUnit label='d' /> <MDBCountdownUnit label='h' type='hours' /> <MDBCountdownUnit label='m' type='minutes' /> <MDBCountdownUnit label='s' type='seconds' /> </MDBCountdown> ); } Text size
Change default time unit text size (4rem) with textSize property.
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown textSize='6rem' countdown='31 December 2022 23:59:59'> <MDBCountdownUnit label='days' /> <MDBCountdownUnit label='hours' type='hours' /> <MDBCountdownUnit label='minutes' type='minutes' /> <MDBCountdownUnit label='seconds' type='seconds' /> </MDBCountdown> ); } Custom classes
Add custom classes to time unit value and label with textClasses and labelClasses properties.
import React from 'react'; import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; export default function App() { return ( <MDBCountdown textClasses='badge bg-primary' labelClasses='text-light bg-dark' countdown='31 December 2022 23:59:59' > <MDBCountdownUnit label='days' /> <MDBCountdownUnit label='hours' type='hours' /> <MDBCountdownUnit label='minutes' type='minutes' /> <MDBCountdownUnit label='seconds' type='seconds' /> </MDBCountdown> ); } Countdown - API
Import
import { MDBCountdown, MDBCountdownUnit } from 'mdb-react-countdown'; Properties
MDBCountdown
| Name | Type | Default | Description | Example |
|---|---|---|---|---|
className | string | '' | Add custom class to MDBCountdown | <MDBCountdown countdown="31 December 2022 23:59:59" className="class" /> |
separator | string | '' | Attached to container element defines separator used between each time unit value. Separator is not visible in vertical position of the Countdown element. | <MDBCountdown countdown="31 December 2022 23:59:59" separator=':' /> |
position | 'horizontal' | 'vertical' | 'horizontal' | Positions Countdown element horizontally or vertically. | <MDBCountdown countdown="31 December 2022 23:59:59" position='vertical' /> |
labelPosition | 'horizontal' | 'vertical' | 'vertical' | Positions all labels at the bottom or next to the corresponding time unit value. | <MDBCountdown countdown="31 December 2022 23:59:59" labelPosition='vertical' /> |
textSize | string | '' | Sets size of time unit text element. Text for labels in vertical label position is four times smaller than time unit text. | <MDBCountdown countdown="31 December 2022 23:59:59" textSize='6rem' /> |
textClasses | string | '' | Adds custom styles to all time unit text elements. | <MDBCountdown countdown="31 December 2022 23:59:59" textClasses="bg-primary badge" /> |
labelClasses | string | '' | Adds custom styles to all labels. | <MDBCountdown countdown="31 December 2022 23:59:59" labelClasses='text-white' /> |
countdown | string | Date | '' | Takes the value of the date to which the timer will be counting. | <MDBCountdown countdown="31 December 2022 23:59:59" /> |
countdownRef | React.MutableObjectRef<any> | | A reference to the MDBCountdown component. | <MDBCountdown countdownRef={someRef} /> |
MDBCountdownUnit
| Name | Type | Default | Description | Example |
|---|---|---|---|---|
className | string | '' | Adds a custom class to the MDBCountdownUnit component. | <MDBCountdownUnit className='bg-secondary' /> |
label | string | '' | Defines a label text for the MDBCountdownUnit component. | <MDBCountdownUnit label='Days' /> |
type | 'days' | 'hours' | 'minutes' | 'seconds' | 'days' | Defines the type of the counter element. | <MDBCountdownUnit type='seconds' /> |
ref | React.Ref<any> | | A reference to the MDBCountdownUnit component. | <MDBCountdownUnit ref={someRef} /> |
Events
MDBCountdown
| Name | Type | Description |
|---|---|---|
onStart | () => void | Fires when the counting starts |
onEnd | () => void | Fires when the counting ends |
onError | (error: string) => void | Fires when the problem with countdown property occurs. You can get the invalid value of it with error parameter. |