pxd

A universal Vue 2.7 & 3.2 component library built from one codebase. Built-in light/dark theme. PC & mobile ready. Animation-free mode supported.
5,104 18
Install
npm install pxd
Latest Version:0.1.4
Vue:2 · 3
License:MIT
Last Updated:Oct 24, 2026
Links: GitHub  ·  npm
Maintainer: banlify

PXD

A universal UI component library: one codebase for Vue 2.7+ & Vue 3.2+. Built-in light/dark theme, PC & mobile ready, animation-free mode supported.

简体中文 | Online Preview

[!WARNING] The project is under active development and is not ready for production.

Requirements

Vue version Extra setup
2.7.x unplugin-vue-define-options@1.5.5+
3.2.x unplugin-vue-define-options@3.1.2+
>=3.3 None

Components declare their options through defineOptions(), a macro that only landed in Vue 3.3, so Vue 2.7 and Vue 3.2 need the transform plugin. See Installation for the setup.

Features

  • Universal: One codebase for Vue 2.7+ and Vue 3.2+, no vue-demi and no duplicated source
  • Theming: Light & dark themes as plain CSS variables, switching is a single class toggle
  • Motion-safe: Turn off every animation with --duration: 0, or follow prefers-reduced-motion
  • Responsive: Popovers become bottom sheets on small screens, with a built-in swipe gesture engine
  • AI-ready: Bubble, Reasoning, ToolCall, Mention, CommandMenu and StickToBottom for chat UIs
  • Lean: Only 7 runtime dependencies, ESM-only, full tree-shaking
  • Accessible: Focus trap with nested-dialog coordination, keyboard navigation and ARIA roles
  • TypeScript: Full type definitions, resolver for auto imports and Volar global component types
  • Inspired by the Geist Design System

Contribution

Dev

pnpm install

pnpm dev

Build

Core only
pnpm build:lib
Docs only
pnpm build:docs
Deploy
pnpm build

Contribution Guidelines

Component Naming Rules

  • Components that can be used independently do not need to add -group/-item suffix, such as: Checkbox, Avatar, Toggle, ToggleButton
  • Components that are used to manage a group of sub-components need to add -group suffix, such as: CheckboxGroup, RadioGroup, ToggleGroup, ToggleButtonGroup
  • Components that can only be used as a sub-component of another component need to add -item suffix, such as: ListItem, GridItem, MessageItem

Reference

Related Packages

@prosync_solutions/ui

Prosync Design System - Vue 3 component library with design tokens

5,312
@jeesson/vibe-ui

Vibe UI — a Vue 3 component library for vibe coders: 50+ components, dark/light...

567 0
@bobbykim/manguito-theme

main theme file for manguito components library. Other MCL components will need...

3,458 3
@lh-ui/vue2

lh-ui Vue 2.7 UI 组件库(企业级国风水墨设计),基于 @lh-ui/share 框架无关共享层

0

Version History

Version Released Vue License
0.1.4 >=2.7.0 <3.0.0 || >=3.2.0 MIT
0.1.3 >=2.7.0 <3.0.0 || >=3.2.0 MIT
0.1.2 >=2.7.0 <3.0.0 || >=3.2.0 MIT
0.0.64 >=2.7.0 || >=3.2.0 MIT
0.0.63 >=2.7.0 || >=3.2.0 MIT