Librería JavaScript · versión 3.0

Modales, formularios y avisos que da gusto usar.

Diálogos centrados con iconos animados, formularios con validación nativa y asíncrona, asistentes por pasos y avisos que siguen a tus promesas. Todo en una librería: sin dependencias, accesible y en unos 14 KB.

  • ≈ 14 KBgzip · JS + CSS
  • 0dependencias
  • 20tipos de campo
  • ES · ENtextos incluidos
app.js

Características

Todo lo que necesita un diálogo, nada que sobre.

Modales a medida

alert, confirm, prompt y diálogos a medida con iconos animados, hasta tres botones, imágenes, HTML y temporizador.

Formularios completos

Describe los campos o inyecta tu propio formulario. Recibes los valores como un objeto con sus tipos.

Validación de verdad

Reglas nativas, reglas propias y comprobaciones asíncronas (¿ese usuario existe?), con mensajes en español e inglés.

Asistente por pasos

Flujos de varios pasos con progreso, botón Atrás y valores que se conservan entre pasos.

Pensada para async

onConfirm muestra un botón de carga y los errores aparecen dentro del modal. Los avisos pueden seguir a cualquier promesa.

Accesible

Foco atrapado y devuelto, fondo inerte, Esc, roles ARIA y movimiento reducido.

Ligera y aislada

Unos 14 KB comprimida, sin dependencias, estilos con prefijo ja- y variables CSS para tu marca.

No rompe nada

Tu código de la v2 y el alerta() original de la v1 siguen funcionando igual.

Instalación

En marcha en un minuto.

Versión:

1Instálala con npm

…o cárgala desde el CDN:

2Úsala

Constructor visual

Diséñalo, pruébalo y copia el código.

Cada cambio actualiza el código al momento. Pulsa «Probar» para abrirlo y ver exactamente qué devuelve.

