@lrochefort/vue-final-modal

Fork of vue-final-modal - the most powerful yet most light-weight modal library for Vue 3, modernized for Vue 3.5+, Vite 8 and Node 20.19+.
3
Install
npm install @lrochefort/vue-final-modal
Latest Version:5.0.0-rc.1
Vue:3
License:MIT
Last Updated:Aug 27, 2026
Links: GitHub  ·  npm
Maintainer: lrochefort

Vue Final Modal 5

The most powerful yet most light-weight modal library for Vue 3.

[!IMPORTANT] This is an unofficial fork of vue-final/vue-final-modal.

Upstream has not published a release since September 2024 (4.5.5). This fork exists to keep the library working on a current toolchain: Vue 3.5, Vite 8, TypeScript 6, Nuxt 4 and Node 20.19+.

Because the upstream package names are owned by the original author, this fork publishes under its own scope:

Upstream This fork
vue-final-modal @lrochefort/vue-final-modal
@vue-final-modal/nuxt @lrochefort/vue-final-modal-nuxt

There are no runtime API changes. Every component, composable, prop, event and slot behaves exactly as it did in 4.5.5. Upgrading is a rename.

Version Downloads License

Requirements

Requirement Minimum version Notes
Node.js 20.19.0 Enforced via engines
Vue 3.5.0 Required by @vueuse/core 14
Nuxt 4.0.0 Only for @lrochefort/vue-final-modal-nuxt

@vueuse/core, @vueuse/integrations (>=10) and focus-trap (>=7.2) are peer dependencies and are installed for you by default.

Installation

# npm
npm install @lrochefort/vue-final-modal

# pnpm
pnpm add @lrochefort/vue-final-modal

# yarn
yarn add @lrochefort/vue-final-modal

For Nuxt 4, also install the module:

npm install @lrochefort/vue-final-modal-nuxt

Quick start

Vue 3

// main.ts
import { createApp } from 'vue'
import { createVfm } from '@lrochefort/vue-final-modal'
import '@lrochefort/vue-final-modal/style.css'
import App from './App.vue'

createApp(App).use(createVfm()).mount('#app')
<!-- App.vue -->
<script setup lang="ts">
import { ModalsContainer } from '@lrochefort/vue-final-modal'
</script>

<template>
  <div>
    <ModalsContainer />
  </div>
</template>

Nuxt 4

The module registers the plugin and injects the stylesheet for you:

// nuxt.config.ts
export default defineNuxtConfig({
  modules: ['@lrochefort/vue-final-modal-nuxt'],
})

Migrating from 4.x to 5.0

A codemod handles the rename:

# preview the changes
npx @lrochefort/vue-final-modal-codemod@latest --dry-run

# apply them
npx @lrochefort/vue-final-modal-codemod@latest

It rewrites import specifiers in .ts, .js, .mjs, .cjs and .vue files, updates package.json and nuxt.config, then reports anything it cannot fix automatically. See the full migration guide for the manual steps.

Playground

Documentation

The documentation site is maintained upstream at vue-final-modal.org. It is accurate for this fork apart from the package names: substitute @lrochefort/vue-final-modal wherever it says vue-final-modal.

Looking for old version?

Contributing

See the contribution guide in the repository.

Credits

vue-final-modal was created by Hunter Liu and its contributors. This fork exists only to keep their work running on current tooling; all credit for the library belongs to them.

contributors

Made with contributors-img.

If you find this library useful, consider supporting the original author:

Buy Me A Coffee

If you have any ideas for optimization of this fork, feel free to open issues or pull requests.

License

MIT - Copyright (c) 2018-present, Chung Hang (Hunter) Liu

Related Packages

vue-final-modal

The most powerful yet most light-weight modal library for Vue 3.

3,105,553 1,013
x5-modal

A lightweight modal plugin for Vue

1,031 2
@auswuchs/vue-dialog

Modern programmatic way to use dialogs in vue

718 4
a11y-vue-dialog

An accessible dialog component made for Vue

13,946 12
@fastkit/vue-stack

Library for displaying dialogs, tooltips and menus in Vue applications.

13,088 6

Version History

Pre-releases (1)
Version Released Vue License
5.0.0-rc.1 >=3.5.0 MIT