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)
2023-09-17 18:36:05 +00:00
[![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)
2018-12-04 07:08:40 +00:00
2023-09-28 21:01:49 +00:00
[![PrimeVue Hero ](https://www.primefaces.org/static/social/primevue-preview.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-09-26 13:43:11 +00:00
```
2023-10-18 08:22:00 +00:00
# Using npm
2023-04-18 15:05:44 +00:00
npm install primevue
2022-02-09 10:47:35 +00:00
2023-10-18 08:22:00 +00:00
# Using yarn
2023-04-18 15:05:44 +00:00
yarn add primevue
2023-10-18 08:22:00 +00:00
# Using pnpm
2023-10-19 06:09:55 +00:00
pnpm add primevue
2023-09-26 13:43:11 +00:00
```
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
2023-09-26 13:43:11 +00:00
import { createApp } from 'vue';
2022-02-09 10:47:35 +00:00
import PrimeVue from 'primevue/config';
const app = createApp(App);
app.use(PrimeVue);
```
2023-07-10 09:43:08 +00:00
## Theming
2023-09-26 13:43:11 +00:00
2023-07-10 09:43:08 +00:00
PrimeVue has two theming has modes; styled or unstyled.
2022-02-09 10:47:35 +00:00
2023-07-10 19:42:44 +00:00
**Styled Mode**
2023-07-10 09:43:08 +00:00
Styled mode is based on pre-skinned components with opinionated themes like Material, Bootstrap or PrimeOne themes. Theme is the required css file to be imported, 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
2023-10-15 04:10:40 +00:00
import 'primevue/resources/themes/lara-light-teal/theme.css';
2022-02-09 10:47:35 +00:00
```
2023-07-10 19:42:44 +00:00
**Unstyled Mode**
2023-07-10 09:43:08 +00:00
Unstyled mode is disabled by default for all components. Using the PrimeVue plugin during installation, set `unstyled` as true to enable it globally. Visit the [Unstyled mode ](https://primevue.org/unstyled ) documentation for more information and examples.
```javascript
2023-09-26 13:43:11 +00:00
import { createApp } from 'vue';
import PrimeVue from 'primevue/config';
2023-07-10 09:43:08 +00:00
const app = createApp(App);
2022-02-09 10:47:35 +00:00
2023-07-10 09:43:08 +00:00
app.use(PrimeVue, { unstyled: true });
```
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-09-26 13:43:11 +00:00
import Button from 'primevue/button';
2023-03-20 11:00:18 +00:00
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-10-12 08:24:34 +00:00
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.
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-10-18 08:22:00 +00:00
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
2022-02-09 10:47:35 +00:00
2023-10-18 08:22:00 +00:00
# Using yarn
yarn add --dev nuxt-primevue
2022-02-09 10:47:35 +00:00
2023-10-18 08:22:00 +00:00
# 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.
2022-02-09 10:47:35 +00:00
```javascript
export default defineNuxtConfig({
2023-10-18 08:22:00 +00:00
modules: ['nuxt-primevue'],
primevue: {
/* Options */
2023-05-10 11:50:39 +00:00
}
2023-09-26 13:43:11 +00:00
});
2022-02-09 10:47:35 +00:00
```
2023-10-18 08:22:00 +00:00
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.
2022-02-09 10:47:35 +00:00
```javascript
2023-10-18 08:22:00 +00:00
primevue: {
usePrimeVue: true;
}
```
2022-02-09 10:47:35 +00:00
2023-10-18 08:22:00 +00:00
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']
}
}
2022-02-09 10:47:35 +00:00
```
2023-10-18 08:25:22 +00:00
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/lara-dark-teal/theme.css']
});
```
2023-10-18 08:27:14 +00:00
For detailed [information ](https://primevue.org/nuxt )
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-09-26 13:43:11 +00:00
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-09-26 13:43:11 +00:00
2023-10-18 08:22:00 +00:00
< a href = "https://github.com/primefaces/primevue-examples/tree/main/nuxt-quickstart" >
2023-03-20 11:37:00 +00:00
< 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
### Astro
2023-09-26 13:43:11 +00:00
2023-03-20 11:37:00 +00:00
< a href = "https://github.com/primefaces/primevue-examples/tree/main/astro-quickstart" >
2023-04-07 07:16:45 +00:00
< img src = "https://primefaces.org/cdn/primevue/images/logos/astro.svg" alt = "astro" width = "112" height = "112" >
2023-03-20 11:37:00 +00:00
< / 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" / >
2023-07-10 09:45:26 +00:00
< / a >