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 19Installation
pnpm dlx shadcn-svelte@latest add https://shadcn.cptckp.com/r/gantt.jsonThe 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 as | Source |
|---|---|
| gantt/gantt-chart.svelte | src/lib/registry/ui/gantt/gantt-chart.svelte |
| gantt/gantt-date.ts | src/lib/registry/ui/gantt/gantt-date.ts |
| gantt/gantt-lib.ts | src/lib/registry/ui/gantt/gantt-lib.ts |
| gantt/gantt-loading-rows.svelte | src/lib/registry/ui/gantt/gantt-loading-rows.svelte |
| gantt/gantt-presentation.ts | src/lib/registry/ui/gantt/gantt-presentation.ts |
| gantt/gantt-resources.ts | src/lib/registry/ui/gantt/gantt-resources.ts |
| gantt/gantt-row.svelte | src/lib/registry/ui/gantt/gantt-row.svelte |
| gantt/gantt-rows.ts | src/lib/registry/ui/gantt/gantt-rows.ts |
| gantt/gantt-timeline.ts | src/lib/registry/ui/gantt/gantt-timeline.ts |
| gantt/gantt-toolbar.svelte | src/lib/registry/ui/gantt/gantt-toolbar.svelte |
| gantt/gantt-types.ts | src/lib/registry/ui/gantt/gantt-types.ts |
| gantt/gantt.svelte | src/lib/registry/ui/gantt/gantt.svelte |
| gantt/index.ts | src/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