Docs Platform

Gantt

An interaction shell over bars. You supply the range and the bar geometry, and scheduling, critical path and calendar maths are yours too. The machine only handles what happens when someone interacts with a bar.

Live machine

The shipped ganttMachine. GRAB opens a draft range, NUDGE/DRAG move it, and only DROP emits the range-change request.

gantt · live via createService

design
build
ship

States · walked from the machine

idlegrabbeddragging

Transitions from here · click to send

Context

{
  "focusedId": null,
  "activeId": null,
  "originStart": null,
  "originEnd": null,
  "draftStart": null,
  "draftEnd": null,
  "reason": null
}

Log · newest first

No events yet — use the component above or send a transition.

Explore the layers

Machine (@grassroot/ui-machines/gantt). Headless: five adapters plus mountGantt. Spec: packages/ui-headless/core/src/gantt/gantt.spec.md.

Behaviour contract

Bars are opaque IDs. Adopting-host paint uses the idle host range. Angular parts bind barId directly (no selector alias) to avoid NG0950.