MCPInstall

syncfusion-javascript-splitter

Implement and configure the Syncfusion TypeScript Splitter control for creating responsive multi-pane interfaces. Use this skill when implementing pane configuration, orientation changes, resizing, collapse/expand functionality, and content loading. This skill covers nested layouts, styling customization, and all API properties, methods, and events for the Splitter component.

Installs
55
Last 24h
—
Trending rank
—
Security
Not audited

Install

Works with every agent the skills CLI supports.

npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-splitter
  1. 01

    Install

    Run the command in your project. The CLI asks which agents to install for.

  2. 02

    Describe the task

    Ask your agent for something this skill covers. It loads syncfusion-javascript-splitter automatically when relevant.

  3. 03

    Review the result

    The agent follows the SKILL.md steps, scripts and references bundled with the skill.

SKILL.md

The instructions your agent reads when the skill is triggered.

Implementing Syncfusion TypeScript Splitter

The Syncfusion Splitter control enables you to create complex, responsive multi-pane layouts in web applications. It provides built-in resizing, collapse/expand functionality, comprehensive event handling, and support for nested panes with full programmatic control.

When to Use This Skill

  • Setting up a Splitter: Initial configuration, dependency installation, basic initialization
  • Configuring panes: Sizing (pixels/percentages), fixed vs flexible panes, min/max constraints
  • Orientation: Horizontal vs vertical layouts
  • Interactive features: Collapse/expand panes, programmatic control, dynamic pane management
  • Content: Loading HTML markup, text content, or dynamic content
  • Resizing: Configuring resize behavior, preventing resize, handling resize events
  • Styling: Customizing split bars, resize handles, arrows, colors
  • Complex layouts: Nested splitters, code editor layouts, multi-level pane hierarchies
  • Internationalization: Right-to-left (RTL) support for Arabic, Hebrew, and other RTL languages
  • Event Handling: Working with all Splitter events (before/after expand/collapse, resize, creation)
  • API Methods: Programmatically manipulating splitter state (add/remove panes, expand/collapse, refresh)
  • Advanced Configuration: Persistence, sanitization, pane reordering, locale management

Splitter Overview & Key Capabilities

The Splitter is a flexible layout component that:

  • Divides containers into multiple panes separated by resizable bars
  • Supports horizontal (default) and vertical orientations
  • Enables collapsible panes with expand/collapse icons
  • Allows flexible sizing in pixels or percentages
  • Supports min/max constraints during resizing
  • Provides nested splitters for complex layouts
  • Includes built-in styling customization via CSS
  • Supports RTL for right-to-left languages
  • Automatically adjusts panes using flex layout

Documentation and Navigation Guide

API REFERENCE (Complete)

Complete API Reference — This document Comprehensive documentation of ALL components:

  • Splitter Properties - All 12 properties with code examples
  • Pane Properties - All 8 pane configuration properties
  • Methods - All 12 methods with parameters and return types (addEventListener, addPane, appendTo, collapse, dataBind, destroy, expand, getRootElement, refresh, removeEventListener, removePane, Inject)
  • Events - All 9 events with argument documentation (created, beforeExpand, expanded, beforeCollapse, collapsed, resizeStart, resizing, resizeStop, beforeSanitizeHtml)
  • Event Arguments - Full documentation of all event argument properties

Getting Started

references/getting-started.md

  • Package dependencies (@syncfusion/ej2-layouts)
  • npm installation and setup
  • CSS imports (fluent2.css theme)
  • Basic Splitter component initialization
  • HTML markup and DOM structure
  • Creating panes with child elements

Core Concepts: Panes and Orientation

references/split-panes-orientation.md

  • Horizontal layout (default behavior)
  • Vertical layout (orientation: 'Vertical' property)
  • Orientation API usage
  • Pane separators (vertical for horizontal layout, horizontal for vertical)
  • Dynamic pane management with addPane() method
  • Dynamic pane removal with removePane() method
  • Complete examples of both orientations

Pane Configuration & Sizing

references/pane-configuration.md

  • Pane sizing in pixel format ('200px', '300px')
  • Pane sizing in percentage format ('30%', '50%')
  • Auto-sizing with flex layout
  • Fixed pane sizes via paneSettings
  • Minimum constraints (min property)
  • Maximum constraints (max property)
  • Flexible last pane behavior

Expand/Collapse Behavior

