Data display
Heatmap
Encodes a labelled matrix with a sequential visualization scale.
01
See it and copy it
Framework example
Choose Astro, React, or Elements to compare native usage against the shared visual output. Each example assumes the framework-level setup is already complete.
Workspace activity
6 available heatmap cells.
View chart data
| Column | Row | Value |
|---|---|---|
| Morning | Monday | 18 |
| Afternoon | Monday | 42 |
| Morning | Tuesday | 27 |
| Afternoon | Tuesday | 64 |
| Morning | Wednesday | 36 |
| Afternoon | Wednesday | 78 |
Framework usage
Switch targets to compare the adapter code. The preview stays visually stable because all three packages share the same tokens andui-* class contract.---
import { Heatmap } from '@santi020k/lumen-astro'
const data = [
{ value: 18, x: 'Morning', y: 'Monday' },
{ value: 42, x: 'Afternoon', y: 'Monday' },
{ value: 27, x: 'Morning', y: 'Tuesday' },
{ value: 64, x: 'Afternoon', y: 'Tuesday' },
{ value: 36, x: 'Morning', y: 'Wednesday' },
{ value: 78, x: 'Afternoon', y: 'Wednesday' }
]
---
<Heatmap
aria-label="Workspace activity by weekday and time of day"
caption="Darker cells represent more active sessions."
{data}
heading="Workspace activity"
/>import { Heatmap } from '@santi020k/lumen-react'
export const Example = () => (
<>
<Heatmap
aria-label="Workspace activity by weekday and time of day"
caption="Darker cells represent more active sessions."
{data}
heading="Workspace activity"
/>
</>
)<script type="module">
import { defineLumenElements } from '@santi020k/lumen-elements/define'
defineLumenElements()
</script>
<lumen-heatmap
aria-label="Workspace activity by weekday and time of day"
caption="Darker cells represent more active sessions."
{data}
heading="Workspace activity"></lumen-heatmap>02
Choose your target
Add this component
Choose the package for your runtime. All adapters share the Lumen stylesheet. Use the matching registry command when you want a local wrapper for that framework.
pnpm add @santi020k/lumen-astropnpm add @santi020k/lumen-astrolumen add Heatmaplumen add Heatmappnpm add @santi020k/lumen-reactpnpm add @santi020k/lumen-reactlumen add Heatmap --target reactlumen add Heatmap --target reactpnpm add @santi020k/lumen-elementspnpm add @santi020k/lumen-elementslumen add Heatmap --target elementslumen add Heatmap --target elementsAPI reference
Lumen-specific props and runtime attributes for the Astro primitive. React props follow the same names; Elements use equivalent kebab-case attributes where custom elements expose them.
| Attribute | Values | Default | Description |
|---|---|---|---|
| data | LumenHeatmapDatum[] | [] | Provides labelled row, column, and intensity values for the heatmap cells. |
| formatValue | (value: number) => string | String | Formats finite cell values in titles and the accessible data table. |
| showTable | boolean | true | Provides a revealable semantic table for every heatmap cell. |
| class, className | string | "" | Merges custom classes with the generated ui-* root classes. |
| ...native attributes | HTML attributes | - | Forwards standard attributes to the root element unless the component consumes them. |