2018-12-04 07:08:40 +00:00
2019-05-27 10:32:08 +00:00
[![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)
2021-04-15 13:44:04 +00:00
[![Discord Chat ](https://img.shields.io/discord/557940238991753223.svg?color=7289da&label=chat&logo=discord )](https://discord.gg/gzKFYnpmCY)
2018-12-04 07:08:40 +00:00
2023-03-08 13:28:23 +00:00
[![PrimeVue Hero ](https://user-images.githubusercontent.com/686247/138925407-2a7e916d-c674-4fb5-b721-1dd41a8eeebc.jpg )](https://primevue.org/)
2018-12-04 07:08:40 +00:00
2022-02-09 10:47:35 +00:00
# PrimeVue
2019-05-27 10:32:08 +00:00
2023-03-08 13:28:23 +00:00
PrimeVue is a rich set of open source UI Components for Vue. See [PrimeVue homepage ](https://primevue.org/ ) for live showcase and documentation.
2022-02-09 10:47:35 +00:00
## Download
2023-03-20 11:00:18 +00:00
PrimeVue is available at [npm ](https://www.npmjs.com/package/primevue ).
2022-02-09 10:47:35 +00:00
````
2023-03-20 11:00:18 +00:00
// with npm
npm install primevue primeicons
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
// with yarn
yarn add primevue primeicons
````
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
## Plugin
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
PrimeVue plugin is required to be installed with the **use** function to set up the default [configuration ](https://primevue.org/theming ).
2022-02-09 10:47:35 +00:00
```javascript
import {createApp} from 'vue';
import PrimeVue from 'primevue/config';
const app = createApp(App);
app.use(PrimeVue);
```
2023-03-20 11:00:18 +00:00
## Styles
Theme, core and icons are the necessary css files of the components, visit the [Themes ](https://primevue.org/theming ) section for the complete list of available themes to choose from.
2022-02-09 10:47:35 +00:00
```javascript
2023-03-20 11:00:18 +00:00
// theme
import 'primevue/resources/themes/lara-light-blue/theme.css';
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
// core
import 'primevue/resources/primevue.min.css';
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
// icons
import 'primeicons/primeicons.css';
2022-02-09 10:47:35 +00:00
```
2023-03-20 11:00:18 +00:00
Each PrimeVue theme has its own font family so it is suggested to apply it to your application for a unified look.
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
```
body {
font-family: (--font-family);
}
2022-02-09 10:47:35 +00:00
```
2023-03-20 11:00:18 +00:00
## Usage
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
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.
2022-02-09 10:47:35 +00:00
```javascript
2023-03-20 11:00:18 +00:00
import Button from "primevue/button"
const app = createApp(App);
app.component('Button', Button);
2022-02-09 10:47:35 +00:00
```
2023-03-20 11:00:18 +00:00
## Prop Cases
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
Component prop names are described as camel case throughout the documentation however kebap-case is also fully supported. Events on the other hand should always be kebap-case.
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
```vue
< Dialog :showHeader = "false" > < / Dialog >
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
<!-- can be written as -->
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
< Dialog :show-header = "false" > < / Dialog >
2022-02-09 10:47:35 +00:00
```
## Nuxt Integration
2023-03-20 11:00:18 +00:00
PrimeVue can easily be used with Nuxt 3 using a custom plugin.
2022-02-09 10:47:35 +00:00
**nuxt.config.js**
Open the nuxt configuration file and add the css dependencies.
```javascript
export default defineNuxtConfig({
css: [
2023-03-20 11:00:18 +00:00
"primevue/resources/themes/lara-light-blue/theme.css",
"primevue/resources/primevue.css",
"primeicons/primeicons.css"
],
build: {
transpile: ["primevue"]
}
2022-02-09 10:47:35 +00:00
})
```
**primevue.js**
Create a file like **primevue.js** under the plugins directory for the configuration.
```javascript
import { defineNuxtPlugin } from "#app";
import PrimeVue from "primevue/config";
import Button from "primevue/button";
export default defineNuxtPlugin((nuxtApp) => {
nuxtApp.vueApp.use(PrimeVue, {ripple: true});
nuxtApp.vueApp.component('Button', Button);
//other components that you need
});
```
2023-03-20 11:00:18 +00:00
## Example
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
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.
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
### Vite
2023-03-20 11:37:00 +00:00
< a href = "https://github.com/primefaces/primevue-examples/tree/main/vite-quickstart" >
< img src = "https://primefaces.org/cdn/primevue/images/logos/vite.svg" alt = "vite" width = "112" height = "112" >
< / a >
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
### Nuxt
2023-03-20 11:37:00 +00:00
< a href = "https://github.com/primefaces/primevue-examples/tree/main/nuxt3-quickstart" >
< img src = "https://primefaces.org/cdn/primevue/images/logos/nuxt.svg" alt = "nuxt" width = "112" height = "112" >
< / a >
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
### Vue-CLI
2023-03-20 11:37:00 +00:00
< a href = "https://github.com/primefaces/primevue-quickstart" >
< img src = "https://primefaces.org/cdn/primevue/images/logos/vue.svg" alt = "vue-cli" width = "112" height = "112" >
< / a >
2022-02-09 10:47:35 +00:00
2023-03-20 11:00:18 +00:00
### Astro
2023-03-20 11:37:00 +00:00
< a href = "https://github.com/primefaces/primevue-examples/tree/main/astro-quickstart" >
< img src = "https://primefaces.org/cdn/primevue/images/logos/nuxt.svg" alt = "astro" width = "112" height = "112" >
< / a >
2023-03-13 11:15:48 +00:00
## Contributors
< a href = "https://github.com/primefaces/primevue/graphs/contributors" >
< img src = "https://contrib.rocks/image?repo=primefaces/primevue" / >
< / a >