references/collapse-expand.md

  • Enabling collapsible panes (collapsible: true)
  • Built-in expand/collapse icons
  • User-triggered collapse/expand actions
  • Programmatic expand() method for specific pane index
  • Programmatic collapse() method for specific pane index
  • Specify initial collapsed state (collapsed: true property)
  • Event handling and callbacks
  • beforeExpand, expanded, beforeCollapse, collapsed events

Pane Content Options

references/pane-content.md

  • HTML markup content in panes
  • Text content strings
  • Inner HTML via child elements
  • Dynamic content property
  • Loading HTML elements
  • Practical content examples

Resizing & Constraints

references/resizing-behavior.md

  • Resizing enabled by default
  • Resize gripper functionality
  • Horizontal vs vertical resizing behavior
  • Adjacent pane auto-adjustment during resize
  • Min/Max validation constraints
  • Preventing resizing (resizable: false)
  • Resizable property per pane configuration
  • resizeStart, resizing, resizeStop events

Styling & Customization

references/styling-customization.md

  • Split bar CSS customization (.e-split-bar)
  • Horizontal split bar styling (.e-split-bar-horizontal)
  • Vertical split bar styling (.e-split-bar-vertical)
  • Hover and active state styling
  • Resize handle customization (.e-resize-handler)
  • Split bar arrow customization (.e-navigate-arrow)
  • Color and theme customization

Complex Layouts & Nesting

references/layouts-nested.md

  • Creating nested splitters
  • Code editor style layout (horizontal + vertical)
  • Outer and inner splitter configuration
  • Step-by-step nesting implementation
  • Multiple nesting levels
  • Complex multi-pane hierarchies

Globalization (RTL)

references/globalization.md

  • Right-to-left (RTL) layout support
  • enableRtl property configuration
  • RTL for Arabic, Hebrew, and other languages
  • Default LTR behavior (enableRtl: false)
  • RTL styling adjustments

Quick Start Example

import { Splitter } from '@syncfusion/ej2-layouts';

// Initialize Splitter with horizontal orientation (default)
let splitObj: Splitter = new Splitter({
    height: '250px',
    width: '600px',
    paneSettings: [
        { size: '200px', content: 'Pane 1' },
        { size: '200px', content: 'Pane 2' },
        { size: '200px', content: 'Pane 3' }
    ]
});

// Render to DOM
splitObj.appendTo('#splitter');

HTML:

<div id="splitter">
    <div></div>
    <div></div>
    <div></div>
</div>

Common Patterns

Pattern 1: Responsive Panes with Min/Max

let splitObj: Splitter = new Splitter({
    height: '300px',
    width: '100%',
    paneSettings: [
        { size: '30%', min: '20%', max: '50%' },
        { size: '40%', min: '30%', max: '60%' },
        { size: '30%', min: '20%', max: '50%' }
    ]
});
splitObj.appendTo('#splitter');

Pattern 2: Collapsible Panes with Initial State

let splitObj: Splitter = new Splitter({
    height: '300px',
    paneSettings: [
        { collapsible: true, size: '250px', content: 'Sidebar', collapsed: false },
        { collapsible: true, size: '250px', content: 'Details', collapsed: true }
    ]
});
splitObj.appendTo('#splitter');

Pattern 3: Vertical Split (Stacked)

let splitObj: Splitter = new Splitter({
    height: '400px',
    orientation: 'Vertical',
    paneSettings: [
        { size: '150px' },
        { size: '200px' },
        { size: '150px' }
    ]
});
splitObj.appendTo('#splitter');

Pattern 4: Nested Splitters (Code Editor Layout)

// Outer vertical splitter
let verticalSplit: Splitter = new Splitter({
    height: '400px',
    orientation: 'Vertical',
    paneSettings: [
        { size: '250px', min: '30%' }
    ]
});
verticalSplit.appendTo('#verticalSplitter');

// Inner horizontal splitter (inside first pane)
let horizontalSplit: Splitter = new Splitter({
    height: '220px',
    paneSettings: [
        { size: '29%', min: '23%' },
        { size: '20%', min: '15%' },
        { size: '35%', min: '35%' }
    ]
});
horizontalSplit.appendTo('#horizontalSplitter');

Pattern 5: Event Handling - Prevent Collapse

