Gantt

A responsive, navigable Gantt chart with resources, progress, and exclusive end dates.

registry:ui Registry JSON
Project timeline 3

Planned work and reported completion.

Tasks
Name Start End
July 2026
August 2026
September 2026
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
Engineering
Aug 10 Sep 7
Detailed design
Aug 10 Aug 31
Client approval
Aug 28 Sep 7
Construction
Sep 10 Oct 19

Installation

pnpm dlx shadcn-svelte@latest add https://shadcn.cptckp.com/r/gantt.json

The CLI copies the source into your project and installs every dependency listed below.

Usage

import { Gantt, type GanttEvent, type GanttResource } from '$lib/components/ui/gantt/index.js';
example.svelte
svelte
<script lang="ts">
	import { Gantt, type GanttEvent, type GanttResource } from '$lib/components/ui/gantt/index.js';

	const resources: GanttResource[] = [
		{
			id: 'engineering',
			title: 'Engineering',
			children: [
				{ id: 'design', title: 'Detailed design' },
				{ id: 'approval', title: 'Client approval' }
			]
		},
		{ id: 'construction', title: 'Construction' }
	];

	const events: GanttEvent[] = [
		{
			end: new Date(2026, 8, 1),
			id: 'design',
			progress: 70,
			resourceId: 'design',
			start: new Date(2026, 7, 10),
			title: 'Detailed design'
		},
		{
			end: new Date(2026, 8, 8),
			id: 'approval',
			progress: 20,
			resourceId: 'approval',
			start: new Date(2026, 7, 28),
			title: 'Client approval',
			tone: 'accent'
		},
		{
			end: new Date(2026, 9, 20),
			id: 'construction',
			progress: 0,
			resourceId: 'construction',
			start: new Date(2026, 8, 10),
			title: 'Site construction',
			tone: 'secondary'
		}
	];
</script>

<Gantt
	defaultDate={new Date(2026, 7, 17)}
	defaultScale="month"
	{events}
	{resources}
	title="Project timeline"
	description="Planned work and reported completion."
/>

Files & dependencies

Installed asSource
gantt/gantt-chart.sveltesrc/lib/registry/ui/gantt/gantt-chart.svelte
gantt/gantt-date.tssrc/lib/registry/ui/gantt/gantt-date.ts
gantt/gantt-lib.tssrc/lib/registry/ui/gantt/gantt-lib.ts
gantt/gantt-loading-rows.sveltesrc/lib/registry/ui/gantt/gantt-loading-rows.svelte
gantt/gantt-presentation.tssrc/lib/registry/ui/gantt/gantt-presentation.ts
gantt/gantt-resources.tssrc/lib/registry/ui/gantt/gantt-resources.ts
gantt/gantt-row.sveltesrc/lib/registry/ui/gantt/gantt-row.svelte
gantt/gantt-rows.tssrc/lib/registry/ui/gantt/gantt-rows.ts
gantt/gantt-timeline.tssrc/lib/registry/ui/gantt/gantt-timeline.ts
gantt/gantt-toolbar.sveltesrc/lib/registry/ui/gantt/gantt-toolbar.svelte
gantt/gantt-types.tssrc/lib/registry/ui/gantt/gantt-types.ts
gantt/gantt.sveltesrc/lib/registry/ui/gantt/gantt.svelte
gantt/index.tssrc/lib/registry/ui/gantt/index.ts

npm dependencies

  • @internationalized/date@^3.12.2
  • @lucide/svelte@^1.28.0

Registry dependencies

  • badge
  • button
  • calendar
  • card
  • popover
  • select
  • skeleton
  • tooltip