npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

gantt-renderer

v0.12.25

Published

A TypeScript Gantt chart renderer for precalculated project plans

Readme

gantt-renderer

NPM Version NPM Downloads License: MIT Node.js CI Coverage Status

Gantt chart demo

Live Demo →  |  Usage Guide →  |  API Docs →  |  Contributing →

A TypeScript Gantt chart renderer for precalculated project plans.

This package is focused on visualization and interaction: it renders tasks, timelines, and dependencies, and provides UX hooks for user actions. It does not compute schedules, optimize timelines, resolve resource constraints, or perform planning logic itself.

Purpose

  • Render already-planned project data in a clear, interactive timeline UI.
  • Capture user interactions (select, move, resize, double-click) and hand them back to your app.
  • Let your backend or planning engine stay the source of truth for all project calculations.

Scope

The library is designed as a core chart component (src/lib/**/*) that your product can embed. Outer-page/demo concerns (export toolbars, fullscreen shell controls, demo-only control rows) are intentionally outside the core scope.

Includes:

  • Chart/grid rendering, task bars, timeline header, dependency links.
  • Selection, drag/resize UX, and responsive split-pane behavior.
  • Tree-based task hierarchy with expand/collapse support.
  • Timeline scales: hour, day, week, month, quarter, year.
  • Special-day rendering API for weekends, holidays, and custom day semantics in day scale.
  • Drag and resize interactions with callback hooks.
  • Dependency validation and link path routing.
  • Input validation with zod schemas.
  • Unit tests with Vitest and integration tests with Playwright.

Does not include:

  • Automatic project scheduling.
  • Critical path or resource leveling calculations.
  • Date recalculation across dependent tasks.
  • Business-rule planning decisions.
  • Built-in outer toolbars, export implementations, fullscreen shell behavior, demo-only control strips.

Those planning concerns should be handled upstream, then passed into this renderer as GanttInput.

Quick Start

npm install gantt-renderer
import {GanttChart} from 'gantt-renderer';
import 'gantt-renderer/styles/gantt.css';

const instance = new GanttChart(document.getElementById('chart')!, {
	scale: 'day',
});
instance.update(yourData);

Integration Pattern

  1. Compute/plan project data in your domain layer or backend.
  2. Pass it directly to instance.update(yourData) — the chart validates and renders in one call.
  3. Render with new GanttChart(container, options) followed by instance.update(input) and react to interaction callbacks.
  4. Persist user edits through your own business logic, then update with instance.update(newInput).

Package Exports

  • gantt-renderer — ESM bundle with all types and utilities.
  • gantt-renderer/styles/gantt.css — Core chart stylesheet.

Further Reading

  • Usage Guide — All constructor options: locale, theme, grid schema, CSS tokens, link creation, special days, density constants, and more.
  • API Documentation — TypeDoc-generated API reference.
  • Contributing — Dev setup, scripts, demo verification, and code conventions.