npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

vectis-ui

v0.8.1

Published

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

Downloads

604

Readme

Introduction

Vectis UI is a set of Vue 3 components written in TypeScript. The whole look is driven by CSS custom properties (--vectis-*), so you can retheme the library, or a single part of a page, without rebuilding anything. Styles live in cascade layers, which means your own CSS wins without fighting over specificity.

A few things you get out of the box:

  • No runtime dependency other than Vue itself.
  • Pay for what you import. Each component ships as its own module with its own stylesheet.
  • SSR-safe, so it works with Nuxt 3 and 4 without a module or a plugin.
  • Accessible by default. Keyboard support and ARIA semantics on every component, with axe checks run in CI against both the light and the dark theme.
  • Light and dark themes, switchable on any DOM subtree with a data-theme attribute.
  • English and French built in, and any other language can be added from your app.
  • No icon font required. The icons the library draws are embedded SVGs, and you can plug in your own icon set.

Quick start

Install the package:

npm install vectis-ui
# or
pnpm add vectis-ui
# or
yarn add vectis-ui

Import the global stylesheet once, in your app's entry point:

// main.ts
import 'vectis-ui/styles.css'

Then import the components you need:

<script setup lang="ts">
import { ref } from 'vue'
import { VButton, VInput } from 'vectis-ui'

const email = ref('')
</script>

<template>
  <VInput v-model="email" type="email" label="Email" />
  <VButton>Subscribe</VButton>
</template>

Using Nuxt? Declare the stylesheet in nuxt.config.ts instead, so it's injected during server rendering:

// nuxt.config.ts
export default defineNuxtConfig({
  css: ['vectis-ui/styles.css'],
})

The installation guide covers both setups in more detail.

Documentation

Everything lives on vectis-ui.com, a page per component with live examples and API tables, plus guides on theming, iconography, internationalization and accessibility.

Browser support

Vectis UI targets recent browsers only:

| Chrome / Edge | Safari | Firefox | | ------------- | ------ | ------- | | 125+ | 26+ | 147+ |

CSS anchor positioning is used without a JavaScript fallback, which is what sets this floor. Some effects, like entry animations, are progressive enhancements and simply don't play on engines that lack them.

If your bundler targets older browsers, it may rewrite part of the library's CSS during minification. Set build.cssTarget to the versions above in your Vite (or Nuxt) config to keep it intact:

// vite.config.ts
export default defineConfig({
  build: { cssTarget: ['chrome125', 'edge125', 'safari26', 'firefox147'] },
})

Versioning

Vectis UI follows Semantic Versioning. While the version is still 0.x, a minor release can include breaking changes, so read the changelog before upgrading.

Contributing

Bug reports and feature requests are welcome in the issue tracker. To work on the library itself, see the repository.

License

Vectis UI is released under the MIT license.

The built-in icons are drawn from Material Symbols by Google, used under the Apache License 2.0. See NOTICE for details.