MCPInstall

syncfusion-javascript-popups

Comprehensive guide for implementing Syncfusion EJ2 JavaScript Popup components including Dialog, Predefined Dialog (DialogUtility), and Tooltip. Use this when building modal/modeless dialogs, alert/confirm windows, draggable dialogs, resizable windows, popovers, tooltips, and overlaid content with custom positioning, animations, WCAG 2.2 accessibility, forms integration, and event handling in TypeScript/JavaScript applications.

Installs
72
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-popups
  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-popups 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.

Syncfusion EJ2 JavaScript Popups

Overview

The Syncfusion EJ2 JavaScript Popups library provides three essential UI components for building interactive overlay content. Each component is fully documented with TypeScript/JavaScript examples, accessibility guidelines, and common usage patterns.

All components support:

  • Accessibility: WCAG 2.2 Level AA, Section 508, ADA compliance
  • Themes: Material 3, Bootstrap 5, Fluent, Tailwind 3, Fabric
  • APIs: Imperative TypeScript/JavaScript with full event support
  • Keyboard: Full keyboard navigation and interaction

Component Overview

Quick Navigation

ComponentPurposePackageFiles
DialogModal/modeless dialog with templatesej2-popups8
Predefined DialogAlert/Confirm/Prompt via DialogUtilityej2-popups7
TooltipContextual popup on hover/focus/clickej2-popups9

Package: @syncfusion/ej2-popups


Dialog Component

Purpose: Displays content in an overlay window above the main page, supporting modal/modeless modes, custom templates, action buttons, animations, drag, resize, and built-in utility dialogs (alert/confirm).

Package: @syncfusion/ej2-popups

Quick Example

import { Dialog } from '@syncfusion/ej2-popups';
import { enableRipple } from '@syncfusion/ej2-base';

enableRipple(true);

let dialog: Dialog = new Dialog({
  header: 'Welcome',
  content: 'This is a simple dialog.',
  showCloseIcon: true,
  width: '350px',
  target: document.body,
  buttons: [
    {
      buttonModel: { content: 'OK', isPrimary: true },
      click: () => { dialog.hide(); }
    }
  ]
});
dialog.appendTo('#dialog');

Documentation

  • dialog-getting-started.md - Setup and installation
  • dialog-templates.md - Header, content, and footer templates
  • dialog-features.md - Animation, resize, localization, RTL
  • dialog-events.md - All dialog events
  • dialog-how-to.md - Common how-to scenarios
  • dialog-dialog-utility.md - DialogUtility.alert() and confirm()
  • dialog-accessibility.md - WCAG 2.2, ARIA, keyboard
  • dialog-api.md - Complete API reference

Predefined Dialog Component

Purpose: Imperative alert, confirm, and prompt dialogs opened via the DialogUtility class. No component instance required—perfect for simple notifications and user confirmations.

Package: @syncfusion/ej2-popups

Quick Example - Alert

import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.alert({
  title: 'Low Battery',
  content: '10% of battery remaining',
  width: '250px',
  okButton: { click: () => dialogObj.hide() }
});

Quick Example - Confirm

import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.confirm({
  title: 'Delete File',
  content: 'Are you sure you want to delete this file?',
  okButton: { 
    text: 'Delete',
    click: () => { /* delete logic */ dialogObj.hide(); }
  },
  cancelButton: { 
    text: 'Cancel',
    click: () => dialogObj.hide() 
  }
});

Quick Example - Prompt

import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.confirm({
  title: 'Enter Name',
  content: '<input id="nameInput" class="e-input" placeholder="Your name" />',
  okButton: {
    text: 'Submit',
    click: () => {
      const name: string = (document.getElementById('nameInput') as HTMLInputElement).value;
      console.log('Name:', name);
      dialogObj.hide();
    }
  }
});

Documentation

  • predefineddialog-getting-started.md - Alert, Confirm, Prompt basics
  • predefineddialog-animation.md - Animation effects
  • predefineddialog-position.md - 9 positions and custom coordinates
  • predefineddialog-dimension.md - Width, height, CSS constraints
  • predefineddialog-draggable.md - Draggable dialogs
  • predefineddialog-customization.md - Button customization, close icon, content
  • predefineddialog-api.md - Complete API reference

Tooltip Component

Purpose: Displays contextual popup information when users hover, focus, or click on target elements. Supports 12 positions, multiple open modes, animations, custom content, and full accessibility.

Package: @syncfusion/ej2-popups

Quick Example

import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  content: 'Tooltip Content',
  position: 'TopCenter'
});
tooltip.appendTo('#target');

Quick Example - Multiple Targets

import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  target: '.e-info',
  position: 'RightCenter'
});
tooltip.appendTo('#container');

HTML:

<div id="container">
  <input type="text" class="e-info" title="Please enter your name" />
  <input type="email" class="e-info" title="Enter a valid email address" />
</div>

Documentation

  • tooltip-getting-started.md - Setup and basic usage
  • tooltip-content.md - Content strategies, templates, dynamic loading
  • tooltip-position.md - 12 positions, tip pointer, offsets
  • tooltip-open-mode.md - Hover, Click, Focus, Custom, Sticky
  • tooltip-animation.md - Animation effects
  • tooltip-customization.md - CSS customization, themes
  • tooltip-how-to.md - Common patterns and solutions
  • tooltip-accessibility.md - WCAG 2.2, ARIA, keyboard
  • tooltip-api.md - Complete API reference

Installation and Setup

