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 🙏

© 2025 – Pkg Stats / Ryan Hefner

@s3_dse/v-tabler

v1.14.3

Published

A Vue 3 component library for building data-rich web applications. Includes advanced table, form, and UI components, built with UnoCSS and designed for flexibility.

Downloads

94

Readme

V-Tabler

A Vue 3 component library for building data-rich web applications. Includes advanced table, form, and UI components, built with UnoCSS and designed for flexibility.

Installation

npm install @s3-dse/v-tabler

Add the preset to your UnoCSS config:

import { defineConfig, presetUno } from 'unocss'
import presetVTail from '@s3-dse/v-tabler/preset'

export default defineConfig({
    presets: [presetUno(), presetVTail()]
})

Add V-Tabler to your Vue app:

import { createApp } from 'vue'
import VTabler from '@s3-dse/v-tabler'
import '@s3-dse/v-tabler/style.css'
import App from './App.vue'

const app = createApp(App)
app.use(VTabler)
app.mount('#app')

Theme & Color Customization

V-Tabler uses a flexible theme system powered by UnoCSS. You can customize colors and other theme variables by passing a theme object to the preset in your UnoCSS config.

Customizing Colors

You can override or extend the default color palette by providing a colors object to the preset:

// uno.config.js
import { defineConfig, presetUno } from 'unocss'
import presetVTail from '@s3-dse/v-tabler/preset'

const myCustomColors = {
    primary: {
        DEFAULT: '#1e88e5',
        hover: '#1565c0',
        onprimary: '#fff'
    },
    secondary: {
        DEFAULT: '#ffb300',
        hover: '#ffa000',
        onsecondary: '#222'
    },
    surface: '#f5f5f5',
    background: '#fff',
    border: '#e0e0e0'
    // Add more custom colors as needed
}

export default defineConfig({
    presets: [presetUno(), presetVTail({ colors: myCustomColors })]
})

Color Keys

  • primary, secondary, surface, background, border, onprimary, onsecondary, etc.
  • Each color can have variants (e.g. hover, active, etc.)
  • You can add your own custom color keys and use them in your components and styles.

Usage in Components

All V-Tabler components use theme colors via CSS variables and UnoCSS utility classes. Your custom colors will be available throughout the library.


Components

TableComponent

Feature-rich data table with sorting, filtering, pagination, custom cell/column rendering, sticky rows, and remote pagination support.

DialogComponent

Accessible modal dialog with custom slots, pre-confirm logic, and flexible styling.

Select Components

  • SingleSelect, MultiSelect, ListSelect: Flexible select/dropdown components for single/multiple selection, custom labels, and advanced filtering.

ToggleComponent

Switch/toggle for boolean values, supports custom labels and disabled state.

DropdownComponent

Customizable dropdown menu for options or actions, with slot-based rendering.

Card, Typography, Tabs, Skeleton, LoadingOverlay, Checkbox, Pagination

Additional UI components for layout, text, navigation, loading states, and forms.


Usage Example

<script setup>
import { ref } from 'vue'
const items = ref([...])
const fields = ref([...])
</script>
<template>
    <table-component
        title="A Table"
        :items="items"
        :fields="fields"
        :paginate="true"
        :configurablePageSize="true"
        :per-page="5"
    >
        <template #cell(ip_address)="{ value }">
            <span class="text-primary">{{ value }}</span>
        </template>
    </table-component>
</template>

Documentation

See the /docs folder for full API documentation and usage guides for all components.

Internationalization

v-tabler includes built-in support for vue-i18n. Filter labels and UI text are automatically translated when vue-i18n is available in your application.

Quick Setup

  1. Install vue-i18n: npm install vue-i18n@9
  2. Get default translation keys and set up your i18n:
import { createI18n } from 'vue-i18n'
import VTabler, { getDefaultTranslationKeys } from '@s3-dse/v-tabler'

const vTablerDefaults = getDefaultTranslationKeys()

const messages = {
    en: { ...vTablerDefaults },
    de: {
        'vTabler.table.filters.textLabel': 'Enthält Text:',
        'vTabler.table.filters.numericLabel': 'Zahlenfilter:'
        // ... other German translations
    }
}

const i18n = createI18n({
    legacy: false,
    locale: 'en',
    messages
})

// Install with i18n integration
app.use(i18n)
app.use(VTabler, { i18n })
  1. Use TableComponent as usual - translations are applied automatically!

For detailed setup instructions, see the i18n setup guide.


License

MIT License

Copyright (c) 2025 Sebastian Doerl