nuxt-maska

Nuxt module for Maska input masking library
6,552 1
Install
npm install nuxt-maska
Latest Version:0.0.0
Vue:3
License:MIT
Last Updated:Oct 30, 2025
Links: GitHub  ·  npm
Maintainer: brokuka

Nuxt Maska Module

Nuxt module for Maska input masking library. Just install and use!

✨ Features

  • 🔥 Auto-imports - composables and directives ready to use
  • 📝 Full TypeScript support - complete type safety
  • ⚡️ Nuxt 3+ ready - built for Nuxt 3+

📦 Installation

npm install nuxt-maska
# or
yarn add nuxt-maska
# or
pnpm add nuxt-maska

That's it! No need to install maska separately.

🚀 Usage

1. Add module to nuxt.config.ts

export default defineNuxtConfig({
  modules: ['nuxt-maska'],

  // Optional configuration
  maska: {
    autoImports: true, // default: true
    directive: true // default: true
  }
})

2. Use directive in your components

<script setup lang="ts">
import type { MaskaDetail } from 'nuxt-maska'

function handleMaska(detail: MaskaDetail) {
  console.log('Masked:', detail.masked)
  console.log('Unmasked:', detail.unmasked)
  console.log('Completed:', detail.completed)
}
</script>

<template>
  <!-- Phone mask -->
  <input v-maska="'+7 (###) ###-##-##'">

  <!-- Credit card -->
  <input v-maska="'#### #### #### ####'">

  <!-- Date -->
  <input v-maska="'##/##/####'">

  <!-- With options -->
  <input
    v-maska="{
      mask: '+7 (###) ###-##-##',
      eager: true,
      onMaska: handleMaska,
    }"
  >
</template>

3. Use composable

<script setup lang="ts">
const { inputRef, masked, unmasked, completed } = useMaska({
  mask: '+7 (###) ###-##-##',
  eager: true,
  onMaska: (detail) => {
    console.log('Phone entered:', detail.unmasked)
  }
})
</script>

<template>
  <div>
    <input ref="inputRef" type="tel">
    <p>Formatted: {{ masked }}</p>
    <p>Raw value: {{ unmasked }}</p>
    <p>Is complete: {{ completed }}</p>
  </div>
</template>

⚙️ Options

Module Options

interface ModuleOptions {
  autoImports?: boolean // Auto-import composables (default: true)
  directive?: boolean // Register v-maska globally (default: true)
}

Composable Options

interface UseMaskaOptions {
  mask?: string | string[] // Mask pattern(s)
  tokens?: Record<string, { pattern: RegExp, optional?: boolean }> // Custom tokens
  eager?: boolean // Update on input (default: false)
  reversed?: boolean // Apply mask from right to left
  onMaska?: (detail: MaskaDetail) => void // Callback on change
}

MaskaDetail Type

interface MaskaDetail {
  masked: string // Formatted value
  unmasked: string // Raw value without mask
  completed: boolean // Whether mask is fully filled
}

📝 License

MIT

Related Packages

@unocss/nuxt

Nuxt module for UnoCSS

3,181,743 18,982
@vueuse/nuxt

VueUse Nuxt Module

16,311,630 22,398
nuxt-yup

yup implementation for nuxt

2,981 4
nuxt-componentsbook-module

This module provides a Storybook-like experience for Nuxt components

1,901 4
nuxt-ununura

Atomic CSS Engine for Nuxt3

1,840 44

Version History

Version Released License
0.0.0 MIT