Install the Package

npm install @syncfusion/ej2-popups@33.x.x --save
npm audit

Add CSS Theme Imports

/* src/styles.css */
@import '../node_modules/@syncfusion/ej2-base/styles/tailwind3.css';
@import '../node_modules/@syncfusion/ej2-buttons/styles/tailwind3.css';
@import '../node_modules/@syncfusion/ej2-popups/styles/tailwind3.css';

Other available themes: material.css, bootstrap5.css, fluent.css, fabric.css


Common Patterns

Modal Dialog with Confirmation

import { Dialog } from '@syncfusion/ej2-popups';

let dialog: Dialog = new Dialog({
  header: 'Confirm Action',
  content: 'Are you sure you want to proceed?',
  isModal: true,
  showCloseIcon: true,
  width: '400px',
  target: document.body,
  buttons: [
    { buttonModel: { content: 'Yes', isPrimary: true }, click: () => { /* action */ dialog.hide(); } },
    { buttonModel: { content: 'No', cssClass: 'e-flat' }, click: () => dialog.hide() }
  ]
});
dialog.appendTo('#dialog');

Quick Alert Notification

import { DialogUtility } from '@syncfusion/ej2-popups';

DialogUtility.alert('Operation completed successfully!');

Form Validation Tooltip

import { Tooltip } from '@syncfusion/ej2-popups';

let emailTooltip: Tooltip = new Tooltip({
  content: 'Please enter a valid email address',
  position: 'RightCenter',
  opensOn: 'Focus'
});
emailTooltip.appendTo('#email');

Draggable Dialog

import { DialogUtility } from '@syncfusion/ej2-popups';

let dialogObj: any = DialogUtility.alert({
  title: 'Draggable',
  content: 'Drag me by the header',
  isDraggable: true,
  okButton: { click: () => dialogObj.hide() }
});

Tooltip on Disabled Elements

import { Tooltip } from '@syncfusion/ej2-popups';

let tooltip: Tooltip = new Tooltip({
  content: 'This feature is currently disabled',
  position: 'TopCenter'
});
tooltip.appendTo('#disabled-wrapper');

HTML:

<span id="disabled-wrapper" style="display: inline-block;">
  <button class="e-btn" disabled>Disabled</button>
</span>

Theme Support

All popup components support the following themes:

ThemeCSS File
Material 3material.css
Bootstrap 5bootstrap5.css
Fluentfluent.css
Tailwind 3tailwind3.css
Fabricfabric.css

Accessibility

All popup components comply with WCAG 2.2 Level AA, Section 508, and ADA standards.

Dialog Accessibility

  • WAI-ARIA roles and attributes
  • Keyboard navigation (Tab, Enter, Escape)
  • Focus management
  • Screen reader support

Predefined Dialog Accessibility

  • Inherits Dialog accessibility features
  • Alert, Confirm, and Prompt patterns follow ARIA best practices
  • Keyboard navigation for all buttons

Tooltip Accessibility

  • role="tooltip" with aria-describedby
  • aria-hidden for visibility state
  • Keyboard support (Escape to close, Focus to open)
  • Screen reader announcements
  • prefers-reduced-motion respect

Browser Support

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)
  • Internet Explorer 11 (with polyfills)

Version Compatibility

Syncfusion EJ2 VersionStatus
33.x.xCurrent (Recommended)
32.x.xSupported
31.x.xSupported
< 30.x.xLegacy

Quick Reference

NeedComponentMethod/Property
Modal dialogDialogisModal: true
Draggable dialogDialogallowDragging: true
Resizable dialogDialogenableResize: true
Quick alertPredefined DialogDialogUtility.alert()
Quick confirmPredefined DialogDialogUtility.confirm()
Input promptPredefined DialogDialogUtility.confirm() with <input>
Tooltip on hoverTooltipopensOn: 'Hover'
Tooltip on focusTooltipopensOn: 'Focus'
Sticky tooltipTooltipisSticky: true
Multiple tooltipsTooltiptarget: '.class-selector'

Status: ✅ Production Ready
Quality Rating: 9+/10 (Professional Grade)
Coverage: 3 components, 24 reference files

FAQ

What does the syncfusion-javascript-popups skill do?

Comprehensive guide for implementing Syncfusion EJ2 JavaScript Popup components including Dialog, Predefined Dialog (DialogUtility), and Tooltip. Use this when building modal/modeless dialogs, alert/confirm windows, draggable dialogs, resizable windows, popovers, tooltips, and overlaid content with custom positioning, animations, WCAG 2.2 accessibility, forms integration, and event handling in TypeScript/JavaScript applications.

How do I install syncfusion-javascript-popups?

Run npx skills add https://github.com/syncfusion/javascript-ui-controls-skills --skill syncfusion-javascript-popups 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-popups/ (personal) or .claude/skills/syncfusion-javascript-popups/ (project).

Which AI agents can use syncfusion-javascript-popups?

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-popups 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-popups?

It is published by syncfusion in syncfusion/javascript-ui-controls-skills. It has 72 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-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.

syncfusion-javascript-license

syncfusion/javascript-ui-controls-skills

Open the skill to read its SKILL.md instructions.

syncfusion-javascript-themes

syncfusion/javascript-ui-controls-skills

Use this skill when users need to apply themes, customize appearance, switch dark mode, use CSS variables, configure icons, or modify visual styling for Syncfusion JavaScript controls. Covers icon library, size modes, and Theme Studio integration.

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