All Projects → DCzajkowski → Vue Emoji Picker

DCzajkowski / Vue Emoji Picker

Licence: mit
Very simple, yet powerful, vue emoji picker 🎉🔥🚀

Programming Languages

javascript
184084 projects - #8 most used programming language

Projects that are alternatives of or similar to Vue Emoji Picker

Vue Touch Ripple
👆 Touch ripple component for @vuejs
Stars: ✭ 443 (+103.21%)
Mutual labels:  vuejs2, vue2, vue-plugin
Vue Awesome Swiper
🏆 Swiper component for @vuejs
Stars: ✭ 12,072 (+5437.61%)
Mutual labels:  vuejs2, vue2, vue-plugin
Vue Quill Editor
🍡@quilljs editor component for @vuejs
Stars: ✭ 6,874 (+3053.21%)
Mutual labels:  vuejs2, vue2, vue-plugin
Vue Codemirror
⌨️ @codemirror component for @vuejs
Stars: ✭ 2,115 (+870.18%)
Mutual labels:  vuejs2, vue2, vue-plugin
Vue Toastr
Vuejs Toast : Plugin and Component Capability.
Stars: ✭ 93 (-57.34%)
Mutual labels:  vuejs2, vue2, vue-plugin
Vuex Namespaced Module Structure
📈 A Vue.js project powered by Vuex namespaced modules in a simple structure based on Large-scale Vuex application structures
Stars: ✭ 146 (-33.03%)
Mutual labels:  vuejs2, vue2
Gpk admin
✨ GeekPark Content Management System
Stars: ✭ 150 (-31.19%)
Mutual labels:  vuejs2, vue2
Vuetify Todo Pwa
✔️ A simple Todo PWA built with Vue CLI 3 + Vuex + Vuetify.
Stars: ✭ 160 (-26.61%)
Mutual labels:  vuejs2, vue2
Vue Barcode
Barcode generator for Vue.js
Stars: ✭ 164 (-24.77%)
Mutual labels:  vuejs2, vue2
Vuetify Swipeout
👆 A swipe out example built with Vue CLI 3 + Vuetify + Swiper.
Stars: ✭ 117 (-46.33%)
Mutual labels:  vuejs2, vue2
Vue Chimera
VueJS reactive RESTful API
Stars: ✭ 160 (-26.61%)
Mutual labels:  vuejs2, vue-plugin
V Bar
The virtual responsive crossbrowser scrollbar component for VueJS 2x
Stars: ✭ 216 (-0.92%)
Mutual labels:  vuejs2, vue2
Vue Wechat
🔥 基于Vue2.0高仿微信App的单页应用
Stars: ✭ 1,832 (+740.37%)
Mutual labels:  vuejs2, vue2
Vue2 Demo
Vue 基于 Genesis + TS + Vuex 实现的 SSR demo
Stars: ✭ 2,072 (+850.46%)
Mutual labels:  vuejs2, vue2
Semantic Ui Vue2
Semantic UI Integration for Vue 2
Stars: ✭ 128 (-41.28%)
Mutual labels:  vuejs2, vue2
Github Ranking
🔍GitHub不同语言热门项目排行,Vue.js做页面展示
Stars: ✭ 160 (-26.61%)
Mutual labels:  vuejs2, vue2
Vue Atlas
A Vue.js 2 UI component library.
Stars: ✭ 173 (-20.64%)
Mutual labels:  vuejs2, vue2
Vue Dragscroll
A vue directive to make a scrollable element scroll by draging to the scroll direction
Stars: ✭ 175 (-19.72%)
Mutual labels:  vuejs2, vue-plugin
Easy Dnd
A drag and drop implementation for Vue.js 2 https://codesandbox.io/s/easy-dnd-demo-9mbij https://codesandbox.io/s/easy-dnd-demo-2-xnqbz
Stars: ✭ 202 (-7.34%)
Mutual labels:  vuejs2, vue2
Vue Ellipse Progress
A Vue.js component to create beautiful animated circular progress bars
Stars: ✭ 101 (-53.67%)
Mutual labels:  vuejs2, vue-plugin

Highly-customizable emoji picker for Vue 2

Downloads Version License

Table of contents

Demo

The live demos are available here:

Installation

With npm

npm i vue-emoji-picker --save

With a CDN

<script src="https://unpkg.com/vue-emoji-picker/dist/vue-emoji-picker.js"></script>

Import

With an ES6 bundler (via npm)

Use per component

import EmojiPicker from 'vue-emoji-picker'

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

Use globally

import { EmojiPickerPlugin } from 'vue-emoji-picker'
Vue.use(EmojiPickerPlugin)

Using a CDN

<script>
  Vue.use(EmojiPicker)

  new Vue({
    // ...
  })
</script>

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.

<textarea v-model="input"></textarea>

<emoji-picker @emoji="insert" :search="search">
  <div slot="emoji-invoker" slot-scope="{ events: { click: clickEvent } }" @click.stop="clickEvent">
    <button type="button">open</button>
  </div>
  <div slot="emoji-picker" slot-scope="{ emojis, insert, display }">
    <div>
      <div>
        <input type="text" v-model="search">
      </div>
      <div>
        <div v-for="(emojiGroup, category) in emojis" :key="category">
          <h5>{{ category }}</h5>
          <div>
            <span
              v-for="(emoji, emojiName) in emojiGroup"
              :key="emojiName"
              @click="insert(emoji)"
              :title="emojiName"
            >{{ emoji }}</span>
          </div>
        </div>
      </div>
    </div>
  </div>
</emoji-picker>
{
  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.

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 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.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].
OSZAR »