Skip to content
DocsChartsGanttLast updated Nov 2, 2026

Gantt

Who is busy when, lane by lane. Sample data: trucks at six docks from 06:00 to 14:00, loading, unloading, waiting and delayed.

Open in
Dock schedule16 slots on 6 docks from 06:00 to 14:00, now 10:30; 1 truck delayed.06:0008:0012:0014:00Dock 1Dock 2Dock 3Dock 4Dock 5Dock 6TR-104TR-131TR-220TR-112TR-217 · lateTR-236WaitTR-145TR-251TR-162 · bulkWaitingTR-178TR-190MaintenanceTR-244NOWLOADINGUNLOADINGWAITINGDELAYED
Dock schedule
DockSlotFromToState
Dock 1TR-10406:0007:24Loading
Dock 1TR-13107:3609:48Unloading
Dock 1TR-22010:1212:36Loading
Dock 2TR-11206:1808:54Unloading
Dock 2TR-217 · late09:1211:24Delayed
Dock 2TR-23611:4813:36Loading
Dock 3Wait06:0006:48Waiting
Dock 3TR-14507:0009:30Loading
Dock 3TR-25110:0013:12Unloading
Dock 4TR-162 · bulk06:3010:48Loading
Dock 4Waiting11:1213:48Waiting
Dock 5TR-17807:1208:36Unloading
Dock 5TR-19009:0011:00Loading
Dock 5TR-20311:2412:24Unloading
Dock 6Maintenance06:0009:00Waiting
Dock 6TR-24409:3612:12Loading
Dock schedule16 slots on 6 docks from 06:00 to 14:00, now 10:30; 1 truck delayed.06:0014:00Dock 1Dock 2Dock 3Dock 4Dock 5Dock 6TR-131TR-220TR-112TR-145TR-251TR-162 · bulkWaitingTR-190MaintenanceTR-244NOWLOADINGUNLOADINGWAITINGDELAYED
Dock schedule
DockSlotFromToState
Dock 1TR-10406:0007:24Loading
Dock 1TR-13107:3609:48Unloading
Dock 1TR-22010:1212:36Loading
Dock 2TR-11206:1808:54Unloading
Dock 2TR-217 · late09:1211:24Delayed
Dock 2TR-23611:4813:36Loading
Dock 3Wait06:0006:48Waiting
Dock 3TR-14507:0009:30Loading
Dock 3TR-25110:0013:12Unloading
Dock 4TR-162 · bulk06:3010:48Loading
Dock 4Waiting11:1213:48Waiting
Dock 5TR-17807:1208:36Unloading
Dock 5TR-19009:0011:00Loading
Dock 5TR-20311:2412:24Unloading
Dock 6Maintenance06:0009:00Waiting
Dock 6TR-24409:3612:12Loading

Installation

  1. 1

    Set up the registry once

    This chart is free in Hearth and MIT licensed: no token. Add @chartory to components.json once (the URL alone, no headers), or skip this when another chart is already installed.

    Installation guide
  2. 2

    Add the chart

    One command adds the Gantt component to your project.

    npx shadcn add @chartory/gantt
  3. 3

    Use it

    Pass your rows. The props are the Figma properties.

    usage.tsx
    import { Gantt }  from "@/components/chartory/gantt"<Gantt  data={dockSchedule}  size="m"  legend/>

Props

<Gantt>

Every prop but data is a Figma property with the same name and values.

PropTypeDefault
data: The chart's data. The tables below list every field.GanttDataRequired
size: The size class. Each one is laid out again from the data."xs" | "s" | "m" | "l""m"
legend: Shows the legend row under the plot.booleantrue

GanttData

The data prop: one object for the whole chart.

PropTypeDefault
rows: The row labels, in order.string[]Required
start: The start.numberRequired
end: The end.numberRequired
ticks: The axis ticks: [value, label] pairs.[number, string][]Required
bars: The bar series.[number, number, number, string, string][]Required
now?: Where now is on the axis.number—
yW?: The width of the y axis label column, in px.number76

The data as a JSON Schema: schemas/gantt.json

Gantt chart: a React and Figma chart in four sizes

What does a gantt chart show?

A Gantt chart puts each resource on its own lane and draws its jobs as bars across the day, with a line for now. Overlaps, gaps and delays show at once. Use it for dock schedules, project plans and room or machine bookings.

Chartory ships it as a Figma component and a React component with the same name. The code installs from the shadcn registry with one command and lands in your project as a file you own.

What is the Gantt component?

It is one <Gantt> component. Its props are the Figma properties with the same names and values, and the props table above lists them. The data is jobs with a lane, a start, an end and a state.

Sizes XS, S, M and L re-lay the chart out from the data instead of scaling it, so labels stay readable at every size.

When should I use it?

  • Is it lanes over clock time? Yes means the gantt fits.
  • Are jobs bars, not trips? Yes means the gantt fits.
  • Is it a plan, not one trace? Yes means the gantt fits.

When does another type fit better?

  • Items over weeks. Use Block timeline instead.
  • Vehicles between stops. Use Marey schedule instead.
  • One run's spans. Use Span waterfall instead.

Gantt questions

Installing, data, Figma and plans.

  • Yes. It installs through the shadcn registry with the shadcn CLI, and the file lands in your project.

Stay in the loop

New charts, by email.

Get an email when new chart types and releases ship.

Unsubscribe any time.