Skip to content

Heat Grid

Seven days by N weeks of cells in five quiet bone levels.

$149 once · every Pro piece

Customize

Point, drag a finger or use the arrow keys to light one cell: it grows a little while the panel reads its day and value; press and drag, or Shift with the arrows, to select a rectangle whose sum the readout rolls to. Hover a level in the legend and only its cells stay. Cells enter as a column wave on the shared reveal curve. Options: a dot calendar or squircle cells, the blackbody heat ramp instead of bone, a texture per level shared with the legend, a gradient legend with a caret for the hovered cell, quarter separators that fade at both ends, faded weekends, an opt-in row and column highlight, and loading and empty states.

Install

npx shadcn@latest add @obsyde/heat-grid

Needs your licence key · Get Pro

Usage

Import it from where the CLI puts it, or copy the files below by hand.

import { HeatGrid } from '@/components/obsyde/ember/heat-grid/HeatGrid';

export function Example() {
  return (
    <HeatGrid />
  );
}

Files

What you get with Pro: plain React, TypeScript and CSS, with no dependencies.

  • ember/heat-grid/HeatGrid.tsxcomponent
  • ember/heat-grid/heat-grid.cssstyles
  • ember/heat-grid/heat-grid-demo.cssstyles
  • ember/heat-grid/HeatGridDemo.tsxdemo
  • ember/viz-kit/viz-kit.cssshared
  • ember/viz-kit/state-messages.tsxshared
  • ember/viz-kit/Tooltip.tsxshared
  • ember/viz-kit/focus.tsshared
  • ember/viz-kit/patterns.tsxshared
  • ember/viz-kit/roll.tsshared
  • ember/shared/rolling-number.cssshared
  • ember/shared/spring.tsshared
  • ember/shared/accent.tsshared
  • ember/viz-kit/scale.tsshared
  • ember/viz-kit/motion.tsshared
  • ember/viz-kit/chart.tsxshared
  • ember/shared/ember.cssshared
  • ember/viz-kit/touch.tsshared
  • ember/viz-kit/keyboard.tsshared
  • ember/viz-kit/size.tsshared
  • ember/viz-kit/Legend.tsxshared

API

PropTypeDefault
accentAccent'ember' | 'volt' | 'arc''ember'
weeksWeeksnumber26
densityDensitynumber0.85
cellCell'square' | 'dot' | 'squircle''square'
palettePalette'mono' | 'heat''mono'
patternsLevel patternsbooleanfalse
legendLegend'levels' | 'gradient' | 'none''levels'
tooltipTooltip'panel' | 'none''panel'
crosshairRow & columnbooleanfalse
separatorsSeparatorsbooleanfalse
weekendsWeekends'normal' | 'faded''normal'
statusStatus'ready' | 'loading' | 'empty''ready'
unitUnitstring—
seedSeednumber1