syncfusion-react-dashboard-layout — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited syncfusion-react-dashboard-layout (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Syncfusion React Dashboard Layout is a powerful component for building responsive, interactive dashboard interfaces with draggable and resizable panels. It provides a flexible grid-based system for organizing content, automatic floating arrangement, and comprehensive state management.
Key Capabilities:
Choose the reference that matches your current task:
📄 Read: references/getting-started.md
📄 Read: references/core-functionality.md
📄 Read: references/properties-reference.md
📄 Read: references/panel-templates.md
📄 Read: references/styling-customization.md
📄 Read: references/dragging-behavior.md
📄 Read: references/resizing-floating.md
📄 Read: references/cell-configuration.md
📄 Read: references/responsive-design.md
📄 Read: references/state-persistence.md
📄 Read: references/methods-reference.md
📄 Read: references/events-reference.md
📄 Read: references/accessibility-wcag.md
Create an interactive dashboard in minutes:
import React, { useRef } from 'react';
import { DashboardLayoutComponent } from '@syncfusion/ej2-react-layouts';
import '@syncfusion/ej2-base/styles/tailwind3.css';
import '@syncfusion/ej2-react-layouts/styles/tailwind3.css';
function Dashboard() {
const dashboardRef = useRef<DashboardLayoutComponent>(null);
const panels = [
{
id: 'sales',
header: 'Sales',
content: '<div style="padding: 20px;">Sales data</div>',
row: 0,
col: 0,
sizeX: 2,
sizeY: 2
},
{
id: 'users',
header: 'Users',
content: '<div style="padding: 20px;">User analytics</div>',
row: 0,
col: 2,
sizeX: 2,
sizeY: 2
},
{
id: 'reports',
header: 'Reports',
content: '<div style="padding: 20px;">Report metrics</div>',
row: 2,
col: 0,
sizeX: 4,
sizeY: 1
}
];
return (
<div style={{ padding: '20px' }}>
<h1>Dashboard</h1>
<DashboardLayoutComponent
ref={dashboardRef}
id='dashboard'
columns={5}
cellSpacing={[10, 10]}
panels={panels}
allowDragging={true}
allowResizing={true}
allowFloating={true}
enablePersistence={true}
>
</DashboardLayoutComponent>
</div>
);
}
export default Dashboard;📖 Read: responsive-design.md for comprehensive mobile adaptation patterns
<DashboardLayoutComponent
id='responsive-dashboard'
columns={5}
mediaQuery='max-width:768px' // Single column on tablets/mobile
cellSpacing={[10, 10]}
allowDragging={true}
allowResizing={true}
panels={panels}
>
</DashboardLayoutComponent>Key Features:
responsive-design.md for breakpoint configuration and testing📖 Read: state-persistence.md for complete state serialization and storage options
const handleSaveLayout = () => {
const layout = dashboardRef.current?.serialize();
localStorage.setItem('userDashboard', JSON.stringify(layout));
};
const handleRestoreLayout = () => {
const saved = localStorage.getItem('userDashboard');
if (saved) {
const layout = JSON.parse(saved);
dashboardRef.current?.removeAll();
layout.forEach(panel => {
dashboardRef.current?.addPanel(panel);
});
}
};Key Features:
state-persistence.md for API integration, Redux/Context patterns, and auto-save📖 Read: core-functionality.md for panel addition/removal and runtime management
const handleAddPanel = () => {
dashboardRef.current?.addPanel({
id: `panel-${Date.now()}`,
header: 'New Panel',
content: 'Panel content',
row: 0,
col: 0,
sizeX: 2,
sizeY: 1
});
};
const handleRemovePanel = (panelId: string) => {
dashboardRef.current?.removePanel(panelId);
};Key Features:
methods-reference.md for all available panel methods📖 Read: cell-configuration.md and resizing-floating.md for size constraints and resizing behavior
const constrainedPanels = [
{
id: 'fixed-panel',
header: 'Fixed Size',
row: 0,
col: 0,
sizeX: 2,
sizeY: 1,
minSizeX: 2, // Cannot shrink
maxSizeX: 2, // Cannot expand
minSizeY: 1,
maxSizeY: 1
},
{
id: 'flexible-panel',
header: 'Flexible',
row: 0,
col: 2,
sizeX: 2,
sizeY: 1,
minSizeX: 1, // Can shrink to 1 cell
maxSizeX: 4 // Can expand to 4 cells
}
];Key Features:
cell-configuration.md for grid calculations and resizing-floating.md for advanced resize patterns📖 Read: events-reference.md for all available events and handlers
const handleChange = (args: ChangeEventArgs) => {
console.log('Panels added:', args.addedPanels);
console.log('Panels removed:', args.removedPanels);
console.log('Panels position changed:', args.changedPanels);
console.log('User interaction:', args.isInteracted);
};
<DashboardLayoutComponent
panels={panels}
change={handleChange}
>
</DashboardLayoutComponent>Key Features:
events-reference.md for drag, resize, and other event handlers📖 Full Reference: properties-reference.md
cell-configuration.mdcell-configuration.mdpanel-templates.mddragging-behavior.mdresizing-floating.mdresizing-floating.mdstate-persistence.mdresponsive-design.mddragging-behavior.mdresizing-floating.mdstyling-customization.md📖 Full Reference: methods-reference.md
core-functionality.mdcore-functionality.mdcore-functionality.mdcore-functionality.mddragging-behavior.mdresizing-floating.mdstate-persistence.md📖 Full Reference: events-reference.md
dragging-behavior.mdresizing-floating.mdevents-reference.md📖 Full Reference: styling-customization.md
🎯 Creating Dashboards: Implement customizable dashboard layouts with multiple content panels organized in a grid.
🎯 User-Customizable Layouts: Allow users to rearrange and resize dashboard panels to their preference with automatic saving.
🎯 Responsive Interfaces: Build layouts that adapt from multi-column desktop views to single-column mobile views.
🎯 Real-Time Monitoring: Display multiple real-time data sources in resizable panels with live updates.
🎯 Admin Panels: Create administrative interfaces with draggable widgets for system monitoring and control.
🎯 Data Visualization: Organize multiple charts, tables, and metrics in flexible, responsive panel layouts.
interface PanelModel {
id: string; // Unique identifier (required)
row: number; // Row position (required)
col: number; // Column position (required)
sizeX: number; // Width in cells (default: 1)
sizeY: number; // Height in cells (default: 1)
header?: string | HTMLElement | Function;
content?: string | HTMLElement | Function;
cssClass?: string; // Custom CSS classes
enabled?: boolean; // Enable/disable (default: true)
minSizeX?: number; // Minimum width (default: 1)
minSizeY?: number; // Minimum height (default: 1)
maxSizeX?: number; // Maximum width
maxSizeY?: number; // Maximum height
zIndex?: number; // Stacking order
}| Task | Read This Documentation |
|---|---|
| Get Started | getting-started.md - Installation, setup, themes |
| Learn Panel Management | core-functionality.md - Create, update, remove panels |
| Customize Panel Content | panel-templates.md - Headers, templates, component embedding |
| Make It Draggable | dragging-behavior.md - Drag events, collision, custom handles |
| Make It Resizable | resizing-floating.md - Resize handles, constraints, floating |
| Configure Grid System | cell-configuration.md - Columns, spacing, aspect ratio, responsive grids |
| Make It Responsive | responsive-design.md - Breakpoints, mobile, touch optimization |
| Save User Layouts | state-persistence.md - serialize(), localStorage, API, Redux, Context |
| Style & Theme | styling-customization.md - CSS selectors, themes, responsive styling |
| Make It Accessible | accessibility-wcag.md - WCAG 2.2, WAI-ARIA, screen readers, RTL |
| API Reference | properties-reference.md, methods-reference.md, events-reference.md |
| Advanced Patterns | advanced-features.md - Custom integrations, performance optimization |
Phase 1 - Foundation (Start Here):
Phase 2 - Interaction (Build Functionality):
Phase 3 - Content (Customize Visuals):
Phase 4 - Polish (Production Ready):
Phase 5 - Advanced (Expert Features):
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.