let splitObj: Splitter = new Splitter({
    height: '300px',
    paneSettings: [
        { collapsible: true, size: '250px', content: 'Important Pane' },
        { collapsible: true, size: '250px', content: 'Other Pane' }
    ],
    beforeCollapse: (args: BeforeExpandEventArgs) => {
        // Prevent collapse of first pane
        if (args.index[0] === 0) {
            args.cancel = true;
            console.log('First pane cannot be collapsed');
        }
    }
});
splitObj.appendTo('#splitter');

Pattern 6: Dynamically Add/Remove Panes

let splitObj: Splitter = new Splitter({
    height: '300px',
    paneSettings: [
        { size: '50%', content: 'Pane 1' },
        { size: '50%', content: 'Pane 2' }
    ]
});
splitObj.appendTo('#splitter');

// Add a new pane
document.getElementById('addBtn').addEventListener('click', () => {
    splitObj.addPane({ size: '200px', content: 'New Pane' }, 1);
});

// Remove a pane
document.getElementById('removeBtn').addEventListener('click', () => {
    splitObj.removePane(1);
});

Pattern 7: Programmatic Expand/Collapse

let splitObj: Splitter = new Splitter({
    height: '300px',
    paneSettings: [
        { collapsible: true, size: '250px', content: 'Pane 1', collapsed: true },
        { collapsible: true, size: '250px', content: 'Pane 2' }
    ]
});
splitObj.appendTo('#splitter');

// Expand pane
document.getElementById('expandBtn').addEventListener('click', () => {
    splitObj.expand(0);
});

// Collapse pane
document.getElementById('collapseBtn').addEventListener('click', () => {
    splitObj.collapse(0);
});

Pattern 8: Track Resize Events

let splitObj: Splitter = new Splitter({
    height: '300px',
    paneSettings: [
        { size: '250px', content: 'Pane 1' },
        { size: '250px', content: 'Pane 2' }
    ],
    resizeStart: (args: ResizeEventArgs) => {
        console.log('Resize started on pane:', args.index);
    },
    resizing: (args: ResizingEventArgs) => {
        console.log('Resizing... New sizes:', args.paneSize);
    },
    resizeStop: (args: ResizingEventArgs) => {
        console.log('Resize completed. Final sizes:', args.paneSize);
    }
});
splitObj.appendTo('#splitter');

Pattern 9: Persistent Splitter State

let splitObj: Splitter = new Splitter({
    height: '300px',
    enablePersistence: true, // Save state to localStorage
    paneSettings: [
        { size: '250px', content: 'Pane 1' },
        { size: '250px', content: 'Pane 2' }
    ]
});
splitObj.appendTo('#splitter');
// State automatically persists across page reloads

Pattern 10: RTL Support

let splitObj: Splitter = new Splitter({
    height: '300px',
    enableRtl: true,
    paneSettings: [
        { size: '50%', content: 'محتوى عربي' }, // Arabic content
        { size: '50%', content: 'תוכן עברי' }   // Hebrew content
    ]
});
splitObj.appendTo('#splitter');

Complete API Reference

For detailed examples of all properties, methods, and events, see the Complete API Reference.

Splitter Properties

Complete list of all properties available on the Splitter component:

PropertyTypeDefaultDescription
heightstring'100%'Height of the Splitter container
widthstring'100%'Width of the Splitter container
orientation'Horizontal' | 'Vertical''Horizontal'Layout direction - see Orientations guide
paneSettingsPanePropertiesModel[][]Configuration for each pane
separatorSizenumber1Separator width between panes
cssClassstring''Custom CSS classes for styling
enableRtlbooleanfalseEnable right-to-left layout - see RTL guide
enabledbooleantrueEnable/disable component interaction
enablePersistencebooleanfalsePersist pane state between page reloads
enableReversePanesbooleanfalseReorder panes
enableHtmlSanitizerbooleantrueSanitize HTML content to prevent XSS
localestring'en-US'Localization override

→ View examples in api-reference.md

Pane Properties

Configuration properties available within each pane in the paneSettings array:

PropertyTypeDefaultDescription
sizestringAutoPane size in pixels ('200px') or percentage ('30%')
minstringNoneMinimum pane size constraint
maxstringNoneMaximum pane size constraint
collapsiblebooleanfalseEnable collapse/expand icons
collapsedbooleanfalseInitially collapsed state
resizablebooleantrueAllow resizing this pane
contentstring | HTMLElementNoneHTML content for the pane
cssClassstring''Custom CSS classes for pane styling

