@vitral/vue

Vitral for Vue 3: components, composables, directives and the plugin that themes them.
3,195 3
Install
npm install @vitral/vue
Latest Version:0.2.16
Vue:3
License:LGPL-3.0-or-later
Last Updated:Oct 3, 2026
Links: GitHub  ·  npm
Maintainer: stoshe

@vitral/vue

Vitral for Vue 3: the components, the composables, the directives and the plugin that themes them.

Vitral is a component library built around a token engine, so the whole look comes from one object you can swap. Design tokens, presets, light and dark, per instance overrides, pass-through attributes and a fully unstyled mode.

Every box that scrolls inside a component (a ScrollPanel, a Sidebar's menu, a Select's list, a Dialog's body, a DataGrid) wears the theme's drawn scrollbars over native scrolling. The plugin's scrollbar option — 'hover' (the default), 'always' or 'native' — sets them for all, each component's scrollbar prop for itself, and v-scrollbar puts them on a box of your own. scrollbarArrows: true gives every bar arrows at its ends, as a native bar has.

Documentation and live examples

pnpm add @vitral/vue
import { createApp } from 'vue';
import { Vitral, Prism } from '@vitral/vue';
import App from './App.vue';

createApp(App).use(Vitral, { theme: { preset: Prism, colorScheme: 'system' } }).mount('#app');
<script setup lang="ts">
import { Button, InputText } from '@vitral/vue';
import { ref } from 'vue';

const name = ref('');
</script>

<template>
    <InputText v-model="name" clearable />
    <Button label="Save" icon="check" />
</template>

There is no stylesheet to import. The plugin injects the theme as CSS variables, and each component injects its own CSS the first time it renders.

Vue 3.5 or newer is the only peer dependency. On Nuxt, use @vitral/nuxt instead of calling the plugin by hand.

LGPL-3.0-or-later. Part of the Vitral monorepo.

Related Packages

@bythid/jin

Jin (锦) — a token-driven Vue 3 control library. Style axes: data-jin-style + da...

917 0
@dillingerstaffing/strand-vue

Strand UI - Vue 3 component library built on the Strand Design Language

15,710 0
vectis-ui

Vue 3 design system — HTML/CSS first, CSS tokens, Nuxt 3 (SSR) compatible

2,185 0
@apform-ui/core

Apform UI:Element Plus 底座包装在本库栈下;el-* 算可用能力,视觉以本库 Design T...

8,379 0
@treeui/vue

Vue 3 component package for TreeUI.

7,405 0

Version History

Version Released License
0.2.16 LGPL-3.0-or-later
0.2.15 LGPL-3.0-or-later
0.2.14 LGPL-3.0-or-later
0.2.13 LGPL-3.0-or-later
0.2.12 LGPL-3.0-or-later