Skip to content

Installation ​

Prerequisites ​

  • Vue 3.0 or higher
  • Node.js 14.0 or higher
  • npm, yarn, or pnpm

Installation Methods ​

npm ​

bash
npm install smart-tagz

yarn ​

bash
yarn add smart-tagz

pnpm ​

bash
pnpm add smart-tagz

Peer Dependencies ​

Smart-Tagz requires the following peer dependency to be installed in your project:

bash
npm install vue-feather-icons
# or
yarn add vue-feather-icons
# or
pnpm add vue-feather-icons

This dependency is used for icon components in the tag interface. Most projects will have this already installed, but if you get warnings about missing peer dependencies, install it using the command above.

Setup in Your Project ​

Step 1: Import Component ​

vue
<script setup>
import SmartTagz from 'smart-tagz'
import 'smart-tagz/dist/smart-tagz.css'
</script>

<template>
  <SmartTagz />
</template>

Step 2: Global Registration (Optional) ​

If you want to use Smart-Tagz in multiple files without importing it every time:

js
// main.js
import { createApp } from 'vue'
import SmartTagz from 'smart-tagz'
import 'smart-tagz/dist/smart-tagz.css'
import App from './App.vue'

const app = createApp(App)
app.component('SmartTagz', SmartTagz)
app.mount('#app')

Then use it anywhere:

vue
<template>
  <SmartTagz input-placeholder="Enter tags..." />
</template>

Bundle Size ​

Smart-Tagz is designed to be lightweight:

  • CSS: ~2.5 kB (gzipped)
  • JS (ESM): ~15 kB (gzipped)
  • JS (UMD): ~12 kB (gzipped)

Supported Module Formats ​

Smart-Tagz is published in multiple formats to support different build tools:

  • ESM: dist/smart-tagz.esm.js (for modern bundlers)
  • UMD: dist/smart-tagz.umd.js (for browser scripts)
  • CSS: dist/smart-tagz.css

CSS Framework Integration ​

With Tailwind CSS ​

Smart-Tagz works great with Tailwind CSS. You can customize it using CSS custom properties:

css
:root {
  --color-primary: rgb(99 102 241); /* Indigo */
  --color-accent: rgb(245 158 11);  /* Amber */
}

With Bootstrap ​

Simply import both Bootstrap and Smart-Tagz CSS:

vue
<script setup>
import 'bootstrap/dist/css/bootstrap.css'
import SmartTagz from 'smart-tagz'
import 'smart-tagz/dist/smart-tagz.css'
</script>

TypeScript Support ​

Smart-Tagz is fully typed with TypeScript. Type definitions are included automatically.

typescript
interface SmartTagzProps {
  sources?: string[]
  autosuggest?: boolean
  allowPaste?: { delimiter: string }
  allowDuplicates?: boolean
  maxTags?: number
  defaultTags?: string[]
  editable?: boolean
  readOnly?: boolean
  inputPlaceholder?: string
  quickDelete?: boolean
  width?: string
  theme?: {
    primary: string
    background?: string
    secondary?: string
    tagTextColor: string
  }
  onChanged?: (tags: string[]) => void
}

Browser Support ​

Smart-Tagz supports all modern browsers that support Vue 3:

  • Chrome (latest)
  • Firefox (latest)
  • Safari (latest)
  • Edge (latest)

Troubleshooting ​

Component Not Rendering ​

Make sure you've imported both the component and the CSS:

vue
import SmartTagz from 'smart-tagz'
import 'smart-tagz/dist/smart-tagz.css'

CSS Not Applied ​

Check that the CSS file is imported in the correct order:

vue
<script setup>
import SmartTagz from 'smart-tagz'
import 'smart-tagz/dist/smart-tagz.css'
// Import custom styles after Smart-Tagz CSS
import './custom-styles.css'
</script>

TypeScript Errors ​

If you're using TypeScript and getting errors, make sure you have Vue 3 types installed:

bash
npm install --save-dev @types/vue

Next Steps ​

Released under the MIT License.