You're Invited:Meet the Socket Team at BlackHat and DEF CON in Las Vegas, Aug 4-6.RSVP
Socket
Book a DemoInstallSign in
Socket

@kolirt/vue-modal

Package Overview
Dependencies
Maintainers
1
Versions
22
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@kolirt/vue-modal

Simple Vue3 modal package

1.1.2
latest
Source
npmnpm
Version published
Weekly downloads
3.5K
21.29%
Maintainers
1
Weekly downloads
 
Created
Source

Simple Vue3 modal package

Easy to use and highly customizable Vue3 modal package.

Table of Contents

  • Getting started
  • Usage
  • Options
  • Demo
  • Example
  • Faq
  • License
  • Other packages
Buy Me A Coffee

Getting started

Advantages of using this solution

🔥 Key benefits:

  • Less code and simpler modal management
    No more importing dozens of modals on every page or manually inserting them into template sections.

  • Easy control with JS/TS
    Open and close modals dynamically using clean JavaScript or TypeScript without unnecessary boilerplate.

  • Cascading modal support
    Seamlessly open multiple modals one after another while preserving their state and context - hassle-free.

🚀 How It Works:

  • Use a simple API to dynamically open and close modals.
  • Forget about adding tons of static modals in your HTML templates.
  • Add flexibility to your UI, enabling cascading modal calls with ease.

Note: Suitable for both simple use cases and complex applications requiring deep modal interactions.

Installation

Use yarn or npm to install the package @kolirt/vue-modal.

npm install --save @kolirt/vue-modal

yarn add @kolirt/vue-modal

Setup

Add dependencies to your main.js:

import { createApp } from 'vue'
import { createModal } from '@kolirt/vue-modal'

const app = createApp({ ... })

app.use(createModal({
  transitionTime: 200,
  animationType: 'slideDown',
  modalStyle: {
    padding: '5rem 2rem',
    align: 'center',
    'z-index': 201
  },
  overlayStyle: {
    'background-color': 'rgba(0, 0, 0, .5)',
    'backdrop-filter': 'blur(5px)',
    'z-index': 200
  }
}))

app.mount('#app')

Add ModalTarget to App.vue

<script setup lang="ts">
  import { ModalTarget } from '@kolirt/vue-modal'
</script>

<template>
  <ModalTarget />
</template>

Usage

Basic usage

First, you need to create modal. Instead of SimpleModal, you can implement your own wrapper with your own styles.

<script setup lang="ts">
import { closeModal, confirmModal, SimpleModal } from '@kolirt/vue-modal'

const props = defineProps({
  test: {}
})
</script>

<template>
  <SimpleModal title="Test modal" size="sm">
    <pre>props: {{ props }}</pre>

    <template #footer>
      <button @click="confirmModal({ value: 'some values' })" class="btn btn-primary">Confirm</button>
      <button @click="closeModal()" class="btn btn-primary">Close</button>
    </template>
  </SimpleModal>
</template>

Then you can use your modal.

<script setup lang="ts">
import { openModal } from '@kolirt/vue-modal'
import { defineAsyncComponent } from 'vue'

import TestModal from '@/components/modals/TestModal.vue'

function runModal() {
  openModal(TestModal, {
    test: 'some props'
  })
    // runs when modal is closed via confirmModal
    .then((data) => {
      console.log('success', data)
    })
    // runs when modal is closed via closeModal or esc
    .catch(() => {
      console.log('catch')
    })
}

function runDynamicModal() {
  openModal(
    defineAsyncComponent(() => import('@/components/modals/TestModal.vue')),
    {
      test: 'some props'
    }
  )
    // runs when modal is closed via confirmModal
    .then((data) => {
      console.log('success', data)
    })
    // runs when modal is closed via closeModal or esc
    .catch(() => {
      console.log('catch')
    })
}
</script>

<template>
  <button @click="runModal">Open modal</button>
</template>

Advanced usage

Open modal with clearing modal history.

openModal(
  TestModal,
  {
    test: 'some props'
  },
  { force: true }
)
  // runs when modal is closed via confirmModal
  .then((data) => {
    console.log('success', data)
  })
  // runs when modal is closed via closeModal or esc
  .catch(() => {
    console.log('catch')
  })

Options

Component ModalTarget props

Prop nameTypeDefault valueDescription
groupstring'default'Name of the modals holder
withoutOverlaybooleanfalseDisable overlay

Function openModal args

Arg numberTypeDescription
1Componentvue component
2objectprops for component
2 OpenModalOptions options

Demo

Demo here

Example

Example here

FAQ

Check closed issues with FAQ label to get answers for most asked questions.

License

MIT

Other packages

Check out my other projects on my GitHub profile.

Keywords

vue

FAQs

Package last updated on 29 Mar 2025

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts