v1.0.0

πŸ˜€ OnigiriJS Emoji Picker

A lightweight, customizable emoji picker with 400+ emojis, search functionality, and persistent recent emojis. Perfect for adding expressive communication to your apps!

πŸ“ Interactive Demo

Try the Emoji Picker

Click the emoji button to open the picker and add emojis to your text!

Input Field Example

Parse Emoji Codes

Type emoji codes like :smile:, :heart:, :onigiri:, :fire:

✨ Features

😊

11 Categories

Smileys, Gestures, People, Animals, Food, Activities, Travel, Objects, Symbols, Flags

πŸ•

Recent Emojis

Automatically tracks recently used emojis with persistent localStorage.

πŸ”

Search

Quickly find the perfect emoji with real-time search functionality.

πŸŒ“

Theme Support

Seamlessly integrates with light and dark theme modes.

πŸ“±

Mobile Friendly

Fully responsive design that works great on all devices.

⌨️

Shortcodes

Parse emoji codes like :smile:, :heart:, :onigiri: in your text.

🎲

Random Emoji

Get random emojis from any category for fun interactions.

⚑

Lightweight

No dependencies except OnigiriJS core. Fast and efficient.

πŸ“š Usage Examples

Basic Setup

// Initialize emoji module
Onigiri.emojis.init({
    showRecents: true,
    showSearch: true,
    position: 'bottom-right'
});

// Attach emoji picker to a button
document.getElementById('emoji-btn').addEventListener('click', function() {
    Onigiri.emojis.show(document.getElementById('my-textarea'));
});

Using OnigiriJS Selectors

// Automatically attach picker to all elements with class
Onigiri('.emoji-trigger').emojiPicker({
    position: 'bottom-left',
    theme: 'dark'
});

Parse Emoji Codes

// Convert shortcodes to emojis
const text = 'Hello :smile: World! :heart:';
const parsed = Onigiri.emojis.parse(text);
// Result: "Hello 😊 World! ❀️"

// Parse emojis in DOM elements
Onigiri('.comment-text').parseEmojis();

Random Emojis

// Get random emoji from category
const foodEmoji = Onigiri.emojis.random('food');
const smiley = Onigiri.emojis.random('smileys');

// Available categories:
// smileys, gestures, people, animals, food, 
// activities, travel, objects, symbols, flags

🎯 Configuration Options

Option Type Default Description
showRecents Boolean true Show recently used emojis category
showSearch Boolean true Show search input in picker
position String 'bottom-right' Picker position: 'top-left', 'top-right', 'bottom-left', 'bottom-right'
theme String 'light' Theme: 'light' or 'dark'
maxRecents Number 30 Maximum number of recent emojis to store

πŸ”§ Available Emoji Shortcodes

Common Codes:

  • :smile: β†’ 😊
  • :heart: β†’ ❀️
  • :thumbsup: β†’ πŸ‘
  • :thumbsdown: β†’ πŸ‘Ž
  • :fire: β†’ πŸ”₯
  • :star: β†’ ⭐
  • :check: β†’ βœ…
  • :cross: β†’ ❌
  • :warning: β†’ ⚠️
  • :info: β†’ ℹ️
  • :onigiri: β†’ πŸ™
  • :sushi: β†’ 🍣
  • :pizza: β†’ πŸ•
  • :burger: β†’ πŸ”
  • :coffee: β†’ β˜•
  • :beer: β†’ 🍺
  • :rocket: β†’ πŸš€
  • :tada: β†’ πŸŽ‰
  • :clap: β†’ πŸ‘
  • :pray: β†’ πŸ™
πŸ™ Pro Tip: The emoji picker automatically saves your recently used emojis to localStorage, so your favorite emojis are always just one click away!

🎨 Styling

The emoji picker comes with beautiful default styles that automatically adapt to your OnigiriJS theme. To customize the appearance, simply override the CSS variables:

.emoji-picker {
    --picker-width: 320px;
    --picker-max-height: 400px;
    --emoji-size: 32px;
}

/* Customize for dark theme */
.emoji-picker.theme-dark {
    background: var(--bg-secondary);
    border-color: var(--border-color);
}

Ready to add emojis to your app? 😊

Include the emoji module and start making your application more expressive!

View Documentation β†’

βœ… Development Roadmap

Track the progress of OnigiriJS modules. Tasks are marked complete by the development team.

OnigiriJS Module Roadmap

Implementation progress of planned modules

6 / 21 completed (29%)
onigiri-state
Shared global & scoped state management
onigiri-directives
Declarative DOM bindings (o-show, o-model, etc.)
onigiri-resource
REST-style data models over AJAX
onigiri-observe
Intersection & Mutation observer helpers
onigiri-humhub-ui
Standard HumHub UI abstractions (modal, notify, confirm)
onigiri-lifecycle
Component lifecycle hooks
onigiri-guard
Debounce, throttle, single-run guards
onigiri-scroll
Scroll save/restore & helpers (PJAX-friendly)
onigiri-permission
Client-side permission awareness
onigiri-portal
DOM teleport / overlay mounting
onigiri-router
Micro router (non-SPA, PJAX-first)
onigiri-sanitize
HTML & input sanitization
onigiri-shortcut
Keyboard shortcut manager
onigiri-queue
Sequential async task runner
onigiri-gesture
Touch & swipe helpers
onigiri-devtools
Debugging & inspection helpers
onigiri-plugin
Plugin registration system
onigiri-time
Relative time & timezone utilities
onigiri-emojis
Emoji Picker and Manager
onigiri-tasks
Task Management
onigiri-polls
Polls creation and management
Note: Task completion is managed by the OnigiriJS development team.