Skip to content

react-sandbox/heatmap

Folders and files

NameName
Last commit message
Last commit date

Latest commit

84515c6 Β· Mar 2, 2024

History

25 Commits
Jan 12, 2024
Jan 13, 2024
Jan 12, 2024
Jan 12, 2024
Jan 9, 2024
Mar 2, 2024
Jan 12, 2024
Jan 13, 2024
Jan 12, 2024
Jan 12, 2024
Jan 9, 2024
Jan 12, 2024
Jan 12, 2024

Repository files navigation

Build status Dependencies Build size Package downloads

Example

πŸ“…πŸ”₯ Calendar heatmap component

Customizable SVG inspired by GitHub's contribution graph.

Install

Install the @react-sandbox/heatmap package:

# npm
npm install @react-sandbox/heatmap

# yarn
yarn add @react-sandbox/heatmap

# pnpm
pnpm add @react-sandbox/heatmap

Import

Import the Heatmap component:

import React from 'react'
import Heatmap from '@react-sandbox/heatmap'

const values = [
  { date: new Date('2023-01-01T00:00:00'), count: 5 },
  { date: new Date('2023-01-05T00:00:00'), count: 10 },
  { date: new Date('2023-01-15T00:00:00'), count: 7 },
  { date: new Date('2023-02-08T00:00:00'), count: 3 }
  // ...
]

function App() {
  return (
    <div style={{ width: '500px' }}>
      <Heatmap
        startDate={new Date('2022-12-30T00:00:00')}
        values={values}
        emptyColor={[20, 30, 30]}
        baseColor={[0, 128, 0]}
        scaleFactor={35}
      />
    </div>
  )
}

Props

Prop Type Default Description
startDate Date required Start date
values Array<DateWithCount> required Array of objects with date: Date and count: number
emptyColor RGB Tuple [20, 30, 30] Color of day with a count of 0
baseColor RGB Tuple [0, 128, 0] Color of day with a count of 1 or more
scaleFactor number 10 Multiplier that increases baseColor intensity
className string - CSS classes
style React.CSSProperties - CSS styles

Development

Local

pnpm install
pnpm dev

Tests

pnpm test

Example

Inside test/:

pnpm install
pnpm dev

License

MIT