→ View examples in api-reference.md

Methods

MethodParametersReturnDescription
addPane()paneProperties, indexvoidAdd pane dynamically - see Split Panes
removePane()indexvoidRemove pane dynamically - see Split Panes
expand()indexvoidExpand pane programmatically - see Collapse/Expand
collapse()indexvoidCollapse pane programmatically - see Collapse/Expand
refresh()—voidRe-render component
destroy()—voidCleanup component
getRootElement()—HTMLElementGet root element
dataBind()—voidApply pending changes
appendTo()selector?voidMount component to DOM - see Getting Started
addEventListener()eventName, handlervoidAdd event handler
removeEventListener()eventName, handlervoidRemove event handler
Inject()moduleListvoidInject modules

→ View examples in api-reference.md

Events & Event Arguments

EventTriggersArgumentsDescription
createdAfter initializationObjectComponent initialized
beforeExpandBefore pane expandsBeforeExpandEventArgsCancellable - prevent expand
expandedAfter pane expandsExpandedEventArgsExpansion completed
beforeCollapseBefore pane collapsesBeforeExpandEventArgsCancellable - prevent collapse
collapsedAfter pane collapsesExpandedEventArgsCollapse completed
resizeStartResize beginsResizeEventArgsCancellable
resizingDuring resizeResizingEventArgsContinuous updates
resizeStopResize completesResizingEventArgsFinal size available
beforeSanitizeHtmlBefore HTML sanitizationBeforeSanitizeHtmlArgsCustomize sanitization

→ View examples in api-reference.md

Event Arguments

BeforeExpandEventArgs (used in: beforeExpand, beforeCollapse)

  • cancel (boolean): Set to true to cancel the action
  • element (HTMLElement): Root element
  • event (Event): Native event
  • index (number[]): Pane index
  • pane (HTMLElement[]): Pane elements
  • separator (HTMLElement): Separator element

ExpandedEventArgs (used in: expanded, collapsed)

  • element (HTMLElement): Root element
  • event (Event): Native event
  • index (number[]): Pane index
  • pane (HTMLElement[]): Pane elements
  • separator (HTMLElement): Separator element

ResizeEventArgs (used in: resizeStart)

  • cancel (boolean): Set to true to stop resize
  • element (HTMLElement): Resizing pane element
  • event (Event): Native event
  • index (number[]): Pane index
  • pane (HTMLElement[]): Pane elements
  • separator (HTMLElement): Separator element

ResizingEventArgs (used in: resizing, resizeStop)

  • element (HTMLElement): Resizing pane element
  • event (Event): Native event
  • index (number[]): Pane index
  • pane (HTMLElement[]): Pane elements
  • paneSize (number[]): Current/final pane size
  • separator (HTMLElement): Separator element

BeforeSanitizeHtmlArgs (used in: beforeSanitizeHtml)

  • cancel (boolean): Prevent sanitization if needed
  • helper (Function): Custom sanitization callback
  • selectors (SanitizeSelectors): XSS block list configuration

Quick Reference

Essential Splitter Properties:

  • height, width → Container dimensions
  • orientation → 'Horizontal' (default) or 'Vertical'
  • paneSettings → Array of pane configurations
  • enableRtl → Right-to-left support
  • separatorSize → Gap width between panes (default: 1px)

Key Pane Properties:

  • size → Dimension ('200px' or '30%')
  • min / max → Resize constraints
  • collapsible → Enable collapse icons (default: false)
  • collapsed → Initial state
  • resizable → Allow resizing (default: true)
  • content → HTML content or text

Common Use Cases

  • Dashboard Layout: Sidebar + content with adjustable widths → Use collapsible left pane with flexible right pane
  • IDE/Code Editor: Multi-pane editor with nested splitters → File explorer, code editor, console
  • Responsive Admin Panel: Collapsible sections with min/max constraints for mobile-friendly resizing
  • Multi-Document Interface (MDI): Stack/arrange multiple documents with horizontal and nested vertical splits

Next Steps

  1. Start with Getting Started → Setup dependencies and basic initialization
  2. Choose your orientation → Horizontal for side-by-side, Vertical for stacked
  3. Configure panes → Set sizes, min/max constraints, collapsible behavior
  4. Add content → Load HTML markup or text
  5. Style as needed → Customize colors, borders, resize handles
  6. Add nested splitters → For complex layouts (advanced)

