praxis-vue-ui

A generic Vue 3 UI component library — forms, data-display, layout, navigation, overlays and more.
Install
npm install praxis-vue-ui
Latest Version:0.2.0
Vue:3
License:MIT
Last Updated:Sep 15, 2026
Links: npm
Maintainer: luisibarra23

praxis-vue-ui

npm version npm downloads bundle size license vue version typescript

A modern, enterprise-ready Vue 3 UI component suite built with Tailwind CSS and TanStack Table.
Designed for data-intensive dashboards, mission-critical admin panels, and fluid design systems.

Explore Monorepo »   •   Report Bug   •   Request Feature


✨ Key Features

  • ⚡ 55+ Production Components: Forms, tables, overlays, layout, trees, and navigation primitives.
  • 📋 Schema-Driven Forms (PxSchemaForm): Render full dynamic forms with validation using Zod and VeeValidate.
  • 📊 Enterprise Data Table (PxDataTable): Built on TanStack Table v9 with sorting, filtering, selection, skeletons, and empty states.
  • 🎨 Adaptive Design System: Full Light/Dark mode support using CSS variables and Tailwind CSS.
  • 🧩 First-class TypeScript Support: Full typing with auto-completion and prop validation.
  • 🚀 Framework Ready: Works seamlessly in Vite, Nuxt 3, and modern build tools.

📦 Installation

# npm
npm install praxis-vue-ui vee-validate

# pnpm
pnpm add praxis-vue-ui vee-validate

# yarn
yarn add praxis-vue-ui vee-validate

# bun
bun add praxis-vue-ui vee-validate

🚀 Quick Start

1. Setup in Vite / Vue 3

// main.ts
import { createApp } from 'vue'
import 'praxis-vue-ui/dist/praxis-vue.css' // Component styles
import App from './App.vue'

createApp(App).mount('#app')

2. Setup in Nuxt 3

// nuxt.config.ts
export default defineNuxtConfig({
  css: [
    'praxis-vue-ui/dist/praxis-vue.css'
  ],
  build: {
    transpile: ['praxis-vue-ui']
  }
})

💡 Usage Example

<script setup lang="ts">
import { ref } from 'vue'
import { PxDataTable, PxAvatar, PxBadge } from 'praxis-vue-ui'

const columns = [
  { key: 'name', label: 'User' },
  { key: 'role', label: 'Role' },
  { key: 'status', label: 'Status' }
]

const users = ref([
  { id: 1, name: 'Alex Morgan', role: 'Engineering Lead', status: 'Active' },
  { id: 2, name: 'Sofia Chen', role: 'Product Designer', status: 'In Review' }
])
</script>

<template>
  <div class="p-6">
    <PxDataTable :columns="columns" :data="users">
      <template #cell-name="{ row }">
        <div class="flex items-center gap-3">
          <PxAvatar :name="row.name" size="sm" />
          <span class="font-medium text-slate-800 dark:text-slate-100">{{ row.name }}</span>
        </div>
      </template>

      <template #cell-status="{ row }">
        <PxBadge :variant="row.status === 'Active' ? 'success' : 'warning'">
          {{ row.status }}
        </PxBadge>
      </template>
    </PxDataTable>
  </div>
</template>

🎨 Tailwind CSS Integration

To inherit the exact design tokens and theme variables, add our preset to your tailwind.config.js:

// tailwind.config.js
module.exports = {
  content: [
    './index.html',
    './src/**/*.{vue,js,ts,jsx,tsx}',
    './node_modules/praxis-vue-ui/dist/**/*.{js,vue}'
  ],
  presets: [
    require('praxis-vue-ui/tailwind.preset.js')
  ],
  theme: {
    extend: {}
  }
}

CSS Variables Customization

Override core theme colors effortlessly:

:root {
  --ui-primary: #6366f1;       /* Brand Primary */
  --ui-primary-hover: #4f46e5; /* Primary Hover */
  --ui-bg: #fafafa;            /* App Background */
}

.dark {
  --ui-primary: #818cf8;
  --ui-bg: #090d16;
}

🧩 Component Suite Overview

Category Highlights
Forms PxSchemaForm, PxFormWizard, PxAsyncSelect, PxVisualSelect, PxCategorizedSelect, PxGridSelect, PxDayPicker, PxTimePicker, PxPhoneInput, PxColorInput, PxDialogInput, PxFormRow
Data Display PxDataTable, PxTree, PxDocumentViewer, PxAvatar, PxInitialsAvatar, PxInfoField, PxEmptyState, PxTableSkeleton
Layout PxHeader, PxCard, PxListLayout, PxFilterBar, PxFormLayout
Navigation PxTabs, PxStepper, PxStepperHeader, PxDropdownMenu, PxNavList
Overlays & Primitives PxCommandPalette, PxDialog, PxDrawer, PxToast, PxAccordion, PxBadge, PxCheckbox, PxRadioButton, PxTimeline, PxLoader, PxThemeSwitch

📄 License

MIT © Luis Kern

Related Packages

seeroad-ui

seeroad project ui library

3,733
ui
smart-ui

High Quality Mobile UI Componets by Vue.js 2.

1,883 11
ui
hea-ui

hea-ui is a h5 ui component for vue

1,520 14
ui
canna-ui-vue

shims-vue.d.ts declare module 'canna-ui-vue'

674
ui

Version History

Version Released Vue License
0.2.0 ^3.5.41 MIT
0.1.5 ^3.5.41 MIT
0.1.4 ^3.5.41 MIT
0.1.3 ^3.5.41 MIT
0.1.2 ^3.5.41 MIT