syncfusion-react-gantt-chart
Implement, configure, and customize the Syncfusion React Gantt Chart component. Use this when building project scheduling applications with task timelines, dependencies, and resource management. Covers GanttComponent setup, task constraints, taskbar customization, filtering, sorting, Excel/PDF expor
By syncfusion · 665 installs
npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-gantt-chart
Source repository · Upstream listing
Syncfusion React Gantt Chart
The Syncfusion React Gantt Chart ( GanttComponent ) is a powerful project management component for visualizing, scheduling, and managing tasks over a timeline. It supports auto/manual scheduling, task dependencies, resource planning, interactive editing, Excel/PDF export, and rich customization.
When to Use This Skill
Implementing a Gantt chart or project timeline in a React app
Configuring task scheduling (auto, manual, custom modes)
Setting up task dependencies (FS, SS, FF, SF) and constraints (ASAP, MSO, FNET, etc.)
Binding local or remote data to the Gantt (local array, DataManager, UrlAdaptor, Ajax)
Customizing taskbars, labels, milestones, and baselines
Configuring resources and resource views (including multi taskbar)
Enabling editing (dialog, cell, taskbar drag) with validation rules
Setting up column resize, reorder, freeze, or column menu
Configuring WBS codes, tree column icons, or serial number columns
Setting up filtering, sorting, or selection
Scrolling to specific dates or controlling scroll position programmatically
Exporting Gantt to Excel or PDF
Handling Gantt events and enabling advanced features (undo/redo, virtual scroll, critical path, etc.)
Globalization, localization, and RTL support
Documentation and Navigation Guide
Getting Started
📄 Read: [references/getting started.md](references/getting started.md)
Installation and package dependencies
Vite / CRA project setup
Theme package installation and CSS import via npm theme packages
Basic GanttComponent with taskFields mapping
Module injection guide (all available services)
gridLines prop ( 'Both' / 'Horizontal' / 'Vertical' / 'None' )
First render walkthrough with minimal example, output summary, and common gotchas
Data Binding
📄 Read: [references/data binding.md](references/data binding.md)
Local array data binding
Remote / AJAX data binding with DataManager
Self referential flat data
taskFields configuration (id, name, startDate, endDate, duration, progress, child)
Custom field mapping
UrlAdaptor for server side CRUD ( url + batchUrl )
RemoteSaveAdaptor for local rendering with server persistence
Sending additional parameters to server via Query.addParams() in load event
Binding with Ajax class (manual fetch)
Load child on demand ( loadChildOnDemand={false} , hasChildMapping )
Handling HTTP errors with actionFailure event
Task Scheduling
📄 Read: [references/task scheduling.md](references/task scheduling.md)
Auto, Manual, and Custom scheduling modes ( taskMode )
Unscheduled tasks (duration only, date only, none)
Project start date and end date configuration
How scheduling mode affects parent task calculation
Switching between modes dynamically
Task Dependency
📄 Read: [references/task dependency.md](references/task dependency.md)
Dependency types: Finish to Start (FS), Start to Start (SS), Finish to Finish (FF), Start to Finish (SF)
Mapping taskFields.dependency in data source (string format: "2FS" , "2FS+3d" , "2SS+2h" )
Multiple predecessors per task (comma separated: "2FS,3FS" )
Offset values with units: day, hour, minute (e.g., "2FS+3h" , "2FS 1d" )
Drawing dependencies via UI (drag from taskbar connection points)
Programmatic dependency management ( addPredecessor , removePredecessor , updatePredecessor )
Connector line customization ( connectorLineWidth , connectorLineBackground )
Predecessor Offset Synchronization
autoUpdatePredecessorOffset={true} — recalculate offsets on load to account for calendar rules (weekends, holidays)
autoUpdatePredecessorOffset={false} — display original offsets even if not matching rendered lines (visual inconsistency possible)
Offset Updates During Editing
updateOffsetOnTaskbarEdit={true} — auto recalculate offsets when dragging taskbars (default)
updateOffsetOnTaskbarEdit={false} — preserve offsets; manual update required via dependency dialog
Dependency Validation Modes (in actionBegin event with requestType === 'validateLinkedTask' )
respectLink={true} — revert invalid edits to maintain dependency integrity
removeLink={true} — remove conflicting dependencies to allow edits
preserveLinkWithEditing={true} — update offsets to maintain links (default mode)
Validation Dialog — disable all modes to show user choice dialog (cancel edit, remove link, adjust offset)
Parent Dependencies — allowParentDependency={true} allows cross parent dependencies; false restricts to siblings only
Show/Hide Dependencies Dynamically — toggle .e gantt dependency view container CSS visibility
Disable Validation — enablePredecessorValidation={false} disables auto date validation based on predecessor links
Task Constraints
📄 Read: [references/task constraints.md](references/task constraints.md)
Eight constraint types: ASAP, ALAP, MSO, MFO, SNET, SNLT, FNET, FNLT
Mapping taskFields.constraintType and taskFields.constraintDate
How constraints interact with dependencies and taskMode
Editing constraints via dialog
Validation and conflict handling
Timeline and Zooming
📄 Read: [references/timeline.md](references/timeline.md)
timelineViewMode quick presets ( Hour , Day , Week , Month , Year )
Top tier and bottom tier independent configuration ( unit , format , count , formatter )
Combining timeline cells using count (merge multiple units per cell)
Custom timeline cell formatting using formatter (tier + mode aware)
Timeline view dates with viewStartDate / viewEndDate (lock visible range)
weekStartDay — controls which day starts a week column (0=Sun, 1=Mon…)
Automatic timescale updates using updateTimescaleView
Dynamic timeline mode change at runtime (update timelineViewMode + refresh() )
Timeline cell tooltip visibility using showTooltip
Timeline template customization using timelineTemplate ({ date, value, tier })
Infinite timeline scrolling using enableInfiniteTimelineScroll (extends the visible range while navigating with horizontal scrollbar or scroll arrows)
Timeline navigation using previousTimeSpan() / nextTimeSpan()
Zooming with toolbar ( ZoomIn , ZoomOut , ZoomToFit )
Customizing zoom steps with zoomingLevels ( ZoomTimelineSettings )
Programmatic zoom methods: zoomIn() , zoomOut() , fitToProject()
Timeline cell width using timelineUnitSize
Weekend handling:
Highlight weekends with highlightWeekends={true}
Hide weekends using timelineSettings.showWeekend (with noted limitations)
Columns
📄 Read: [references/columns.md](references/columns.md)
Column types overview (tree column, WBS, custom columns)
Auto generated columns (omit ColumnsDirective )
Column rendering with valueAccessor (custom display values, concatenation)
Expression columns (calculated values via valueAccessor )
Display serial numbers via rowDataBound
Tree column configuration ( treeColumnIndex )
Customize expand/collapse icons (CSS override)
Customize indentation via queryCellInfo
collapseAllParentTasks — collapse all on load
taskFields.expandState — per row initial expand/collapse
Persist expand/collapse state in localStorage
WBS (Work Breakdown Structure) column
enableWBS + enableAutoWbsUpdate APIs
Manual WBS with taskFields.wbsPredecessor
Column headers, format, and alignment
headerTemplate for custom header rendering
Header text wrapping ( treeGrid.textWrapSettings.wrapMode )
Dynamic header text update ( getColumnByField + refreshHeader )
Column templates (custom cell rendering) and editTemplate
Column spanning and frozen columns ( frozenColumns , inject Freeze )
Column Interactions
📄 Read: [references/column interactions.md](references/column interactions.md)
Column resizing ( allowResizing , inject Resize )
Restrict with minWidth / maxWidth per column
Prevent resize per column ( allowResizing={false} )
Resize modes: Normal vs Auto ( resizeSettings.mode )
Programmatic resize ( reorderColumns , refreshColumns )
Resize events: resizeStart , resizing , resizeStop
Column reorder ( allowReordering , inject Reorder )
Disable reorder per column ( allowReordering={false} )
Programmatic reorder: reorderColumns , reorderColumnByIndex , reorderColumnByTargetIndex
Reorder drag events: columnDragStart , columnDrag , columnDrop
Column menu ( showColumnMenu , inject ColumnMenu )
Built in items: SortAscending, SortDescending, AutoFit, AutoFitAll, ColumnChooser, Filter
Custom column menu items + columnMenuClick event
Disable per column ( showColumnMenu={false} )
Toggling column visibility (show/hide columns)
Rows
📄 Read: [references/rows.md](references/rows.md)
Row drag and drop (reorder and reparent tasks)
Indent and outdent (change task hierarchy)
Row spanning via queryCellInfo event
QueryCellInfoEventArgs with rowSpan , colSpan , cell , data , column
Horizontal spanning ( colSpan ) and vertical spanning ( rowSpan )
Row height configuration
Row styling via rowDataBound
Expand and collapse rows programmatically
Managing Tasks
📄 Read: [references/managing tasks.md](references/managing tasks.md)
Adding new tasks (toolbar, context menu, programmatic addRecord() )
Editing tasks — dialog edit ( mode: 'Dialog' ), cell edit ( mode: 'Auto' ), taskbar drag
Deleting tasks (toolbar, deleteRecord() , showDeleteConfirmDialog )
Taskbar drag editing: move, resize right edge, progress handle, dependency drawing
Splitting and merging tasks ( taskFields.segments , splitTask() , mergeTask() )
Cell edit types ( editType ): stringedit , numericedit , datepickeredit , datetimepickeredit , dropdownedit , booleanedit
edit.params for min/max/step/format/dataSource per column
Customizing add/edit dialog fields ( addDialogFields , editDialogFields )
Server side CRUD with UrlAdaptor ( url + batchUrl )
Server receives added , changed , deleted arrays in the batch request body
Column level validation rules ( validationRules on ColumnDirective )
Built in rules: required , min , max , minLength , date , regex
Custom validator functions ( [fn, 'message'] callback pattern)
Filtering and Searching
📄 Read: [references/filtering searching.md](references/filtering searching.md)
Basic column filtering ( allowFiltering={true} , inject Filter )
Filter hierarchy modes: Parent , Child , Both , None
Filter menu (string, number, date operators) and Excel like checklist filter
Toolbar search box ( searchSettings : fields , operator , ignoreCase )
Initial filter state on load ( filterSettings.columns array)
Programmatic filter API: filterByColumn() , clearFiltering()
Custom multi column filter predicates
Sorting
📄 Read: [references/sorting.md](references/sorting.md)
Single column and multi column sorting
Initial sort state ( sortSettings )
Custom sort comparers
Programmatic sorting API
Selection
📄 Read: [references/selection.md](references/selection.md)
Row selection modes (single, multiple)
Cell selection
Keyboard based selection
Programmatic selection API ( selectRow , selectCell )
Taskbar, Labels, and Markers
📄 Read: [references/taskbar labels markers.md](references/taskbar labels markers.md)
Taskbar template (custom rendering)
Parent taskbar and milestone customization
Tooltip settings and templates ( tooltipSettings for taskbar, connector line, baseline, timeline)
Disable/hide tooltips for specific UI targets using beforeTooltipRender
Left, right, and task label configuration
Data markers / indicators
Event markers (deadlines, holidays on timeline)
Baseline rendering
Baseline template customization using baselineTemplate