# Installation

```bash
npm install vue-js-modal --save
```

```bash
yarn add vue-js-modal
```

## Client

Import plugin in your main file:

```js
import VModal from 'vue-js-modal'

OR

import VModal from 'vue-js-modal/dist/index.nocss.js'
import 'vue-js-modal/dist/styles.css'
```

```js
Vue.use(VModal)
```

## SSR

To use this plugin with Nuxt.js you need to create a plugin file and reference it in the `nuxt.config.js` file.

```js
// nuxt.config.js
export default {
  ...
  /*
  ** Plugins to load before mounting the App
  */
  plugins: [
    '~plugins/vue-js-modal.js'
  ],
}
```

```js
// plugins/vue-js-modal.js
import Vue from 'vue'
import VModal from 'vue-js-modal/dist/ssr.nocss'

import 'vue-js-modal/dist/styles.css'

Vue.use(VModal, { ... })

export default function(_, inject) {
  inject('modal', Vue.prototype.$modal)
}
```

::: tip Extracted CSS
The `/dist` directory contains a version of the build with extracted CSS files. This is useful for SSR but also can be used with the purely client-side implementation when you need more flexibility in controlling your stylesheets.

- `ssr.index.js` - SSR build with inline CSS
- `ssr.nocss.js` - SSR build without inline CSS
- `index.nocss.js` - Client build without inline CSS
- `styles.css` - Stylesheet

:::
