<p align="center">
  <img src="https://beholdr.github.io/maska/maska.svg">
</p>

<p align="center">
  Simple zero-dependency input mask for Vue 2/3 or vanilla JS.
</p>

<p align="center">
  <a href="https://www.npmjs.com/package/maska"><img src="https://img.shields.io/npm/v/maska"></a>
  <a href="https://bundlephobia.com/package/maska"><img src="https://img.shields.io/bundlephobia/minzip/maska"></a>
  <a href="https://github.com/beholdr/maska/actions/workflows/build.yml"><img src="https://github.com/beholdr/maska/actions/workflows/build.yml/badge.svg"></a>
  <img src="https://img.shields.io/endpoint?url=https://gist.githubusercontent.com/beholdr/7f2a04de5e494f9a3820832520ee2562/raw/badge.json">
</p>

<h3 align="center">
  <a href="https://beholdr.github.io/maska/"><b>Documentation & demo</b></a>
</h3>

# Maska

## Support ☕️

Do you like **Maska**? Please support me via [Boosty](https://boosty.to/beholdr).

## Features ✨

- No dependencies and small size: ~2.5 Kb gziped
- Works with any native input
- Ability to define custom tokens
- Dynamic, reversed and eager masks
- Token modifiers, transform functions and hooks

## What’s new in v2 🎉

- Fully rewritten in TypeScript
- Autobind to vue variable
- Eager and reversed masking modes
- Optonal and repeated tokens
- Simplified syntax for custom tokens
- Dynamic masks with custom function logic
- Hooks for pre/post- processing
- Ability to replace or merge custom tokens

## Source of Inspiration 💡

- [vue-the-mask](https://vuejs-tips.github.io/vue-the-mask/)
- [jQuery Mask Plugin](http://igorescobar.github.io/jQuery-Mask-Plugin/)

## License 📄

[MIT](LICENSE.txt)
