PrimeVue UI Component Library
repository·master·Indexed 12 days ago
https://github.com/primefaces/primevueA comprehensive Vue UI component library featuring a wide range of components, composables, and a dedicated Nuxt module. Version 4.5.5 includes support for Styled and Unstyled modes, a Pass Through (PT) mechanism for DOM customization, design tokens, and an MCP server (@primevue/mcp) for AI assistants like Claude Code, Cursor, and VS Code.
What's inside PrimeVue
- PrimeVue aims for WCAG 2.1 AA level compliance. Each component includes a dedicated accessibility section in its documentation detailing its keyboard navigation support and screen reader compatibility. The accessibility features are continuously improved through feedback from experts via GitHub and Discord.
What is Unstyled Mode in PrimeVue
masterUnstyled mode is an alternative styling approach where PrimeVue excludes the default CSS variables (design tokens) and CSS rule sets. In this mode, the core functionality and accessibility of components are preserved, but no visual styling is provided. This allows developers to implement their own styling solutions (like Tailwind CSS) from scratch.
Components in unstyled mode can be styled using the Pass Through (pt) mechanism to target specific internal elements like
root,label, oricon.What is the PrimeVue MCP server?
masterThe PrimeVue Model Context Protocol (MCP) server is an implementation of an open standard that allows AI assistants (like Claude, Cursor, or VS Code) to connect directly to PrimeVue's knowledge base.
By using this server, your AI assistant gains access to:
- Component Documentation: Detailed information on props, events, slots, and methods.
- Theming & Styling: Access to Pass Through (PT) options, design tokens, and CSS class names.
- Code Examples: Real-world usage patterns and component templates.
- Accessibility: Information on accessibility features and implementation guides.
What is Volt?
masterVolt is a UI library built by PrimeTek that uses unstyled PrimeVue components combined with Tailwind CSS v4.
Unlike standard PrimeVue components distributed via
node_modules, Volt follows a code ownership model where components reside within your application's codebase. This provides complete control over theming and presentation through Tailwind CSS v4 and PrimeVue's templating features.Accessibility and Keyboard Support for Select
masterThe
Selectcomponent is designed with accessibility in mind, utilizing roles likecomboboxandlistbox.Accessibility Props
aria-labelledby: Links the component to a label element.aria-label: Provides a direct string description for screen readers.filterInputProps: Allows passingaria-*props to the internal filter input element when filtering is enabled.
Keyboard Navigation
State Key Action Closed space,enter,down arrowOpens the popup and focuses the selected (or first) option any printable characterOpens popup and moves focus to option starting with that character Popup enter,spaceSelects focused option, closes popup, returns focus to Select escapeCloses popup, returns focus to Select down arrow/up arrowNavigates through options home/endMoves cursor to start/end (if editable) or first/last option Filter Input enter,escapeCloses popup and returns focus to Select tabMoves focus to the next focusable element in the popup or the page Guidelines for core structural changes
masterPrimeVue includes add-ons like UI Kit, Premium Templates, and Blocks that depend on design tokens and styling.
Important: Any core structural changes—such as adding new props, adding new events, or updating design tokens—must be communicated with the core team to ensure consistency and compatibility across the ecosystem.
Slider Accessibility and Keyboard Support
masterThe Slider component is designed for accessibility. It uses the
sliderrole on the handle and includes attributes likearia-orientation,aria-valuemin,aria-valuemax, andaria-valuenow.Labeling: Use
aria-labelledbyto link to an existing label ID, oraria-labelto provide a direct string label.Keyboard Support:
Tab: Moves focus to the slider.Left Arrow/Up Arrow: Decrements the value.Right Arrow/Down Arrow: Increments the value.Home: Sets the value to the minimum.End: Sets the value to the maximum.Page Up: Increments the value by 10 steps.Page Down: Decrements the value by 10 steps.
<span id="label_number">Number</span> <Slider aria-labelledby="label_number" /> <Slider aria-label="Number" />TreeTable Accessibility and Keyboard Support
masterThe
TreeTableuses atreegridelement for screen readers. You can extend its accessibility by passingaria-label,aria-describedby, or other roles via thetablePropsoption.Keyboard Navigation
Key Function tabMoves through headers. If focus enters the component, moves to the first selected node (or first element if none selected). shift + tabMoves focus to the last selected node or previous element. enter/spaceSorts the column or selects the focused treenode. down arrowMoves focus to the next treenode. up arrowMoves focus to the previous treenode. right arrowIf node is closed, opens it; otherwise moves focus to the first child node. left arrowIf node is open, closes it; otherwise moves focus to the parent node. homeMoves focus to the first same-level node. endMoves focus to the last same-level node. Accessibility of ScrollPanel
masterThe
ScrollPanelcomponent includes built-in accessibility features:- Screen Readers: The scrollbar includes a
scrollbarrole, anaria-controlsattribute (referring to the ID of the scrollable content container), andaria-orientationto indicate scrolling direction. - Keyboard Support:
Tab: Moves focus through the bar.Down Arrow: Scrolls content down (when vertical scrolling is available).Up Arrow: Scrolls content up (when vertical scrolling is available).Left Arrow: Scrolls content left (when horizontal scrolling is available).Right Arrow: Scrolls content right (when horizontal scrolling is available).
- Screen Readers: The scrollbar includes a
Remove primeflex dependency from DataView
masterNote: Change in v3.41.0
The
DataViewcomponent no longer requiresprimeflexas a dependency. If your layout relied onDataViewimplicitly providing PrimeFlex classes, you may need to manage those styles manually.Use IftaLabel with InputText
masterThe
IftaLabelcomponent is used to create infield, top-aligned labels. This is typically used in conjunction with thevariant="filled"prop on theInputTextcomponent.<IftaLabel> <InputText id="username" v-model="value" variant="filled" /> <label for="username">Username</label> </IftaLabel>Accessibility considerations for AnimateOnScroll
masterThe
AnimateOnScrolldirective is designed with accessibility in mind:- Screen Readers: It does not require any specific ARIA roles or attributes.
- Keyboard Support: The directive does not include any interactive elements, so it does not interfere with standard keyboard navigation.