A react component to generate responsive event timeline

react-event-timeline

A responsive event timeline in React.js

Features

  • It's lightweight
  • Responsive and extensible

Getting started

To install the dependency

npm install --save react-event-timeline

or if you use yarn

yarn add react-event-timeline

Usage

The following snippet generates the timeline you see in the screenshot:

import {Timeline, TimelineEvent} from 'react-event-timeline'

ReactDOM.render(
    <Timeline>
            <TimelineEvent title="John Doe sent a SMS"
                           createdAt="2016-09-12 10:06 PM"
                           icon={<i className="material-icons md-18">textsms</i>}
            >
                I received the payment for $543. Should be shipping the item within a couple of hours.
            </TimelineEvent>
            <TimelineEvent
                title="You sent an email to John Doe"
                createdAt="2016-09-11 09:06 AM"
                icon={<i className="material-icons md-18">email</i>}
            >
                Like we talked, you said that you would share the shipment details? This is an urgent order and so I
                    am losing patience. Can you expedite the process and pls do share the details asap. Consider this a
                    gentle reminder if you are on track already!
            </TimelineEvent>
    </Timeline>,
      document.getElementById('container')
);

Please refer to story description to check out code for all the examples in the storybook

API Documentation

Timeline

This is the wrapper component that creates the infinite vertical timeline

Name Type Description
className string The css class name of timeline container
style object Override inline styles of timeline container
orientation string Display the timeline on right or left. Default: left

TimelineEvent

Each event in the timeline will be represented by the TimelineEvent component. There can be multiple repeating instances of this component inside Timeline wrapper

Name Type Description
title node The title of the event. Can be string or any DOM element node(s)
createdAt node The time at which the event occurred. Can be datetime string or any DOM element node(s)
subtitle node If you prefer having the title at the top and some caption below, omit createdAt and specify title and subtitle
icon node The icon to show as event lable. Can be a SVG or font icon
iconStyle object Custom CSS styling for the icon
bubbleStyle object Custom CSS styling for the bubble containing the icon
buttons node Action buttons to display to the right of the event content
contentStyle node Override content style
container string Optional value card will render event as a Card
style object Override style for the entire event container. Can be used to modify card appearance if container is selected as card
titleStyle object Override style for the title content
subtitleStyle object Override style for the subtitle content
cardHeaderStyle object Override style for the card header if container is card

TimelineBlip

Use this component if your event footprint is too small and can be described in a single line

Name Type Description
title node The title of the event. Can be string or any DOM element node(s)
icon node The icon to show as event lable. Can be a SVG or font icon
iconColor string CSS color code for icon
iconStyle object Custom CSS styling for the icon
style object Override style for the entire event container

Refer to Condensed Timeline in Storybook for examples of using this component

GitHub