Zero required dependencies
No framework runtime, jQuery, Popper, or Bootstrap required.
A lightweight, framework-agnostic dialog library built for modern web applications.
npm install sodialogv0.3.11import { confirmModal } from 'sodialog'
const approved = await confirmModal({
title: 'Deploy to production?',
content: 'All checks have passed.',
confirmText: 'Deploy now',
})Focused, predictable interaction infrastructure that keeps your host app in control of its stack.
No framework runtime, jQuery, Popper, or Bootstrap required.
Public APIs are typed from options to return handles.
Compose confirm, prompt, and form flows with async/await.
Use the same core in vanilla apps and major frameworks.
Native dialog semantics, keyboard paths, and focus restoration.
Responsive sizing and touch-friendly narrow-screen interactions.
Focused on dialog interactions without a large UI framework.
From simple alerts to complete product flows, keep code clear, typed, and maintainable.
import { openModal } from 'sodialog'
openModal({
title: 'Deployment ready',
content: 'Your changes are live.',
footerButtons: [
{ label: 'Got it', role: 'confirm', action: 'destroy' },
],
})SoDialog focuses on modern dialog experiences while staying framework-agnostic, lightweight, and maintainable.
| Solution | Promise API | Framework agnostic | Required UI runtime | Maintenance |
|---|---|---|---|---|
| Native Alert | — | ✓ | None | Browser-limited |
| Bootstrap Modal | — | ✓ | Bootstrap JS | Framework coupled |
| SweetAlert2 | ✓ | ✓ | Package runtime | General-purpose |
| S SoDialog Recommended | ✓ | ✓ | None | Focused & typed |
Bootstrap is a compatibility target, not a dependency. The SoDialog core belongs to the Web Platform.
From first install to advanced themes and complete APIs, every entry point is designed for fast answers.
Install the package and import ESM plus styles.
Open your first modern dialog in minutes.
Look up options, types, handles, and lifecycle behavior.
Browse runnable Modal, Toast, and Offcanvas examples.
Create product themes with CSS Variables.
Solve integration, styling, and framework questions quickly.
Zero required dependencies. Complete TypeScript types. Ready in minutes.