Install PrimeVue with Vite

Setting up PrimeVue in a Vite project.

PrimeVue is available for download on npm Registry.

# Using npm
npm install primevue

# Using yarn
yarn add primevue

# Using pnpm
pnpm add primevue

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.

import { createApp } from 'vue';
import PrimeVue from 'primevue/config';

const app = createApp(App);

PrimeVue has two theming modes; styled or unstyled.

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 section for the complete list of available themes to choose from.

//in main.js
import 'primevue/resources/themes/aura-light-green/theme.css'

The style classes of PrimeVue are defined under the primevue CSS layer to be easier to customize by having low specificity. If you are using a CSS library that styles default HTML elements such as Tailwind Preflight, Bootstrap, Normalize, or similar, a custom CSS layer configuration might be necessary. This only applies to Styled Mode as Unstyled Mode does not use any default styles or layers. View the CSS Layer guide for more information.

/* Order */
@layer reset, primevue;

/* Reset CSS */
@layer reset {
    input {
        /* CSS to Reset */

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 documentation for more information and examples.

import { createApp } from "vue";
import PrimeVue from "primevue/config";
const app = createApp(App);

app.use(PrimeVue, {
    unstyled: true

In unstyled mode, you'd need to style the components on your end. If you are using Tailwind CSS, see the Tailwind CSS Presets project to get you started.

import { createApp } from 'vue';
import PrimeVue from 'primevue/config';
import Lara from '@/presets/lara';      //import preset

const app = createApp(App);
app.use(PrimeVue, {
    unstyled: true,
    pt: Lara                            //apply preset

Each component can be imported and registered individually so that you only bundle what you use. Import path is available in the documentation of the corresponding component.

import Button from "primevue/button"

const app = createApp(App);
app.component('Button', Button);

We've created various samples for the popular options in the Vue ecosystem. Visit the primevue-examples repository for more samples including vite-quickstart and vite-ts-quickstart.

Create-Vue is the recommended way to start a Vite-powered Vue project.