syncfusion-react-popups
Comprehensive guide for implementing Syncfusion React popup components including Dialog, ToolTip. Use this when building modal/modeless dialogs, confirmation popups, forms in dialogs, draggable windows, popovers, tooltips, and overlaid content with custom positioning, animations, WCAG 2.2 accessibil
By syncfusion · 565 installs
npx skills add syncfusion/react-ui-components-skills --skill syncfusion-react-popups
Source repository · Upstream listing
Syncfusion React Popups Component
Implementing Syncfusion React Dialog Component
The DialogComponent displays content in a floating window with support for modal and modeless modes, custom positioning, dragging, resizing, animations, templating, and comprehensive accessibility features.
Component Overview
DialogComponent Features:
Modal/Modeless modes : Control parent interaction blocking
9 preset positions + custom X/Y : Flexible placement
Dragging : Header based drag and drop (allowDragging)
Resizing : Diagonal resize grip (enableResize)
Templating : Custom header, content, footer
Animations : 16 effects (Fade, Zoom, Flip, Slide, FadeZoom, etc.)
Buttons : Built in action buttons with click handlers
Events : open, close, beforeOpen, beforeClose, drag, dragStart, dragStop, resize events
Keyboard Navigation : Tab, Escape (closeOnEscape), Enter
WCAG 2.2 Accessibility : ARIA roles, focus management
Localization : 20+ locales via locale property
RTL Support : Right to left rendering
Documentation & Navigation Guide
Getting Started
📄 Read: [references/getting started.md](references/dialog getting started.md)
Installation ( @syncfusion/ej2 react popups )
CSS/theme imports (material, bootstrap, tailwind)
Basic DialogComponent JSX structure
show()/hide() methods and refs
Functional component patterns with hooks
Initial visibility with visible prop
Modal vs Modeless
📄 Read: [references/modal vs modeless.md](references/dialog modal vs modeless.md)
isModal boolean property (true/false)
Modal overlay behavior and parent blocking
Modeless floating behavior
Focus management differences
When to choose each mode
Side by side comparisons
Positioning and Dragging
📄 Read: [references/positioning and dragging.md](references/dialog positioning and dragging.md)
position object (X: 'center' 'left' 'right' number, Y: 'top' 'center' 'bottom' number)
9 preset position combinations
Custom pixel based positioning
allowDragging boolean property
enableResize and resizeHandles configuration
Target element constraints with target prop
Templates and Content
📄 Read: [references/templates and content.md](references/dialog templates and content.md)
content property (string, HTML, JSX function)
header property (text or template)
footerTemplate (custom footer JSX)
Dynamic content updates
HTML sanitization (enableHtmlSanitizer)
Styling content and edge cases
Buttons and Actions
📄 Read: [references/buttons and actions.md](references/dialog buttons and actions.md)
buttons array with ButtonPropsModel[]
ButtonPropsModel structure (buttonModel, click, isFlat, type)
buttonModel properties (content, isPrimary, cssClass)
Click event handlers
Styling buttons with cssClass
Button types (Button, Submit, Reset)
Animation Effects
📄 Read: [references/animation effects.md](references/dialog animation effects.md)
AnimationSettingsModel (effect, duration, delay)
16 animation effects (Fade, FadeZoom, FlipLeftDown, FlipLeftUp, etc.)
Duration in milliseconds
Delay before animation starts
Disable animations (effect: 'None')
Performance considerations
Localization and Accessibility
📄 Read: [references/localization and accessibility.md](references/dialog localization and accessibility.md)
locale property for culture/language
WCAG 2.2 compliance
Keyboard navigation (Tab, Enter, Escape)
closeOnEscape behavior control
ARIA roles and attributes
Screen reader support
RTL support with enableRtl
Focus management patterns
Advanced Patterns
📄 Read: [references/advanced patterns.md](references/dialog advanced patterns.md)
Events: open, close, beforeOpen, beforeClose, drag, dragStart, dragStop, resizeStart, resizeStop, resizing
Nested and stacked dialogs
Forms with validation
AJAX content loading
Prevent close logic (beforeClose event)
Full screen dialogs
HTML sanitization and security
CSS classes and z index management
Enable persistence (enablePersistence)
Common edge cases and troubleshooting
API Reference (Complete)
📄 Read: [references/api reference.md](references/dialog api reference.md)
All 24 DialogModel properties with types and defaults
All 11 events with event arguments
Methods: show(), hide(), refresh(), destroy()
ButtonPropsModel structure (buttonModel, click, isFlat, type)
AnimationSettingsModel with all 16 effects
Types and enumerations
Quick reference patterns
Quick Start Example
⚠️ Dependency Alignment: All @syncfusion/ej2 packages must be on the same major version to avoid peer dependency conflicts and supply chain mismatches. Install them together:
Basic Modal Dialog:
Common Patterns
Pattern 1: Confirmation Dialog
Delete action with confirmation buttons:
Pattern 2: Form Dialog
Dialog with form inputs and validation:
Pattern 3: Centered Dialog
Position dialog in center of screen:
Pattern 4: Draggable Floating Panel
Non modal, draggable properties panel:
Pattern 5: Animated Dialog
Dialog with Zoom animation:
Pattern 6: Custom Footer Template
Custom footer instead of buttons:
Pattern 7: Nested Dialogs
Parent dialog containing child dialog:
Key Props (DialogModel)
Prop Type Description Default When to Use
isModal boolean Enable modal mode (blocks parent interaction) false Confirmations, alerts, critical actions
visible boolean Initial visibility state false Control initial dialog display
header string \ JSX Dialog header/title Every dialog needs a title
content string \ HTML \ JSX Dialog body content Main dialog information
buttons ButtonPropsModel[] Action buttons in footer For OK/Cancel, action confirmations
footerTemplate JSX Custom footer content When buttons prop doesn't fit
showCloseIcon boolean Show close button in header false Allow users to dismiss
position PositionData X/Y positioning (center, top, etc.) { X: 'center', Y: 'center' } Custom placement
allowDragging boolean Enable drag functionality false Movable dialogs, floating panels
enableResize boolean Enable resize with grip false Resizable dialogs
resizeHandles ResizeDirections[] Which edges/corners resize ['All'] Control resize behavior
width string \ number Dialog width '330px' Control dialog size
height string \ number Dialog height 'auto' Control dialog size
minHeight string \ number Minimum height Prevent too small resize
animationSettings AnimationSettingsModel Animation effect/duration/delay Smooth open/close transitions
closeOnEscape boolean Close on Escape key press true Keyboard navigation
target string (selector) Container element document.body Modal positioning
enableHtmlSanitizer boolean Sanitize HTML content true Security (prevent XSS)
cssClass string Custom CSS classes Styling and theming
enableRtl boolean Right to left rendering false RTL languages
locale string Culture/language code 'en US' Localization
zIndex number Stack order Manage overlapping dialogs
enablePersistence boolean Persist state on reload false Remember size/position
Common Use Cases
1. Confirmation Dialogs Confirm delete, submit, or critical actions before proceeding
2. Alert/Info Popups Display system messages, warnings, or notifications
3. Form Dialogs Edit profiles, settings, or create new records in modal forms
4. Input Prompts Collect user input for specific actions (e.g., "Enter file name")
5. Properties Panels Draggable, non modal panels for settings or properties
6. Multi Step Workflows Nested dialogs for step by step processes
7. Loading/Processing Show progress indicators or loading states
8. Help/Documentation Contextual help, tips, or tutorial overlays
9. Image Galleries Lightbox dialogs for images or media previews
10. Settings/Preferences Organize application settings in tabbed dialogs
Next: Choose a reference based on what you need to implement. All references include working code examples, best practices, and troubleshooting guidance.
Implementing Syncfusion React Predefined Dialog Component
Table of Contents
[Key Concept]( key concept)
[Quick Start]( quick start)
[Documentation Guide]( documentation guide)
[Common Patterns]( common patterns)
Key Concept
Syncfusion Predefined Dialogs are not component based ( <ejs dialog ). They are opened
imperatively via the DialogUtility utility class:
Dialog Type Method
Alert DialogUtility.alert({ ... })
Confirm DialogUtility.confirm({ ... })
Prompt (input) DialogUtility.confirm({ content: '<input .../ ', ... })
Import: import { DialogUtility } from '@syncfusion/ej2 react popups';
Quick Start
Documentation Guide
Getting Started
📄 Read: [references/getting started.md](references/predefineddialog getting started.md)
Installation ( @syncfusion/ej2 react popups )
CSS imports
Alert, Confirm, and Prompt minimal examples
Functional and class component patterns
Animation
📄 Read: [references/animation.md](references/predefineddialog animation.md)
animationSettings property with effect , duration , delay
Alert / Confirm / Prompt animation examples
Draggable
📄 Read: [references/draggable.md](references/predefineddialog draggable.md)
isDraggable boolean property
Alert / Confirm / Prompt drag examples
Position
📄 Read: [references/position.md](references/predefineddialog position.md)
position property: { X, Y } — left center right / top center bottom or numeric offset
Alert / Confirm / Prompt position examples
Dimension
📄 Read: [references/dimension.md](references/predefineddialog dimension.md)
width and height properties
cssClass for max width / min width constraints
Alert / Confirm / Prompt dimension examples
Customization
📄 Read: [references/customization.md](references/predefineddialog customization.md)
okButton / cancelButton — custom text , icon , click handler
showCloseIcon and closeOnEscape
Custom content for prompt dialogs
API Reference
📄 Read: [references/api.md](references/predefineddialog api.md)
Full DialogUtility.alert() / confirm() option properties
All supported fields: title , content , width , height , position , animationSettings , isDraggable , okButton , cancelButton , showCloseIcon , closeOnEscape , cssClass
Common Patterns
Alert with OK callback:
Confirm with Yes / No:
Prompt (input capture):
Implementing Syncfusion React Tooltip
A comprehensive skill for implementing the Syncfusion React TooltipComponent — covering setup, content strategies, positioning, open modes, animation, customization, accessibility, and advanced how to patterns.
Package: @syncfusion/ej2 react popups
Import: import { TooltipComponent } from '@syncfusion/ej2 react popups';
Quick Start
Navigation Guide
Getting Started & Setup
📄 Read: [references/getting started.md](references/tooltip getting started.md)
Installation and CSS imports
Basic tooltip on a single element
Tooltip on multiple targets within a container ( target prop)
Using title attribute as fallback content
Running the application
Content
📄 Read: [references/content.md](references/tooltip content.md)
Plain string content
Template content (JSX function)
Dynamic content loaded via Fetch/Ajax ( beforeRender event)
HTML content (iframe, embedded elements)
Updating content programmatically with dataBind()
Positioning
📄 Read: [references/position.md](references/tooltip position.md)
12 static positions ( TopL