[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)
[![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue)
[![Discord Chat](https://img.shields.io/discord/557940238991753223.svg?color=7289da&label=chat&logo=discord)](https://discord.gg/gzKFYnpmCY)
[![Prime Discussions](https://img.shields.io/github/discussions-search?query=org%3Aprimefaces&logo=github&label=Prime%20Discussions&link=https%3A%2F%2Fgithub.com%2Forgs%2Fprimefaces%2Fdiscussions)](https://github.com/orgs/primefaces/discussions)
[![PrimeVue Hero](https://www.primefaces.org/static/social/primevue-preview.jpg)](https://primevue.org/)
# PrimeVue
PrimeVue is a rich set of open source UI Components for Vue. See [PrimeVue homepage](https://primevue.org/) for live showcase and documentation.
## Download
PrimeVue is available at [npm](https://www.npmjs.com/package/primevue).
```
# Using npm
npm install primevue
# Using yarn
yarn add primevue
# Using pnpm
pnpm add primevue
```
## Plugin
PrimeVue plugin is required to be installed as an application plugin to set up the default configuration. The plugin is lightweight, only sets up the configuration object without affecting your application. PrimeVue has two styling modes; Styled and Unstyled. If you are just getting started, we suggest to using the styled mode.
**Styled Mode**
Styled mode provides pre-skinned components, default theme is Aura with emerald as the primary color.
```javascript
import { createApp } from 'vue';
import PrimeVueStyled from 'primevue/config';
const app = createApp(App);
app.use(PrimeVueStyled);
```
**Unstyled Mode**
In unstyled mode, the components do not include any CSS so you'd need to style the components on your end. If you are using Tailwind CSS, visit the [Tailwind Presets](https://tailwind.primevue.org) project to get you started with styling the components with Tailwind utility classes.
```javascript
import { createApp } from 'vue';
import PrimeVueUnstyled from 'primevue/config';
const app = createApp(App);
app.use(PrimeVueUnstyled);
```
## Usage
Each component can be imported individually so that you only bundle what you use. Import path is available in the documentation of the corresponding component.
```javascript
import Button from 'primevue/button';
const app = createApp(App);
app.component('Button', Button);
```
## Prop Cases
Component prop names are described as camel case throughout the documentation however kebab-case is also fully supported. Events on the other hand should always be kebab-case.
```vue
```
## Nuxt Integration
The [nuxt-primevue](https://www.npmjs.com/package/nuxt-primevue) package is the official module by PrimeTek.
```
# Using npm
npm install --save-dev nuxt-primevue
# Using yarn
yarn add --dev nuxt-primevue
# Using pnpm
pnpm add -D nuxt-primevue
```
The module is enabled by adding `nuxt-primevue` to the modules option. Configuration values are defined with the `primevue` property.
```javascript
export default defineNuxtConfig({
modules: ['nuxt-primevue'],
primevue: {
/* Options */
}
});
```
Whether to install the PrimeVue plugin, defaults to true. Disable this option if you prefer to configure PrimeVue manually e.g. with a Nuxt plugin.
```javascript
primevue: {
usePrimeVue: true;
}
```
The names of the components, directives and composables to import and register are provided using the include property. When the value is ignored or set using the \* alias, all of the components, directives and composables are registered respectively.
```javascript
primevue: {
components: {
include: ['Button', 'DataTable']
},
directives: {
include: ['Ripple', 'Tooltip']
},
composables: {
include: ['useStyle']
}
}
```
In styled mode, the theme can be defined at Nuxt configuration with the css property. Note that this only applies to styled mode, in unstyled mode a theme file is not required as styling is done externally.
```javascript
export default defineNuxtConfig({
css: ['primevue/resources/themes/aura-dark-green/theme.css']
});
```
For detailed [information](https://primevue.org/nuxt)
## Example
We've created various samples for the popular options in the Vue ecosystem. Visit the [primevue-examples](https://github.com/primefaces/primevue-examples) repository for the samples.
## Contributors