Plantilla
Icono
Campos
    Botones
    Comportamiento
    Aspecto
    Qué devuelve
    —

    Ejemplos

    Casos reales, listos para copiar.

    API

    Referencia

    Modales

    • modal(opciones)Abre un modal. Devuelve { confirmed, action, value }.
    • alert(texto | opciones)Mensaje centrado con un botón.
    • confirm(texto, opciones?)Sí o no. Devuelve true o false.
    • prompt(texto, valor?, opciones?)Pide un dato. Devuelve el valor o null.
    • form(campos, opciones?)Formulario completo. Devuelve un objeto con los valores o null.
    • steps(pasos, opciones?)Asistente. Devuelve { completed, values, step, action }.

    Avisos

    • success | danger | warning | info(msg, opc?)Atajos. Devuelven { id, element, close(), update() }.
    • toast(opciones) · show(opciones)Cualquier aviso, también de tipo loading.
    • promise(promesa, mensajes, opc?)Aviso de carga que pasa a éxito o error. Devuelve la misma promesa.
    • closeAll(posición?)Cierra todos los avisos, o los de una posición.
    • config(opciones)Opciones por defecto (theme y lang también valen para los modales).

    Utilidades

    • mixin(opciones)Funciones de modal con tus opciones por defecto.
    • current() · isOpen() · closeModal()Controla el modal abierto desde cualquier sitio.
    • serialize(form)Formulario a objeto: grupos en arrays, números como Number, archivos como File.
    • alerta(…) · close_all()API de la v1, sigue disponible con la etiqueta script.
    OpciónPor defectoDescripción
    typenullIcono animado: success, danger, warning, info o question.
    title · text""Título y texto (se escapan).
    htmlnullHTML de confianza o un nodo del DOM en lugar del texto.
    imagenullURL o { src, alt, width, height }.
    icontruefalse oculta el icono.
    confirm · deny · canceltrue · false · falseBotones: true, false, un texto o { text, style, className }. Estilos: primary, secondary, success, danger, ghost.
    reverseButtonsfalseInvierte el orden de los botones.
    inputnullUn único campo (tipo u objeto de campo). Su valor es el resultado.
    formnullLista de campos, un <form>/<template>, un "#selector" o HTML de confianza.
    validatenullValida el conjunto: true, un mensaje o { campo: mensaje }. Puede ser asíncrona.
    onConfirmnullFunción async (valor, modal) con botón de carga. Devuelve un valor para resolver con él, false para seguir abierto, o lanza un error para mostrarlo.
    onDeny · onOpen · onClosenullCallbacks. onDeny puede devolver false para seguir abierto.
    loadingTextnullTexto del botón mientras onConfirm trabaja.
    timer · progress · pauseOnHover0 · true · trueCierre automático en ms, con barra que se pausa con el ratón.
    closetruefalse o { esc, backdrop, button }.
    size · align"md" · "center"sm, md, lg, xl o píxeles · center o top.
    focusnullconfirm, cancel, deny o input. Por defecto, el primer campo o el botón de confirmar.
    theme · lang · classNamenulllight, dark o auto · es, en o auto · clase extra.

    El controlador llega en onOpen, onConfirm, validate y current(). Personaliza el aspecto con variables CSS: --ja-primary, --ja-radius, --ja-font, --ja-success, --ja-danger…

    Historial de versiones

    Todas las versiones, siempre disponibles.

    Elige la que necesites: descárgala, instálala con npm o cárgala desde el CDN con su propio enlace.

    VersiónPublicadaTamaño (gzip)Requierenpm · CDN
    3.0.0 última14,1 KBNadajustalerts@3.zip
    2.0.05,0 KBNadajustalerts@2.zip
    1.0.04,1 KBjQuery ≥ 3.4.1Solo descarga.zip
    1. 3.0.0 última

      · Modales, formularios y asistentes

      • NuevoModales: alert, confirm, prompt y modal, con iconos animados, hasta tres botones, imagen, HTML y temporizador.
      • NuevoFormularios a partir de una lista de campos (20 tipos, vista previa de archivos, campos a media anchura) o desde tu propio form o template.
      • NuevoValidación nativa, propia y asíncrona, con mensajes en español e inglés.
      • NuevoonConfirm asíncrono con botón de carga; los errores se muestran dentro del modal.
      • NuevoAsistente por pasos con progreso, botón Atrás y valores conservados entre pasos.
      • NuevoAvisos de promesa (cargando → éxito / error), botones de acción como «Deshacer» y update() en vivo.
      • MejoraAccesibilidad: foco atrapado y devuelto, fondo inerte, Esc y clic fuera, roles ARIA y movimiento reducido.
      • Mejoramixin(), current(), serialize() y tipos de TypeScript completos.
      • CompatibleEl código de la v1 y de la v2 sigue funcionando sin cambios.
    2. 2.0.0

      · Sin dependencias

      • NuevoReescrita en JavaScript puro: ya no necesita jQuery.
      • NuevoPosiciones centradas, títulos, tema oscuro y automático, y textos en español e inglés.
      • NuevoPublicada en npm con tipos de TypeScript.
      • MejoraEstilos aislados con el prefijo ja-: ya no altera las clases ni los iconos de tu página.
      • MejoraAccesible: los lectores de pantalla anuncian cada alerta y se cierran con el teclado.
      • MejoraBarra de progreso que se pausa con el ratón o el foco, e IDs únicos.
      • CompatibleEl alerta() de la v1 sigue funcionando.
    3. 1.0.0

      · Primera versión

      • NuevoFunción alerta(tipo, mensaje, x, y, tiempo, distancia).
      • NuevoCuatro tipos: success, danger, warning e info.
      • NuevoCuatro esquinas, con apilado por posición.
      • NuevoBotón «Cerrar todas» con contador.
      • RequierejQuery 3.4.1 o superior.

    Estadísticas

    En directo desde npm.

    Datos públicos de npm y del CDN jsDelivr, consultados al abrir esta sección. npm actualiza sus cifras con un día de retraso e incluye descargas automáticas (bots, espejos, integración continua).

    Descargas totales—
    Últimos 30 días—
    Últimos 7 días—
    Versión actual—
    Descargas diarias · últimos 90 días
    Descargas por versión · última semana
    Peticiones al CDN · últimos 30 días
    —