For specific implementation questions, refer to the appropriate reference file in the navigation guide above.

FAQ

What does the syncfusion-javascript-splitter skill do?

Implement and configure the Syncfusion TypeScript Splitter control for creating responsive multi-pane interfaces. Use this skill when implementing pane configuration, orientation changes, resizing, collapse/expand functionality, and content loading. This skill covers nested layouts, styling customization, and all API properties, methods, and events for the Splitter component.

How do I install syncfusion-javascript-splitter?

Run npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-splitter in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/syncfusion-javascript-splitter/ (personal) or .claude/skills/syncfusion-javascript-splitter/ (project).

Which AI agents can use syncfusion-javascript-splitter?

Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.

Is syncfusion-javascript-splitter safe to install?

No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.

Who maintains syncfusion-javascript-splitter?

It is published by syncfusion in syncfusion/javascript-ui-controls-skills. It has 55 recorded installs.

More from syncfusion/javascript-ui-controls-skills

View all →

syncfusion-javascript-grid

syncfusion/javascript-ui-controls-skills

Implements Syncfusion JavaScript Grid component for feature-rich data tables and grids. Use this when working with data display, sorting, filtering, grouping, aggregates, editing, or exporting. This skill covers grid configuration, CRUD operations, virtual scrolling, hierarchy grids, state persistence, and advanced data management features for data-intensive applications.

syncfusion-javascript-common

syncfusion/javascript-ui-controls-skills

Common utilities and features for Syncfusion JavaScript controls. Use this skill when the user needs to implement animations, drag-and-drop, state persistence, RTL support, localization, globalization, security, templates, and advanced features for Syncfusion JavaScript controls.

syncfusion-javascript-dropdowns

syncfusion/javascript-ui-controls-skills

Comprehensive guide for implementing Syncfusion TypeScript dropdown components including AutoComplete, ComboBox, Mention, Dropdownlist, Multiselect, ListBox, and MultiColumn ComboBox. Use this when building selection interfaces, data binding, filtering, cascading dropdowns, dual list transfer, custom templates, and accessible dropdown experiences.

syncfusion-javascript-license

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

syncfusion-javascript-popups

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

syncfusion-javascript-tab

syncfusion/javascript-ui-controls-skills

This skill enables creating and customizing Syncfusion TypeScript Tab components, including tab navigation, tab headers, styling, responsive layouts, dynamic content loading, animations, and multi-panel organization.

Popular frontend & design skills

View category →

setup-matt-pocock-skills

mattpocock/skills

Configure this repo for the engineering skills: set up its issue tracker, triage label vocabulary, and domain doc layout. Run once before first use of the other engineering skills.

Frontend & Design1.1M installs

frontend-design

anthropics/skills

Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.

OfficialFrontend & Design1M installs

hyperframes-animation

heygen-com/hyperframes

All animation knowledge for HyperFrames — atomic motion rules, multi-phase scene blueprints, scene transitions, broader motion-design techniques, AND the seven runtime adapters (GSAP default, plus Lottie, Three.js, Anime.js, CSS keyframes, Web Animations API, TypeGPU). Use for any motion or animation task: pick 2-4 rules and compose, or load a blueprint, or look up runtime-specific API (e.g. GSAP eases / Lottie player / Three.js mixer). Also covers auditing an existing composition's choreography (animation map) and 24 named text-animation effects. HyperFrames-native: single paused timeline, seek-safe, deterministic.

prototype

mattpocock/skills

Build a throwaway prototype to answer a design question. Use when the user wants to sanity-check whether a state model or logic feels right, or explore what a UI should look like.

Frontend & Design999.2K installs

hyperframes-core

heygen-com/hyperframes

The HyperFrames composition contract — build one renderable project. Use for composition structure, the data- timing attributes, class="clip", tracks, sub-compositions, variables, framework-owned media playback, deterministic-render rules, and validation. Read before writing composition HTML.

Frontend & Design930.5K installs

vercel-react-best-practices

vercel-labs/agent-skills

React and Next.js performance optimization guidelines from Vercel Engineering. This skill should be used when writing, reviewing, or refactoring React/Next.js code to ensure optimal performance patterns. Triggers on tasks involving React components, Next.js pages, data fetching, bundle optimization, or performance improvements.

OfficialFrontend & Design843.1K installs