A "naked" component library for Vue.js focused on being:
- Accessible
- Semantic
- Light weight
- Extensible
Links:
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!
npm install vuetensils
Globally:
// main.js
import Vue from 'vue';
import { VAlert } from 'vuetensils/src/components';
Vue.component('VAlert', VAlert);
Locally:
<script>
// SomeComponent.vue
import { VAlert } from 'vuetensils/src/components';
export default {
components: {
VAlert,
},
// ...
};
</script>
<template>
<div class="some-component">
<VAlert>Hey, I'm an alert!</VAlert>
</div>
</template>
/* Some CSS file */
.vts-alert {
border: 1px solid currentColor;
border-radius: 4px;
padding: 0 10px;
color: #900;
background: #FDD;
}
- https://www.round.com.au
- https://perxapp.com
- https://revealbio.com
- https://app.matryx.ai/tournaments
- https://www.lindsaykwardell.com
If I want my projects to follow best practices for semantic markup and accessibility, what are my options:
- โ My styles would be exactly how I want them.
- โ My bundle size will be very small because I'll only use what I need.
- โ It's going to take a lot of time.
- โ I'll have to create every component from scratch.
- โ I probably won't follow all the best practices right.
- โ It will save me a LOT of time.
- โ I will have many component options to choose from.
- โ I'll still have to confirm they follow best practices.
- โ I will either have to use their styles, or end up overwriting them.
- โ There may be a lot of unused code that could bloat the bundle size.
- โ The only styles added are the ones I write.
- โ I only include the components I'm actually going to use.
- โ My components will be accessible and semantic.
- โ The bundle size will stay as small as possible.