Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/dczajkowski/vue-emoji-picker

Very simple, yet powerful, vue emoji picker 🎉🔥🚀
https://github.com/dczajkowski/vue-emoji-picker

emoji-picker emojis hacktoberfest vue vue-plugin vue2 vuejs vuejs2

Last synced: 12 days ago
JSON representation

Very simple, yet powerful, vue emoji picker 🎉🔥🚀

Awesome Lists containing this project

README

        

# Highly-customizable emoji picker for Vue 2
Downloads
Version
License

## Table of contents
- [Demo](#demo)
- [Installation](#installation)
- [With npm](#with-npm)
- [With a CDN](#with-a-cdn)
- [Import](#import)
- [With an ES6 bundler (via npm)](#with-an-es6-bundler-via-npm)
- [Use per component](#use-per-component)
- [Use globally](#use-globally)
- [Using a CDN](#using-a-cdn)
- [Usage](#usage)
- [Very simple usage, without any CSS defined](#very-simple-usage-without-any-css-defined)
- [CSS-styled example](#css-styled-example)
- [Available props](#available-props)
- [License](#license)

## Demo
The live demos are available here:
- [Simple, html-only demo](https://codepen.io/DCzajkowski/pen/JLypqP),
- [Complete, css-styled demo](https://codepen.io/DCzajkowski/pen/jzLzWp),
- [TailwindCSS-styled demo](https://codepen.io/DCzajkowski/pen/Brxvzj).

## Installation
### With npm
```bash
npm i vue-emoji-picker --save
```

### With a CDN
```html

```

## Import
### With an ES6 bundler (via npm)
```js
import { EmojiPicker } from 'vue-emoji-picker'

export default {
// ...
components: {
EmojiPicker,
},
// ...
}
```

### Using a CDN
```html

new Vue({
components: {
EmojiPicker: window.EmojiPicker,
},
})

```

## Usage
vue-emoji-picker is a slot-based component, to provide maximum flexibility.
Since every ounce of html is created by a consumer (ie. you), you can customize every piece of the component as you wish.

### Very simple usage, without any CSS defined
You will need two things. A textarea (or an input), where emojis will be injected, and a component declaration. A simple example is provided below.
```html


open








{{ category }}


{{ emoji }}




```

```js
{
data() {
return {
input: '',
search: '',
}
},
methods: {
insert(emoji) {
this.input += emoji
},
},
}
```

As you may see, you have to declare some things yourself. Namely:
- `input` - a model for your input/textarea,
- `search` - a model for the search box inside the component (optional),
- `insert(emoji)` - a method responsible to put emojis into your input/textarea. Provided `emoji` is a string representation of the emoji to be inserted.

### CSS-styled example
To see what is possible with the component, you can simply have a look at a demo available [here](https://codepen.io/DCzajkowski/pen/jzLzWp).

## Available props
- `search` _optional_ - If you are not using the search functionality, you can omit this one. It should be a model of the search passed from your `data`.
- `emojiTable` _optional_ - You can overwrite the [default](https://github.com/DCzajkowski/vue-emoji-picker/blob/master/src/emojis.ts) emoji table by providing your own.

## Slots
- `emoji-invoker`
- `events` - delares the `v-on:click` toggle of the picker box,
- `emoji-picker`
- `emojis` - object of unicode emojis,
- `insert()` - method to be invoked when an emoji is clicked,
- `display` - object containting `x`, `y` and `visible` properties.

## License
This work is an open-sourced software licensed under the [MIT license](https://opensource.org/licenses/MIT).