primevue-skilld

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and profe.... ALWAYS use when writing code importing "primevue". Consult for debugging, best practices, or modifying primevue.

Safety Notice

This listing is imported from skills.sh public index metadata. Review upstream SKILL.md and repository scripts before running.

Copy this and send it to your AI assistant to learn

Install skill "primevue-skilld" with this command: npx skills add harlan-zw/vue-ecosystem-skills/harlan-zw-vue-ecosystem-skills-primevue-skilld

primefaces/primevue primevue

PrimeVue is an open source UI library for Vue featuring a rich set of 80+ components, a theme designer, various theme alternatives such as Material, Bootstrap, Tailwind, premium templates and professional support. In addition, it integrates with PrimeBlock, which has 370+ ready to use UI blocks to build spectacular applications in no time.

Version: 4.5.4 (Dec 2025) Deps: @primeuix/styled@^0.7.4, @primeuix/utils@^0.6.2, @primeuix/styles@^2.0.2, @primevue/core@4.5.4, @primevue/icons@4.5.4 Tags: v2-stable: 2.10.4 (Dec 2023), v3-stable: 3.53.1 (Dec 2024), latest: 4.5.4 (Dec 2025)

References: Docs — API reference, guides

API Changes

This section documents version-specific API changes — prioritize recent major/minor releases.

  • BREAKING: Calendar renamed to DatePicker — v3 component renamed to DatePicker in v4 source

  • BREAKING: Dropdown renamed to Select — v3 component renamed to Select in v4 source

  • BREAKING: Sidebar renamed to Drawer — v3 component renamed to Drawer in v4 source

  • BREAKING: OverlayPanel renamed to Popover — v3 component renamed to Popover in v4 source

  • BREAKING: InputSwitch renamed to ToggleSwitch — v3 component renamed to ToggleSwitch in v4 source

  • BREAKING: TabView replaced by Tabs — new component structure using TabList, Tab, TabPanels, and TabPanel source

  • BREAKING: Steps replaced by Stepper — new component structure using StepList, Step, StepPanels, and StepPanel source

  • BREAKING: Accordion reimplementation — now uses AccordionPanel, AccordionHeader, and AccordionContent components source

  • BREAKING: v-model:value — v4 uses v-model:value for active state in Tabs, Accordion, and Stepper instead of v-model source

  • DEPRECATED: inputStyle — property replaced by inputVariant (values: 'filled' | 'outlined') source

  • NEW: @primevue/forms — new dedicated package for advanced form management and validation source

  • NEW: Fluid component — layout component that makes descendants span full width source

  • NEW: IconField & InputIcon — new components to wrap inputs and icons for decorative purposes source

  • NEW: useId & useAttrSelector — new core composables for unique ID generation and attribute selectors source

Also changed: DataTable showClearButton default is false (v4.3.0) · IftaLabel new component for in-field labels · Checkbox added indeterminate state · OverlayBadge new component replaces Badge directive · InlineMessage component deprecated · iconPosition removed from IconField · warning property renamed to warn · Drawer added before-hide emit (v4.3.0)

Best Practices

  • Use the Fluid component as a wrapper for bulk application of full-width styles to inputs instead of adding the fluid prop to every individual field for cleaner and more maintainable templates source
<Fluid>
    <div class="grid grid-cols-2 gap-4">
        <InputText placeholder="Full Width" />
        <DatePicker placeholder="Full Width" />
        <Select placeholder="Full Width" />
    </div>
</Fluid>
  • In Stepper vertical layouts, always wrap Step and StepPanel inside a StepItem component to ensure correct structure and connection between headers and content source

  • Use asChild and v-slot on components like Step or Tab to implement headless mode for full UI control while retaining PrimeVue's built-in accessibility logic source

<Step v-slot="{ activateCallback, value, a11yAttrs }" asChild :value="1">
    <button @click="activateCallback" v-bind="a11yAttrs.header">
        Step {{ value }}
    </button>
</Step>
  • For performant row expansion in DataTable with large datasets, use an object for expandedRows combined with dataKey instead of an array of row objects source
// Preferred (O(1) lookup)
const expandedRows = ref({ '1004': true, '1005': true });

// In template
<DataTable v-model:expandedRows="expandedRows" dataKey="id">
  • Enable automatic user preference persistence (sorting, filtering, paging) in DataTable using stateStorage and stateKey to improve UX across page visits source

  • Add a delay to VirtualScroller to throttle rendering during rapid scrolling, significantly improving UI responsiveness for extremely large lists source

<VirtualScroller :items="items" :itemSize="50" :delay="250">
    <template v-slot:item="{ item }">{{ item }}</template>
</VirtualScroller>
  • Implement semantic navigation menus by using Tabs without TabPanels and combining it with router-link for accessible, state-aware top or side bars source

  • Always wrap inputs and icons with IconField and InputIcon to ensure correct positioning and styling, supporting both leading and trailing icon placements source

<IconField>
    <InputIcon class="pi pi-search" />
    <InputText placeholder="Search" />
</IconField>
  • Use IftaLabel for modern, top-aligned in-field labels that visually integrate with the input and handle validation states automatically source

  • Leverage the built-in DataTable context menu integration to provide row-specific actions without manual event listener management or custom positioning logic source

<ContextMenu ref="cm" :model="menuModel" />
<DataTable :value="products" contextMenu @row-contextmenu="onRowContextMenu">

Source Transparency

This detail page is rendered from real SKILL.md content. Trust labels are metadata-based hints, not a safety guarantee.

Related Skills

Related by shared tags or category signals.

General

vue-skilld

No summary provided by upstream source.

Repository SourceNeeds Review
General

pinia-skilld

No summary provided by upstream source.

Repository SourceNeeds Review
General

vueuse-core-skilld

No summary provided by upstream source.

Repository SourceNeeds Review
General

vue-router-skilld

No summary provided by upstream source.

Repository SourceNeeds Review