vuetensils

A 'naked' component library for building accessible, lightweight, on-brand applications.
26,232 650
Install
npm install vuetensils@1.0.1
Latest Version:1.0.1
Vue:2
Older releases:3
License:MIT
Last Updated:Dec 29, 2025
Links: GitHub  ·  npm
Maintainer: stegosource

Introduction

A "naked" component library for Vue.js focused on being:

  • Accessible
  • Semantic
  • Light weight
  • Extensible

Links:

Naked Components

Vuetensil's components are designed to be starting points for some of the most common UI features. They bring all the functionality you would expect from a UI library, but only the bare minimum styles to avoid adding any extra bloat. You can work on the branding, and you don't have to worry about the accessibility.

Import just the features you need (like a WCAG-friendly dialog that traps focus and prevents scrolling), and apply your custom design. No overhead from unused styles and no wrestling with overly-specific styles.

Getting Started

1. Install the library

npm install vuetensils

2. Register just the things you need

Globally:

// main.js
import { VAlert } from 'vuetensils/src/components';
import { autofocus } from 'vuetensils/src/directives';

// With your previously created app
app.component('VAlert', VAlert);
app.directive('autofocus', autofocus);

Locally:

<script>
// SomeComponent.vue
import { VAlert } from 'vuetensils/src/components';
import { autofocus } from 'vuetensils/src/directives';

export default {
  components: {
    VAlert,
  },
  directives: {
    autofocus,
  },
  // ...
};
</script>
3. Use the components in your template
<template>
  <div class="some-component">
    <VAlert>Hey, I'm an alert!</VAlert>
  </div>
</template>
4. Bring your own styles
/* Some CSS file */
.vts-alert {
  border: 1px solid currentColor;
  border-radius: 4px;
  padding: 0 10px;
  color: #900;
  background: #FDD;
}

Inspiration

I've built a lot of projects in the past and found myself copy/pasting several of the same components over and over, and stripping out styles that I didn't need. Eventually I realized that I could just create components with the base functionality and accessible markup, but no styles at all. That way, I wouldn't have to wrestle with existing styles, or worry about bloating my app with overwritten styles.

Related Packages

vue-toggles

A highly customizable and accessible toggle component for Vue 3

134,722 54
va-ui-components

A comprehensive Vue 3 UI components library with modern design and accessibility...

9,434
@dnewkerk/bootstrap-vue-next

BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 bas...

3,487 1,295
bootstrap-vue

With more than 85 components, over 45 available plugins, several directives, and...

9,813,881 14,408
bootstrap-vue3-compat

With more than 85 components, over 45 available plugins, several directives, and...

6,147 14,409

Version History

Version Released License
1.0.1 MIT
1.0.0 MIT
0.13.3 MIT
0.13.2 MIT
0.13.1 MIT
Pre-releases (8)
Version Released License
1.1.1-beta MIT
1.1.0-beta MIT
1.0.4-beta MIT
1.0.3-beta MIT
1.0.2-beta MIT