├── .gitignore
├── Procfile
├── README.md
├── app.py
├── requirements.txt
├── static
├── images
│ ├── iPad_white_thumb.png
│ ├── pusher-logo-p.png
│ └── pusher-logo.png
├── javascripts
│ ├── jquery.emojipicker.js
│ ├── jquery.emojipicker.tw.js
│ └── ui_components
│ │ ├── Chat.js
│ │ ├── MainView.js
│ │ ├── Messages.js
│ │ └── WelcomeView.js
└── stylesheets
│ ├── devices.min.css
│ ├── jquery.emojipicker.css
│ ├── jquery.emojipicker.tw.css
│ └── styles.css
└── templates
└── index.html
/.gitignore:
--------------------------------------------------------------------------------
1 | venv/
2 | *.pyc
3 | .env
4 |
--------------------------------------------------------------------------------
/Procfile:
--------------------------------------------------------------------------------
1 | web: gunicorn app:app --log-file=-
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Pusher & React Real-Time Chat App
2 |
3 | This is an example chat application using React for a componentised UI and Pusher for real-time chat messages.
4 |
5 | The UI components can be found in `static/javascripts/ui_components`.
6 |
7 | The back-end is a Python app, found in `app.py`.
8 |
9 | ## Tutorial
10 |
11 | There is a full tutorial on [building a real-time chat application with React and Pusher](https://blog.pusher.com/making-reactjs-realtime-with-websockets/) available.
12 |
13 | ## Running the App
14 |
15 | You'll need a Pusher account, so [signup for a free account](https://pusher.com/signup).
16 |
17 | You'll then need to install the application Python package dependencies. We'd recommend you do this in a [Virtual Environment](http://docs.python-guide.org/en/latest/dev/virtualenvs/):
18 |
19 | ```bash
20 | $ virtualenv venv
21 | $ source venv/bin/activate
22 | ```
23 |
24 | Then install the dependencies:
25 |
26 | ```
27 | pip install -r requirements.txt
28 | ```
29 |
30 | Prior to running the Python app you'll need some environmental variables to be set.
31 |
32 | * `PUSHER_CHAT_APP_ID` - your Pusher application ID
33 | * `PUSHER_CHAT_APP_KEY` - your Pusher application key
34 | * `PUSHER_CHAT_APP_SECRET` - your Pusher application secret
35 |
36 | You can do this from the command line as part of running the application:
37 |
38 | ```bash
39 | PUSHER_CHAT_APP_ID=YOUR_APP_ID PUSHER_CHAT_APP_KEY=YOUR_APP_KEY PUSHER_CHAT_APP_SECRET=YOUR_APP_SECRET python app.py
40 | ```
41 |
42 | Or, probably much more easily, with the help of [foreman](https://github.com/ddollar/foreman) and by setting these values in a `.env` file:
43 |
44 | ```
45 | PUSHER_CHAT_APP_ID=YOUR_APP_ID
46 | PUSHER_CHAT_APP_KEY=YOUR_APP_KEY
47 | PUSHER_CHAT_APP_SECRET=YOUR_APP_SECRET
48 | ```
49 |
50 | Then running:
51 |
52 | ```bash
53 | $ foreman start
54 | ```
55 |
--------------------------------------------------------------------------------
/app.py:
--------------------------------------------------------------------------------
1 | from pusher import Pusher
2 | import os
3 | import cgi
4 | from flask import Flask, render_template, request
5 |
6 | app = Flask(__name__, static_url_path='/static')
7 |
8 | app_id = os.environ.get('PUSHER_CHAT_APP_ID')
9 | key = os.environ.get('PUSHER_CHAT_APP_KEY')
10 | secret = os.environ.get('PUSHER_CHAT_APP_SECRET')
11 |
12 | pusher = Pusher(
13 | app_id=app_id,
14 | key=key,
15 | secret=secret
16 | )
17 |
18 | @app.route("/")
19 | def show_index():
20 | return render_template('index.html', pusher_app_key=key)
21 |
22 | @app.route('/messages', methods=['POST'])
23 | def new_message():
24 | name, text = request.form['name'], cgi.escape(request.form['text'])
25 | time = request.form['time']
26 | pusher.trigger('messages', 'new_message', {
27 | 'text': text,
28 | 'name': name,
29 | 'time': time
30 | })
31 | return "great success!"
32 |
33 | if __name__ == "__main__":
34 | app.run(debug=True)
35 |
--------------------------------------------------------------------------------
/requirements.txt:
--------------------------------------------------------------------------------
1 | pusher==1.2.3
2 | Flask==0.10.1
3 | cryptography
4 | gunicorn
5 |
--------------------------------------------------------------------------------
/static/images/iPad_white_thumb.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pusher-community/react-realtime-chat/9e88053ae96b615e24a8262cc123ca45cbbc9848/static/images/iPad_white_thumb.png
--------------------------------------------------------------------------------
/static/images/pusher-logo-p.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pusher-community/react-realtime-chat/9e88053ae96b615e24a8262cc123ca45cbbc9848/static/images/pusher-logo-p.png
--------------------------------------------------------------------------------
/static/images/pusher-logo.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/pusher-community/react-realtime-chat/9e88053ae96b615e24a8262cc123ca45cbbc9848/static/images/pusher-logo.png
--------------------------------------------------------------------------------
/static/javascripts/jquery.emojipicker.js:
--------------------------------------------------------------------------------
1 | ;(function($) {
2 |
3 | var pluginName = "emojiPicker",
4 | defaults = {
5 | width: '200',
6 | height: '350',
7 | position: 'right',
8 | fadeTime: 100,
9 | iconColor: 'black',
10 | iconBackgroundColor: '#eee',
11 | container: 'body',
12 | button: true
13 | };
14 |
15 | var MIN_WIDTH = 200,
16 | MAX_WIDTH = 600,
17 | MIN_HEIGHT = 100,
18 | MAX_HEIGHT = 350,
19 | MAX_ICON_HEIGHT = 50;
20 |
21 | function Plugin( element, options ) {
22 |
23 | this.element = element;
24 | this.$el = $(element);
25 |
26 | this.settings = $.extend( {}, defaults, options );
27 |
28 | this.$container = $(this.settings.container);
29 |
30 | // (type) Safety first
31 | this.settings.width = parseInt(this.settings.width);
32 | this.settings.height = parseInt(this.settings.height);
33 |
34 | // Check for valid width/height
35 | if(this.settings.width >= MAX_WIDTH) {
36 | this.settings.width = MAX_WIDTH;
37 | } else if (this.settings.width < MIN_WIDTH) {
38 | this.settings.width = MIN_WIDTH;
39 | }
40 | if (this.settings.height >= MAX_HEIGHT) {
41 | this.settings.height = MAX_HEIGHT;
42 | } else if (this.settings.height < MIN_HEIGHT) {
43 | this.settings.height = MIN_HEIGHT;
44 | }
45 |
46 | var possiblePositions = [ 'left',
47 | 'right'
48 | /*,'top',
49 | 'bottom'*/];
50 | if($.inArray(this.settings.position,possiblePositions) == -1) {
51 | this.settings.position = defaults.position; //current default
52 | }
53 |
54 | // Do not enable if on mobile device (emojis already present)
55 | if(!/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) ) {
56 | this.init();
57 | }
58 |
59 | }
60 |
61 | $.extend(Plugin.prototype, {
62 |
63 | init: function() {
64 | this.active = false;
65 | this.addPickerIcon();
66 | this.createPicker();
67 | this.listen();
68 | },
69 |
70 | addPickerIcon: function() {
71 | // The wrapper is not needed if they have chosen to not use a button
72 | if (this.settings.button) {
73 | var elementHeight = this.$el.outerHeight();
74 | var iconHeight = elementHeight > MAX_ICON_HEIGHT ?
75 | MAX_ICON_HEIGHT :
76 | elementHeight;
77 |
78 | // This can cause issues if the element is not visible when it is initiated
79 | var objectWidth = this.$el.width();
80 |
81 | this.$el.width(objectWidth);
82 |
83 | this.$wrapper = this.$el
84 | .wrap("
")
85 | .parent();
86 |
87 | this.$icon = $('')
88 | .height(iconHeight)
89 | .width(iconHeight)
90 | .addClass(this.settings.iconColor)
91 | .css('backgroundColor', this.settings.iconBackgroundColor);
92 | this.$wrapper.append( this.$icon );
93 | }
94 |
95 | },
96 |
97 | createPicker: function() {
98 |
99 | // Show template
100 | this.$picker = $( getPickerHTML() )
101 | .appendTo( this.$container )
102 | .width(this.settings.width)
103 | .height(this.settings.height)
104 | .css('z-index',10000);
105 |
106 | // Picker height
107 | this.$picker.find('section')
108 | .height(parseInt(this.settings.height) - 40); // 40 is height of the tabs
109 |
110 | // Tab size based on width
111 | if (this.settings.width < 240) {
112 | this.$picker.find('.emoji').css({'width':'1em', 'height':'1em'});
113 | }
114 |
115 | },
116 |
117 | listen: function() {
118 | // If the button is being used, wrapper has not been set,
119 | // and will not need a listener
120 | if (this.settings.button){
121 | // Clicking on the picker icon
122 | this.$wrapper.find('.emojiPickerIcon')
123 | .click( $.proxy(this.iconClicked, this) );
124 | }
125 |
126 | // Click event for emoji
127 | this.$picker.find('section div')
128 | .click( $.proxy(this.emojiClicked, this) );
129 |
130 | // Click event for active tab
131 | this.$picker.find('nav .tab')
132 | .click( $.proxy(this.emojiCategoryClicked, this) );
133 |
134 | this.$picker.click( $.proxy(this.pickerClicked, this) );
135 |
136 | $(document.body).click( $.proxy(this.clickOutside, this) );
137 |
138 | // Resize events forces a reposition, which may or may not actually be required
139 | $(window).resize( $.proxy(this.updatePosition, this) );
140 | },
141 |
142 | updatePosition: function() {
143 |
144 | /* Process:
145 | 1. Find the nearest positioned element by crawling up the ancestors, record it's offset
146 | 2. Find the bottom left or right of the input element, record this (Account for position setting of left or right)
147 | 3. Find the difference between the two, as this will become our new position
148 | 4. Magic.
149 |
150 | N.B. The removed code had a reference to top/bottom positioning, but I don't see the use case for this..
151 | */
152 |
153 | // Step 1
154 | // Luckily jquery already does this...
155 | var positionedParent = this.$picker.offsetParent();
156 | var parentOffset = positionedParent.offset(); // now have a top/left object
157 |
158 | // Step 2
159 | var elOffset = this.$el.offset();
160 | if(this.settings.position == 'right'){
161 | elOffset.left += this.$el.outerWidth() - this.settings.width;
162 | }
163 | elOffset.top += this.$el.outerHeight();
164 |
165 | // Step 3
166 | var diffOffset = {
167 | top: (elOffset.top - parentOffset.top),
168 | left: (elOffset.left - parentOffset.top)
169 | };
170 |
171 | this.$picker.css({
172 | top: diffOffset.top,
173 | left: diffOffset.left
174 | });
175 |
176 | return this;
177 | },
178 |
179 | hide: function() {
180 | this.$picker.hide(this.settings.fadeTime, 'linear', function() {
181 | this.active = false;
182 | }.bind(this));
183 | },
184 |
185 | show: function() {
186 | this.$el.focus();
187 | this.updatePosition();
188 | this.$picker.show(this.settings.fadeTime, 'linear', function() {
189 | this.active = true;
190 | }.bind(this));
191 | },
192 |
193 | /************
194 | * EVENTS *
195 | ************/
196 |
197 | iconClicked : function(e) {
198 | if ( this.$picker.is(':hidden') ) {
199 | this.show();
200 | } else {
201 | this.hide();
202 | }
203 | },
204 |
205 | emojiClicked: function(e) {
206 | var emojiShortcode = $(e.target).attr('class').split('emoji-')[1];
207 | var emojiUnicode = toUnicode(findEmoji(emojiShortcode).unicode);
208 |
209 | insertAtCaret(this.element, emojiUnicode);
210 |
211 | // trigger change event on input
212 | $(this.element).trigger("keyup");
213 | },
214 |
215 | emojiCategoryClicked: function(e) {
216 | var section = '';
217 |
218 | // Update tab
219 | this.$picker.find('nav .tab').removeClass('active');
220 | if ($(e.target).parent().hasClass('tab')) {
221 | section = $(e.target).parent().attr('data-tab');
222 | $(e.target).parent('.tab').addClass('active');
223 | } else {
224 | section = $(e.target).attr('data-tab');
225 | $(e.target).addClass('active');
226 | }
227 |
228 | // Update section
229 | this.$picker.find('section').addClass('hidden');//.hide();
230 | this.$picker.find('section.' + section).removeClass('hidden');//.show();
231 | },
232 |
233 | pickerClicked: function(e) {
234 | e.stopPropagation();
235 | },
236 |
237 | clickOutside: function(e) {
238 | if ( this.active ) {
239 | this.hide();
240 | }
241 | }
242 |
243 | });
244 |
245 | $.fn[ pluginName ] = function ( options ) {
246 |
247 | // Calling a function
248 | if (typeof options === 'string') {
249 | this.each(function() {
250 | var plugin = $.data( this, pluginName );
251 | switch(options) {
252 | case 'toggle':
253 | plugin.iconClicked();
254 | break;
255 | }
256 | });
257 | return this;
258 | }
259 |
260 | this.each(function() {
261 | // Don't attach to the same element twice
262 | if ( !$.data( this, pluginName ) ) {
263 | $.data( this, pluginName, new Plugin( this, options ) );
264 | }
265 | });
266 | return this;
267 | };
268 |
269 | /* ---------------------------------------------------------------------- */
270 |
271 | function getPickerHTML() {
272 | var nodes = [];
273 | var categories = [
274 | { name: 'emotion', symbol: 'grinning' },
275 | { name: 'animal', symbol: 'whale' },
276 | { name: 'food', symbol: 'hamburger' },
277 | { name: 'folderol', symbol: 'sunny' },
278 | { name: 'thing', symbol: 'kiss' },
279 | { name: 'travel', symbol: 'rocket' }
280 | ];
281 | var aliases = {
282 | 'people': 'emotion',
283 | 'symbol': 'thing',
284 | 'undefined': 'thing'
285 | }
286 | var items = {};
287 |
288 | // Re-Sort Emoji table
289 | $.each($.fn.emojiPicker.emojis, function(i, emoji) {
290 | var category = aliases[ emoji.category ] || emoji.category;
291 | items[ category ] = items[ category ] || [];
292 | items[ category ].push( emoji );
293 | });
294 |
295 | nodes.push('');
296 | nodes.push('
');
307 | for (var i in categories) {
308 | nodes.push('
');
312 | for (var j in items[ categories[i].name ] ) {
313 | var emoji = items[ categories[i].name ][ j ];
314 | nodes.push('');
315 | }
316 | nodes.push('');
317 | }
318 | nodes.push('
');
319 | return nodes.join("\n");
320 | }
321 |
322 | function findEmoji(emojiShortcode) {
323 | var emojis = $.fn.emojiPicker.emojis;
324 | for (var i = 0; i < emojis.length; i++) {
325 | if (emojis[i].shortcode == emojiShortcode) {
326 | return emojis[i];
327 | }
328 | }
329 | }
330 |
331 | function insertAtCaret(inputField, myValue) {
332 | if (document.selection) {
333 | //For browsers like Internet Explorer
334 | inputField.focus();
335 | var sel = document.selection.createRange();
336 | sel.text = myValue;
337 | inputField.focus();
338 | }
339 | else if (inputField.selectionStart || inputField.selectionStart == '0') {
340 | //For browsers like Firefox and Webkit based
341 | var startPos = inputField.selectionStart;
342 | var endPos = inputField.selectionEnd;
343 | var scrollTop = inputField.scrollTop;
344 | inputField.value = inputField.value.substring(0, startPos)+myValue+inputField.value.substring(endPos,inputField.value.length);
345 | inputField.focus();
346 | inputField.selectionStart = startPos + myValue.length;
347 | inputField.selectionEnd = startPos + myValue.length;
348 | inputField.scrollTop = scrollTop;
349 | } else {
350 | inputField.focus();
351 | inputField.value += myValue;
352 | }
353 | }
354 |
355 | function toUnicode(code) {
356 | var codes = code.split('-').map(function(value, index) {
357 | return parseInt(value, 16);
358 | });
359 | return String.fromCodePoint.apply(null, codes);
360 | }
361 |
362 | if (!String.fromCodePoint) {
363 | // ES6 Unicode Shims 0.1 , © 2012 Steven Levithan http://slevithan.com/ , MIT License
364 | String.fromCodePoint = function fromCodePoint () {
365 | var chars = [], point, offset, units, i;
366 | for (i = 0; i < arguments.length; ++i) {
367 | point = arguments[i];
368 | offset = point - 0x10000;
369 | units = point > 0xFFFF ? [0xD800 + (offset >> 10), 0xDC00 + (offset & 0x3FF)] : [point];
370 | chars.push(String.fromCharCode.apply(null, units));
371 | }
372 | return chars.join("");
373 | }
374 | }
375 |
376 | })(jQuery);
377 |
--------------------------------------------------------------------------------
/static/javascripts/jquery.emojipicker.tw.js:
--------------------------------------------------------------------------------
1 | $(function() {
2 | $.fn.emojiPicker.emojis = [
3 | {
4 | "name": "bangbang",
5 | "unicode": "203C",
6 | "shortcode": "bangbang",
7 | "description": "DOUBLE EXCLAMATION MARK",
8 | "category": "symbol"
9 | },
10 | {
11 | "name": "interrobang",
12 | "unicode": "2049",
13 | "shortcode": "interrobang",
14 | "description": "EXCLAMATION QUESTION MARK",
15 | "category": "folderol"
16 | },
17 | {
18 | "name": "tm",
19 | "unicode": "2122",
20 | "shortcode": "tm",
21 | "description": "TRADE MARK SIGN",
22 | "category": "folderol"
23 | },
24 | {
25 | "name": "information_source",
26 | "unicode": "2139",
27 | "shortcode": "information_source",
28 | "description": "INFORMATION SOURCE",
29 | "category": "folderol"
30 | },
31 | {
32 | "name": "left_right_arrow",
33 | "unicode": "2194",
34 | "shortcode": "left_right_arrow",
35 | "description": "LEFT RIGHT ARROW",
36 | "category": "folderol"
37 | },
38 | {
39 | "name": "arrow_up_down",
40 | "unicode": "2195",
41 | "shortcode": "arrow_up_down",
42 | "description": "UP DOWN ARROW",
43 | "category": "folderol"
44 | },
45 | {
46 | "name": "arrow_upper_left",
47 | "unicode": "2196",
48 | "shortcode": "arrow_upper_left",
49 | "description": "NORTH WEST ARROW",
50 | "category": "folderol"
51 | },
52 | {
53 | "name": "arrow_upper_right",
54 | "unicode": "2197",
55 | "shortcode": "arrow_upper_right",
56 | "description": "NORTH EAST ARROW",
57 | "category": "folderol"
58 | },
59 | {
60 | "name": "arrow_lower_right",
61 | "unicode": "2198",
62 | "shortcode": "arrow_lower_right",
63 | "description": "SOUTH EAST ARROW",
64 | "category": "folderol"
65 | },
66 | {
67 | "name": "arrow_lower_left",
68 | "unicode": "2199",
69 | "shortcode": "arrow_lower_left",
70 | "description": "SOUTH WEST ARROW",
71 | "category": "folderol"
72 | },
73 | {
74 | "name": "leftwards_arrow_with_hook",
75 | "unicode": "21A9",
76 | "shortcode": "leftwards_arrow_with_hook",
77 | "description": "LEFTWARDS ARROW WITH HOOK",
78 | "category": "folderol"
79 | },
80 | {
81 | "name": "arrow_right_hook",
82 | "unicode": "21AA",
83 | "shortcode": "arrow_right_hook",
84 | "description": "RIGHTWARDS ARROW WITH HOOK",
85 | "category": "folderol"
86 | },
87 | {
88 | "name": "watch",
89 | "unicode": "231A",
90 | "shortcode": "watch",
91 | "description": "WATCH",
92 | "category": "thing"
93 | },
94 | {
95 | "name": "hourglass",
96 | "unicode": "231B",
97 | "shortcode": "hourglass",
98 | "description": "HOURGLASS",
99 | "category": "thing"
100 | },
101 | {
102 | "name": "fast_forward",
103 | "unicode": "23E9",
104 | "shortcode": "fast_forward",
105 | "description": "BLACK RIGHT-POINTING DOUBLE TRIANGLE"
106 | },
107 | {
108 | "name": "rewind",
109 | "unicode": "23EA",
110 | "shortcode": "rewind",
111 | "description": "BLACK LEFT-POINTING DOUBLE TRIANGLE",
112 | "category": "thing"
113 | },
114 | {
115 | "name": "arrow_double_up",
116 | "unicode": "23EB",
117 | "shortcode": "arrow_double_up",
118 | "description": "BLACK UP-POINTING DOUBLE TRIANGLE",
119 | "category": "folderol"
120 | },
121 | {
122 | "name": "arrow_double_down",
123 | "unicode": "23EC",
124 | "shortcode": "arrow_double_down",
125 | "description": "BLACK DOWN-POINTING DOUBLE TRIANGLE",
126 | "category": "folderol"
127 | },
128 | {
129 | "name": "alarm_clock",
130 | "unicode": "23F0",
131 | "shortcode": "alarm_clock",
132 | "description": "ALARM CLOCK",
133 | "category": "thing"
134 | },
135 | {
136 | "name": "hourglass_flowing_sand",
137 | "unicode": "23F3",
138 | "shortcode": "hourglass_flowing_sand",
139 | "description": "HOURGLASS WITH FLOWING SAND",
140 | "category": "thing"
141 | },
142 | {
143 | "name": "m",
144 | "unicode": "24C2",
145 | "shortcode": "m",
146 | "description": "CIRCLED LATIN CAPITAL LETTER M",
147 | "category": "folderol"
148 | },
149 | {
150 | "name": "black_small_square",
151 | "unicode": "25AA",
152 | "shortcode": "black_small_square",
153 | "description": "BLACK SMALL SQUARE",
154 | "category": "folderol"
155 | },
156 | {
157 | "name": "white_small_square",
158 | "unicode": "25AB",
159 | "shortcode": "white_small_square",
160 | "description": "WHITE SMALL SQUARE",
161 | "category": "folderol"
162 | },
163 | {
164 | "name": "arrow_forward",
165 | "unicode": "25B6",
166 | "shortcode": "arrow_forward",
167 | "description": "BLACK RIGHT-POINTING TRIANGLE",
168 | "category": "folderol"
169 | },
170 | {
171 | "name": "arrow_backward",
172 | "unicode": "25C0",
173 | "shortcode": "arrow_backward",
174 | "description": "BLACK LEFT-POINTING TRIANGLE",
175 | "category": "folderol"
176 | },
177 | {
178 | "name": "white_medium_square",
179 | "unicode": "25FB",
180 | "shortcode": "white_medium_square",
181 | "description": "WHITE MEDIUM SQUARE",
182 | "category": "folderol"
183 | },
184 | {
185 | "name": "black_medium_square",
186 | "unicode": "25FC",
187 | "shortcode": "black_medium_square",
188 | "description": "BLACK MEDIUM SQUARE",
189 | "category": "folderol"
190 | },
191 | {
192 | "name": "white_medium_small_square",
193 | "unicode": "25FD",
194 | "shortcode": "white_medium_small_square",
195 | "description": "WHITE MEDIUM SMALL SQUARE",
196 | "category": "folderol"
197 | },
198 | {
199 | "name": "black_medium_small_square",
200 | "unicode": "25FE",
201 | "shortcode": "black_medium_small_square",
202 | "description": "BLACK MEDIUM SMALL SQUARE",
203 | "category": "folderol"
204 | },
205 | {
206 | "name": "sunny",
207 | "unicode": "2600",
208 | "shortcode": "sunny",
209 | "description": "BLACK SUN WITH RAYS",
210 | "category": "thing"
211 | },
212 | {
213 | "name": "cloud",
214 | "unicode": "2601",
215 | "shortcode": "cloud",
216 | "description": "CLOUD",
217 | "category": "thing"
218 | },
219 | {
220 | "name": "phone",
221 | "unicode": "260E",
222 | "shortcode": "phone",
223 | "description": "BLACK TELEPHONE",
224 | "category": "thing"
225 | },
226 | {
227 | "name": "ballot_box_with_check",
228 | "unicode": "2611",
229 | "shortcode": "ballot_box_with_check",
230 | "description": "BALLOT BOX WITH CHECK",
231 | "category": "thing"
232 | },
233 | {
234 | "name": "umbrella",
235 | "unicode": "2614",
236 | "shortcode": "umbrella",
237 | "description": "UMBRELLA WITH RAIN DROPS",
238 | "category": "thing"
239 | },
240 | {
241 | "name": "coffee",
242 | "unicode": "2615",
243 | "shortcode": "coffee",
244 | "description": "HOT BEVERAGE",
245 | "category": "thing"
246 | },
247 | {
248 | "name": "point_up",
249 | "unicode": "261D",
250 | "shortcode": "point_up",
251 | "description": "WHITE UP POINTING INDEX",
252 | "category": "people"
253 | },
254 | {
255 | "name": "relaxed",
256 | "unicode": "263A",
257 | "shortcode": "relaxed",
258 | "description": "WHITE SMILING FACE",
259 | "category": "emotion"
260 | },
261 | {
262 | "name": "aries",
263 | "unicode": "2648",
264 | "shortcode": "aries",
265 | "description": "ARIES",
266 | "category": "folderol"
267 | },
268 | {
269 | "name": "taurus",
270 | "unicode": "2649",
271 | "shortcode": "taurus",
272 | "description": "TAURUS",
273 | "category": "folderol"
274 | },
275 | {
276 | "name": "gemini",
277 | "unicode": "264A",
278 | "shortcode": "gemini",
279 | "description": "GEMINI",
280 | "category": "folderol"
281 | },
282 | {
283 | "name": "cancer",
284 | "unicode": "264B",
285 | "shortcode": "cancer",
286 | "description": "CANCER",
287 | "category": "folderol"
288 | },
289 | {
290 | "name": "leo",
291 | "unicode": "264C",
292 | "shortcode": "leo",
293 | "description": "LEO",
294 | "category": "folderol"
295 | },
296 | {
297 | "name": "virgo",
298 | "unicode": "264D",
299 | "shortcode": "virgo",
300 | "description": "VIRGO",
301 | "category": "folderol"
302 | },
303 | {
304 | "name": "libra",
305 | "unicode": "264E",
306 | "shortcode": "libra",
307 | "description": "LIBRA",
308 | "category": "folderol"
309 | },
310 | {
311 | "name": "scorpius",
312 | "unicode": "264F",
313 | "shortcode": "scorpius",
314 | "description": "SCORPIUS",
315 | "category": "folderol"
316 | },
317 | {
318 | "name": "sagittarius",
319 | "unicode": "2650",
320 | "shortcode": "sagittarius",
321 | "description": "SAGITTARIUS",
322 | "category": "folderol"
323 | },
324 | {
325 | "name": "capricorn",
326 | "unicode": "2651",
327 | "shortcode": "capricorn",
328 | "description": "CAPRICORN",
329 | "category": "folderol"
330 | },
331 | {
332 | "name": "aquarius",
333 | "unicode": "2652",
334 | "shortcode": "aquarius",
335 | "description": "AQUARIUS",
336 | "category": "folderol"
337 | },
338 | {
339 | "name": "pisces",
340 | "unicode": "2653",
341 | "shortcode": "pisces",
342 | "description": "PISCES",
343 | "category": "folderol"
344 | },
345 | {
346 | "name": "spades",
347 | "unicode": "2660",
348 | "shortcode": "spades",
349 | "description": "BLACK SPADE SUIT",
350 | "category": "folderol"
351 | },
352 | {
353 | "name": "clubs",
354 | "unicode": "2663",
355 | "shortcode": "clubs",
356 | "description": "BLACK CLUB SUIT",
357 | "category": "folderol"
358 | },
359 | {
360 | "name": "hearts",
361 | "unicode": "2665",
362 | "shortcode": "hearts",
363 | "description": "BLACK HEART SUIT",
364 | "category": "folderol"
365 | },
366 | {
367 | "name": "diamonds",
368 | "unicode": "2666",
369 | "shortcode": "diamonds",
370 | "description": "BLACK DIAMOND SUIT",
371 | "category": "folderol"
372 | },
373 | {
374 | "name": "hotsprings",
375 | "unicode": "2668",
376 | "shortcode": "hotsprings",
377 | "description": "HOT SPRINGS",
378 | "category": "thing"
379 | },
380 | {
381 | "name": "recycle",
382 | "unicode": "267B",
383 | "shortcode": "recycle",
384 | "description": "BLACK UNIVERSAL RECYCLING SYMBOL",
385 | "category": "folderol"
386 | },
387 | {
388 | "name": "wheelchair",
389 | "unicode": "267F",
390 | "shortcode": "wheelchair",
391 | "description": "WHEELCHAIR SYMBOL",
392 | "category": "thing"
393 | },
394 | {
395 | "name": "anchor",
396 | "unicode": "2693",
397 | "shortcode": "anchor",
398 | "description": "ANCHOR",
399 | "category": "thing"
400 | },
401 | {
402 | "name": "warning",
403 | "unicode": "26A0",
404 | "shortcode": "warning",
405 | "description": "WARNING SIGN",
406 | "category": "thing"
407 | },
408 | {
409 | "name": "zap",
410 | "unicode": "26A1",
411 | "shortcode": "zap",
412 | "description": "HIGH VOLTAGE SIGN",
413 | "category": "thing"
414 | },
415 | {
416 | "name": "white_circle",
417 | "unicode": "26AA",
418 | "shortcode": "white_circle",
419 | "description": "MEDIUM WHITE CIRCLE",
420 | "category": "folderol"
421 | },
422 | {
423 | "name": "black_circle",
424 | "unicode": "26AB",
425 | "shortcode": "black_circle",
426 | "description": "MEDIUM BLACK CIRCLE",
427 | "category": "folderol"
428 | },
429 | {
430 | "name": "soccer",
431 | "unicode": "26BD",
432 | "shortcode": "soccer",
433 | "description": "SOCCER BALL",
434 | "category": "thing"
435 | },
436 | {
437 | "name": "baseball",
438 | "unicode": "26BE",
439 | "shortcode": "baseball",
440 | "description": "BASEBALL",
441 | "category": "thing"
442 | },
443 | {
444 | "name": "snowman",
445 | "unicode": "26C4",
446 | "shortcode": "snowman",
447 | "description": "SNOWMAN WITHOUT SNOW",
448 | "category": "thing"
449 | },
450 | {
451 | "name": "partly_sunny",
452 | "unicode": "26C5",
453 | "shortcode": "partly_sunny",
454 | "description": "SUN BEHIND CLOUD",
455 | "category": "thing"
456 | },
457 | {
458 | "name": "ophiuchus",
459 | "unicode": "26CE",
460 | "shortcode": "ophiuchus",
461 | "description": "OPHIUCHUS",
462 | "category": "folderol"
463 | },
464 | {
465 | "name": "no_entry",
466 | "unicode": "26D4",
467 | "shortcode": "no_entry",
468 | "description": "NO ENTRY",
469 | "category": "folderol"
470 | },
471 | {
472 | "name": "church",
473 | "unicode": "26EA",
474 | "shortcode": "church",
475 | "description": "CHURCH",
476 | "category": "travel"
477 | },
478 | {
479 | "name": "fountain",
480 | "unicode": "26F2",
481 | "shortcode": "fountain",
482 | "description": "FOUNTAIN",
483 | "category": "travel"
484 | },
485 | {
486 | "name": "golf",
487 | "unicode": "26F3",
488 | "shortcode": "golf",
489 | "description": "FLAG IN HOLE",
490 | "category": "travel"
491 | },
492 | {
493 | "name": "boat",
494 | "unicode": "26F5",
495 | "shortcode": "boat",
496 | "description": "SAILBOAT",
497 | "category": "travel"
498 | },
499 | {
500 | "name": "tent",
501 | "unicode": "26FA",
502 | "shortcode": "tent",
503 | "description": "TENT",
504 | "category": "travel"
505 | },
506 | {
507 | "name": "fuelpump",
508 | "unicode": "26FD",
509 | "shortcode": "fuelpump",
510 | "description": "FUEL PUMP",
511 | "category": "travel"
512 | },
513 | {
514 | "name": "scissors",
515 | "unicode": "2702",
516 | "shortcode": "scissors",
517 | "description": "BLACK SCISSORS",
518 | "category": "thing"
519 | },
520 | {
521 | "name": "white_check_mark",
522 | "unicode": "2705",
523 | "shortcode": "white_check_mark",
524 | "description": "WHITE HEAVY CHECK MARK",
525 | "category": "folderol"
526 | },
527 | {
528 | "name": "airplane",
529 | "unicode": "2708",
530 | "shortcode": "airplane",
531 | "description": "AIRPLANE",
532 | "category": "thing"
533 | },
534 | {
535 | "name": "email",
536 | "unicode": "2709",
537 | "shortcode": "email",
538 | "description": "ENVELOPE",
539 | "category": "thing"
540 | },
541 | {
542 | "name": "fist",
543 | "unicode": "270A",
544 | "shortcode": "fist",
545 | "description": "RAISED FIST",
546 | "category": "people"
547 | },
548 | {
549 | "name": "hand",
550 | "unicode": "270B",
551 | "shortcode": "hand",
552 | "description": "RAISED HAND",
553 | "category": "people"
554 | },
555 | {
556 | "name": "v",
557 | "unicode": "270C",
558 | "shortcode": "v",
559 | "description": "VICTORY HAND",
560 | "category": "folderol"
561 | },
562 | {
563 | "name": "pencil2",
564 | "unicode": "270F",
565 | "shortcode": "pencil2",
566 | "description": "PENCIL",
567 | "category": "thing"
568 | },
569 | {
570 | "name": "black_nib",
571 | "unicode": "2712",
572 | "shortcode": "black_nib",
573 | "description": "BLACK NIB",
574 | "category": "folderol"
575 | },
576 | {
577 | "name": "heavy_check_mark",
578 | "unicode": "2714",
579 | "shortcode": "heavy_check_mark",
580 | "description": "HEAVY CHECK MARK",
581 | "category": "folderol"
582 | },
583 | {
584 | "name": "heavy_multiplication_x",
585 | "unicode": "2716",
586 | "shortcode": "heavy_multiplication_x",
587 | "description": "HEAVY MULTIPLICATION X",
588 | "category": "folderol"
589 | },
590 | {
591 | "name": "sparkles",
592 | "unicode": "2728",
593 | "shortcode": "sparkles",
594 | "description": "SPARKLES",
595 | "category": "folderol"
596 | },
597 | {
598 | "name": "eight_spoked_asterisk",
599 | "unicode": "2733",
600 | "shortcode": "eight_spoked_asterisk",
601 | "description": "EIGHT SPOKED ASTERISK",
602 | "category": "folderol"
603 | },
604 | {
605 | "name": "eight_pointed_black_star",
606 | "unicode": "2734",
607 | "shortcode": "eight_pointed_black_star",
608 | "description": "EIGHT POINTED BLACK STAR",
609 | "category": "folderol"
610 | },
611 | {
612 | "name": "snowflake",
613 | "unicode": "2744",
614 | "shortcode": "snowflake",
615 | "description": "SNOWFLAKE",
616 | "category": "thing"
617 | },
618 | {
619 | "name": "sparkle",
620 | "unicode": "2747",
621 | "shortcode": "sparkle",
622 | "description": "SPARKLE",
623 | "category": "thing"
624 | },
625 | {
626 | "name": "x",
627 | "unicode": "274C",
628 | "shortcode": "x",
629 | "description": "CROSS MARK",
630 | "category": "folderol"
631 | },
632 | {
633 | "name": "negative_squared_cross_mark",
634 | "unicode": "274E",
635 | "shortcode": "negative_squared_cross_mark",
636 | "description": "NEGATIVE SQUARED CROSS MARK",
637 | "category": "folderol"
638 | },
639 | {
640 | "name": "question",
641 | "unicode": "2753",
642 | "shortcode": "question",
643 | "description": "BLACK QUESTION MARK ORNAMENT",
644 | "category": "folderol"
645 | },
646 | {
647 | "name": "grey_question",
648 | "unicode": "2754",
649 | "shortcode": "grey_question",
650 | "description": "WHITE QUESTION MARK ORNAMENT",
651 | "category": "folderol"
652 | },
653 | {
654 | "name": "grey_exclamation",
655 | "unicode": "2755",
656 | "shortcode": "grey_exclamation",
657 | "description": "WHITE EXCLAMATION MARK ORNAMENT",
658 | "category": "folderol"
659 | },
660 | {
661 | "name": "exclamation",
662 | "unicode": "2757",
663 | "shortcode": "exclamation",
664 | "description": "HEAVY EXCLAMATION MARK SYMBOL",
665 | "category": "folderol"
666 | },
667 | {
668 | "name": "heart",
669 | "unicode": "2764",
670 | "shortcode": "heart",
671 | "description": "HEAVY BLACK HEART",
672 | "category": "folderol"
673 | },
674 | {
675 | "name": "heavy_plus_sign",
676 | "unicode": "2795",
677 | "shortcode": "heavy_plus_sign",
678 | "description": "HEAVY PLUS SIGN",
679 | "category": "folderol"
680 | },
681 | {
682 | "name": "heavy_minus_sign",
683 | "unicode": "2796",
684 | "shortcode": "heavy_minus_sign",
685 | "description": "HEAVY MINUS SIGN",
686 | "category": "folderol"
687 | },
688 | {
689 | "name": "heavy_division_sign",
690 | "unicode": "2797",
691 | "shortcode": "heavy_division_sign",
692 | "description": "HEAVY DIVISION SIGN",
693 | "category": "folderol"
694 | },
695 | {
696 | "name": "arrow_right",
697 | "unicode": "27A1",
698 | "shortcode": "arrow_right",
699 | "description": "BLACK RIGHTWARDS ARROW",
700 | "category": "folderol"
701 | },
702 | {
703 | "name": "curly_loop",
704 | "unicode": "27B0",
705 | "shortcode": "curly_loop",
706 | "description": "CURLY LOOP",
707 | "category": "folderol"
708 | },
709 | {
710 | "name": "loop",
711 | "unicode": "27BF",
712 | "shortcode": "loop",
713 | "description": "DOUBLE CURLY LOOP",
714 | "category": "folderol"
715 | },
716 | {
717 | "name": "arrow_heading_up",
718 | "unicode": "2934",
719 | "shortcode": "arrow_heading_up",
720 | "description": "ARROW POINTING RIGHTWARDS THEN CURVING UPWARDS",
721 | "category": "folderol"
722 | },
723 | {
724 | "name": "arrow_heading_down",
725 | "unicode": "2935",
726 | "shortcode": "arrow_heading_down",
727 | "description": "ARROW POINTING RIGHTWARDS THEN CURVING DOWNWARDS",
728 | "category": "folderol"
729 | },
730 | {
731 | "name": "arrow_left",
732 | "unicode": "2B05",
733 | "shortcode": "arrow_left",
734 | "description": "LEFTWARDS BLACK ARROW",
735 | "category": "folderol"
736 | },
737 | {
738 | "name": "arrow_up",
739 | "unicode": "2B06",
740 | "shortcode": "arrow_up",
741 | "description": "UPWARDS BLACK ARROW",
742 | "category": "folderol"
743 | },
744 | {
745 | "name": "arrow_down",
746 | "unicode": "2B07",
747 | "shortcode": "arrow_down",
748 | "description": "DOWNWARDS BLACK ARROW",
749 | "category": "folderol"
750 | },
751 | {
752 | "name": "black_large_square",
753 | "unicode": "2B1B",
754 | "shortcode": "black_large_square",
755 | "description": "BLACK LARGE SQUARE",
756 | "category": "folderol"
757 | },
758 | {
759 | "name": "white_large_square",
760 | "unicode": "2B1C",
761 | "shortcode": "white_large_square",
762 | "description": "WHITE LARGE SQUARE",
763 | "category": "folderol"
764 | },
765 | {
766 | "name": "star",
767 | "unicode": "2B50",
768 | "shortcode": "star",
769 | "description": "WHITE MEDIUM STAR",
770 | "category": "thing"
771 | },
772 | {
773 | "name": "o",
774 | "unicode": "2B55",
775 | "shortcode": "o",
776 | "description": "HEAVY LARGE CIRCLE",
777 | "category": "folderol"
778 | },
779 | {
780 | "name": "wavy_dash",
781 | "unicode": "3030",
782 | "shortcode": "wavy_dash",
783 | "description": "WAVY DASH",
784 | "category": "folderol"
785 | },
786 | {
787 | "name": "part_alternation_mark",
788 | "unicode": "303D",
789 | "shortcode": "part_alternation_mark",
790 | "description": "PART ALTERNATION MARK",
791 | "category": "folderol"
792 | },
793 | {
794 | "name": "congratulations",
795 | "unicode": "3297",
796 | "shortcode": "congratulations",
797 | "description": "CIRCLED IDEOGRAPH CONGRATULATION",
798 | "category": "folderol"
799 | },
800 | {
801 | "name": "secret",
802 | "unicode": "3299",
803 | "shortcode": "secret",
804 | "description": "CIRCLED IDEOGRAPH SECRET",
805 | "category": "folderol"
806 | },
807 | {
808 | "name": "mahjong",
809 | "unicode": "1F004",
810 | "shortcode": "mahjong",
811 | "description": "MAHJONG TILE RED DRAGON",
812 | "category": "folderol"
813 | },
814 | {
815 | "name": "black_joker",
816 | "unicode": "1F0CF",
817 | "shortcode": "black_joker",
818 | "description": "PLAYING CARD BLACK JOKER",
819 | "category": "folderol"
820 | },
821 | {
822 | "name": "a",
823 | "unicode": "1F170",
824 | "shortcode": "a",
825 | "description": "NEGATIVE SQUARED LATIN CAPITAL LETTER A",
826 | "category": "folderol"
827 | },
828 | {
829 | "name": "b",
830 | "unicode": "1F171",
831 | "shortcode": "b",
832 | "description": "NEGATIVE SQUARED LATIN CAPITAL LETTER B",
833 | "category": "folderol"
834 | },
835 | {
836 | "name": "o2",
837 | "unicode": "1F17E",
838 | "shortcode": "o2",
839 | "description": "NEGATIVE SQUARED LATIN CAPITAL LETTER O",
840 | "category": "folderol"
841 | },
842 | {
843 | "name": "parking",
844 | "unicode": "1F17F",
845 | "shortcode": "parking",
846 | "description": "NEGATIVE SQUARED LATIN CAPITAL LETTER P",
847 | "category": "folderol"
848 | },
849 | {
850 | "name": "ab",
851 | "unicode": "1F18E",
852 | "shortcode": "ab",
853 | "description": "NEGATIVE SQUARED AB",
854 | "category": "folderol"
855 | },
856 | {
857 | "name": "cl",
858 | "unicode": "1F191",
859 | "shortcode": "cl",
860 | "description": "SQUARED CL",
861 | "category": "folderol"
862 | },
863 | {
864 | "name": "cool",
865 | "unicode": "1F192",
866 | "shortcode": "cool",
867 | "description": "SQUARED COOL",
868 | "category": "folderol"
869 | },
870 | {
871 | "name": "free",
872 | "unicode": "1F193",
873 | "shortcode": "free",
874 | "description": "SQUARED FREE",
875 | "category": "folderol"
876 | },
877 | {
878 | "name": "id",
879 | "unicode": "1F194",
880 | "shortcode": "id",
881 | "description": "SQUARED ID",
882 | "category": "folderol"
883 | },
884 | {
885 | "name": "new",
886 | "unicode": "1F195",
887 | "shortcode": "new",
888 | "description": "SQUARED NEW",
889 | "category": "folderol"
890 | },
891 | {
892 | "name": "ng",
893 | "unicode": "1F196",
894 | "shortcode": "ng",
895 | "description": "SQUARED NG",
896 | "category": "folderol"
897 | },
898 | {
899 | "name": "ok",
900 | "unicode": "1F197",
901 | "shortcode": "ok",
902 | "description": "SQUARED OK",
903 | "category": "folderol"
904 | },
905 | {
906 | "name": "sos",
907 | "unicode": "1F198",
908 | "shortcode": "sos",
909 | "description": "SQUARED SOS",
910 | "category": "folderol"
911 | },
912 | {
913 | "name": "up",
914 | "unicode": "1F199",
915 | "shortcode": "up",
916 | "description": "SQUARED UP WITH EXCLAMATION MARK",
917 | "category": "folderol"
918 | },
919 | {
920 | "name": "vs",
921 | "unicode": "1F19A",
922 | "shortcode": "vs",
923 | "description": "SQUARED VS",
924 | "category": "folderol"
925 | },
926 | {
927 | "name": "koko",
928 | "unicode": "1F201",
929 | "shortcode": "koko",
930 | "description": "SQUARED KATAKANA KOKO",
931 | "category": "folderol"
932 | },
933 | {
934 | "name": "sa",
935 | "unicode": "1F202",
936 | "shortcode": "sa",
937 | "description": "SQUARED KATAKANA SA",
938 | "category": "folderol"
939 | },
940 | {
941 | "name": "u7121",
942 | "unicode": "1F21A",
943 | "shortcode": "u7121",
944 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-7121",
945 | "category": "folderol"
946 | },
947 | {
948 | "name": "u6307",
949 | "unicode": "1F22F",
950 | "shortcode": "u6307",
951 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-6307",
952 | "category": "folderol"
953 | },
954 | {
955 | "name": "u7981",
956 | "unicode": "1F232",
957 | "shortcode": "u7981",
958 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-7981",
959 | "category": "folderol"
960 | },
961 | {
962 | "name": "u7a7a",
963 | "unicode": "1F233",
964 | "shortcode": "u7a7a",
965 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-7A7A",
966 | "category": "folderol"
967 | },
968 | {
969 | "name": "u5408",
970 | "unicode": "1F234",
971 | "shortcode": "u5408",
972 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-5408",
973 | "category": "folderol"
974 | },
975 | {
976 | "name": "u6e80",
977 | "unicode": "1F235",
978 | "shortcode": "u6e80",
979 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-6E80",
980 | "category": "folderol"
981 | },
982 | {
983 | "name": "u6709",
984 | "unicode": "1F236",
985 | "shortcode": "u6709",
986 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-6709",
987 | "category": "folderol"
988 | },
989 | {
990 | "name": "u6708",
991 | "unicode": "1F237",
992 | "shortcode": "u6708",
993 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-6708",
994 | "category": "folderol"
995 | },
996 | {
997 | "name": "u7533",
998 | "unicode": "1F238",
999 | "shortcode": "u7533",
1000 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-7533",
1001 | "category": "folderol"
1002 | },
1003 | {
1004 | "name": "u5272",
1005 | "unicode": "1F239",
1006 | "shortcode": "u5272",
1007 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-5272",
1008 | "category": "folderol"
1009 | },
1010 | {
1011 | "name": "u55b6",
1012 | "unicode": "1F23A",
1013 | "shortcode": "u55b6",
1014 | "description": "SQUARED CJK UNIFIED IDEOGRAPH-55B6",
1015 | "category": "folderol"
1016 | },
1017 | {
1018 | "name": "ideograph_advantage",
1019 | "unicode": "1F250",
1020 | "shortcode": "ideograph_advantage",
1021 | "description": "CIRCLED IDEOGRAPH ADVANTAGE",
1022 | "category": "folderol"
1023 | },
1024 | {
1025 | "name": "accept",
1026 | "unicode": "1F251",
1027 | "shortcode": "accept",
1028 | "description": "CIRCLED IDEOGRAPH ACCEPT",
1029 | "category": "folderol"
1030 | },
1031 | {
1032 | "name": "cyclone",
1033 | "unicode": "1F300",
1034 | "shortcode": "cyclone",
1035 | "description": "CYCLONE",
1036 | "category": "thing"
1037 | },
1038 | {
1039 | "name": "foggy",
1040 | "unicode": "1F301",
1041 | "shortcode": "foggy",
1042 | "description": "FOGGY",
1043 | "category": "thing"
1044 | },
1045 | {
1046 | "name": "closed_umbrella",
1047 | "unicode": "1F302",
1048 | "shortcode": "closed_umbrella",
1049 | "description": "CLOSED UMBRELLA",
1050 | "category": "thing"
1051 | },
1052 | {
1053 | "name": "night_with_stars",
1054 | "unicode": "1F303",
1055 | "shortcode": "night_with_stars",
1056 | "description": "NIGHT WITH STARS",
1057 | "category": "thing"
1058 | },
1059 | {
1060 | "name": "sunrise_over_mountains",
1061 | "unicode": "1F304",
1062 | "shortcode": "sunrise_over_mountains",
1063 | "description": "SUNRISE OVER MOUNTAINS",
1064 | "category": "thing"
1065 | },
1066 | {
1067 | "name": "sunrise",
1068 | "unicode": "1F305",
1069 | "shortcode": "sunrise",
1070 | "description": "SUNRISE",
1071 | "category": "thing"
1072 | },
1073 | {
1074 | "name": "city_sunset",
1075 | "unicode": "1F306",
1076 | "shortcode": "city_sunset",
1077 | "description": "CITYSCAPE AT DUSK",
1078 | "category": "thing"
1079 | },
1080 | {
1081 | "name": "city_sunrise",
1082 | "unicode": "1F307",
1083 | "shortcode": "city_sunrise",
1084 | "description": "SUNSET OVER BUILDINGS",
1085 | "category": "thing"
1086 | },
1087 | {
1088 | "name": "rainbow",
1089 | "unicode": "1F308",
1090 | "shortcode": "rainbow",
1091 | "description": "RAINBOW",
1092 | "category": "thing"
1093 | },
1094 | {
1095 | "name": "bridge_at_night",
1096 | "unicode": "1F309",
1097 | "shortcode": "bridge_at_night",
1098 | "description": "BRIDGE AT NIGHT",
1099 | "category": "thing"
1100 | },
1101 | {
1102 | "name": "ocean",
1103 | "unicode": "1F30A",
1104 | "shortcode": "ocean",
1105 | "description": "WATER WAVE",
1106 | "category": "thing"
1107 | },
1108 | {
1109 | "name": "volcano",
1110 | "unicode": "1F30B",
1111 | "shortcode": "volcano",
1112 | "description": "VOLCANO",
1113 | "category": "thing"
1114 | },
1115 | {
1116 | "name": "milky_way",
1117 | "unicode": "1F30C",
1118 | "shortcode": "milky_way",
1119 | "description": "MILKY WAY",
1120 | "category": "thing"
1121 | },
1122 | {
1123 | "name": "earth_africa",
1124 | "unicode": "1F30D",
1125 | "shortcode": "earth_africa",
1126 | "description": "EARTH GLOBE EUROPE-AFRICA",
1127 | "category": "thing"
1128 | },
1129 | {
1130 | "name": "earth_americas",
1131 | "unicode": "1F30E",
1132 | "shortcode": "earth_americas",
1133 | "description": "EARTH GLOBE AMERICAS",
1134 | "category": "thing"
1135 | },
1136 | {
1137 | "name": "earth_asia",
1138 | "unicode": "1F30F",
1139 | "shortcode": "earth_asia",
1140 | "description": "EARTH GLOBE ASIA-AUSTRALIA",
1141 | "category": "thing"
1142 | },
1143 | {
1144 | "name": "globe_with_meridians",
1145 | "unicode": "1F310",
1146 | "shortcode": "globe_with_meridians",
1147 | "description": "GLOBE WITH MERIDIANS",
1148 | "category": "thing"
1149 | },
1150 | {
1151 | "name": "new_moon",
1152 | "unicode": "1F311",
1153 | "shortcode": "new_moon",
1154 | "description": "NEW MOON SYMBOL",
1155 | "category": "thing"
1156 | },
1157 | {
1158 | "name": "waxing_crescent_moon",
1159 | "unicode": "1F312",
1160 | "shortcode": "waxing_crescent_moon",
1161 | "description": "WAXING CRESCENT MOON SYMBOL",
1162 | "category": "thing"
1163 | },
1164 | {
1165 | "name": "first_quarter_moon",
1166 | "unicode": "1F313",
1167 | "shortcode": "first_quarter_moon",
1168 | "description": "FIRST QUARTER MOON SYMBOL",
1169 | "category": "thing"
1170 | },
1171 | {
1172 | "name": "moon",
1173 | "unicode": "1F314",
1174 | "shortcode": "moon",
1175 | "description": "WAXING GIBBOUS MOON SYMBOL",
1176 | "category": "thing"
1177 | },
1178 | {
1179 | "name": "full_moon",
1180 | "unicode": "1F315",
1181 | "shortcode": "full_moon",
1182 | "description": "FULL MOON SYMBOL",
1183 | "category": "thing"
1184 | },
1185 | {
1186 | "name": "waning_gibbous_moon",
1187 | "unicode": "1F316",
1188 | "shortcode": "waning_gibbous_moon",
1189 | "description": "WANING GIBBOUS MOON SYMBOL",
1190 | "category": "thing"
1191 | },
1192 | {
1193 | "name": "last_quarter_moon",
1194 | "unicode": "1F317",
1195 | "shortcode": "last_quarter_moon",
1196 | "description": "LAST QUARTER MOON SYMBOL",
1197 | "category": "thing"
1198 | },
1199 | {
1200 | "name": "waning_crescent_moon",
1201 | "unicode": "1F318",
1202 | "shortcode": "waning_crescent_moon",
1203 | "description": "WANING CRESCENT MOON SYMBOL",
1204 | "category": "thing"
1205 | },
1206 | {
1207 | "name": "crescent_moon",
1208 | "unicode": "1F319",
1209 | "shortcode": "crescent_moon",
1210 | "description": "CRESCENT MOON",
1211 | "category": "thing"
1212 | },
1213 | {
1214 | "name": "new_moon_with_face",
1215 | "unicode": "1F31A",
1216 | "shortcode": "new_moon_with_face",
1217 | "description": "NEW MOON WITH FACE",
1218 | "category": "thing"
1219 | },
1220 | {
1221 | "name": "first_quarter_moon_with_face",
1222 | "unicode": "1F31B",
1223 | "shortcode": "first_quarter_moon_with_face",
1224 | "description": "FIRST QUARTER MOON WITH FACE",
1225 | "category": "thing"
1226 | },
1227 | {
1228 | "name": "last_quarter_moon_with_face",
1229 | "unicode": "1F31C",
1230 | "shortcode": "last_quarter_moon_with_face",
1231 | "description": "LAST QUARTER MOON WITH FACE",
1232 | "category": "thing"
1233 | },
1234 | {
1235 | "name": "full_moon_with_face",
1236 | "unicode": "1F31D",
1237 | "shortcode": "full_moon_with_face",
1238 | "description": "FULL MOON WITH FACE",
1239 | "category": "thing"
1240 | },
1241 | {
1242 | "name": "sun_with_face",
1243 | "unicode": "1F31E",
1244 | "shortcode": "sun_with_face",
1245 | "description": "SUN WITH FACE",
1246 | "category": "thing"
1247 | },
1248 | {
1249 | "name": "star2",
1250 | "unicode": "1F31F",
1251 | "shortcode": "star2",
1252 | "description": "GLOWING STAR",
1253 | "category": "thing"
1254 | },
1255 | {
1256 | "name": "stars",
1257 | "unicode": "1F320",
1258 | "shortcode": "stars",
1259 | "description": "SHOOTING STAR",
1260 | "category": "thing"
1261 | },
1262 | {
1263 | "name": "chestnut",
1264 | "unicode": "1F330",
1265 | "shortcode": "chestnut",
1266 | "description": "CHESTNUT",
1267 | "category": "thing"
1268 | },
1269 | {
1270 | "name": "seedling",
1271 | "unicode": "1F331",
1272 | "shortcode": "seedling",
1273 | "description": "SEEDLING",
1274 | "category": "thing"
1275 | },
1276 | {
1277 | "name": "evergreen_tree",
1278 | "unicode": "1F332",
1279 | "shortcode": "evergreen_tree",
1280 | "description": "EVERGREEN TREE",
1281 | "category": "thing"
1282 | },
1283 | {
1284 | "name": "deciduous_tree",
1285 | "unicode": "1F333",
1286 | "shortcode": "deciduous_tree",
1287 | "description": "DECIDUOUS TREE",
1288 | "category": "thing"
1289 | },
1290 | {
1291 | "name": "palm_tree",
1292 | "unicode": "1F334",
1293 | "shortcode": "palm_tree",
1294 | "description": "PALM TREE",
1295 | "category": "thing"
1296 | },
1297 | {
1298 | "name": "cactus",
1299 | "unicode": "1F335",
1300 | "shortcode": "cactus",
1301 | "description": "CACTUS",
1302 | "category": "thing"
1303 | },
1304 | {
1305 | "name": "tulip",
1306 | "unicode": "1F337",
1307 | "shortcode": "tulip",
1308 | "description": "TULIP",
1309 | "category": "thing"
1310 | },
1311 | {
1312 | "name": "cherry_blossom",
1313 | "unicode": "1F338",
1314 | "shortcode": "cherry_blossom",
1315 | "description": "CHERRY BLOSSOM",
1316 | "category": "thing"
1317 | },
1318 | {
1319 | "name": "rose",
1320 | "unicode": "1F339",
1321 | "shortcode": "rose",
1322 | "description": "ROSE",
1323 | "category": "thing"
1324 | },
1325 | {
1326 | "name": "hibiscus",
1327 | "unicode": "1F33A",
1328 | "shortcode": "hibiscus",
1329 | "description": "HIBISCUS",
1330 | "category": "thing"
1331 | },
1332 | {
1333 | "name": "sunflower",
1334 | "unicode": "1F33B",
1335 | "shortcode": "sunflower",
1336 | "description": "SUNFLOWER",
1337 | "category": "thing"
1338 | },
1339 | {
1340 | "name": "blossom",
1341 | "unicode": "1F33C",
1342 | "shortcode": "blossom",
1343 | "description": "BLOSSOM",
1344 | "category": "thing"
1345 | },
1346 | {
1347 | "name": "corn",
1348 | "unicode": "1F33D",
1349 | "shortcode": "corn",
1350 | "description": "EAR OF MAIZE",
1351 | "category": "thing"
1352 | },
1353 | {
1354 | "name": "ear_of_rice",
1355 | "unicode": "1F33E",
1356 | "shortcode": "ear_of_rice",
1357 | "description": "EAR OF RICE",
1358 | "category": "thing"
1359 | },
1360 | {
1361 | "name": "herb",
1362 | "unicode": "1F33F",
1363 | "shortcode": "herb",
1364 | "description": "HERB",
1365 | "category": "thing"
1366 | },
1367 | {
1368 | "name": "four_leaf_clover",
1369 | "unicode": "1F340",
1370 | "shortcode": "four_leaf_clover",
1371 | "description": "FOUR LEAF CLOVER",
1372 | "category": "thing"
1373 | },
1374 | {
1375 | "name": "maple_leaf",
1376 | "unicode": "1F341",
1377 | "shortcode": "maple_leaf",
1378 | "description": "MAPLE LEAF",
1379 | "category": "thing"
1380 | },
1381 | {
1382 | "name": "fallen_leaf",
1383 | "unicode": "1F342",
1384 | "shortcode": "fallen_leaf",
1385 | "description": "FALLEN LEAF",
1386 | "category": "thing"
1387 | },
1388 | {
1389 | "name": "leaves",
1390 | "unicode": "1F343",
1391 | "shortcode": "leaves",
1392 | "description": "LEAF FLUTTERING IN WIND",
1393 | "category": "thing"
1394 | },
1395 | {
1396 | "name": "mushroom",
1397 | "unicode": "1F344",
1398 | "shortcode": "mushroom",
1399 | "description": "MUSHROOM",
1400 | "category": "food"
1401 | },
1402 | {
1403 | "name": "tomato",
1404 | "unicode": "1F345",
1405 | "shortcode": "tomato",
1406 | "description": "TOMATO",
1407 | "category": "food"
1408 | },
1409 | {
1410 | "name": "eggplant",
1411 | "unicode": "1F346",
1412 | "shortcode": "eggplant",
1413 | "description": "AUBERGINE",
1414 | "category": "food"
1415 | },
1416 | {
1417 | "name": "grapes",
1418 | "unicode": "1F347",
1419 | "shortcode": "grapes",
1420 | "description": "GRAPES",
1421 | "category": "food"
1422 | },
1423 | {
1424 | "name": "melon",
1425 | "unicode": "1F348",
1426 | "shortcode": "melon",
1427 | "description": "MELON",
1428 | "category": "food"
1429 | },
1430 | {
1431 | "name": "watermelon",
1432 | "unicode": "1F349",
1433 | "shortcode": "watermelon",
1434 | "description": "WATERMELON",
1435 | "category": "food"
1436 | },
1437 | {
1438 | "name": "tangerine",
1439 | "unicode": "1F34A",
1440 | "shortcode": "tangerine",
1441 | "description": "TANGERINE",
1442 | "category": "food"
1443 | },
1444 | {
1445 | "name": "lemon",
1446 | "unicode": "1F34B",
1447 | "shortcode": "lemon",
1448 | "description": "LEMON",
1449 | "category": "food"
1450 | },
1451 | {
1452 | "name": "banana",
1453 | "unicode": "1F34C",
1454 | "shortcode": "banana",
1455 | "description": "BANANA",
1456 | "category": "food"
1457 | },
1458 | {
1459 | "name": "pineapple",
1460 | "unicode": "1F34D",
1461 | "shortcode": "pineapple",
1462 | "description": "PINEAPPLE",
1463 | "category": "food"
1464 | },
1465 | {
1466 | "name": "apple",
1467 | "unicode": "1F34E",
1468 | "shortcode": "apple",
1469 | "description": "RED APPLE",
1470 | "category": "food"
1471 | },
1472 | {
1473 | "name": "green_apple",
1474 | "unicode": "1F34F",
1475 | "shortcode": "green_apple",
1476 | "description": "GREEN APPLE",
1477 | "category": "food"
1478 | },
1479 | {
1480 | "name": "pear",
1481 | "unicode": "1F350",
1482 | "shortcode": "pear",
1483 | "description": "PEAR",
1484 | "category": "food"
1485 | },
1486 | {
1487 | "name": "peach",
1488 | "unicode": "1F351",
1489 | "shortcode": "peach",
1490 | "description": "PEACH",
1491 | "category": "food"
1492 | },
1493 | {
1494 | "name": "cherries",
1495 | "unicode": "1F352",
1496 | "shortcode": "cherries",
1497 | "description": "CHERRIES",
1498 | "category": "food"
1499 | },
1500 | {
1501 | "name": "strawberry",
1502 | "unicode": "1F353",
1503 | "shortcode": "strawberry",
1504 | "description": "STRAWBERRY",
1505 | "category": "food"
1506 | },
1507 | {
1508 | "name": "hamburger",
1509 | "unicode": "1F354",
1510 | "shortcode": "hamburger",
1511 | "description": "HAMBURGER",
1512 | "category": "food"
1513 | },
1514 | {
1515 | "name": "pizza",
1516 | "unicode": "1F355",
1517 | "shortcode": "pizza",
1518 | "description": "SLICE OF PIZZA",
1519 | "category": "food"
1520 | },
1521 | {
1522 | "name": "meat_on_bone",
1523 | "unicode": "1F356",
1524 | "shortcode": "meat_on_bone",
1525 | "description": "MEAT ON BONE",
1526 | "category": "food"
1527 | },
1528 | {
1529 | "name": "poultry_leg",
1530 | "unicode": "1F357",
1531 | "shortcode": "poultry_leg",
1532 | "description": "POULTRY LEG",
1533 | "category": "food"
1534 | },
1535 | {
1536 | "name": "rice_cracker",
1537 | "unicode": "1F358",
1538 | "shortcode": "rice_cracker",
1539 | "description": "RICE CRACKER",
1540 | "category": "food"
1541 | },
1542 | {
1543 | "name": "rice_ball",
1544 | "unicode": "1F359",
1545 | "shortcode": "rice_ball",
1546 | "description": "RICE BALL",
1547 | "category": "food"
1548 | },
1549 | {
1550 | "name": "rice",
1551 | "unicode": "1F35A",
1552 | "shortcode": "rice",
1553 | "description": "COOKED RICE",
1554 | "category": "food"
1555 | },
1556 | {
1557 | "name": "curry",
1558 | "unicode": "1F35B",
1559 | "shortcode": "curry",
1560 | "description": "CURRY AND RICE",
1561 | "category": "food"
1562 | },
1563 | {
1564 | "name": "ramen",
1565 | "unicode": "1F35C",
1566 | "shortcode": "ramen",
1567 | "description": "STEAMING BOWL",
1568 | "category": "food"
1569 | },
1570 | {
1571 | "name": "spaghetti",
1572 | "unicode": "1F35D",
1573 | "shortcode": "spaghetti",
1574 | "description": "SPAGHETTI",
1575 | "category": "food"
1576 | },
1577 | {
1578 | "name": "bread",
1579 | "unicode": "1F35E",
1580 | "shortcode": "bread",
1581 | "description": "BREAD",
1582 | "category": "food"
1583 | },
1584 | {
1585 | "name": "fries",
1586 | "unicode": "1F35F",
1587 | "shortcode": "fries",
1588 | "description": "FRENCH FRIES",
1589 | "category": "food"
1590 | },
1591 | {
1592 | "name": "sweet_potato",
1593 | "unicode": "1F360",
1594 | "shortcode": "sweet_potato",
1595 | "description": "ROASTED SWEET POTATO",
1596 | "category": "food"
1597 | },
1598 | {
1599 | "name": "dango",
1600 | "unicode": "1F361",
1601 | "shortcode": "dango",
1602 | "description": "DANGO",
1603 | "category": "food"
1604 | },
1605 | {
1606 | "name": "oden",
1607 | "unicode": "1F362",
1608 | "shortcode": "oden",
1609 | "description": "ODEN",
1610 | "category": "food"
1611 | },
1612 | {
1613 | "name": "sushi",
1614 | "unicode": "1F363",
1615 | "shortcode": "sushi",
1616 | "description": "SUSHI",
1617 | "category": "food"
1618 | },
1619 | {
1620 | "name": "fried_shrimp",
1621 | "unicode": "1F364",
1622 | "shortcode": "fried_shrimp",
1623 | "description": "FRIED SHRIMP",
1624 | "category": "food"
1625 | },
1626 | {
1627 | "name": "fish_cake",
1628 | "unicode": "1F365",
1629 | "shortcode": "fish_cake",
1630 | "description": "FISH CAKE WITH SWIRL DESIGN",
1631 | "category": "food"
1632 | },
1633 | {
1634 | "name": "icecream",
1635 | "unicode": "1F366",
1636 | "shortcode": "icecream",
1637 | "description": "SOFT ICE CREAM",
1638 | "category": "food"
1639 | },
1640 | {
1641 | "name": "shaved_ice",
1642 | "unicode": "1F367",
1643 | "shortcode": "shaved_ice",
1644 | "description": "SHAVED ICE",
1645 | "category": "food"
1646 | },
1647 | {
1648 | "name": "ice_cream",
1649 | "unicode": "1F368",
1650 | "shortcode": "ice_cream",
1651 | "description": "ICE CREAM",
1652 | "category": "food"
1653 | },
1654 | {
1655 | "name": "doughnut",
1656 | "unicode": "1F369",
1657 | "shortcode": "doughnut",
1658 | "description": "DOUGHNUT",
1659 | "category": "food"
1660 | },
1661 | {
1662 | "name": "cookie",
1663 | "unicode": "1F36A",
1664 | "shortcode": "cookie",
1665 | "description": "COOKIE",
1666 | "category": "food"
1667 | },
1668 | {
1669 | "name": "chocolate_bar",
1670 | "unicode": "1F36B",
1671 | "shortcode": "chocolate_bar",
1672 | "description": "CHOCOLATE BAR",
1673 | "category": "food"
1674 | },
1675 | {
1676 | "name": "candy",
1677 | "unicode": "1F36C",
1678 | "shortcode": "candy",
1679 | "description": "CANDY",
1680 | "category": "food"
1681 | },
1682 | {
1683 | "name": "lollipop",
1684 | "unicode": "1F36D",
1685 | "shortcode": "lollipop",
1686 | "description": "LOLLIPOP",
1687 | "category": "food"
1688 | },
1689 | {
1690 | "name": "custard",
1691 | "unicode": "1F36E",
1692 | "shortcode": "custard",
1693 | "description": "CUSTARD",
1694 | "category": "food"
1695 | },
1696 | {
1697 | "name": "honey_pot",
1698 | "unicode": "1F36F",
1699 | "shortcode": "honey_pot",
1700 | "description": "HONEY POT",
1701 | "category": "food"
1702 | },
1703 | {
1704 | "name": "cake",
1705 | "unicode": "1F370",
1706 | "shortcode": "cake",
1707 | "description": "SHORTCAKE",
1708 | "category": "food"
1709 | },
1710 | {
1711 | "name": "bento",
1712 | "unicode": "1F371",
1713 | "shortcode": "bento",
1714 | "description": "BENTO BOX",
1715 | "category": "food"
1716 | },
1717 | {
1718 | "name": "stew",
1719 | "unicode": "1F372",
1720 | "shortcode": "stew",
1721 | "description": "POT OF FOOD",
1722 | "category": "food"
1723 | },
1724 | {
1725 | "name": "egg",
1726 | "unicode": "1F373",
1727 | "shortcode": "egg",
1728 | "description": "COOKING",
1729 | "category": "food"
1730 | },
1731 | {
1732 | "name": "fork_and_knife",
1733 | "unicode": "1F374",
1734 | "shortcode": "fork_and_knife",
1735 | "description": "FORK AND KNIFE",
1736 | "category": "food"
1737 | },
1738 | {
1739 | "name": "tea",
1740 | "unicode": "1F375",
1741 | "shortcode": "tea",
1742 | "description": "TEACUP WITHOUT HANDLE",
1743 | "category": "food"
1744 | },
1745 | {
1746 | "name": "sake",
1747 | "unicode": "1F376",
1748 | "shortcode": "sake",
1749 | "description": "SAKE BOTTLE AND CUP",
1750 | "category": "food"
1751 | },
1752 | {
1753 | "name": "wine_glass",
1754 | "unicode": "1F377",
1755 | "shortcode": "wine_glass",
1756 | "description": "WINE GLASS",
1757 | "category": "food"
1758 | },
1759 | {
1760 | "name": "cocktail",
1761 | "unicode": "1F378",
1762 | "shortcode": "cocktail",
1763 | "description": "COCKTAIL GLASS",
1764 | "category": "food"
1765 | },
1766 | {
1767 | "name": "tropical_drink",
1768 | "unicode": "1F379",
1769 | "shortcode": "tropical_drink",
1770 | "description": "TROPICAL DRINK",
1771 | "category": "food"
1772 | },
1773 | {
1774 | "name": "beer",
1775 | "unicode": "1F37A",
1776 | "shortcode": "beer",
1777 | "description": "BEER MUG",
1778 | "category": "food"
1779 | },
1780 | {
1781 | "name": "beers",
1782 | "unicode": "1F37B",
1783 | "shortcode": "beers",
1784 | "description": "CLINKING BEER MUGS",
1785 | "category": "food"
1786 | },
1787 | {
1788 | "name": "baby_bottle",
1789 | "unicode": "1F37C",
1790 | "shortcode": "baby_bottle",
1791 | "description": "BABY BOTTLE",
1792 | "category": "food"
1793 | },
1794 | {
1795 | "name": "ribbon",
1796 | "unicode": "1F380",
1797 | "shortcode": "ribbon",
1798 | "description": "RIBBON",
1799 | "category": "thing"
1800 | },
1801 | {
1802 | "name": "gift",
1803 | "unicode": "1F381",
1804 | "shortcode": "gift",
1805 | "description": "WRAPPED PRESENT",
1806 | "category": "thing"
1807 | },
1808 | {
1809 | "name": "birthday",
1810 | "unicode": "1F382",
1811 | "shortcode": "birthday",
1812 | "description": "BIRTHDAY CAKE",
1813 | "category": "thing"
1814 | },
1815 | {
1816 | "name": "jack_o_lantern",
1817 | "unicode": "1F383",
1818 | "shortcode": "jack_o_lantern",
1819 | "description": "JACK-O-LANTERN",
1820 | "category": "thing"
1821 | },
1822 | {
1823 | "name": "christmas_tree",
1824 | "unicode": "1F384",
1825 | "shortcode": "christmas_tree",
1826 | "description": "CHRISTMAS TREE",
1827 | "category": "thing"
1828 | },
1829 | {
1830 | "name": "santa",
1831 | "unicode": "1F385",
1832 | "shortcode": "santa",
1833 | "description": "FATHER CHRISTMAS",
1834 | "category": "thing"
1835 | },
1836 | {
1837 | "name": "fireworks",
1838 | "unicode": "1F386",
1839 | "shortcode": "fireworks",
1840 | "description": "FIREWORKS",
1841 | "category": "thing"
1842 | },
1843 | {
1844 | "name": "sparkler",
1845 | "unicode": "1F387",
1846 | "shortcode": "sparkler",
1847 | "description": "FIREWORK SPARKLER",
1848 | "category": "thing"
1849 | },
1850 | {
1851 | "name": "balloon",
1852 | "unicode": "1F388",
1853 | "shortcode": "balloon",
1854 | "description": "BALLOON",
1855 | "category": "thing"
1856 | },
1857 | {
1858 | "name": "tada",
1859 | "unicode": "1F389",
1860 | "shortcode": "tada",
1861 | "description": "PARTY POPPER",
1862 | "category": "thing"
1863 | },
1864 | {
1865 | "name": "confetti_ball",
1866 | "unicode": "1F38A",
1867 | "shortcode": "confetti_ball",
1868 | "description": "CONFETTI BALL",
1869 | "category": "thing"
1870 | },
1871 | {
1872 | "name": "tanabata_tree",
1873 | "unicode": "1F38B",
1874 | "shortcode": "tanabata_tree",
1875 | "description": "TANABATA TREE",
1876 | "category": "thing"
1877 | },
1878 | {
1879 | "name": "crossed_flags",
1880 | "unicode": "1F38C",
1881 | "shortcode": "crossed_flags",
1882 | "description": "CROSSED FLAGS",
1883 | "category": "thing"
1884 | },
1885 | {
1886 | "name": "bamboo",
1887 | "unicode": "1F38D",
1888 | "shortcode": "bamboo",
1889 | "description": "PINE DECORATION",
1890 | "category": "thing"
1891 | },
1892 | {
1893 | "name": "dolls",
1894 | "unicode": "1F38E",
1895 | "shortcode": "dolls",
1896 | "description": "JAPANESE DOLLS",
1897 | "category": "thing"
1898 | },
1899 | {
1900 | "name": "flags",
1901 | "unicode": "1F38F",
1902 | "shortcode": "flags",
1903 | "description": "CARP STREAMER",
1904 | "category": "thing"
1905 | },
1906 | {
1907 | "name": "wind_chime",
1908 | "unicode": "1F390",
1909 | "shortcode": "wind_chime",
1910 | "description": "WIND CHIME",
1911 | "category": "thing"
1912 | },
1913 | {
1914 | "name": "rice_scene",
1915 | "unicode": "1F391",
1916 | "shortcode": "rice_scene",
1917 | "description": "MOON VIEWING CEREMONY",
1918 | "category": "thing"
1919 | },
1920 | {
1921 | "name": "school_satchel",
1922 | "unicode": "1F392",
1923 | "shortcode": "school_satchel",
1924 | "description": "SCHOOL SATCHEL",
1925 | "category": "thing"
1926 | },
1927 | {
1928 | "name": "mortar_board",
1929 | "unicode": "1F393",
1930 | "shortcode": "mortar_board",
1931 | "description": "GRADUATION CAP",
1932 | "category": "thing"
1933 | },
1934 | {
1935 | "name": "carousel_horse",
1936 | "unicode": "1F3A0",
1937 | "shortcode": "carousel_horse",
1938 | "description": "CAROUSEL HORSE",
1939 | "category": "thing"
1940 | },
1941 | {
1942 | "name": "ferris_wheel",
1943 | "unicode": "1F3A1",
1944 | "shortcode": "ferris_wheel",
1945 | "description": "FERRIS WHEEL",
1946 | "category": "thing"
1947 | },
1948 | {
1949 | "name": "roller_coaster",
1950 | "unicode": "1F3A2",
1951 | "shortcode": "roller_coaster",
1952 | "description": "ROLLER COASTER",
1953 | "category": "thing"
1954 | },
1955 | {
1956 | "name": "fishing_pole_and_fish",
1957 | "unicode": "1F3A3",
1958 | "shortcode": "fishing_pole_and_fish",
1959 | "description": "FISHING POLE AND FISH",
1960 | "category": "thing"
1961 | },
1962 | {
1963 | "name": "microphone",
1964 | "unicode": "1F3A4",
1965 | "shortcode": "microphone",
1966 | "description": "MICROPHONE",
1967 | "category": "thing"
1968 | },
1969 | {
1970 | "name": "movie_camera",
1971 | "unicode": "1F3A5",
1972 | "shortcode": "movie_camera",
1973 | "description": "MOVIE CAMERA",
1974 | "category": "thing"
1975 | },
1976 | {
1977 | "name": "cinema",
1978 | "unicode": "1F3A6",
1979 | "shortcode": "cinema",
1980 | "description": "CINEMA",
1981 | "category": "thing"
1982 | },
1983 | {
1984 | "name": "headphones",
1985 | "unicode": "1F3A7",
1986 | "shortcode": "headphones",
1987 | "description": "HEADPHONE",
1988 | "category": "thing"
1989 | },
1990 | {
1991 | "name": "art",
1992 | "unicode": "1F3A8",
1993 | "shortcode": "art",
1994 | "description": "ARTIST PALETTE",
1995 | "category": "thing"
1996 | },
1997 | {
1998 | "name": "tophat",
1999 | "unicode": "1F3A9",
2000 | "shortcode": "tophat",
2001 | "description": "TOP HAT",
2002 | "category": "thing"
2003 | },
2004 | {
2005 | "name": "circus_tent",
2006 | "unicode": "1F3AA",
2007 | "shortcode": "circus_tent",
2008 | "description": "CIRCUS TENT",
2009 | "category": "thing"
2010 | },
2011 | {
2012 | "name": "ticket",
2013 | "unicode": "1F3AB",
2014 | "shortcode": "ticket",
2015 | "description": "TICKET",
2016 | "category": "thing"
2017 | },
2018 | {
2019 | "name": "clapper",
2020 | "unicode": "1F3AC",
2021 | "shortcode": "clapper",
2022 | "description": "CLAPPER BOARD",
2023 | "category": "thing"
2024 | },
2025 | {
2026 | "name": "performing_arts",
2027 | "unicode": "1F3AD",
2028 | "shortcode": "performing_arts",
2029 | "description": "PERFORMING ARTS",
2030 | "category": "thing"
2031 | },
2032 | {
2033 | "name": "video_game",
2034 | "unicode": "1F3AE",
2035 | "shortcode": "video_game",
2036 | "description": "VIDEO GAME",
2037 | "category": "thing"
2038 | },
2039 | {
2040 | "name": "dart",
2041 | "unicode": "1F3AF",
2042 | "shortcode": "dart",
2043 | "description": "DIRECT HIT",
2044 | "category": "thing"
2045 | },
2046 | {
2047 | "name": "slot_machine",
2048 | "unicode": "1F3B0",
2049 | "shortcode": "slot_machine",
2050 | "description": "SLOT MACHINE",
2051 | "category": "thing"
2052 | },
2053 | {
2054 | "name": "8ball",
2055 | "unicode": "1F3B1",
2056 | "shortcode": "8ball",
2057 | "description": "BILLIARDS",
2058 | "category": "thing"
2059 | },
2060 | {
2061 | "name": "game_die",
2062 | "unicode": "1F3B2",
2063 | "shortcode": "game_die",
2064 | "description": "GAME DIE",
2065 | "category": "thing"
2066 | },
2067 | {
2068 | "name": "bowling",
2069 | "unicode": "1F3B3",
2070 | "shortcode": "bowling",
2071 | "description": "BOWLING",
2072 | "category": "thing"
2073 | },
2074 | {
2075 | "name": "flower_playing_cards",
2076 | "unicode": "1F3B4",
2077 | "shortcode": "flower_playing_cards",
2078 | "description": "FLOWER PLAYING CARDS",
2079 | "category": "thing"
2080 | },
2081 | {
2082 | "name": "musical_note",
2083 | "unicode": "1F3B5",
2084 | "shortcode": "musical_note",
2085 | "description": "MUSICAL NOTE",
2086 | "category": "thing"
2087 | },
2088 | {
2089 | "name": "notes",
2090 | "unicode": "1F3B6",
2091 | "shortcode": "notes",
2092 | "description": "MULTIPLE MUSICAL NOTES",
2093 | "category": "thing"
2094 | },
2095 | {
2096 | "name": "saxophone",
2097 | "unicode": "1F3B7",
2098 | "shortcode": "saxophone",
2099 | "description": "SAXOPHONE",
2100 | "category": "thing"
2101 | },
2102 | {
2103 | "name": "guitar",
2104 | "unicode": "1F3B8",
2105 | "shortcode": "guitar",
2106 | "description": "GUITAR",
2107 | "category": "thing"
2108 | },
2109 | {
2110 | "name": "musical_keyboard",
2111 | "unicode": "1F3B9",
2112 | "shortcode": "musical_keyboard",
2113 | "description": "MUSICAL KEYBOARD",
2114 | "category": "thing"
2115 | },
2116 | {
2117 | "name": "trumpet",
2118 | "unicode": "1F3BA",
2119 | "shortcode": "trumpet",
2120 | "description": "TRUMPET",
2121 | "category": "thing"
2122 | },
2123 | {
2124 | "name": "violin",
2125 | "unicode": "1F3BB",
2126 | "shortcode": "violin",
2127 | "description": "VIOLIN",
2128 | "category": "thing"
2129 | },
2130 | {
2131 | "name": "musical_score",
2132 | "unicode": "1F3BC",
2133 | "shortcode": "musical_score",
2134 | "description": "MUSICAL SCORE",
2135 | "category": "thing"
2136 | },
2137 | {
2138 | "name": "running_shirt_with_sash",
2139 | "unicode": "1F3BD",
2140 | "shortcode": "running_shirt_with_sash",
2141 | "description": "RUNNING SHIRT WITH SASH",
2142 | "category": "thing"
2143 | },
2144 | {
2145 | "name": "tennis",
2146 | "unicode": "1F3BE",
2147 | "shortcode": "tennis",
2148 | "description": "TENNIS RACQUET AND BALL",
2149 | "category": "thing"
2150 | },
2151 | {
2152 | "name": "ski",
2153 | "unicode": "1F3BF",
2154 | "shortcode": "ski",
2155 | "description": "SKI AND SKI BOOT",
2156 | "category": "thing"
2157 | },
2158 | {
2159 | "name": "basketball",
2160 | "unicode": "1F3C0",
2161 | "shortcode": "basketball",
2162 | "description": "BASKETBALL AND HOOP",
2163 | "category": "thing"
2164 | },
2165 | {
2166 | "name": "checkered_flag",
2167 | "unicode": "1F3C1",
2168 | "shortcode": "checkered_flag",
2169 | "description": "CHEQUERED FLAG",
2170 | "category": "thing"
2171 | },
2172 | {
2173 | "name": "snowboarder",
2174 | "unicode": "1F3C2",
2175 | "shortcode": "snowboarder",
2176 | "description": "SNOWBOARDER",
2177 | "category": "people"
2178 | },
2179 | {
2180 | "name": "runner",
2181 | "unicode": "1F3C3",
2182 | "shortcode": "runner",
2183 | "description": "RUNNER",
2184 | "category": "people"
2185 | },
2186 | {
2187 | "name": "surfer",
2188 | "unicode": "1F3C4",
2189 | "shortcode": "surfer",
2190 | "description": "SURFER",
2191 | "category": "people"
2192 | },
2193 | {
2194 | "name": "trophy",
2195 | "unicode": "1F3C6",
2196 | "shortcode": "trophy",
2197 | "description": "TROPHY",
2198 | "category": "people"
2199 | },
2200 | {
2201 | "name": "horse_racing",
2202 | "unicode": "1F3C7",
2203 | "shortcode": "horse_racing",
2204 | "description": "HORSE RACING",
2205 | "category": "people"
2206 | },
2207 | {
2208 | "name": "football",
2209 | "unicode": "1F3C8",
2210 | "shortcode": "football",
2211 | "description": "AMERICAN FOOTBALL",
2212 | "category": "people"
2213 | },
2214 | {
2215 | "name": "rugby_football",
2216 | "unicode": "1F3C9",
2217 | "shortcode": "rugby_football",
2218 | "description": "RUGBY FOOTBALL",
2219 | "category": "people"
2220 | },
2221 | {
2222 | "name": "swimmer",
2223 | "unicode": "1F3CA",
2224 | "shortcode": "swimmer",
2225 | "description": "SWIMMER",
2226 | "category": "people"
2227 | },
2228 | {
2229 | "name": "house",
2230 | "unicode": "1F3E0",
2231 | "shortcode": "house",
2232 | "description": "HOUSE BUILDING",
2233 | "category": "travel"
2234 | },
2235 | {
2236 | "name": "house_with_garden",
2237 | "unicode": "1F3E1",
2238 | "shortcode": "house_with_garden",
2239 | "description": "HOUSE WITH GARDEN",
2240 | "category": "travel"
2241 | },
2242 | {
2243 | "name": "office",
2244 | "unicode": "1F3E2",
2245 | "shortcode": "office",
2246 | "description": "OFFICE BUILDING",
2247 | "category": "travel"
2248 | },
2249 | {
2250 | "name": "post_office",
2251 | "unicode": "1F3E3",
2252 | "shortcode": "post_office",
2253 | "description": "JAPANESE POST OFFICE",
2254 | "category": "travel"
2255 | },
2256 | {
2257 | "name": "european_post_office",
2258 | "unicode": "1F3E4",
2259 | "shortcode": "european_post_office",
2260 | "description": "EUROPEAN POST OFFICE",
2261 | "category": "travel"
2262 | },
2263 | {
2264 | "name": "hospital",
2265 | "unicode": "1F3E5",
2266 | "shortcode": "hospital",
2267 | "description": "HOSPITAL",
2268 | "category": "travel"
2269 | },
2270 | {
2271 | "name": "bank",
2272 | "unicode": "1F3E6",
2273 | "shortcode": "bank",
2274 | "description": "BANK",
2275 | "category": "travel"
2276 | },
2277 | {
2278 | "name": "atm",
2279 | "unicode": "1F3E7",
2280 | "shortcode": "atm",
2281 | "description": "AUTOMATED TELLER MACHINE",
2282 | "category": "travel"
2283 | },
2284 | {
2285 | "name": "hotel",
2286 | "unicode": "1F3E8",
2287 | "shortcode": "hotel",
2288 | "description": "HOTEL",
2289 | "category": "travel"
2290 | },
2291 | {
2292 | "name": "love_hotel",
2293 | "unicode": "1F3E9",
2294 | "shortcode": "love_hotel",
2295 | "description": "LOVE HOTEL",
2296 | "category": "travel"
2297 | },
2298 | {
2299 | "name": "convenience_store",
2300 | "unicode": "1F3EA",
2301 | "shortcode": "convenience_store",
2302 | "description": "CONVENIENCE STORE",
2303 | "category": "travel"
2304 | },
2305 | {
2306 | "name": "school",
2307 | "unicode": "1F3EB",
2308 | "shortcode": "school",
2309 | "description": "SCHOOL",
2310 | "category": "travel"
2311 | },
2312 | {
2313 | "name": "department_store",
2314 | "unicode": "1F3EC",
2315 | "shortcode": "department_store",
2316 | "description": "DEPARTMENT STORE",
2317 | "category": "travel"
2318 | },
2319 | {
2320 | "name": "factory",
2321 | "unicode": "1F3ED",
2322 | "shortcode": "factory",
2323 | "description": "FACTORY",
2324 | "category": "travel"
2325 | },
2326 | {
2327 | "name": "izakaya_lantern",
2328 | "unicode": "1F3EE",
2329 | "shortcode": "izakaya_lantern",
2330 | "description": "IZAKAYA LANTERN",
2331 | "category": "travel"
2332 | },
2333 | {
2334 | "name": "japanese_castle",
2335 | "unicode": "1F3EF",
2336 | "shortcode": "japanese_castle",
2337 | "description": "JAPANESE CASTLE",
2338 | "category": "travel"
2339 | },
2340 | {
2341 | "name": "european_castle",
2342 | "unicode": "1F3F0",
2343 | "shortcode": "european_castle",
2344 | "description": "EUROPEAN CASTLE",
2345 | "category": "travel"
2346 | },
2347 | {
2348 | "name": "rat",
2349 | "unicode": "1F400",
2350 | "shortcode": "rat",
2351 | "description": "RAT",
2352 | "category": "animal"
2353 | },
2354 | {
2355 | "name": "mouse2",
2356 | "unicode": "1F401",
2357 | "shortcode": "mouse2",
2358 | "description": "MOUSE",
2359 | "category": "animal"
2360 | },
2361 | {
2362 | "name": "ox",
2363 | "unicode": "1F402",
2364 | "shortcode": "ox",
2365 | "description": "OX",
2366 | "category": "animal"
2367 | },
2368 | {
2369 | "name": "water_buffalo",
2370 | "unicode": "1F403",
2371 | "shortcode": "water_buffalo",
2372 | "description": "WATER BUFFALO",
2373 | "category": "animal"
2374 | },
2375 | {
2376 | "name": "cow2",
2377 | "unicode": "1F404",
2378 | "shortcode": "cow2",
2379 | "description": "COW",
2380 | "category": "animal"
2381 | },
2382 | {
2383 | "name": "tiger2",
2384 | "unicode": "1F405",
2385 | "shortcode": "tiger2",
2386 | "description": "TIGER",
2387 | "category": "animal"
2388 | },
2389 | {
2390 | "name": "leopard",
2391 | "unicode": "1F406",
2392 | "shortcode": "leopard",
2393 | "description": "LEOPARD",
2394 | "category": "animal"
2395 | },
2396 | {
2397 | "name": "rabbit2",
2398 | "unicode": "1F407",
2399 | "shortcode": "rabbit2",
2400 | "description": "RABBIT",
2401 | "category": "animal"
2402 | },
2403 | {
2404 | "name": "cat2",
2405 | "unicode": "1F408",
2406 | "shortcode": "cat2",
2407 | "description": "CAT",
2408 | "category": "animal"
2409 | },
2410 | {
2411 | "name": "dragon",
2412 | "unicode": "1F409",
2413 | "shortcode": "dragon",
2414 | "description": "DRAGON",
2415 | "category": "animal"
2416 | },
2417 | {
2418 | "name": "crocodile",
2419 | "unicode": "1F40A",
2420 | "shortcode": "crocodile",
2421 | "description": "CROCODILE",
2422 | "category": "animal"
2423 | },
2424 | {
2425 | "name": "whale2",
2426 | "unicode": "1F40B",
2427 | "shortcode": "whale2",
2428 | "description": "WHALE",
2429 | "category": "animal"
2430 | },
2431 | {
2432 | "name": "snail",
2433 | "unicode": "1F40C",
2434 | "shortcode": "snail",
2435 | "description": "SNAIL",
2436 | "category": "animal"
2437 | },
2438 | {
2439 | "name": "snake",
2440 | "unicode": "1F40D",
2441 | "shortcode": "snake",
2442 | "description": "SNAKE",
2443 | "category": "animal"
2444 | },
2445 | {
2446 | "name": "racehorse",
2447 | "unicode": "1F40E",
2448 | "shortcode": "racehorse",
2449 | "description": "HORSE",
2450 | "category": "animal"
2451 | },
2452 | {
2453 | "name": "ram",
2454 | "unicode": "1F40F",
2455 | "shortcode": "ram",
2456 | "description": "RAM",
2457 | "category": "animal"
2458 | },
2459 | {
2460 | "name": "goat",
2461 | "unicode": "1F410",
2462 | "shortcode": "goat",
2463 | "description": "GOAT",
2464 | "category": "animal"
2465 | },
2466 | {
2467 | "name": "sheep",
2468 | "unicode": "1F411",
2469 | "shortcode": "sheep",
2470 | "description": "SHEEP",
2471 | "category": "animal"
2472 | },
2473 | {
2474 | "name": "monkey",
2475 | "unicode": "1F412",
2476 | "shortcode": "monkey",
2477 | "description": "MONKEY",
2478 | "category": "animal"
2479 | },
2480 | {
2481 | "name": "rooster",
2482 | "unicode": "1F413",
2483 | "shortcode": "rooster",
2484 | "description": "ROOSTER",
2485 | "category": "animal"
2486 | },
2487 | {
2488 | "name": "chicken",
2489 | "unicode": "1F414",
2490 | "shortcode": "chicken",
2491 | "description": "CHICKEN",
2492 | "category": "animal"
2493 | },
2494 | {
2495 | "name": "dog2",
2496 | "unicode": "1F415",
2497 | "shortcode": "dog2",
2498 | "description": "DOG",
2499 | "category": "animal"
2500 | },
2501 | {
2502 | "name": "pig2",
2503 | "unicode": "1F416",
2504 | "shortcode": "pig2",
2505 | "description": "PIG",
2506 | "category": "animal"
2507 | },
2508 | {
2509 | "name": "boar",
2510 | "unicode": "1F417",
2511 | "shortcode": "boar",
2512 | "description": "BOAR",
2513 | "category": "animal"
2514 | },
2515 | {
2516 | "name": "elephant",
2517 | "unicode": "1F418",
2518 | "shortcode": "elephant",
2519 | "description": "ELEPHANT",
2520 | "category": "animal"
2521 | },
2522 | {
2523 | "name": "octopus",
2524 | "unicode": "1F419",
2525 | "shortcode": "octopus",
2526 | "description": "OCTOPUS",
2527 | "category": "animal"
2528 | },
2529 | {
2530 | "name": "shell",
2531 | "unicode": "1F41A",
2532 | "shortcode": "shell",
2533 | "description": "SPIRAL SHELL",
2534 | "category": "animal"
2535 | },
2536 | {
2537 | "name": "bug",
2538 | "unicode": "1F41B",
2539 | "shortcode": "bug",
2540 | "description": "BUG",
2541 | "category": "animal"
2542 | },
2543 | {
2544 | "name": "ant",
2545 | "unicode": "1F41C",
2546 | "shortcode": "ant",
2547 | "description": "ANT",
2548 | "category": "animal"
2549 | },
2550 | {
2551 | "name": "bee",
2552 | "unicode": "1F41D",
2553 | "shortcode": "bee",
2554 | "description": "HONEYBEE",
2555 | "category": "animal"
2556 | },
2557 | {
2558 | "name": "beetle",
2559 | "unicode": "1F41E",
2560 | "shortcode": "beetle",
2561 | "description": "LADY BEETLE",
2562 | "category": "animal"
2563 | },
2564 | {
2565 | "name": "fish",
2566 | "unicode": "1F41F",
2567 | "shortcode": "fish",
2568 | "description": "FISH",
2569 | "category": "animal"
2570 | },
2571 | {
2572 | "name": "tropical_fish",
2573 | "unicode": "1F420",
2574 | "shortcode": "tropical_fish",
2575 | "description": "TROPICAL FISH",
2576 | "category": "animal"
2577 | },
2578 | {
2579 | "name": "blowfish",
2580 | "unicode": "1F421",
2581 | "shortcode": "blowfish",
2582 | "description": "BLOWFISH",
2583 | "category": "animal"
2584 | },
2585 | {
2586 | "name": "turtle",
2587 | "unicode": "1F422",
2588 | "shortcode": "turtle",
2589 | "description": "TURTLE",
2590 | "category": "animal"
2591 | },
2592 | {
2593 | "name": "hatching_chick",
2594 | "unicode": "1F423",
2595 | "shortcode": "hatching_chick",
2596 | "description": "HATCHING CHICK",
2597 | "category": "animal"
2598 | },
2599 | {
2600 | "name": "baby_chick",
2601 | "unicode": "1F424",
2602 | "shortcode": "baby_chick",
2603 | "description": "BABY CHICK",
2604 | "category": "animal"
2605 | },
2606 | {
2607 | "name": "hatched_chick",
2608 | "unicode": "1F425",
2609 | "shortcode": "hatched_chick",
2610 | "description": "FRONT-FACING BABY CHICK",
2611 | "category": "animal"
2612 | },
2613 | {
2614 | "name": "bird",
2615 | "unicode": "1F426",
2616 | "shortcode": "bird",
2617 | "description": "BIRD",
2618 | "category": "animal"
2619 | },
2620 | {
2621 | "name": "penguin",
2622 | "unicode": "1F427",
2623 | "shortcode": "penguin",
2624 | "description": "PENGUIN",
2625 | "category": "animal"
2626 | },
2627 | {
2628 | "name": "koala",
2629 | "unicode": "1F428",
2630 | "shortcode": "koala",
2631 | "description": "KOALA",
2632 | "category": "animal"
2633 | },
2634 | {
2635 | "name": "poodle",
2636 | "unicode": "1F429",
2637 | "shortcode": "poodle",
2638 | "description": "POODLE",
2639 | "category": "animal"
2640 | },
2641 | {
2642 | "name": "dromedary_camel",
2643 | "unicode": "1F42A",
2644 | "shortcode": "dromedary_camel",
2645 | "description": "DROMEDARY CAMEL",
2646 | "category": "animal"
2647 | },
2648 | {
2649 | "name": "camel",
2650 | "unicode": "1F42B",
2651 | "shortcode": "camel",
2652 | "description": "BACTRIAN CAMEL",
2653 | "category": "animal"
2654 | },
2655 | {
2656 | "name": "dolphin",
2657 | "unicode": "1F42C",
2658 | "shortcode": "dolphin",
2659 | "description": "DOLPHIN",
2660 | "category": "animal"
2661 | },
2662 | {
2663 | "name": "mouse",
2664 | "unicode": "1F42D",
2665 | "shortcode": "mouse",
2666 | "description": "MOUSE FACE",
2667 | "category": "animal"
2668 | },
2669 | {
2670 | "name": "cow",
2671 | "unicode": "1F42E",
2672 | "shortcode": "cow",
2673 | "description": "COW FACE",
2674 | "category": "animal"
2675 | },
2676 | {
2677 | "name": "tiger",
2678 | "unicode": "1F42F",
2679 | "shortcode": "tiger",
2680 | "description": "TIGER FACE",
2681 | "category": "animal"
2682 | },
2683 | {
2684 | "name": "rabbit",
2685 | "unicode": "1F430",
2686 | "shortcode": "rabbit",
2687 | "description": "RABBIT FACE",
2688 | "category": "animal"
2689 | },
2690 | {
2691 | "name": "cat",
2692 | "unicode": "1F431",
2693 | "shortcode": "cat",
2694 | "description": "CAT FACE",
2695 | "category": "animal"
2696 | },
2697 | {
2698 | "name": "dragon_face",
2699 | "unicode": "1F432",
2700 | "shortcode": "dragon_face",
2701 | "description": "DRAGON FACE",
2702 | "category": "animal"
2703 | },
2704 | {
2705 | "name": "whale",
2706 | "unicode": "1F433",
2707 | "shortcode": "whale",
2708 | "description": "SPOUTING WHALE",
2709 | "category": "animal"
2710 | },
2711 | {
2712 | "name": "horse",
2713 | "unicode": "1F434",
2714 | "shortcode": "horse",
2715 | "description": "HORSE FACE",
2716 | "category": "animal"
2717 | },
2718 | {
2719 | "name": "monkey_face",
2720 | "unicode": "1F435",
2721 | "shortcode": "monkey_face",
2722 | "description": "MONKEY FACE",
2723 | "category": "animal"
2724 | },
2725 | {
2726 | "name": "dog",
2727 | "unicode": "1F436",
2728 | "shortcode": "dog",
2729 | "description": "DOG FACE",
2730 | "category": "animal"
2731 | },
2732 | {
2733 | "name": "pig",
2734 | "unicode": "1F437",
2735 | "shortcode": "pig",
2736 | "description": "PIG FACE",
2737 | "category": "animal"
2738 | },
2739 | {
2740 | "name": "frog",
2741 | "unicode": "1F438",
2742 | "shortcode": "frog",
2743 | "description": "FROG FACE",
2744 | "category": "animal"
2745 | },
2746 | {
2747 | "name": "hamster",
2748 | "unicode": "1F439",
2749 | "shortcode": "hamster",
2750 | "description": "HAMSTER FACE",
2751 | "category": "animal"
2752 | },
2753 | {
2754 | "name": "wolf",
2755 | "unicode": "1F43A",
2756 | "shortcode": "wolf",
2757 | "description": "WOLF FACE",
2758 | "category": "animal"
2759 | },
2760 | {
2761 | "name": "bear",
2762 | "unicode": "1F43B",
2763 | "shortcode": "bear",
2764 | "description": "BEAR FACE",
2765 | "category": "animal"
2766 | },
2767 | {
2768 | "name": "panda_face",
2769 | "unicode": "1F43C",
2770 | "shortcode": "panda_face",
2771 | "description": "PANDA FACE",
2772 | "category": "animal"
2773 | },
2774 | {
2775 | "name": "pig_nose",
2776 | "unicode": "1F43D",
2777 | "shortcode": "pig_nose",
2778 | "description": "PIG NOSE",
2779 | "category": "animal"
2780 | },
2781 | {
2782 | "name": "feet",
2783 | "unicode": "1F43E",
2784 | "shortcode": "feet",
2785 | "description": "PAW PRINTS",
2786 | "category": "people"
2787 | },
2788 | {
2789 | "name": "eyes",
2790 | "unicode": "1F440",
2791 | "shortcode": "eyes",
2792 | "description": "EYES",
2793 | "category": "people"
2794 | },
2795 | {
2796 | "name": "ear",
2797 | "unicode": "1F442",
2798 | "shortcode": "ear",
2799 | "description": "EAR",
2800 | "category": "people"
2801 | },
2802 | {
2803 | "name": "nose",
2804 | "unicode": "1F443",
2805 | "shortcode": "nose",
2806 | "description": "NOSE",
2807 | "category": "people"
2808 | },
2809 | {
2810 | "name": "lips",
2811 | "unicode": "1F444",
2812 | "shortcode": "lips",
2813 | "description": "MOUTH",
2814 | "category": "people"
2815 | },
2816 | {
2817 | "name": "tongue",
2818 | "unicode": "1F445",
2819 | "shortcode": "tongue",
2820 | "description": "TONGUE",
2821 | "category": "people"
2822 | },
2823 | {
2824 | "name": "point_up_2",
2825 | "unicode": "1F446",
2826 | "shortcode": "point_up_2",
2827 | "description": "WHITE UP POINTING BACKHAND INDEX",
2828 | "category": "people"
2829 | },
2830 | {
2831 | "name": "point_down",
2832 | "unicode": "1F447",
2833 | "shortcode": "point_down",
2834 | "description": "WHITE DOWN POINTING BACKHAND INDEX",
2835 | "category": "people"
2836 | },
2837 | {
2838 | "name": "point_left",
2839 | "unicode": "1F448",
2840 | "shortcode": "point_left",
2841 | "description": "WHITE LEFT POINTING BACKHAND INDEX",
2842 | "category": "people"
2843 | },
2844 | {
2845 | "name": "point_right",
2846 | "unicode": "1F449",
2847 | "shortcode": "point_right",
2848 | "description": "WHITE RIGHT POINTING BACKHAND INDEX",
2849 | "category": "people"
2850 | },
2851 | {
2852 | "name": "facepunch",
2853 | "unicode": "1F44A",
2854 | "shortcode": "facepunch",
2855 | "description": "FISTED HAND SIGN",
2856 | "category": "people"
2857 | },
2858 | {
2859 | "name": "wave",
2860 | "unicode": "1F44B",
2861 | "shortcode": "wave",
2862 | "description": "WAVING HAND SIGN",
2863 | "category": "people"
2864 | },
2865 | {
2866 | "name": "ok_hand",
2867 | "unicode": "1F44C",
2868 | "shortcode": "ok_hand",
2869 | "description": "OK HAND SIGN",
2870 | "category": "people"
2871 | },
2872 | {
2873 | "name": "+1",
2874 | "unicode": "1F44D",
2875 | "shortcode": "plus1",
2876 | "description": "THUMBS UP SIGN",
2877 | "category": "people"
2878 | },
2879 | {
2880 | "name": "-1",
2881 | "unicode": "1F44E",
2882 | "shortcode": "-1",
2883 | "description": "THUMBS DOWN SIGN",
2884 | "category": "people"
2885 | },
2886 | {
2887 | "name": "clap",
2888 | "unicode": "1F44F",
2889 | "shortcode": "clap",
2890 | "description": "CLAPPING HANDS SIGN",
2891 | "category": "people"
2892 | },
2893 | {
2894 | "name": "open_hands",
2895 | "unicode": "1F450",
2896 | "shortcode": "open_hands",
2897 | "description": "OPEN HANDS SIGN",
2898 | "category": "people"
2899 | },
2900 | {
2901 | "name": "crown",
2902 | "unicode": "1F451",
2903 | "shortcode": "crown",
2904 | "description": "CROWN",
2905 | "category": "people"
2906 | },
2907 | {
2908 | "name": "womans_hat",
2909 | "unicode": "1F452",
2910 | "shortcode": "womans_hat",
2911 | "description": "WOMANS HAT",
2912 | "category": "people"
2913 | },
2914 | {
2915 | "name": "eyeglasses",
2916 | "unicode": "1F453",
2917 | "shortcode": "eyeglasses",
2918 | "description": "EYEGLASSES",
2919 | "category": "people"
2920 | },
2921 | {
2922 | "name": "necktie",
2923 | "unicode": "1F454",
2924 | "shortcode": "necktie",
2925 | "description": "NECKTIE",
2926 | "category": "people"
2927 | },
2928 | {
2929 | "name": "shirt",
2930 | "unicode": "1F455",
2931 | "shortcode": "shirt",
2932 | "description": "T-SHIRT",
2933 | "category": "people"
2934 | },
2935 | {
2936 | "name": "jeans",
2937 | "unicode": "1F456",
2938 | "shortcode": "jeans",
2939 | "description": "JEANS",
2940 | "category": "people"
2941 | },
2942 | {
2943 | "name": "dress",
2944 | "unicode": "1F457",
2945 | "shortcode": "dress",
2946 | "description": "DRESS",
2947 | "category": "people"
2948 | },
2949 | {
2950 | "name": "kimono",
2951 | "unicode": "1F458",
2952 | "shortcode": "kimono",
2953 | "description": "KIMONO",
2954 | "category": "people"
2955 | },
2956 | {
2957 | "name": "bikini",
2958 | "unicode": "1F459",
2959 | "shortcode": "bikini",
2960 | "description": "BIKINI",
2961 | "category": "people"
2962 | },
2963 | {
2964 | "name": "womans_clothes",
2965 | "unicode": "1F45A",
2966 | "shortcode": "womans_clothes",
2967 | "description": "WOMANS CLOTHES",
2968 | "category": "people"
2969 | },
2970 | {
2971 | "name": "purse",
2972 | "unicode": "1F45B",
2973 | "shortcode": "purse",
2974 | "description": "PURSE",
2975 | "category": "people"
2976 | },
2977 | {
2978 | "name": "handbag",
2979 | "unicode": "1F45C",
2980 | "shortcode": "handbag",
2981 | "description": "HANDBAG",
2982 | "category": "people"
2983 | },
2984 | {
2985 | "name": "pouch",
2986 | "unicode": "1F45D",
2987 | "shortcode": "pouch",
2988 | "description": "POUCH",
2989 | "category": "people"
2990 | },
2991 | {
2992 | "name": "mans_shoe",
2993 | "unicode": "1F45E",
2994 | "shortcode": "mans_shoe",
2995 | "description": "MANS SHOE",
2996 | "category": "people"
2997 | },
2998 | {
2999 | "name": "athletic_shoe",
3000 | "unicode": "1F45F",
3001 | "shortcode": "athletic_shoe",
3002 | "description": "ATHLETIC SHOE",
3003 | "category": "people"
3004 | },
3005 | {
3006 | "name": "high_heel",
3007 | "unicode": "1F460",
3008 | "shortcode": "high_heel",
3009 | "description": "HIGH-HEELED SHOE",
3010 | "category": "people"
3011 | },
3012 | {
3013 | "name": "sandal",
3014 | "unicode": "1F461",
3015 | "shortcode": "sandal",
3016 | "description": "WOMANS SANDAL",
3017 | "category": "people"
3018 | },
3019 | {
3020 | "name": "boot",
3021 | "unicode": "1F462",
3022 | "shortcode": "boot",
3023 | "description": "WOMANS BOOTS",
3024 | "category": "people"
3025 | },
3026 | {
3027 | "name": "footprints",
3028 | "unicode": "1F463",
3029 | "shortcode": "footprints",
3030 | "description": "FOOTPRINTS",
3031 | "category": "people"
3032 | },
3033 | {
3034 | "name": "bust_in_silhouette",
3035 | "unicode": "1F464",
3036 | "shortcode": "bust_in_silhouette",
3037 | "description": "BUST IN SILHOUETTE",
3038 | "category": "people"
3039 | },
3040 | {
3041 | "name": "busts_in_silhouette",
3042 | "unicode": "1F465",
3043 | "shortcode": "busts_in_silhouette",
3044 | "description": "BUSTS IN SILHOUETTE",
3045 | "category": "people"
3046 | },
3047 | {
3048 | "name": "boy",
3049 | "unicode": "1F466",
3050 | "shortcode": "boy",
3051 | "description": "BOY",
3052 | "category": "people"
3053 | },
3054 | {
3055 | "name": "girl",
3056 | "unicode": "1F467",
3057 | "shortcode": "girl",
3058 | "description": "GIRL",
3059 | "category": "people"
3060 | },
3061 | {
3062 | "name": "man",
3063 | "unicode": "1F468",
3064 | "shortcode": "man",
3065 | "description": "MAN",
3066 | "category": "people"
3067 | },
3068 | {
3069 | "name": "woman",
3070 | "unicode": "1F469",
3071 | "shortcode": "woman",
3072 | "description": "WOMAN",
3073 | "category": "people"
3074 | },
3075 | {
3076 | "name": "family",
3077 | "unicode": "1F46A",
3078 | "shortcode": "family",
3079 | "description": "FAMILY",
3080 | "category": "people"
3081 | },
3082 | {
3083 | "name": "couple",
3084 | "unicode": "1F46B",
3085 | "shortcode": "couple",
3086 | "description": "MAN AND WOMAN HOLDING HANDS",
3087 | "category": "people"
3088 | },
3089 | {
3090 | "name": "two_men_holding_hands",
3091 | "unicode": "1F46C",
3092 | "shortcode": "two_men_holding_hands",
3093 | "description": "TWO MEN HOLDING HANDS",
3094 | "category": "people"
3095 | },
3096 | {
3097 | "name": "two_women_holding_hands",
3098 | "unicode": "1F46D",
3099 | "shortcode": "two_women_holding_hands",
3100 | "description": "TWO WOMEN HOLDING HANDS",
3101 | "category": "people"
3102 | },
3103 | {
3104 | "name": "cop",
3105 | "unicode": "1F46E",
3106 | "shortcode": "cop",
3107 | "description": "POLICE OFFICER",
3108 | "category": "people"
3109 | },
3110 | {
3111 | "name": "dancers",
3112 | "unicode": "1F46F",
3113 | "shortcode": "dancers",
3114 | "description": "WOMAN WITH BUNNY EARS",
3115 | "category": "people"
3116 | },
3117 | {
3118 | "name": "bride_with_veil",
3119 | "unicode": "1F470",
3120 | "shortcode": "bride_with_veil",
3121 | "description": "BRIDE WITH VEIL",
3122 | "category": "people"
3123 | },
3124 | {
3125 | "name": "person_with_blond_hair",
3126 | "unicode": "1F471",
3127 | "shortcode": "person_with_blond_hair",
3128 | "description": "PERSON WITH BLOND HAIR",
3129 | "category": "people"
3130 | },
3131 | {
3132 | "name": "man_with_gua_pi_mao",
3133 | "unicode": "1F472",
3134 | "shortcode": "man_with_gua_pi_mao",
3135 | "description": "MAN WITH GUA PI MAO",
3136 | "category": "people"
3137 | },
3138 | {
3139 | "name": "man_with_turban",
3140 | "unicode": "1F473",
3141 | "shortcode": "man_with_turban",
3142 | "description": "MAN WITH TURBAN",
3143 | "category": "people"
3144 | },
3145 | {
3146 | "name": "older_man",
3147 | "unicode": "1F474",
3148 | "shortcode": "older_man",
3149 | "description": "OLDER MAN",
3150 | "category": "people"
3151 | },
3152 | {
3153 | "name": "older_woman",
3154 | "unicode": "1F475",
3155 | "shortcode": "older_woman",
3156 | "description": "OLDER WOMAN",
3157 | "category": "people"
3158 | },
3159 | {
3160 | "name": "baby",
3161 | "unicode": "1F476",
3162 | "shortcode": "baby",
3163 | "description": "BABY",
3164 | "category": "people"
3165 | },
3166 | {
3167 | "name": "construction_worker",
3168 | "unicode": "1F477",
3169 | "shortcode": "construction_worker",
3170 | "description": "CONSTRUCTION WORKER",
3171 | "category": "people"
3172 | },
3173 | {
3174 | "name": "princess",
3175 | "unicode": "1F478",
3176 | "shortcode": "princess",
3177 | "description": "PRINCESS",
3178 | "category": "people"
3179 | },
3180 | {
3181 | "name": "japanese_ogre",
3182 | "unicode": "1F479",
3183 | "shortcode": "japanese_ogre",
3184 | "description": "JAPANESE OGRE",
3185 | "category": "people"
3186 | },
3187 | {
3188 | "name": "japanese_goblin",
3189 | "unicode": "1F47A",
3190 | "shortcode": "japanese_goblin",
3191 | "description": "JAPANESE GOBLIN",
3192 | "category": "people"
3193 | },
3194 | {
3195 | "name": "ghost",
3196 | "unicode": "1F47B",
3197 | "shortcode": "ghost",
3198 | "description": "GHOST",
3199 | "category": "people"
3200 | },
3201 | {
3202 | "name": "angel",
3203 | "unicode": "1F47C",
3204 | "shortcode": "angel",
3205 | "description": "BABY ANGEL",
3206 | "category": "people"
3207 | },
3208 | {
3209 | "name": "alien",
3210 | "unicode": "1F47D",
3211 | "shortcode": "alien",
3212 | "description": "EXTRATERRESTRIAL ALIEN",
3213 | "category": "people"
3214 | },
3215 | {
3216 | "name": "space_invader",
3217 | "unicode": "1F47E",
3218 | "shortcode": "space_invader",
3219 | "description": "ALIEN MONSTER",
3220 | "category": "people"
3221 | },
3222 | {
3223 | "name": "imp",
3224 | "unicode": "1F47F",
3225 | "shortcode": "imp",
3226 | "description": "IMP",
3227 | "category": "people"
3228 | },
3229 | {
3230 | "name": "skull",
3231 | "unicode": "1F480",
3232 | "shortcode": "skull",
3233 | "description": "SKULL",
3234 | "category": "people"
3235 | },
3236 | {
3237 | "name": "information_desk_person",
3238 | "unicode": "1F481",
3239 | "shortcode": "information_desk_person",
3240 | "description": "INFORMATION DESK PERSON",
3241 | "category": "people"
3242 | },
3243 | {
3244 | "name": "guardsman",
3245 | "unicode": "1F482",
3246 | "shortcode": "guardsman",
3247 | "description": "GUARDSMAN",
3248 | "category": "people"
3249 | },
3250 | {
3251 | "name": "dancer",
3252 | "unicode": "1F483",
3253 | "shortcode": "dancer",
3254 | "description": "DANCER",
3255 | "category": "people"
3256 | },
3257 | {
3258 | "name": "lipstick",
3259 | "unicode": "1F484",
3260 | "shortcode": "lipstick",
3261 | "description": "LIPSTICK",
3262 | "category": "people"
3263 | },
3264 | {
3265 | "name": "nail_care",
3266 | "unicode": "1F485",
3267 | "shortcode": "nail_care",
3268 | "description": "NAIL POLISH",
3269 | "category": "people"
3270 | },
3271 | {
3272 | "name": "massage",
3273 | "unicode": "1F486",
3274 | "shortcode": "massage",
3275 | "description": "FACE MASSAGE",
3276 | "category": "people"
3277 | },
3278 | {
3279 | "name": "haircut",
3280 | "unicode": "1F487",
3281 | "shortcode": "haircut",
3282 | "description": "HAIRCUT",
3283 | "category": "people"
3284 | },
3285 | {
3286 | "name": "barber",
3287 | "unicode": "1F488",
3288 | "shortcode": "barber",
3289 | "description": "BARBER POLE",
3290 | "category": "people"
3291 | },
3292 | {
3293 | "name": "syringe",
3294 | "unicode": "1F489",
3295 | "shortcode": "syringe",
3296 | "description": "SYRINGE",
3297 | "category": "emotion"
3298 | },
3299 | {
3300 | "name": "pill",
3301 | "unicode": "1F48A",
3302 | "shortcode": "pill",
3303 | "description": "PILL",
3304 | "category": "emotion"
3305 | },
3306 | {
3307 | "name": "kiss",
3308 | "unicode": "1F48B",
3309 | "shortcode": "kiss",
3310 | "description": "KISS MARK",
3311 | "category": "emotion"
3312 | },
3313 | {
3314 | "name": "love_letter",
3315 | "unicode": "1F48C",
3316 | "shortcode": "love_letter",
3317 | "description": "LOVE LETTER",
3318 | "category": "emotion"
3319 | },
3320 | {
3321 | "name": "ring",
3322 | "unicode": "1F48D",
3323 | "shortcode": "ring",
3324 | "description": "RING",
3325 | "category": "emotion"
3326 | },
3327 | {
3328 | "name": "gem",
3329 | "unicode": "1F48E",
3330 | "shortcode": "gem",
3331 | "description": "GEM STONE",
3332 | "category": "emotion"
3333 | },
3334 | {
3335 | "name": "couplekiss",
3336 | "unicode": "1F48F",
3337 | "shortcode": "couplekiss",
3338 | "description": "KISS",
3339 | "category": "emotion"
3340 | },
3341 | {
3342 | "name": "bouquet",
3343 | "unicode": "1F490",
3344 | "shortcode": "bouquet",
3345 | "description": "BOUQUET",
3346 | "category": "emotion"
3347 | },
3348 | {
3349 | "name": "couple_with_heart",
3350 | "unicode": "1F491",
3351 | "shortcode": "couple_with_heart",
3352 | "description": "COUPLE WITH HEART",
3353 | "category": "emotion"
3354 | },
3355 | {
3356 | "name": "wedding",
3357 | "unicode": "1F492",
3358 | "shortcode": "wedding",
3359 | "description": "WEDDING",
3360 | "category": "emotion"
3361 | },
3362 | {
3363 | "name": "heartbeat",
3364 | "unicode": "1F493",
3365 | "shortcode": "heartbeat",
3366 | "description": "BEATING HEART",
3367 | "category": "emotion"
3368 | },
3369 | {
3370 | "name": "broken_heart",
3371 | "unicode": "1F494",
3372 | "shortcode": "broken_heart",
3373 | "description": "BROKEN HEART",
3374 | "category": "emotion"
3375 | },
3376 | {
3377 | "name": "two_hearts",
3378 | "unicode": "1F495",
3379 | "shortcode": "two_hearts",
3380 | "description": "TWO HEARTS",
3381 | "category": "emotion"
3382 | },
3383 | {
3384 | "name": "sparkling_heart",
3385 | "unicode": "1F496",
3386 | "shortcode": "sparkling_heart",
3387 | "description": "SPARKLING HEART",
3388 | "category": "emotion"
3389 | },
3390 | {
3391 | "name": "heartpulse",
3392 | "unicode": "1F497",
3393 | "shortcode": "heartpulse",
3394 | "description": "GROWING HEART",
3395 | "category": "emotion"
3396 | },
3397 | {
3398 | "name": "cupid",
3399 | "unicode": "1F498",
3400 | "shortcode": "cupid",
3401 | "description": "HEART WITH ARROW",
3402 | "category": "emotion"
3403 | },
3404 | {
3405 | "name": "blue_heart",
3406 | "unicode": "1F499",
3407 | "shortcode": "blue_heart",
3408 | "description": "BLUE HEART",
3409 | "category": "emotion"
3410 | },
3411 | {
3412 | "name": "green_heart",
3413 | "unicode": "1F49A",
3414 | "shortcode": "green_heart",
3415 | "description": "GREEN HEART",
3416 | "category": "emotion"
3417 | },
3418 | {
3419 | "name": "yellow_heart",
3420 | "unicode": "1F49B",
3421 | "shortcode": "yellow_heart",
3422 | "description": "YELLOW HEART",
3423 | "category": "emotion"
3424 | },
3425 | {
3426 | "name": "purple_heart",
3427 | "unicode": "1F49C",
3428 | "shortcode": "purple_heart",
3429 | "description": "PURPLE HEART",
3430 | "category": "emotion"
3431 | },
3432 | {
3433 | "name": "gift_heart",
3434 | "unicode": "1F49D",
3435 | "shortcode": "gift_heart",
3436 | "description": "HEART WITH RIBBON",
3437 | "category": "emotion"
3438 | },
3439 | {
3440 | "name": "revolving_hearts",
3441 | "unicode": "1F49E",
3442 | "shortcode": "revolving_hearts",
3443 | "description": "REVOLVING HEARTS",
3444 | "category": "emotion"
3445 | },
3446 | {
3447 | "name": "heart_decoration",
3448 | "unicode": "1F49F",
3449 | "shortcode": "heart_decoration",
3450 | "description": "HEART DECORATION",
3451 | "category": "emotion"
3452 | },
3453 | {
3454 | "name": "diamond_shape_with_a_dot_inside",
3455 | "unicode": "1F4A0",
3456 | "shortcode": "diamond_shape_with_a_dot_inside",
3457 | "description": "DIAMOND SHAPE WITH A DOT INSIDE",
3458 | "category": "emotion"
3459 | },
3460 | {
3461 | "name": "bulb",
3462 | "unicode": "1F4A1",
3463 | "shortcode": "bulb",
3464 | "description": "ELECTRIC LIGHT BULB",
3465 | "category": "emotion"
3466 | },
3467 | {
3468 | "name": "anger",
3469 | "unicode": "1F4A2",
3470 | "shortcode": "anger",
3471 | "description": "ANGER SYMBOL",
3472 | "category": "emotion"
3473 | },
3474 | {
3475 | "name": "bomb",
3476 | "unicode": "1F4A3",
3477 | "shortcode": "bomb",
3478 | "description": "BOMB",
3479 | "category": "emotion"
3480 | },
3481 | {
3482 | "name": "zzz",
3483 | "unicode": "1F4A4",
3484 | "shortcode": "zzz",
3485 | "description": "SLEEPING SYMBOL",
3486 | "category": "emotion"
3487 | },
3488 | {
3489 | "name": "boom",
3490 | "unicode": "1F4A5",
3491 | "shortcode": "boom",
3492 | "description": "COLLISION SYMBOL",
3493 | "category": "emotion"
3494 | },
3495 | {
3496 | "name": "sweat_drops",
3497 | "unicode": "1F4A6",
3498 | "shortcode": "sweat_drops",
3499 | "description": "SPLASHING SWEAT SYMBOL",
3500 | "category": "emotion"
3501 | },
3502 | {
3503 | "name": "droplet",
3504 | "unicode": "1F4A7",
3505 | "shortcode": "droplet",
3506 | "description": "DROPLET",
3507 | "category": "emotion"
3508 | },
3509 | {
3510 | "name": "dash",
3511 | "unicode": "1F4A8",
3512 | "shortcode": "dash",
3513 | "description": "DASH SYMBOL",
3514 | "category": "emotion"
3515 | },
3516 | {
3517 | "name": "hankey",
3518 | "unicode": "1F4A9",
3519 | "shortcode": "hankey",
3520 | "description": "PILE OF POO",
3521 | "category": "emotion"
3522 | },
3523 | {
3524 | "name": "muscle",
3525 | "unicode": "1F4AA",
3526 | "shortcode": "muscle",
3527 | "description": "FLEXED BICEPS",
3528 | "category": "emotion"
3529 | },
3530 | {
3531 | "name": "dizzy",
3532 | "unicode": "1F4AB",
3533 | "shortcode": "dizzy",
3534 | "description": "DIZZY SYMBOL",
3535 | "category": "emotion"
3536 | },
3537 | {
3538 | "name": "speech_balloon",
3539 | "unicode": "1F4AC",
3540 | "shortcode": "speech_balloon",
3541 | "description": "SPEECH BALLOON",
3542 | "category": "emotion"
3543 | },
3544 | {
3545 | "name": "thought_balloon",
3546 | "unicode": "1F4AD",
3547 | "shortcode": "thought_balloon",
3548 | "description": "THOUGHT BALLOON",
3549 | "category": "emotion"
3550 | },
3551 | {
3552 | "name": "white_flower",
3553 | "unicode": "1F4AE",
3554 | "shortcode": "white_flower",
3555 | "description": "WHITE FLOWER",
3556 | "category": "emotion"
3557 | },
3558 | {
3559 | "name": "100",
3560 | "unicode": "1F4AF",
3561 | "shortcode": "100",
3562 | "description": "HUNDRED POINTS SYMBOL",
3563 | "category": "emotion"
3564 | },
3565 | {
3566 | "name": "moneybag",
3567 | "unicode": "1F4B0",
3568 | "shortcode": "moneybag",
3569 | "description": "MONEY BAG",
3570 | "category": "emotion"
3571 | },
3572 | {
3573 | "name": "currency_exchange",
3574 | "unicode": "1F4B1",
3575 | "shortcode": "currency_exchange",
3576 | "description": "CURRENCY EXCHANGE",
3577 | "category": "emotion"
3578 | },
3579 | {
3580 | "name": "heavy_dollar_sign",
3581 | "unicode": "1F4B2",
3582 | "shortcode": "heavy_dollar_sign",
3583 | "description": "HEAVY DOLLAR SIGN",
3584 | "category": "emotion"
3585 | },
3586 | {
3587 | "name": "credit_card",
3588 | "unicode": "1F4B3",
3589 | "shortcode": "credit_card",
3590 | "description": "CREDIT CARD",
3591 | "category": "emotion"
3592 | },
3593 | {
3594 | "name": "yen",
3595 | "unicode": "1F4B4",
3596 | "shortcode": "yen",
3597 | "description": "BANKNOTE WITH YEN SIGN",
3598 | "category": "emotion"
3599 | },
3600 | {
3601 | "name": "dollar",
3602 | "unicode": "1F4B5",
3603 | "shortcode": "dollar",
3604 | "description": "BANKNOTE WITH DOLLAR SIGN",
3605 | "category": "emotion"
3606 | },
3607 | {
3608 | "name": "euro",
3609 | "unicode": "1F4B6",
3610 | "shortcode": "euro",
3611 | "description": "BANKNOTE WITH EURO SIGN",
3612 | "category": "emotion"
3613 | },
3614 | {
3615 | "name": "pound",
3616 | "unicode": "1F4B7",
3617 | "shortcode": "pound",
3618 | "description": "BANKNOTE WITH POUND SIGN",
3619 | "category": "emotion"
3620 | },
3621 | {
3622 | "name": "money_with_wings",
3623 | "unicode": "1F4B8",
3624 | "shortcode": "money_with_wings",
3625 | "description": "MONEY WITH WINGS",
3626 | "category": "emotion"
3627 | },
3628 | {
3629 | "name": "chart",
3630 | "unicode": "1F4B9",
3631 | "shortcode": "chart",
3632 | "description": "CHART WITH UPWARDS TREND AND YEN SIGN",
3633 | "category": "thing"
3634 | },
3635 | {
3636 | "name": "seat",
3637 | "unicode": "1F4BA",
3638 | "shortcode": "seat",
3639 | "description": "SEAT",
3640 | "category": "thing"
3641 | },
3642 | {
3643 | "name": "computer",
3644 | "unicode": "1F4BB",
3645 | "shortcode": "computer",
3646 | "description": "PERSONAL COMPUTER",
3647 | "category": "thing"
3648 | },
3649 | {
3650 | "name": "briefcase",
3651 | "unicode": "1F4BC",
3652 | "shortcode": "briefcase",
3653 | "description": "BRIEFCASE",
3654 | "category": "thing"
3655 | },
3656 | {
3657 | "name": "minidisc",
3658 | "unicode": "1F4BD",
3659 | "shortcode": "minidisc",
3660 | "description": "MINIDISC",
3661 | "category": "thing"
3662 | },
3663 | {
3664 | "name": "floppy_disk",
3665 | "unicode": "1F4BE",
3666 | "shortcode": "floppy_disk",
3667 | "description": "FLOPPY DISK",
3668 | "category": "thing"
3669 | },
3670 | {
3671 | "name": "cd",
3672 | "unicode": "1F4BF",
3673 | "shortcode": "cd",
3674 | "description": "OPTICAL DISC",
3675 | "category": "thing"
3676 | },
3677 | {
3678 | "name": "dvd",
3679 | "unicode": "1F4C0",
3680 | "shortcode": "dvd",
3681 | "description": "DVD",
3682 | "category": "thing"
3683 | },
3684 | {
3685 | "name": "file_folder",
3686 | "unicode": "1F4C1",
3687 | "shortcode": "file_folder",
3688 | "description": "FILE FOLDER",
3689 | "category": "thing"
3690 | },
3691 | {
3692 | "name": "open_file_folder",
3693 | "unicode": "1F4C2",
3694 | "shortcode": "open_file_folder",
3695 | "description": "OPEN FILE FOLDER",
3696 | "category": "thing"
3697 | },
3698 | {
3699 | "name": "page_with_curl",
3700 | "unicode": "1F4C3",
3701 | "shortcode": "page_with_curl",
3702 | "description": "PAGE WITH CURL",
3703 | "category": "thing"
3704 | },
3705 | {
3706 | "name": "page_facing_up",
3707 | "unicode": "1F4C4",
3708 | "shortcode": "page_facing_up",
3709 | "description": "PAGE FACING UP",
3710 | "category": "thing"
3711 | },
3712 | {
3713 | "name": "date",
3714 | "unicode": "1F4C5",
3715 | "shortcode": "date",
3716 | "description": "CALENDAR",
3717 | "category": "thing"
3718 | },
3719 | {
3720 | "name": "calendar",
3721 | "unicode": "1F4C6",
3722 | "shortcode": "calendar",
3723 | "description": "TEAR-OFF CALENDAR",
3724 | "category": "thing"
3725 | },
3726 | {
3727 | "name": "card_index",
3728 | "unicode": "1F4C7",
3729 | "shortcode": "card_index",
3730 | "description": "CARD INDEX",
3731 | "category": "thing"
3732 | },
3733 | {
3734 | "name": "chart_with_upwards_trend",
3735 | "unicode": "1F4C8",
3736 | "shortcode": "chart_with_upwards_trend",
3737 | "description": "CHART WITH UPWARDS TREND",
3738 | "category": "thing"
3739 | },
3740 | {
3741 | "name": "chart_with_downwards_trend",
3742 | "unicode": "1F4C9",
3743 | "shortcode": "chart_with_downwards_trend",
3744 | "description": "CHART WITH DOWNWARDS TREND",
3745 | "category": "thing"
3746 | },
3747 | {
3748 | "name": "bar_chart",
3749 | "unicode": "1F4CA",
3750 | "shortcode": "bar_chart",
3751 | "description": "BAR CHART",
3752 | "category": "thing"
3753 | },
3754 | {
3755 | "name": "clipboard",
3756 | "unicode": "1F4CB",
3757 | "shortcode": "clipboard",
3758 | "description": "CLIPBOARD",
3759 | "category": "thing"
3760 | },
3761 | {
3762 | "name": "pushpin",
3763 | "unicode": "1F4CC",
3764 | "shortcode": "pushpin",
3765 | "description": "PUSHPIN",
3766 | "category": "thing"
3767 | },
3768 | {
3769 | "name": "round_pushpin",
3770 | "unicode": "1F4CD",
3771 | "shortcode": "round_pushpin",
3772 | "description": "ROUND PUSHPIN",
3773 | "category": "thing"
3774 | },
3775 | {
3776 | "name": "paperclip",
3777 | "unicode": "1F4CE",
3778 | "shortcode": "paperclip",
3779 | "description": "PAPERCLIP",
3780 | "category": "thing"
3781 | },
3782 | {
3783 | "name": "straight_ruler",
3784 | "unicode": "1F4CF",
3785 | "shortcode": "straight_ruler",
3786 | "description": "STRAIGHT RULER",
3787 | "category": "thing"
3788 | },
3789 | {
3790 | "name": "triangular_ruler",
3791 | "unicode": "1F4D0",
3792 | "shortcode": "triangular_ruler",
3793 | "description": "TRIANGULAR RULER",
3794 | "category": "thing"
3795 | },
3796 | {
3797 | "name": "bookmark_tabs",
3798 | "unicode": "1F4D1",
3799 | "shortcode": "bookmark_tabs",
3800 | "description": "BOOKMARK TABS",
3801 | "category": "thing"
3802 | },
3803 | {
3804 | "name": "ledger",
3805 | "unicode": "1F4D2",
3806 | "shortcode": "ledger",
3807 | "description": "LEDGER",
3808 | "category": "thing"
3809 | },
3810 | {
3811 | "name": "notebook",
3812 | "unicode": "1F4D3",
3813 | "shortcode": "notebook",
3814 | "description": "NOTEBOOK",
3815 | "category": "thing"
3816 | },
3817 | {
3818 | "name": "notebook_with_decorative_cover",
3819 | "unicode": "1F4D4",
3820 | "shortcode": "notebook_with_decorative_cover",
3821 | "description": "NOTEBOOK WITH DECORATIVE COVER",
3822 | "category": "thing"
3823 | },
3824 | {
3825 | "name": "closed_book",
3826 | "unicode": "1F4D5",
3827 | "shortcode": "closed_book",
3828 | "description": "CLOSED BOOK",
3829 | "category": "thing"
3830 | },
3831 | {
3832 | "name": "book",
3833 | "unicode": "1F4D6",
3834 | "shortcode": "book",
3835 | "description": "OPEN BOOK",
3836 | "category": "thing"
3837 | },
3838 | {
3839 | "name": "green_book",
3840 | "unicode": "1F4D7",
3841 | "shortcode": "green_book",
3842 | "description": "GREEN BOOK",
3843 | "category": "thing"
3844 | },
3845 | {
3846 | "name": "blue_book",
3847 | "unicode": "1F4D8",
3848 | "shortcode": "blue_book",
3849 | "description": "BLUE BOOK",
3850 | "category": "thing"
3851 | },
3852 | {
3853 | "name": "orange_book",
3854 | "unicode": "1F4D9",
3855 | "shortcode": "orange_book",
3856 | "description": "ORANGE BOOK",
3857 | "category": "thing"
3858 | },
3859 | {
3860 | "name": "books",
3861 | "unicode": "1F4DA",
3862 | "shortcode": "books",
3863 | "description": "BOOKS",
3864 | "category": "thing"
3865 | },
3866 | {
3867 | "name": "name_badge",
3868 | "unicode": "1F4DB",
3869 | "shortcode": "name_badge",
3870 | "description": "NAME BADGE",
3871 | "category": "thing"
3872 | },
3873 | {
3874 | "name": "scroll",
3875 | "unicode": "1F4DC",
3876 | "shortcode": "scroll",
3877 | "description": "SCROLL",
3878 | "category": "thing"
3879 | },
3880 | {
3881 | "name": "memo",
3882 | "unicode": "1F4DD",
3883 | "shortcode": "memo",
3884 | "description": "MEMO",
3885 | "category": "thing"
3886 | },
3887 | {
3888 | "name": "telephone_receiver",
3889 | "unicode": "1F4DE",
3890 | "shortcode": "telephone_receiver",
3891 | "description": "TELEPHONE RECEIVER",
3892 | "category": "thing"
3893 | },
3894 | {
3895 | "name": "pager",
3896 | "unicode": "1F4DF",
3897 | "shortcode": "pager",
3898 | "description": "PAGER",
3899 | "category": "thing"
3900 | },
3901 | {
3902 | "name": "fax",
3903 | "unicode": "1F4E0",
3904 | "shortcode": "fax",
3905 | "description": "FAX MACHINE",
3906 | "category": "thing"
3907 | },
3908 | {
3909 | "name": "satellite",
3910 | "unicode": "1F4E1",
3911 | "shortcode": "satellite",
3912 | "description": "SATELLITE ANTENNA",
3913 | "category": "thing"
3914 | },
3915 | {
3916 | "name": "loudspeaker",
3917 | "unicode": "1F4E2",
3918 | "shortcode": "loudspeaker",
3919 | "description": "PUBLIC ADDRESS LOUDSPEAKER",
3920 | "category": "thing"
3921 | },
3922 | {
3923 | "name": "mega",
3924 | "unicode": "1F4E3",
3925 | "shortcode": "mega",
3926 | "description": "CHEERING MEGAPHONE",
3927 | "category": "thing"
3928 | },
3929 | {
3930 | "name": "outbox_tray",
3931 | "unicode": "1F4E4",
3932 | "shortcode": "outbox_tray",
3933 | "description": "OUTBOX TRAY",
3934 | "category": "thing"
3935 | },
3936 | {
3937 | "name": "inbox_tray",
3938 | "unicode": "1F4E5",
3939 | "shortcode": "inbox_tray",
3940 | "description": "INBOX TRAY",
3941 | "category": "thing"
3942 | },
3943 | {
3944 | "name": "package",
3945 | "unicode": "1F4E6",
3946 | "shortcode": "package",
3947 | "description": "PACKAGE",
3948 | "category": "thing"
3949 | },
3950 | {
3951 | "name": "e-mail",
3952 | "unicode": "1F4E7",
3953 | "shortcode": "e-mail",
3954 | "description": "E-MAIL SYMBOL",
3955 | "category": "thing"
3956 | },
3957 | {
3958 | "name": "incoming_envelope",
3959 | "unicode": "1F4E8",
3960 | "shortcode": "incoming_envelope",
3961 | "description": "INCOMING ENVELOPE",
3962 | "category": "thing"
3963 | },
3964 | {
3965 | "name": "envelope_with_arrow",
3966 | "unicode": "1F4E9",
3967 | "shortcode": "envelope_with_arrow",
3968 | "description": "ENVELOPE WITH DOWNWARDS ARROW ABOVE",
3969 | "category": "thing"
3970 | },
3971 | {
3972 | "name": "mailbox_closed",
3973 | "unicode": "1F4EA",
3974 | "shortcode": "mailbox_closed",
3975 | "description": "CLOSED MAILBOX WITH LOWERED FLAG",
3976 | "category": "thing"
3977 | },
3978 | {
3979 | "name": "mailbox",
3980 | "unicode": "1F4EB",
3981 | "shortcode": "mailbox",
3982 | "description": "CLOSED MAILBOX WITH RAISED FLAG",
3983 | "category": "thing"
3984 | },
3985 | {
3986 | "name": "mailbox_with_mail",
3987 | "unicode": "1F4EC",
3988 | "shortcode": "mailbox_with_mail",
3989 | "description": "OPEN MAILBOX WITH RAISED FLAG",
3990 | "category": "thing"
3991 | },
3992 | {
3993 | "name": "mailbox_with_no_mail",
3994 | "unicode": "1F4ED",
3995 | "shortcode": "mailbox_with_no_mail",
3996 | "description": "OPEN MAILBOX WITH LOWERED FLAG",
3997 | "category": "thing"
3998 | },
3999 | {
4000 | "name": "postbox",
4001 | "unicode": "1F4EE",
4002 | "shortcode": "postbox",
4003 | "description": "POSTBOX",
4004 | "category": "thing"
4005 | },
4006 | {
4007 | "name": "postal_horn",
4008 | "unicode": "1F4EF",
4009 | "shortcode": "postal_horn",
4010 | "description": "POSTAL HORN",
4011 | "category": "thing"
4012 | },
4013 | {
4014 | "name": "newspaper",
4015 | "unicode": "1F4F0",
4016 | "shortcode": "newspaper",
4017 | "description": "NEWSPAPER",
4018 | "category": "thing"
4019 | },
4020 | {
4021 | "name": "iphone",
4022 | "unicode": "1F4F1",
4023 | "shortcode": "iphone",
4024 | "description": "MOBILE PHONE",
4025 | "category": "thing"
4026 | },
4027 | {
4028 | "name": "calling",
4029 | "unicode": "1F4F2",
4030 | "shortcode": "calling",
4031 | "description": "MOBILE PHONE WITH RIGHTWARDS ARROW AT LEFT",
4032 | "category": "thing"
4033 | },
4034 | {
4035 | "name": "vibration_mode",
4036 | "unicode": "1F4F3",
4037 | "shortcode": "vibration_mode",
4038 | "description": "VIBRATION MODE",
4039 | "category": "thing"
4040 | },
4041 | {
4042 | "name": "mobile_phone_off",
4043 | "unicode": "1F4F4",
4044 | "shortcode": "mobile_phone_off",
4045 | "description": "MOBILE PHONE OFF",
4046 | "category": "thing"
4047 | },
4048 | {
4049 | "name": "no_mobile_phones",
4050 | "unicode": "1F4F5",
4051 | "shortcode": "no_mobile_phones",
4052 | "description": "NO MOBILE PHONES",
4053 | "category": "thing"
4054 | },
4055 | {
4056 | "name": "signal_strength",
4057 | "unicode": "1F4F6",
4058 | "shortcode": "signal_strength",
4059 | "description": "ANTENNA WITH BARS",
4060 | "category": "thing"
4061 | },
4062 | {
4063 | "name": "camera",
4064 | "unicode": "1F4F7",
4065 | "shortcode": "camera",
4066 | "description": "CAMERA",
4067 | "category": "thing"
4068 | },
4069 | {
4070 | "name": "video_camera",
4071 | "unicode": "1F4F9",
4072 | "shortcode": "video_camera",
4073 | "description": "VIDEO CAMERA",
4074 | "category": "thing"
4075 | },
4076 | {
4077 | "name": "tv",
4078 | "unicode": "1F4FA",
4079 | "shortcode": "tv",
4080 | "description": "TELEVISION",
4081 | "category": "thing"
4082 | },
4083 | {
4084 | "name": "radio",
4085 | "unicode": "1F4FB",
4086 | "shortcode": "radio",
4087 | "description": "RADIO",
4088 | "category": "thing"
4089 | },
4090 | {
4091 | "name": "vhs",
4092 | "unicode": "1F4FC",
4093 | "shortcode": "vhs",
4094 | "description": "VIDEOCASSETTE",
4095 | "category": "thing"
4096 | },
4097 | {
4098 | "name": "twisted_rightwards_arrows",
4099 | "unicode": "1F500",
4100 | "shortcode": "twisted_rightwards_arrows",
4101 | "description": "TWISTED RIGHTWARDS ARROWS",
4102 | "category": "thing"
4103 | },
4104 | {
4105 | "name": "repeat",
4106 | "unicode": "1F501",
4107 | "shortcode": "repeat",
4108 | "description": "CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS",
4109 | "category": "thing"
4110 | },
4111 | {
4112 | "name": "repeat_one",
4113 | "unicode": "1F502",
4114 | "shortcode": "repeat_one",
4115 | "description": "CLOCKWISE RIGHTWARDS AND LEFTWARDS OPEN CIRCLE ARROWS WITH CIRCLED ONE OVERLAY",
4116 | "category": "thing"
4117 | },
4118 | {
4119 | "name": "arrows_clockwise",
4120 | "unicode": "1F503",
4121 | "shortcode": "arrows_clockwise",
4122 | "description": "CLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS",
4123 | "category": "thing"
4124 | },
4125 | {
4126 | "name": "arrows_counterclockwise",
4127 | "unicode": "1F504",
4128 | "shortcode": "arrows_counterclockwise",
4129 | "description": "ANTICLOCKWISE DOWNWARDS AND UPWARDS OPEN CIRCLE ARROWS",
4130 | "category": "thing"
4131 | },
4132 | {
4133 | "name": "low_brightness",
4134 | "unicode": "1F505",
4135 | "shortcode": "low_brightness",
4136 | "description": "LOW BRIGHTNESS SYMBOL",
4137 | "category": "thing"
4138 | },
4139 | {
4140 | "name": "high_brightness",
4141 | "unicode": "1F506",
4142 | "shortcode": "high_brightness",
4143 | "description": "HIGH BRIGHTNESS SYMBOL",
4144 | "category": "thing"
4145 | },
4146 | {
4147 | "name": "mute",
4148 | "unicode": "1F507",
4149 | "shortcode": "mute",
4150 | "description": "SPEAKER WITH CANCELLATION STROKE",
4151 | "category": "thing"
4152 | },
4153 | {
4154 | "name": "speaker",
4155 | "unicode": "1F508",
4156 | "shortcode": "speaker",
4157 | "description": "SPEAKER",
4158 | "category": "thing"
4159 | },
4160 | {
4161 | "name": "sound",
4162 | "unicode": "1F509",
4163 | "shortcode": "sound",
4164 | "description": "SPEAKER WITH ONE SOUND WAVE",
4165 | "category": "thing"
4166 | },
4167 | {
4168 | "name": "loud_sound",
4169 | "unicode": "1F50A",
4170 | "shortcode": "loud_sound",
4171 | "description": "SPEAKER WITH THREE SOUND WAVES",
4172 | "category": "thing"
4173 | },
4174 | {
4175 | "name": "battery",
4176 | "unicode": "1F50B",
4177 | "shortcode": "battery",
4178 | "description": "BATTERY",
4179 | "category": "thing"
4180 | },
4181 | {
4182 | "name": "electric_plug",
4183 | "unicode": "1F50C",
4184 | "shortcode": "electric_plug",
4185 | "description": "ELECTRIC PLUG",
4186 | "category": "thing"
4187 | },
4188 | {
4189 | "name": "mag",
4190 | "unicode": "1F50D",
4191 | "shortcode": "mag",
4192 | "description": "LEFT-POINTING MAGNIFYING GLASS",
4193 | "category": "thing"
4194 | },
4195 | {
4196 | "name": "mag_right",
4197 | "unicode": "1F50E",
4198 | "shortcode": "mag_right",
4199 | "description": "RIGHT-POINTING MAGNIFYING GLASS",
4200 | "category": "thing"
4201 | },
4202 | {
4203 | "name": "lock_with_ink_pen",
4204 | "unicode": "1F50F",
4205 | "shortcode": "lock_with_ink_pen",
4206 | "description": "LOCK WITH INK PEN",
4207 | "category": "thing"
4208 | },
4209 | {
4210 | "name": "closed_lock_with_key",
4211 | "unicode": "1F510",
4212 | "shortcode": "closed_lock_with_key",
4213 | "description": "CLOSED LOCK WITH KEY",
4214 | "category": "thing"
4215 | },
4216 | {
4217 | "name": "key",
4218 | "unicode": "1F511",
4219 | "shortcode": "key",
4220 | "description": "KEY",
4221 | "category": "thing"
4222 | },
4223 | {
4224 | "name": "lock",
4225 | "unicode": "1F512",
4226 | "shortcode": "lock",
4227 | "description": "LOCK",
4228 | "category": "thing"
4229 | },
4230 | {
4231 | "name": "unlock",
4232 | "unicode": "1F513",
4233 | "shortcode": "unlock",
4234 | "description": "OPEN LOCK",
4235 | "category": "thing"
4236 | },
4237 | {
4238 | "name": "bell",
4239 | "unicode": "1F514",
4240 | "shortcode": "bell",
4241 | "description": "BELL",
4242 | "category": "thing"
4243 | },
4244 | {
4245 | "name": "no_bell",
4246 | "unicode": "1F515",
4247 | "shortcode": "no_bell",
4248 | "description": "BELL WITH CANCELLATION STROKE",
4249 | "category": "thing"
4250 | },
4251 | {
4252 | "name": "bookmark",
4253 | "unicode": "1F516",
4254 | "shortcode": "bookmark",
4255 | "description": "BOOKMARK",
4256 | "category": "folderol"
4257 | },
4258 | {
4259 | "name": "link",
4260 | "unicode": "1F517",
4261 | "shortcode": "link",
4262 | "description": "LINK SYMBOL",
4263 | "category": "folderol"
4264 | },
4265 | {
4266 | "name": "radio_button",
4267 | "unicode": "1F518",
4268 | "shortcode": "radio_button",
4269 | "description": "RADIO BUTTON",
4270 | "category": "folderol"
4271 | },
4272 | {
4273 | "name": "back",
4274 | "unicode": "1F519",
4275 | "shortcode": "back",
4276 | "description": "BACK WITH LEFTWARDS ARROW ABOVE",
4277 | "category": "folderol"
4278 | },
4279 | {
4280 | "name": "end",
4281 | "unicode": "1F51A",
4282 | "shortcode": "end",
4283 | "description": "END WITH LEFTWARDS ARROW ABOVE",
4284 | "category": "folderol"
4285 | },
4286 | {
4287 | "name": "on",
4288 | "unicode": "1F51B",
4289 | "shortcode": "on",
4290 | "description": "ON WITH EXCLAMATION MARK WITH LEFT RIGHT ARROW ABOVE",
4291 | "category": "folderol"
4292 | },
4293 | {
4294 | "name": "soon",
4295 | "unicode": "1F51C",
4296 | "shortcode": "soon",
4297 | "description": "SOON WITH RIGHTWARDS ARROW ABOVE",
4298 | "category": "folderol"
4299 | },
4300 | {
4301 | "name": "top",
4302 | "unicode": "1F51D",
4303 | "shortcode": "top",
4304 | "description": "TOP WITH UPWARDS ARROW ABOVE",
4305 | "category": "folderol"
4306 | },
4307 | {
4308 | "name": "underage",
4309 | "unicode": "1F51E",
4310 | "shortcode": "underage",
4311 | "description": "NO ONE UNDER EIGHTEEN SYMBOL",
4312 | "category": "folderol"
4313 | },
4314 | {
4315 | "name": "keycap_ten",
4316 | "unicode": "1F51F",
4317 | "shortcode": "keycap_ten",
4318 | "description": "KEYCAP TEN",
4319 | "category": "folderol"
4320 | },
4321 | {
4322 | "name": "capital_abcd",
4323 | "unicode": "1F520",
4324 | "shortcode": "capital_abcd",
4325 | "description": "INPUT SYMBOL FOR LATIN CAPITAL LETTERS",
4326 | "category": "folderol"
4327 | },
4328 | {
4329 | "name": "abcd",
4330 | "unicode": "1F521",
4331 | "shortcode": "abcd",
4332 | "description": "INPUT SYMBOL FOR LATIN SMALL LETTERS",
4333 | "category": "folderol"
4334 | },
4335 | {
4336 | "name": "1234",
4337 | "unicode": "1F522",
4338 | "shortcode": "1234",
4339 | "description": "INPUT SYMBOL FOR NUMBERS",
4340 | "category": "folderol"
4341 | },
4342 | {
4343 | "name": "symbols",
4344 | "unicode": "1F523",
4345 | "shortcode": "symbols",
4346 | "description": "INPUT SYMBOL FOR SYMBOLS",
4347 | "category": "folderol"
4348 | },
4349 | {
4350 | "name": "abc",
4351 | "unicode": "1F524",
4352 | "shortcode": "abc",
4353 | "description": "INPUT SYMBOL FOR LATIN LETTERS",
4354 | "category": "folderol"
4355 | },
4356 | {
4357 | "name": "fire",
4358 | "unicode": "1F525",
4359 | "shortcode": "fire",
4360 | "description": "FIRE",
4361 | "category": "thing"
4362 | },
4363 | {
4364 | "name": "flashlight",
4365 | "unicode": "1F526",
4366 | "shortcode": "flashlight",
4367 | "description": "ELECTRIC TORCH",
4368 | "category": "thing"
4369 | },
4370 | {
4371 | "name": "wrench",
4372 | "unicode": "1F527",
4373 | "shortcode": "wrench",
4374 | "description": "WRENCH",
4375 | "category": "thing"
4376 | },
4377 | {
4378 | "name": "hammer",
4379 | "unicode": "1F528",
4380 | "shortcode": "hammer",
4381 | "description": "HAMMER",
4382 | "category": "thing"
4383 | },
4384 | {
4385 | "name": "nut_and_bolt",
4386 | "unicode": "1F529",
4387 | "shortcode": "nut_and_bolt",
4388 | "description": "NUT AND BOLT",
4389 | "category": "thing"
4390 | },
4391 | {
4392 | "name": "hocho",
4393 | "unicode": "1F52A",
4394 | "shortcode": "hocho",
4395 | "description": "HOCHO",
4396 | "category": "thing"
4397 | },
4398 | {
4399 | "name": "gun",
4400 | "unicode": "1F52B",
4401 | "shortcode": "gun",
4402 | "description": "PISTOL",
4403 | "category": "thing"
4404 | },
4405 | {
4406 | "name": "microscope",
4407 | "unicode": "1F52C",
4408 | "shortcode": "microscope",
4409 | "description": "MICROSCOPE",
4410 | "category": "thing"
4411 | },
4412 | {
4413 | "name": "telescope",
4414 | "unicode": "1F52D",
4415 | "shortcode": "telescope",
4416 | "description": "TELESCOPE",
4417 | "category": "thing"
4418 | },
4419 | {
4420 | "name": "crystal_ball",
4421 | "unicode": "1F52E",
4422 | "shortcode": "crystal_ball",
4423 | "description": "CRYSTAL BALL",
4424 | "category": "thing"
4425 | },
4426 | {
4427 | "name": "six_pointed_star",
4428 | "unicode": "1F52F",
4429 | "shortcode": "six_pointed_star",
4430 | "description": "SIX POINTED STAR WITH MIDDLE DOT",
4431 | "category": "thing"
4432 | },
4433 | {
4434 | "name": "beginner",
4435 | "unicode": "1F530",
4436 | "shortcode": "beginner",
4437 | "description": "JAPANESE SYMBOL FOR BEGINNER",
4438 | "category": "thing"
4439 | },
4440 | {
4441 | "name": "trident",
4442 | "unicode": "1F531",
4443 | "shortcode": "trident",
4444 | "description": "TRIDENT EMBLEM",
4445 | "category": "thing"
4446 | },
4447 | {
4448 | "name": "black_square_button",
4449 | "unicode": "1F532",
4450 | "shortcode": "black_square_button",
4451 | "description": "BLACK SQUARE BUTTON",
4452 | "category": "folderol"
4453 | },
4454 | {
4455 | "name": "white_square_button",
4456 | "unicode": "1F533",
4457 | "shortcode": "white_square_button",
4458 | "description": "WHITE SQUARE BUTTON",
4459 | "category": "folderol"
4460 | },
4461 | {
4462 | "name": "red_circle",
4463 | "unicode": "1F534",
4464 | "shortcode": "red_circle",
4465 | "description": "LARGE RED CIRCLE",
4466 | "category": "folderol"
4467 | },
4468 | {
4469 | "name": "large_blue_circle",
4470 | "unicode": "1F535",
4471 | "shortcode": "large_blue_circle",
4472 | "description": "LARGE BLUE CIRCLE",
4473 | "category": "folderol"
4474 | },
4475 | {
4476 | "name": "large_orange_diamond",
4477 | "unicode": "1F536",
4478 | "shortcode": "large_orange_diamond",
4479 | "description": "LARGE ORANGE DIAMOND",
4480 | "category": "folderol"
4481 | },
4482 | {
4483 | "name": "large_blue_diamond",
4484 | "unicode": "1F537",
4485 | "shortcode": "large_blue_diamond",
4486 | "description": "LARGE BLUE DIAMOND",
4487 | "category": "folderol"
4488 | },
4489 | {
4490 | "name": "small_orange_diamond",
4491 | "unicode": "1F538",
4492 | "shortcode": "small_orange_diamond",
4493 | "description": "SMALL ORANGE DIAMOND",
4494 | "category": "folderol"
4495 | },
4496 | {
4497 | "name": "small_blue_diamond",
4498 | "unicode": "1F539",
4499 | "shortcode": "small_blue_diamond",
4500 | "description": "SMALL BLUE DIAMOND",
4501 | "category": "folderol"
4502 | },
4503 | {
4504 | "name": "small_red_triangle",
4505 | "unicode": "1F53A",
4506 | "shortcode": "small_red_triangle",
4507 | "description": "UP-POINTING RED TRIANGLE",
4508 | "category": "folderol"
4509 | },
4510 | {
4511 | "name": "small_red_triangle_down",
4512 | "unicode": "1F53B",
4513 | "shortcode": "small_red_triangle_down",
4514 | "description": "DOWN-POINTING RED TRIANGLE",
4515 | "category": "folderol"
4516 | },
4517 | {
4518 | "name": "arrow_up_small",
4519 | "unicode": "1F53C",
4520 | "shortcode": "arrow_up_small",
4521 | "description": "UP-POINTING SMALL RED TRIANGLE",
4522 | "category": "folderol"
4523 | },
4524 | {
4525 | "name": "arrow_down_small",
4526 | "unicode": "1F53D",
4527 | "shortcode": "arrow_down_small",
4528 | "description": "DOWN-POINTING SMALL RED TRIANGLE",
4529 | "category": "folderol"
4530 | },
4531 | {
4532 | "name": "clock1",
4533 | "unicode": "1F550",
4534 | "shortcode": "clock1",
4535 | "description": "CLOCK FACE ONE OCLOCK",
4536 | "category": "folderol"
4537 | },
4538 | {
4539 | "name": "clock2",
4540 | "unicode": "1F551",
4541 | "shortcode": "clock2",
4542 | "description": "CLOCK FACE TWO OCLOCK",
4543 | "category": "folderol"
4544 | },
4545 | {
4546 | "name": "clock3",
4547 | "unicode": "1F552",
4548 | "shortcode": "clock3",
4549 | "description": "CLOCK FACE THREE OCLOCK",
4550 | "category": "folderol"
4551 | },
4552 | {
4553 | "name": "clock4",
4554 | "unicode": "1F553",
4555 | "shortcode": "clock4",
4556 | "description": "CLOCK FACE FOUR OCLOCK",
4557 | "category": "folderol"
4558 | },
4559 | {
4560 | "name": "clock5",
4561 | "unicode": "1F554",
4562 | "shortcode": "clock5",
4563 | "description": "CLOCK FACE FIVE OCLOCK",
4564 | "category": "folderol"
4565 | },
4566 | {
4567 | "name": "clock6",
4568 | "unicode": "1F555",
4569 | "shortcode": "clock6",
4570 | "description": "CLOCK FACE SIX OCLOCK",
4571 | "category": "folderol"
4572 | },
4573 | {
4574 | "name": "clock7",
4575 | "unicode": "1F556",
4576 | "shortcode": "clock7",
4577 | "description": "CLOCK FACE SEVEN OCLOCK",
4578 | "category": "folderol"
4579 | },
4580 | {
4581 | "name": "clock8",
4582 | "unicode": "1F557",
4583 | "shortcode": "clock8",
4584 | "description": "CLOCK FACE EIGHT OCLOCK",
4585 | "category": "folderol"
4586 | },
4587 | {
4588 | "name": "clock9",
4589 | "unicode": "1F558",
4590 | "shortcode": "clock9",
4591 | "description": "CLOCK FACE NINE OCLOCK",
4592 | "category": "folderol"
4593 | },
4594 | {
4595 | "name": "clock10",
4596 | "unicode": "1F559",
4597 | "shortcode": "clock10",
4598 | "description": "CLOCK FACE TEN OCLOCK",
4599 | "category": "folderol"
4600 | },
4601 | {
4602 | "name": "clock11",
4603 | "unicode": "1F55A",
4604 | "shortcode": "clock11",
4605 | "description": "CLOCK FACE ELEVEN OCLOCK",
4606 | "category": "folderol"
4607 | },
4608 | {
4609 | "name": "clock12",
4610 | "unicode": "1F55B",
4611 | "shortcode": "clock12",
4612 | "description": "CLOCK FACE TWELVE OCLOCK",
4613 | "category": "folderol"
4614 | },
4615 | {
4616 | "name": "clock130",
4617 | "unicode": "1F55C",
4618 | "shortcode": "clock130",
4619 | "description": "CLOCK FACE ONE-THIRTY",
4620 | "category": "folderol"
4621 | },
4622 | {
4623 | "name": "clock230",
4624 | "unicode": "1F55D",
4625 | "shortcode": "clock230",
4626 | "description": "CLOCK FACE TWO-THIRTY",
4627 | "category": "folderol"
4628 | },
4629 | {
4630 | "name": "clock330",
4631 | "unicode": "1F55E",
4632 | "shortcode": "clock330",
4633 | "description": "CLOCK FACE THREE-THIRTY",
4634 | "category": "folderol"
4635 | },
4636 | {
4637 | "name": "clock430",
4638 | "unicode": "1F55F",
4639 | "shortcode": "clock430",
4640 | "description": "CLOCK FACE FOUR-THIRTY",
4641 | "category": "folderol"
4642 | },
4643 | {
4644 | "name": "clock530",
4645 | "unicode": "1F560",
4646 | "shortcode": "clock530",
4647 | "description": "CLOCK FACE FIVE-THIRTY",
4648 | "category": "folderol"
4649 | },
4650 | {
4651 | "name": "clock630",
4652 | "unicode": "1F561",
4653 | "shortcode": "clock630",
4654 | "description": "CLOCK FACE SIX-THIRTY",
4655 | "category": "folderol"
4656 | },
4657 | {
4658 | "name": "clock730",
4659 | "unicode": "1F562",
4660 | "shortcode": "clock730",
4661 | "description": "CLOCK FACE SEVEN-THIRTY",
4662 | "category": "folderol"
4663 | },
4664 | {
4665 | "name": "clock830",
4666 | "unicode": "1F563",
4667 | "shortcode": "clock830",
4668 | "description": "CLOCK FACE EIGHT-THIRTY",
4669 | "category": "folderol"
4670 | },
4671 | {
4672 | "name": "clock930",
4673 | "unicode": "1F564",
4674 | "shortcode": "clock930",
4675 | "description": "CLOCK FACE NINE-THIRTY",
4676 | "category": "folderol"
4677 | },
4678 | {
4679 | "name": "clock1030",
4680 | "unicode": "1F565",
4681 | "shortcode": "clock1030",
4682 | "description": "CLOCK FACE TEN-THIRTY",
4683 | "category": "folderol"
4684 | },
4685 | {
4686 | "name": "clock1130",
4687 | "unicode": "1F566",
4688 | "shortcode": "clock1130",
4689 | "description": "CLOCK FACE ELEVEN-THIRTY",
4690 | "category": "folderol"
4691 | },
4692 | {
4693 | "name": "clock1230",
4694 | "unicode": "1F567",
4695 | "shortcode": "clock1230",
4696 | "description": "CLOCK FACE TWELVE-THIRTY",
4697 | "category": "folderol"
4698 | },
4699 | {
4700 | "name": "mount_fuji",
4701 | "unicode": "1F5FB",
4702 | "shortcode": "mount_fuji",
4703 | "description": "MOUNT FUJI",
4704 | "category": "travel"
4705 | },
4706 | {
4707 | "name": "tokyo_tower",
4708 | "unicode": "1F5FC",
4709 | "shortcode": "tokyo_tower",
4710 | "description": "TOKYO TOWER",
4711 | "category": "travel"
4712 | },
4713 | {
4714 | "name": "statue_of_liberty",
4715 | "unicode": "1F5FD",
4716 | "shortcode": "statue_of_liberty",
4717 | "description": "STATUE OF LIBERTY",
4718 | "category": "travel"
4719 | },
4720 | {
4721 | "name": "japan",
4722 | "unicode": "1F5FE",
4723 | "shortcode": "japan",
4724 | "description": "SILHOUETTE OF JAPAN",
4725 | "category": "travel"
4726 | },
4727 | {
4728 | "name": "moyai",
4729 | "unicode": "1F5FF",
4730 | "shortcode": "moyai",
4731 | "description": "MOYAI",
4732 | "category": "travel"
4733 | },
4734 | {
4735 | "name": "grinning",
4736 | "unicode": "1F600",
4737 | "shortcode": "grinning",
4738 | "description": "GRINNING FACE",
4739 | "category": "people"
4740 | },
4741 | {
4742 | "name": "grin",
4743 | "unicode": "1F601",
4744 | "shortcode": "grin",
4745 | "description": "GRINNING FACE WITH SMILING EYES",
4746 | "category": "people"
4747 | },
4748 | {
4749 | "name": "joy",
4750 | "unicode": "1F602",
4751 | "shortcode": "joy",
4752 | "description": "FACE WITH TEARS OF JOY",
4753 | "category": "people"
4754 | },
4755 | {
4756 | "name": "smiley",
4757 | "unicode": "1F603",
4758 | "shortcode": "smiley",
4759 | "description": "SMILING FACE WITH OPEN MOUTH",
4760 | "category": "people"
4761 | },
4762 | {
4763 | "name": "smile",
4764 | "unicode": "1F604",
4765 | "shortcode": "smile",
4766 | "description": "SMILING FACE WITH OPEN MOUTH AND SMILING EYES",
4767 | "category": "people"
4768 | },
4769 | {
4770 | "name": "sweat_smile",
4771 | "unicode": "1F605",
4772 | "shortcode": "sweat_smile",
4773 | "description": "SMILING FACE WITH OPEN MOUTH AND COLD SWEAT",
4774 | "category": "people"
4775 | },
4776 | {
4777 | "name": "laughing",
4778 | "unicode": "1F606",
4779 | "shortcode": "laughing",
4780 | "description": "SMILING FACE WITH OPEN MOUTH AND TIGHTLY-CLOSED EYES",
4781 | "category": "people"
4782 | },
4783 | {
4784 | "name": "innocent",
4785 | "unicode": "1F607",
4786 | "shortcode": "innocent",
4787 | "description": "SMILING FACE WITH HALO",
4788 | "category": "people"
4789 | },
4790 | {
4791 | "name": "smiling_imp",
4792 | "unicode": "1F608",
4793 | "shortcode": "smiling_imp",
4794 | "description": "SMILING FACE WITH HORNS",
4795 | "category": "people"
4796 | },
4797 | {
4798 | "name": "wink",
4799 | "unicode": "1F609",
4800 | "shortcode": "wink",
4801 | "description": "WINKING FACE",
4802 | "category": "people"
4803 | },
4804 | {
4805 | "name": "blush",
4806 | "unicode": "1F60A",
4807 | "shortcode": "blush",
4808 | "description": "SMILING FACE WITH SMILING EYES",
4809 | "category": "people"
4810 | },
4811 | {
4812 | "name": "yum",
4813 | "unicode": "1F60B",
4814 | "shortcode": "yum",
4815 | "description": "FACE SAVOURING DELICIOUS FOOD",
4816 | "category": "people"
4817 | },
4818 | {
4819 | "name": "relieved",
4820 | "unicode": "1F60C",
4821 | "shortcode": "relieved",
4822 | "description": "RELIEVED FACE",
4823 | "category": "people"
4824 | },
4825 | {
4826 | "name": "heart_eyes",
4827 | "unicode": "1F60D",
4828 | "shortcode": "heart_eyes",
4829 | "description": "SMILING FACE WITH HEART-SHAPED EYES",
4830 | "category": "people"
4831 | },
4832 | {
4833 | "name": "sunglasses",
4834 | "unicode": "1F60E",
4835 | "shortcode": "sunglasses",
4836 | "description": "SMILING FACE WITH SUNGLASSES",
4837 | "category": "people"
4838 | },
4839 | {
4840 | "name": "smirk",
4841 | "unicode": "1F60F",
4842 | "shortcode": "smirk",
4843 | "description": "SMIRKING FACE",
4844 | "category": "people"
4845 | },
4846 | {
4847 | "name": "neutral_face",
4848 | "unicode": "1F610",
4849 | "shortcode": "neutral_face",
4850 | "description": "NEUTRAL FACE",
4851 | "category": "people"
4852 | },
4853 | {
4854 | "name": "expressionless",
4855 | "unicode": "1F611",
4856 | "shortcode": "expressionless",
4857 | "description": "EXPRESSIONLESS FACE",
4858 | "category": "people"
4859 | },
4860 | {
4861 | "name": "unamused",
4862 | "unicode": "1F612",
4863 | "shortcode": "unamused",
4864 | "description": "UNAMUSED FACE",
4865 | "category": "people"
4866 | },
4867 | {
4868 | "name": "sweat",
4869 | "unicode": "1F613",
4870 | "shortcode": "sweat",
4871 | "description": "FACE WITH COLD SWEAT",
4872 | "category": "people"
4873 | },
4874 | {
4875 | "name": "pensive",
4876 | "unicode": "1F614",
4877 | "shortcode": "pensive",
4878 | "description": "PENSIVE FACE",
4879 | "category": "people"
4880 | },
4881 | {
4882 | "name": "confused",
4883 | "unicode": "1F615",
4884 | "shortcode": "confused",
4885 | "description": "CONFUSED FACE",
4886 | "category": "people"
4887 | },
4888 | {
4889 | "name": "confounded",
4890 | "unicode": "1F616",
4891 | "shortcode": "confounded",
4892 | "description": "CONFOUNDED FACE",
4893 | "category": "people"
4894 | },
4895 | {
4896 | "name": "kissing",
4897 | "unicode": "1F617",
4898 | "shortcode": "kissing",
4899 | "description": "KISSING FACE",
4900 | "category": "people"
4901 | },
4902 | {
4903 | "name": "kissing_heart",
4904 | "unicode": "1F618",
4905 | "shortcode": "kissing_heart",
4906 | "description": "FACE THROWING A KISS",
4907 | "category": "people"
4908 | },
4909 | {
4910 | "name": "kissing_smiling_eyes",
4911 | "unicode": "1F619",
4912 | "shortcode": "kissing_smiling_eyes",
4913 | "description": "KISSING FACE WITH SMILING EYES",
4914 | "category": "people"
4915 | },
4916 | {
4917 | "name": "kissing_closed_eyes",
4918 | "unicode": "1F61A",
4919 | "shortcode": "kissing_closed_eyes",
4920 | "description": "KISSING FACE WITH CLOSED EYES",
4921 | "category": "people"
4922 | },
4923 | {
4924 | "name": "stuck_out_tongue",
4925 | "unicode": "1F61B",
4926 | "shortcode": "stuck_out_tongue",
4927 | "description": "FACE WITH STUCK-OUT TONGUE",
4928 | "category": "people"
4929 | },
4930 | {
4931 | "name": "stuck_out_tongue_winking_eye",
4932 | "unicode": "1F61C",
4933 | "shortcode": "stuck_out_tongue_winking_eye",
4934 | "description": "FACE WITH STUCK-OUT TONGUE AND WINKING EYE",
4935 | "category": "people"
4936 | },
4937 | {
4938 | "name": "stuck_out_tongue_closed_eyes",
4939 | "unicode": "1F61D",
4940 | "shortcode": "stuck_out_tongue_closed_eyes",
4941 | "description": "FACE WITH STUCK-OUT TONGUE AND TIGHTLY-CLOSED EYES",
4942 | "category": "people"
4943 | },
4944 | {
4945 | "name": "disappointed",
4946 | "unicode": "1F61E",
4947 | "shortcode": "disappointed",
4948 | "description": "DISAPPOINTED FACE",
4949 | "category": "people"
4950 | },
4951 | {
4952 | "name": "worried",
4953 | "unicode": "1F61F",
4954 | "shortcode": "worried",
4955 | "description": "WORRIED FACE",
4956 | "category": "people"
4957 | },
4958 | {
4959 | "name": "angry",
4960 | "unicode": "1F620",
4961 | "shortcode": "angry",
4962 | "description": "ANGRY FACE",
4963 | "category": "people"
4964 | },
4965 | {
4966 | "name": "rage",
4967 | "unicode": "1F621",
4968 | "shortcode": "rage",
4969 | "description": "POUTING FACE",
4970 | "category": "people"
4971 | },
4972 | {
4973 | "name": "cry",
4974 | "unicode": "1F622",
4975 | "shortcode": "cry",
4976 | "description": "CRYING FACE",
4977 | "category": "people"
4978 | },
4979 | {
4980 | "name": "persevere",
4981 | "unicode": "1F623",
4982 | "shortcode": "persevere",
4983 | "description": "PERSEVERING FACE",
4984 | "category": "people"
4985 | },
4986 | {
4987 | "name": "triumph",
4988 | "unicode": "1F624",
4989 | "shortcode": "triumph",
4990 | "description": "FACE WITH LOOK OF TRIUMPH",
4991 | "category": "people"
4992 | },
4993 | {
4994 | "name": "disappointed_relieved",
4995 | "unicode": "1F625",
4996 | "shortcode": "disappointed_relieved",
4997 | "description": "DISAPPOINTED BUT RELIEVED FACE",
4998 | "category": "people"
4999 | },
5000 | {
5001 | "name": "frowning",
5002 | "unicode": "1F626",
5003 | "shortcode": "frowning",
5004 | "description": "FROWNING FACE WITH OPEN MOUTH",
5005 | "category": "people"
5006 | },
5007 | {
5008 | "name": "anguished",
5009 | "unicode": "1F627",
5010 | "shortcode": "anguished",
5011 | "description": "ANGUISHED FACE",
5012 | "category": "people"
5013 | },
5014 | {
5015 | "name": "fearful",
5016 | "unicode": "1F628",
5017 | "shortcode": "fearful",
5018 | "description": "FEARFUL FACE",
5019 | "category": "people"
5020 | },
5021 | {
5022 | "name": "weary",
5023 | "unicode": "1F629",
5024 | "shortcode": "weary",
5025 | "description": "WEARY FACE",
5026 | "category": "people"
5027 | },
5028 | {
5029 | "name": "sleepy",
5030 | "unicode": "1F62A",
5031 | "shortcode": "sleepy",
5032 | "description": "SLEEPY FACE",
5033 | "category": "people"
5034 | },
5035 | {
5036 | "name": "tired_face",
5037 | "unicode": "1F62B",
5038 | "shortcode": "tired_face",
5039 | "description": "TIRED FACE",
5040 | "category": "people"
5041 | },
5042 | {
5043 | "name": "grimacing",
5044 | "unicode": "1F62C",
5045 | "shortcode": "grimacing",
5046 | "description": "GRIMACING FACE",
5047 | "category": "people"
5048 | },
5049 | {
5050 | "name": "sob",
5051 | "unicode": "1F62D",
5052 | "shortcode": "sob",
5053 | "description": "LOUDLY CRYING FACE",
5054 | "category": "people"
5055 | },
5056 | {
5057 | "name": "open_mouth",
5058 | "unicode": "1F62E",
5059 | "shortcode": "open_mouth",
5060 | "description": "FACE WITH OPEN MOUTH",
5061 | "category": "people"
5062 | },
5063 | {
5064 | "name": "hushed",
5065 | "unicode": "1F62F",
5066 | "shortcode": "hushed",
5067 | "description": "HUSHED FACE",
5068 | "category": "people"
5069 | },
5070 | {
5071 | "name": "cold_sweat",
5072 | "unicode": "1F630",
5073 | "shortcode": "cold_sweat",
5074 | "description": "FACE WITH OPEN MOUTH AND COLD SWEAT",
5075 | "category": "people"
5076 | },
5077 | {
5078 | "name": "scream",
5079 | "unicode": "1F631",
5080 | "shortcode": "scream",
5081 | "description": "FACE SCREAMING IN FEAR",
5082 | "category": "people"
5083 | },
5084 | {
5085 | "name": "astonished",
5086 | "unicode": "1F632",
5087 | "shortcode": "astonished",
5088 | "description": "ASTONISHED FACE",
5089 | "category": "people"
5090 | },
5091 | {
5092 | "name": "flushed",
5093 | "unicode": "1F633",
5094 | "shortcode": "flushed",
5095 | "description": "FLUSHED FACE",
5096 | "category": "people"
5097 | },
5098 | {
5099 | "name": "sleeping",
5100 | "unicode": "1F634",
5101 | "shortcode": "sleeping",
5102 | "description": "SLEEPING FACE",
5103 | "category": "people"
5104 | },
5105 | {
5106 | "name": "dizzy_face",
5107 | "unicode": "1F635",
5108 | "shortcode": "dizzy_face",
5109 | "description": "DIZZY FACE",
5110 | "category": "people"
5111 | },
5112 | {
5113 | "name": "no_mouth",
5114 | "unicode": "1F636",
5115 | "shortcode": "no_mouth",
5116 | "description": "FACE WITHOUT MOUTH",
5117 | "category": "people"
5118 | },
5119 | {
5120 | "name": "mask",
5121 | "unicode": "1F637",
5122 | "shortcode": "mask",
5123 | "description": "FACE WITH MEDICAL MASK",
5124 | "category": "people"
5125 | },
5126 | {
5127 | "name": "smile_cat",
5128 | "unicode": "1F638",
5129 | "shortcode": "smile_cat",
5130 | "description": "GRINNING CAT FACE WITH SMILING EYES",
5131 | "category": "people"
5132 | },
5133 | {
5134 | "name": "joy_cat",
5135 | "unicode": "1F639",
5136 | "shortcode": "joy_cat",
5137 | "description": "CAT FACE WITH TEARS OF JOY",
5138 | "category": "people"
5139 | },
5140 | {
5141 | "name": "smiley_cat",
5142 | "unicode": "1F63A",
5143 | "shortcode": "smiley_cat",
5144 | "description": "SMILING CAT FACE WITH OPEN MOUTH",
5145 | "category": "people"
5146 | },
5147 | {
5148 | "name": "heart_eyes_cat",
5149 | "unicode": "1F63B",
5150 | "shortcode": "heart_eyes_cat",
5151 | "description": "SMILING CAT FACE WITH HEART-SHAPED EYES",
5152 | "category": "people"
5153 | },
5154 | {
5155 | "name": "smirk_cat",
5156 | "unicode": "1F63C",
5157 | "shortcode": "smirk_cat",
5158 | "description": "CAT FACE WITH WRY SMILE",
5159 | "category": "people"
5160 | },
5161 | {
5162 | "name": "kissing_cat",
5163 | "unicode": "1F63D",
5164 | "shortcode": "kissing_cat",
5165 | "description": "KISSING CAT FACE WITH CLOSED EYES",
5166 | "category": "people"
5167 | },
5168 | {
5169 | "name": "pouting_cat",
5170 | "unicode": "1F63E",
5171 | "shortcode": "pouting_cat",
5172 | "description": "POUTING CAT FACE",
5173 | "category": "people"
5174 | },
5175 | {
5176 | "name": "crying_cat_face",
5177 | "unicode": "1F63F",
5178 | "shortcode": "crying_cat_face",
5179 | "description": "CRYING CAT FACE",
5180 | "category": "people"
5181 | },
5182 | {
5183 | "name": "scream_cat",
5184 | "unicode": "1F640",
5185 | "shortcode": "scream_cat",
5186 | "description": "WEARY CAT FACE",
5187 | "category": "people"
5188 | },
5189 | {
5190 | "name": "no_good",
5191 | "unicode": "1F645",
5192 | "shortcode": "no_good",
5193 | "description": "FACE WITH NO GOOD GESTURE",
5194 | "category": "people"
5195 | },
5196 | {
5197 | "name": "ok_woman",
5198 | "unicode": "1F646",
5199 | "shortcode": "ok_woman",
5200 | "description": "FACE WITH OK GESTURE",
5201 | "category": "people"
5202 | },
5203 | {
5204 | "name": "bow",
5205 | "unicode": "1F647",
5206 | "shortcode": "bow",
5207 | "description": "PERSON BOWING DEEPLY",
5208 | "category": "people"
5209 | },
5210 | {
5211 | "name": "see_no_evil",
5212 | "unicode": "1F648",
5213 | "shortcode": "see_no_evil",
5214 | "description": "SEE-NO-EVIL MONKEY",
5215 | "category": "people"
5216 | },
5217 | {
5218 | "name": "hear_no_evil",
5219 | "unicode": "1F649",
5220 | "shortcode": "hear_no_evil",
5221 | "description": "HEAR-NO-EVIL MONKEY",
5222 | "category": "people"
5223 | },
5224 | {
5225 | "name": "speak_no_evil",
5226 | "unicode": "1F64A",
5227 | "shortcode": "speak_no_evil",
5228 | "description": "SPEAK-NO-EVIL MONKEY",
5229 | "category": "people"
5230 | },
5231 | {
5232 | "name": "raising_hand",
5233 | "unicode": "1F64B",
5234 | "shortcode": "raising_hand",
5235 | "description": "HAPPY PERSON RAISING ONE HAND",
5236 | "category": "people"
5237 | },
5238 | {
5239 | "name": "raised_hands",
5240 | "unicode": "1F64C",
5241 | "shortcode": "raised_hands",
5242 | "description": "PERSON RAISING BOTH HANDS IN CELEBRATION",
5243 | "category": "people"
5244 | },
5245 | {
5246 | "name": "person_frowning",
5247 | "unicode": "1F64D",
5248 | "shortcode": "person_frowning",
5249 | "description": "PERSON FROWNING",
5250 | "category": "people"
5251 | },
5252 | {
5253 | "name": "person_with_pouting_face",
5254 | "unicode": "1F64E",
5255 | "shortcode": "person_with_pouting_face",
5256 | "description": "PERSON WITH POUTING FACE",
5257 | "category": "people"
5258 | },
5259 | {
5260 | "name": "pray",
5261 | "unicode": "1F64F",
5262 | "shortcode": "pray",
5263 | "description": "PERSON WITH FOLDED HANDS",
5264 | "category": "people"
5265 | },
5266 | {
5267 | "name": "rocket",
5268 | "unicode": "1F680",
5269 | "shortcode": "rocket",
5270 | "description": "ROCKET",
5271 | "category": "travel"
5272 | },
5273 | {
5274 | "name": "helicopter",
5275 | "unicode": "1F681",
5276 | "shortcode": "helicopter",
5277 | "description": "HELICOPTER",
5278 | "category": "travel"
5279 | },
5280 | {
5281 | "name": "steam_locomotive",
5282 | "unicode": "1F682",
5283 | "shortcode": "steam_locomotive",
5284 | "description": "STEAM LOCOMOTIVE",
5285 | "category": "travel"
5286 | },
5287 | {
5288 | "name": "railway_car",
5289 | "unicode": "1F683",
5290 | "shortcode": "railway_car",
5291 | "description": "RAILWAY CAR",
5292 | "category": "travel"
5293 | },
5294 | {
5295 | "name": "bullettrain_side",
5296 | "unicode": "1F684",
5297 | "shortcode": "bullettrain_side",
5298 | "description": "HIGH-SPEED TRAIN",
5299 | "category": "travel"
5300 | },
5301 | {
5302 | "name": "bullettrain_front",
5303 | "unicode": "1F685",
5304 | "shortcode": "bullettrain_front",
5305 | "description": "HIGH-SPEED TRAIN WITH BULLET NOSE",
5306 | "category": "travel"
5307 | },
5308 | {
5309 | "name": "train2",
5310 | "unicode": "1F686",
5311 | "shortcode": "train2",
5312 | "description": "TRAIN",
5313 | "category": "travel"
5314 | },
5315 | {
5316 | "name": "metro",
5317 | "unicode": "1F687",
5318 | "shortcode": "metro",
5319 | "description": "METRO",
5320 | "category": "travel"
5321 | },
5322 | {
5323 | "name": "light_rail",
5324 | "unicode": "1F688",
5325 | "shortcode": "light_rail",
5326 | "description": "LIGHT RAIL",
5327 | "category": "travel"
5328 | },
5329 | {
5330 | "name": "station",
5331 | "unicode": "1F689",
5332 | "shortcode": "station",
5333 | "description": "STATION",
5334 | "category": "travel"
5335 | },
5336 | {
5337 | "name": "tram",
5338 | "unicode": "1F68A",
5339 | "shortcode": "tram",
5340 | "description": "TRAM",
5341 | "category": "travel"
5342 | },
5343 | {
5344 | "name": "train",
5345 | "unicode": "1F68B",
5346 | "shortcode": "train",
5347 | "description": "TRAM CAR",
5348 | "category": "travel"
5349 | },
5350 | {
5351 | "name": "bus",
5352 | "unicode": "1F68C",
5353 | "shortcode": "bus",
5354 | "description": "BUS",
5355 | "category": "travel"
5356 | },
5357 | {
5358 | "name": "oncoming_bus",
5359 | "unicode": "1F68D",
5360 | "shortcode": "oncoming_bus",
5361 | "description": "ONCOMING BUS",
5362 | "category": "travel"
5363 | },
5364 | {
5365 | "name": "trolleybus",
5366 | "unicode": "1F68E",
5367 | "shortcode": "trolleybus",
5368 | "description": "TROLLEYBUS",
5369 | "category": "travel"
5370 | },
5371 | {
5372 | "name": "busstop",
5373 | "unicode": "1F68F",
5374 | "shortcode": "busstop",
5375 | "description": "BUS STOP",
5376 | "category": "travel"
5377 | },
5378 | {
5379 | "name": "minibus",
5380 | "unicode": "1F690",
5381 | "shortcode": "minibus",
5382 | "description": "MINIBUS",
5383 | "category": "travel"
5384 | },
5385 | {
5386 | "name": "ambulance",
5387 | "unicode": "1F691",
5388 | "shortcode": "ambulance",
5389 | "description": "AMBULANCE",
5390 | "category": "travel"
5391 | },
5392 | {
5393 | "name": "fire_engine",
5394 | "unicode": "1F692",
5395 | "shortcode": "fire_engine",
5396 | "description": "FIRE ENGINE",
5397 | "category": "travel"
5398 | },
5399 | {
5400 | "name": "police_car",
5401 | "unicode": "1F693",
5402 | "shortcode": "police_car",
5403 | "description": "POLICE CAR",
5404 | "category": "travel"
5405 | },
5406 | {
5407 | "name": "oncoming_police_car",
5408 | "unicode": "1F694",
5409 | "shortcode": "oncoming_police_car",
5410 | "description": "ONCOMING POLICE CAR",
5411 | "category": "travel"
5412 | },
5413 | {
5414 | "name": "taxi",
5415 | "unicode": "1F695",
5416 | "shortcode": "taxi",
5417 | "description": "TAXI",
5418 | "category": "travel"
5419 | },
5420 | {
5421 | "name": "oncoming_taxi",
5422 | "unicode": "1F696",
5423 | "shortcode": "oncoming_taxi",
5424 | "description": "ONCOMING TAXI",
5425 | "category": "travel"
5426 | },
5427 | {
5428 | "name": "car",
5429 | "unicode": "1F697",
5430 | "shortcode": "car",
5431 | "description": "AUTOMOBILE",
5432 | "category": "travel"
5433 | },
5434 | {
5435 | "name": "oncoming_automobile",
5436 | "unicode": "1F698",
5437 | "shortcode": "oncoming_automobile",
5438 | "description": "ONCOMING AUTOMOBILE",
5439 | "category": "travel"
5440 | },
5441 | {
5442 | "name": "blue_car",
5443 | "unicode": "1F699",
5444 | "shortcode": "blue_car",
5445 | "description": "RECREATIONAL VEHICLE",
5446 | "category": "travel"
5447 | },
5448 | {
5449 | "name": "truck",
5450 | "unicode": "1F69A",
5451 | "shortcode": "truck",
5452 | "description": "DELIVERY TRUCK",
5453 | "category": "travel"
5454 | },
5455 | {
5456 | "name": "articulated_lorry",
5457 | "unicode": "1F69B",
5458 | "shortcode": "articulated_lorry",
5459 | "description": "ARTICULATED LORRY",
5460 | "category": "travel"
5461 | },
5462 | {
5463 | "name": "tractor",
5464 | "unicode": "1F69C",
5465 | "shortcode": "tractor",
5466 | "description": "TRACTOR",
5467 | "category": "travel"
5468 | },
5469 | {
5470 | "name": "monorail",
5471 | "unicode": "1F69D",
5472 | "shortcode": "monorail",
5473 | "description": "MONORAIL",
5474 | "category": "travel"
5475 | },
5476 | {
5477 | "name": "mountain_railway",
5478 | "unicode": "1F69E",
5479 | "shortcode": "mountain_railway",
5480 | "description": "MOUNTAIN RAILWAY",
5481 | "category": "travel"
5482 | },
5483 | {
5484 | "name": "suspension_railway",
5485 | "unicode": "1F69F",
5486 | "shortcode": "suspension_railway",
5487 | "description": "SUSPENSION RAILWAY",
5488 | "category": "travel"
5489 | },
5490 | {
5491 | "name": "mountain_cableway",
5492 | "unicode": "1F6A0",
5493 | "shortcode": "mountain_cableway",
5494 | "description": "MOUNTAIN CABLEWAY",
5495 | "category": "travel"
5496 | },
5497 | {
5498 | "name": "aerial_tramway",
5499 | "unicode": "1F6A1",
5500 | "shortcode": "aerial_tramway",
5501 | "description": "AERIAL TRAMWAY",
5502 | "category": "travel"
5503 | },
5504 | {
5505 | "name": "ship",
5506 | "unicode": "1F6A2",
5507 | "shortcode": "ship",
5508 | "description": "SHIP",
5509 | "category": "travel"
5510 | },
5511 | {
5512 | "name": "rowboat",
5513 | "unicode": "1F6A3",
5514 | "shortcode": "rowboat",
5515 | "description": "ROWBOAT",
5516 | "category": "travel"
5517 | },
5518 | {
5519 | "name": "speedboat",
5520 | "unicode": "1F6A4",
5521 | "shortcode": "speedboat",
5522 | "description": "SPEEDBOAT",
5523 | "category": "travel"
5524 | },
5525 | {
5526 | "name": "traffic_light",
5527 | "unicode": "1F6A5",
5528 | "shortcode": "traffic_light",
5529 | "description": "HORIZONTAL TRAFFIC LIGHT",
5530 | "category": "travel"
5531 | },
5532 | {
5533 | "name": "vertical_traffic_light",
5534 | "unicode": "1F6A6",
5535 | "shortcode": "vertical_traffic_light",
5536 | "description": "VERTICAL TRAFFIC LIGHT",
5537 | "category": "travel"
5538 | },
5539 | {
5540 | "name": "construction",
5541 | "unicode": "1F6A7",
5542 | "shortcode": "construction",
5543 | "description": "CONSTRUCTION SIGN",
5544 | "category": "travel"
5545 | },
5546 | {
5547 | "name": "rotating_light",
5548 | "unicode": "1F6A8",
5549 | "shortcode": "rotating_light",
5550 | "description": "POLICE CARS REVOLVING LIGHT",
5551 | "category": "travel"
5552 | },
5553 | {
5554 | "name": "triangular_flag_on_post",
5555 | "unicode": "1F6A9",
5556 | "shortcode": "triangular_flag_on_post",
5557 | "description": "TRIANGULAR FLAG ON POST",
5558 | "category": "travel"
5559 | },
5560 | {
5561 | "name": "door",
5562 | "unicode": "1F6AA",
5563 | "shortcode": "door",
5564 | "description": "DOOR",
5565 | "category": "travel"
5566 | },
5567 | {
5568 | "name": "no_entry_sign",
5569 | "unicode": "1F6AB",
5570 | "shortcode": "no_entry_sign",
5571 | "description": "NO ENTRY SIGN",
5572 | "category": "travel"
5573 | },
5574 | {
5575 | "name": "smoking",
5576 | "unicode": "1F6AC",
5577 | "shortcode": "smoking",
5578 | "description": "SMOKING SYMBOL",
5579 | "category": "travel"
5580 | },
5581 | {
5582 | "name": "no_smoking",
5583 | "unicode": "1F6AD",
5584 | "shortcode": "no_smoking",
5585 | "description": "NO SMOKING SYMBOL",
5586 | "category": "travel"
5587 | },
5588 | {
5589 | "name": "put_litter_in_its_place",
5590 | "unicode": "1F6AE",
5591 | "shortcode": "put_litter_in_its_place",
5592 | "description": "PUT LITTER IN ITS PLACE SYMBOL",
5593 | "category": "travel"
5594 | },
5595 | {
5596 | "name": "do_not_litter",
5597 | "unicode": "1F6AF",
5598 | "shortcode": "do_not_litter",
5599 | "description": "DO NOT LITTER SYMBOL",
5600 | "category": "travel"
5601 | },
5602 | {
5603 | "name": "potable_water",
5604 | "unicode": "1F6B0",
5605 | "shortcode": "potable_water",
5606 | "description": "POTABLE WATER SYMBOL",
5607 | "category": "travel"
5608 | },
5609 | {
5610 | "name": "non-potable_water",
5611 | "unicode": "1F6B1",
5612 | "shortcode": "non-potable_water",
5613 | "description": "NON-POTABLE WATER SYMBOL",
5614 | "category": "travel"
5615 | },
5616 | {
5617 | "name": "bike",
5618 | "unicode": "1F6B2",
5619 | "shortcode": "bike",
5620 | "description": "BICYCLE",
5621 | "category": "travel"
5622 | },
5623 | {
5624 | "name": "no_bicycles",
5625 | "unicode": "1F6B3",
5626 | "shortcode": "no_bicycles",
5627 | "description": "NO BICYCLES",
5628 | "category": "travel"
5629 | },
5630 | {
5631 | "name": "bicyclist",
5632 | "unicode": "1F6B4",
5633 | "shortcode": "bicyclist",
5634 | "description": "BICYCLIST",
5635 | "category": "travel"
5636 | },
5637 | {
5638 | "name": "mountain_bicyclist",
5639 | "unicode": "1F6B5",
5640 | "shortcode": "mountain_bicyclist",
5641 | "description": "MOUNTAIN BICYCLIST",
5642 | "category": "travel"
5643 | },
5644 | {
5645 | "name": "walking",
5646 | "unicode": "1F6B6",
5647 | "shortcode": "walking",
5648 | "description": "PEDESTRIAN",
5649 | "category": "travel"
5650 | },
5651 | {
5652 | "name": "no_pedestrians",
5653 | "unicode": "1F6B7",
5654 | "shortcode": "no_pedestrians",
5655 | "description": "NO PEDESTRIANS",
5656 | "category": "travel"
5657 | },
5658 | {
5659 | "name": "children_crossing",
5660 | "unicode": "1F6B8",
5661 | "shortcode": "children_crossing",
5662 | "description": "CHILDREN CROSSING",
5663 | "category": "travel"
5664 | },
5665 | {
5666 | "name": "mens",
5667 | "unicode": "1F6B9",
5668 | "shortcode": "mens",
5669 | "description": "MENS SYMBOL",
5670 | "category": "travel"
5671 | },
5672 | {
5673 | "name": "womens",
5674 | "unicode": "1F6BA",
5675 | "shortcode": "womens",
5676 | "description": "WOMENS SYMBOL",
5677 | "category": "travel"
5678 | },
5679 | {
5680 | "name": "restroom",
5681 | "unicode": "1F6BB",
5682 | "shortcode": "restroom",
5683 | "description": "RESTROOM",
5684 | "category": "travel"
5685 | },
5686 | {
5687 | "name": "baby_symbol",
5688 | "unicode": "1F6BC",
5689 | "shortcode": "baby_symbol",
5690 | "description": "BABY SYMBOL",
5691 | "category": "travel"
5692 | },
5693 | {
5694 | "name": "toilet",
5695 | "unicode": "1F6BD",
5696 | "shortcode": "toilet",
5697 | "description": "TOILET",
5698 | "category": "travel"
5699 | },
5700 | {
5701 | "name": "wc",
5702 | "unicode": "1F6BE",
5703 | "shortcode": "wc",
5704 | "description": "WATER CLOSET",
5705 | "category": "travel"
5706 | },
5707 | {
5708 | "name": "shower",
5709 | "unicode": "1F6BF",
5710 | "shortcode": "shower",
5711 | "description": "SHOWER",
5712 | "category": "travel"
5713 | },
5714 | {
5715 | "name": "bath",
5716 | "unicode": "1F6C0",
5717 | "shortcode": "bath",
5718 | "description": "BATH",
5719 | "category": "travel"
5720 | },
5721 | {
5722 | "name": "bathtub",
5723 | "unicode": "1F6C1",
5724 | "shortcode": "bathtub",
5725 | "description": "BATHTUB",
5726 | "category": "travel"
5727 | },
5728 | {
5729 | "name": "passport_control",
5730 | "unicode": "1F6C2",
5731 | "shortcode": "passport_control",
5732 | "description": "PASSPORT CONTROL",
5733 | "category": "travel"
5734 | },
5735 | {
5736 | "name": "customs",
5737 | "unicode": "1F6C3",
5738 | "shortcode": "customs",
5739 | "description": "CUSTOMS",
5740 | "category": "travel"
5741 | },
5742 | {
5743 | "name": "baggage_claim",
5744 | "unicode": "1F6C4",
5745 | "shortcode": "baggage_claim",
5746 | "description": "BAGGAGE CLAIM",
5747 | "category": "travel"
5748 | },
5749 | {
5750 | "name": "left_luggage",
5751 | "unicode": "1F6C5",
5752 | "shortcode": "left_luggage",
5753 | "description": "LEFT LUGGAGE",
5754 | "category": "travel"
5755 | },
5756 | {
5757 | "name": "hash",
5758 | "unicode": "0023-20E3",
5759 | "shortcode": "hash",
5760 | "description": "HASH KEY",
5761 | "category": "folderol"
5762 | },
5763 | {
5764 | "name": "zero",
5765 | "unicode": "0030-20E3",
5766 | "shortcode": "zero",
5767 | "description": "KEYCAP 0",
5768 | "category": "folderol"
5769 | },
5770 | {
5771 | "name": "one",
5772 | "unicode": "0031-20E3",
5773 | "shortcode": "one",
5774 | "description": "KEYCAP 1",
5775 | "category": "folderol"
5776 | },
5777 | {
5778 | "name": "two",
5779 | "unicode": "0032-20E3",
5780 | "shortcode": "two",
5781 | "description": "KEYCAP 2",
5782 | "category": "folderol"
5783 | },
5784 | {
5785 | "name": "three",
5786 | "unicode": "0033-20E3",
5787 | "shortcode": "three",
5788 | "description": "KEYCAP 3",
5789 | "category": "folderol"
5790 | },
5791 | {
5792 | "name": "four",
5793 | "unicode": "0034-20E3",
5794 | "shortcode": "four",
5795 | "description": "KEYCAP 4",
5796 | "category": "folderol"
5797 | },
5798 | {
5799 | "name": "five",
5800 | "unicode": "0035-20E3",
5801 | "shortcode": "five",
5802 | "description": "KEYCAP 5",
5803 | "category": "folderol"
5804 | },
5805 | {
5806 | "name": "six",
5807 | "unicode": "0036-20E3",
5808 | "shortcode": "six",
5809 | "description": "KEYCAP 6",
5810 | "category": "folderol"
5811 | },
5812 | {
5813 | "name": "seven",
5814 | "unicode": "0037-20E3",
5815 | "shortcode": "seven",
5816 | "description": "KEYCAP 7",
5817 | "category": "folderol"
5818 | },
5819 | {
5820 | "name": "eight",
5821 | "unicode": "0038-20E3",
5822 | "shortcode": "eight",
5823 | "description": "KEYCAP 8",
5824 | "category": "folderol"
5825 | },
5826 | {
5827 | "name": "nine",
5828 | "unicode": "0039-20E3",
5829 | "shortcode": "nine",
5830 | "description": "KEYCAP 9",
5831 | "category": "folderol"
5832 | },
5833 | {
5834 | "name": "flag-cn",
5835 | "unicode": "1F1E8-1F1F3",
5836 | "shortcode": "flag-cn",
5837 | "description": "REGIONAL INDICATOR SYMBOL LETTERS CN",
5838 | "category": "folderol"
5839 | },
5840 | {
5841 | "name": "flag-de",
5842 | "unicode": "1F1E9-1F1EA",
5843 | "shortcode": "flag-de",
5844 | "description": "REGIONAL INDICATOR SYMBOL LETTERS DE",
5845 | "category": "folderol"
5846 | },
5847 | {
5848 | "name": "flag-es",
5849 | "unicode": "1F1EA-1F1F8",
5850 | "shortcode": "flag-es",
5851 | "description": "REGIONAL INDICATOR SYMBOL LETTERS ES",
5852 | "category": "folderol"
5853 | },
5854 | {
5855 | "name": "flag-fr",
5856 | "unicode": "1F1EB-1F1F7",
5857 | "shortcode": "flag-fr",
5858 | "description": "REGIONAL INDICATOR SYMBOL LETTERS FR",
5859 | "category": "folderol"
5860 | },
5861 | {
5862 | "name": "flag-gb",
5863 | "unicode": "1F1EC-1F1E7",
5864 | "shortcode": "flag-gb",
5865 | "description": "REGIONAL INDICATOR SYMBOL LETTERS GB",
5866 | "category": "folderol"
5867 | },
5868 | {
5869 | "name": "flag-it",
5870 | "unicode": "1F1EE-1F1F9",
5871 | "shortcode": "flag-it",
5872 | "description": "REGIONAL INDICATOR SYMBOL LETTERS IT",
5873 | "category": "folderol"
5874 | },
5875 | {
5876 | "name": "flag-jp",
5877 | "unicode": "1F1EF-1F1F5",
5878 | "shortcode": "flag-jp",
5879 | "description": "REGIONAL INDICATOR SYMBOL LETTERS JP",
5880 | "category": "folderol"
5881 | },
5882 | {
5883 | "name": "flag-kr",
5884 | "unicode": "1F1F0-1F1F7",
5885 | "shortcode": "flag-kr",
5886 | "description": "REGIONAL INDICATOR SYMBOL LETTERS KR",
5887 | "category": "folderol"
5888 | },
5889 | {
5890 | "name": "flag-ru",
5891 | "unicode": "1F1F7-1F1FA",
5892 | "shortcode": "flag-ru",
5893 | "description": "REGIONAL INDICATOR SYMBOL LETTERS RU",
5894 | "category": "folderol"
5895 | },
5896 | {
5897 | "name": "flag-us",
5898 | "unicode": "1F1FA-1F1F8",
5899 | "shortcode": "flag-us",
5900 | "description": "REGIONAL INDICATOR SYMBOL LETTERS US",
5901 | "category": "folderol"
5902 | }
5903 | ]
5904 | });
5905 |
--------------------------------------------------------------------------------
/static/javascripts/ui_components/Chat.js:
--------------------------------------------------------------------------------
1 | var Chat = React.createClass({
2 |
3 | getInitialState: function() {
4 | return {
5 | name: null
6 | };
7 | },
8 |
9 | _onClick: function(){
10 | var input = document.getElementById('input-name');
11 | var name = input.value;
12 | this.setState({name: name});
13 | },
14 |
15 | _onName: function(e){
16 | if (e.nativeEvent.keyCode != 13) return;
17 | var name = e.target.value;
18 | this.setState({name: name});
19 | },
20 |
21 | render: function() {
22 | return (
23 |
24 |
25 |
26 |
27 | );
28 | }
29 |
30 | });
31 |
32 | React.render(, document.getElementById('app'));
--------------------------------------------------------------------------------
/static/javascripts/ui_components/MainView.js:
--------------------------------------------------------------------------------
1 | var MainView = React.createClass({
2 |
3 | getInitialState: function() {
4 |
5 | var messages = ['Hi there! 😘', 'Welcome to your chat app', 'See the tutorial at http://blog.pusher.com/react-chat'];
6 | messages = messages.map(function(msg){
7 | return {
8 | name: 'pusher',
9 | time: new Date(),
10 | text: msg
11 | }
12 | });
13 |
14 | return {
15 | messages: messages
16 | };
17 | },
18 |
19 | componentWillMount: function() {
20 |
21 | this.pusher = new Pusher(PUSHER_CHAT_APP_KEY);
22 | this.chatRoom = this.pusher.subscribe('messages');
23 |
24 | },
25 |
26 | componentDidMount: function() {
27 |
28 | this.chatRoom.bind('new_message', function(message){
29 | this.setState({messages: this.state.messages.concat(message)})
30 |
31 | $("#message-list").scrollTop($("#message-list")[0].scrollHeight);
32 |
33 | }, this);
34 |
35 | $(document).ready(function(){
36 | $('#msg-input').emojiPicker({
37 | height: '150px',
38 | width: '200px',
39 | button: false
40 | });
41 |
42 | });
43 |
44 |
45 |
46 | },
47 |
48 | sendMessage: function(text){
49 | var message = {
50 | name: this.props.name,
51 | text: text,
52 | time: new Date()
53 | }
54 |
55 | $.post('/messages', message).success(function(){
56 | var input = document.getElementById('msg-input');
57 | input.value = ""
58 | });
59 | },
60 |
61 | _onClick: function(e){
62 | var input = document.getElementById('msg-input');
63 | var text = input.value;
64 | if (text === "") return;
65 | this.sendMessage(text);
66 | },
67 |
68 | _onEnter: function(e){
69 | if (e.nativeEvent.keyCode != 13) return;
70 | e.preventDefault();
71 | var input = e.target;
72 | var text = input.value;
73 |
74 | if (text === "") return;
75 | this.sendMessage(text);
76 | },
77 |
78 | toggleEmoji: function(evt){
79 | $('#msg-input').emojiPicker('toggle');
80 | },
81 |
82 | render: function() {
83 |
84 | if (!this.props.name) var style = {display:'none'}
85 |
86 |
87 | var body = (
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | );
102 |
103 | return (
104 |
105 |
106 |
107 |
108 |
109 |
110 |
111 |
112 |
113 | {body}
114 |
115 |
116 |
117 |
118 |
119 |
120 | );
121 | }
122 |
123 | });
124 |
--------------------------------------------------------------------------------
/static/javascripts/ui_components/Messages.js:
--------------------------------------------------------------------------------
1 | var UNICODE_REGEX = /[^\u0000-\u007F]+/;
2 | var URL_REGEX = /https?:\/\/?[\da-z\.-]+\.[a-z\.]{2,6}[\/\w \.-]*\/?/;
3 |
4 | var Messages = React.createClass({
5 |
6 | render: function() {
7 |
8 | var messageList = this.props.messages.map(function(message){
9 | var text = message.text;
10 |
11 | var emojiMatches = text.match(UNICODE_REGEX);
12 |
13 | if (emojiMatches) {
14 | $.each(emojiMatches, function(index, match){
15 | text = text.replace(UNICODE_REGEX, ""+match+"");
16 | });
17 | }
18 |
19 | var urlMatches = text.match(URL_REGEX);
20 | if (urlMatches) {
21 | $.each(urlMatches, function(index, match){
22 | text = text.replace(URL_REGEX, ""+match+"");
23 | });
24 | }
25 |
26 |
27 | return (
28 |
29 |
30 |

31 |
32 |
33 |
34 | {message.name}
35 | {strftime('%H:%M:%S %P', new Date(message.time))}
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | )
44 |
45 | });
46 |
47 | return (
48 |
49 |
50 |
51 | Today
52 |
53 |
54 | {messageList}
55 |
56 | );
57 | }
58 |
59 | });
60 |
--------------------------------------------------------------------------------
/static/javascripts/ui_components/WelcomeView.js:
--------------------------------------------------------------------------------
1 | var WelcomeView = React.createClass({
2 |
3 | render: function() {
4 |
5 | var view;
6 | var name = this.props.name;
7 |
8 | if (name) {
9 | view = Welcome {name}
10 | } else {
11 | view = (
12 |
13 |
Enter your Twitter name and start chatting!
14 |
15 |
16 |
19 |
20 |
21 | )
22 | }
23 |
24 |
25 | return (
26 |
27 |
28 |
29 |
30 | Realtime Chat Made Easy With Pusher
31 |
32 | {view}
33 |
34 |
35 | )
36 |
37 | }
38 |
39 | });
--------------------------------------------------------------------------------
/static/stylesheets/devices.min.css:
--------------------------------------------------------------------------------
1 | .marvel-device{display:inline-block;position:relative}.marvel-device .screen{width:100%;position:relative;height:100%;color:white;z-index:2;text-align:center;display:block;-webkit-border-radius:1px;border-radius:1px;-webkit-box-shadow:0 0 0 3px #111;box-shadow:0 0 0 3px #111}.marvel-device .top-bar,.marvel-device .bottom-bar{height:3px;background:black;width:100%;display:block}.marvel-device .middle-bar{width:3px;height:4px;top:0px;left:90px;background:black;position:absolute}.marvel-device.iphone6{width:375px;height:667px;padding:105px 24px;background:#d9dbdc;-webkit-border-radius:56px;border-radius:56px;-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.2);box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.2)}.marvel-device.iphone6:before{width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;top:6px;content:'';left:6px;-webkit-border-radius:50px;border-radius:50px;background:#f8f8f8;z-index:1}.marvel-device.iphone6:after{width:calc(100% - 16px);height:calc(100% - 16px);position:absolute;top:8px;content:'';left:8px;-webkit-border-radius:48px;border-radius:48px;-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #fff;box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #fff;z-index:2}.marvel-device.iphone6 .home{-webkit-border-radius:100%;border-radius:100%;width:68px;height:68px;position:absolute;left:50%;margin-left:-34px;bottom:22px;z-index:3;background:#303233;background:-moz-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0%, #303233), color-stop(50%, #b5b7b9), color-stop(69%, #f0f2f2), color-stop(100%, #303233));background:-webkit-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:-o-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:-ms-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:linear-gradient(135deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#303233', endColorstr='#303233',GradientType=1 )}.marvel-device.iphone6 .home:before{background:#f8f8f8;position:absolute;content:'';-webkit-border-radius:100%;border-radius:100%;width:calc(100% - 8px);height:calc(100% - 8px);top:4px;left:4px}.marvel-device.iphone6 .top-bar{height:14px;background:#bfbfc0;position:absolute;top:68px;left:0}.marvel-device.iphone6 .bottom-bar{height:14px;background:#bfbfc0;position:absolute;bottom:68px;left:0}.marvel-device.iphone6 .sleep{position:absolute;top:190px;right:-4px;width:4px;height:66px;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px;background:#d9dbdc}.marvel-device.iphone6 .volume{position:absolute;left:-4px;top:188px;z-index:0;height:66px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:#d9dbdc}.marvel-device.iphone6 .volume:before{position:absolute;left:2px;top:-78px;height:40px;width:2px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone6 .volume:after{position:absolute;left:0px;top:82px;height:66px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone6 .camera{background:#3c3d3d;width:12px;height:12px;position:absolute;top:24px;left:50%;margin-left:-6px;-webkit-border-radius:100%;border-radius:100%;z-index:3}.marvel-device.iphone6 .sensor{background:#3c3d3d;width:16px;height:16px;position:absolute;top:49px;left:134px;z-index:3;-webkit-border-radius:100%;border-radius:100%}.marvel-device.iphone6 .speaker{background:#292728;width:70px;height:6px;position:absolute;top:54px;left:50%;margin-left:-35px;-webkit-border-radius:6px;border-radius:6px;z-index:3}.marvel-device.iphone6.gold{background:#f9e7d3}.marvel-device.iphone6.gold .top-bar,.marvel-device.iphone6.gold .bottom-bar{background:white}.marvel-device.iphone6.gold .sleep,.marvel-device.iphone6.gold .volume{background:#f9e7d3}.marvel-device.iphone6.gold .home{background:#cebba9;background:-moz-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0%, #cebba9), color-stop(50%, #f9e7d3), color-stop(100%, #cebba9));background:-webkit-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:-o-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:-ms-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:linear-gradient(135deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cebba9', endColorstr='#cebba9',GradientType=1 )}.marvel-device.iphone6.black{background:#464646;-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.7);box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.7)}.marvel-device.iphone6.black:before{background:#080808}.marvel-device.iphone6.black:after{-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #212121;box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #212121}.marvel-device.iphone6.black .top-bar,.marvel-device.iphone6.black .bottom-bar{background:#212121}.marvel-device.iphone6.black .volume,.marvel-device.iphone6.black .sleep{background:#464646}.marvel-device.iphone6.black .camera{background:#080808}.marvel-device.iphone6.black .home{background:#080808;background:-moz-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0%, #080808), color-stop(50%, #464646), color-stop(100%, #080808));background:-webkit-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:-o-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:-ms-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:linear-gradient(135deg, #080808 0%, #464646 50%, #080808 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#080808', endColorstr='#080808',GradientType=1 )}.marvel-device.iphone6.black .home:before{background:#080808}.marvel-device.iphone6.landscape{padding:24px 105px;height:375px;width:667px}.marvel-device.iphone6.landscape .sleep{top:100%;-webkit-border-radius:0px 0px 2px 2px;border-radius:0px 0px 2px 2px;right:190px;height:4px;width:66px}.marvel-device.iphone6.landscape .volume{width:66px;height:4px;top:-4px;left:calc(100% - 188px - 66px);-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone6.landscape .volume:before{width:40px;height:2px;top:2px;right:-78px;left:auto;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone6.landscape .volume:after{left:-82px;width:66px;height:4px;top:0;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone6.landscape .top-bar{width:14px;height:100%;left:calc(100% - 68px - 14px);top:0}.marvel-device.iphone6.landscape .bottom-bar{width:14px;height:100%;left:68px;top:0}.marvel-device.iphone6.landscape .home{top:50%;margin-top:-34px;margin-left:0;left:22px}.marvel-device.iphone6.landscape .sensor{top:134px;left:calc(100% - 49px - 16px)}.marvel-device.iphone6.landscape .speaker{height:70px;width:6px;left:calc(100% - 54px - 6px);top:50%;margin-left:0px;margin-top:-35px}.marvel-device.iphone6.landscape .camera{left:calc(100% - 32px);top:50%;margin-left:0px;margin-top:-5px}.marvel-device.iphone6plus{width:414px;height:736px;padding:112px 26px;background:#d9dbdc;-webkit-border-radius:56px;border-radius:56px;-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.2);box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.2)}.marvel-device.iphone6plus:before{width:calc(100% - 12px);height:calc(100% - 12px);position:absolute;top:6px;content:'';left:6px;-webkit-border-radius:50px;border-radius:50px;background:#f8f8f8;z-index:1}.marvel-device.iphone6plus:after{width:calc(100% - 16px);height:calc(100% - 16px);position:absolute;top:8px;content:'';left:8px;-webkit-border-radius:48px;border-radius:48px;-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #fff;box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #fff;z-index:2}.marvel-device.iphone6plus .home{-webkit-border-radius:100%;border-radius:100%;width:68px;height:68px;position:absolute;left:50%;margin-left:-34px;bottom:24px;z-index:3;background:#303233;background:-moz-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0%, #303233), color-stop(50%, #b5b7b9), color-stop(69%, #f0f2f2), color-stop(100%, #303233));background:-webkit-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:-o-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:-ms-linear-gradient(-45deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);background:linear-gradient(135deg, #303233 0%, #b5b7b9 50%, #f0f2f2 69%, #303233 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#303233', endColorstr='#303233',GradientType=1 )}.marvel-device.iphone6plus .home:before{background:#f8f8f8;position:absolute;content:'';-webkit-border-radius:100%;border-radius:100%;width:calc(100% - 8px);height:calc(100% - 8px);top:4px;left:4px}.marvel-device.iphone6plus .top-bar{height:14px;background:#bfbfc0;position:absolute;top:68px;left:0}.marvel-device.iphone6plus .bottom-bar{height:14px;background:#bfbfc0;position:absolute;bottom:68px;left:0}.marvel-device.iphone6plus .sleep{position:absolute;top:190px;right:-4px;width:4px;height:66px;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px;background:#d9dbdc}.marvel-device.iphone6plus .volume{position:absolute;left:-4px;top:188px;z-index:0;height:66px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:#d9dbdc}.marvel-device.iphone6plus .volume:before{position:absolute;left:2px;top:-78px;height:40px;width:2px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone6plus .volume:after{position:absolute;left:0px;top:82px;height:66px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone6plus .camera{background:#3c3d3d;width:12px;height:12px;position:absolute;top:29px;left:50%;margin-left:-6px;-webkit-border-radius:100%;border-radius:100%;z-index:3}.marvel-device.iphone6plus .sensor{background:#3c3d3d;width:16px;height:16px;position:absolute;top:54px;left:154px;z-index:3;-webkit-border-radius:100%;border-radius:100%}.marvel-device.iphone6plus .speaker{background:#292728;width:70px;height:6px;position:absolute;top:59px;left:50%;margin-left:-35px;-webkit-border-radius:6px;border-radius:6px;z-index:3}.marvel-device.iphone6plus.gold{background:#f9e7d3}.marvel-device.iphone6plus.gold .top-bar,.marvel-device.iphone6plus.gold .bottom-bar{background:white}.marvel-device.iphone6plus.gold .sleep,.marvel-device.iphone6plus.gold .volume{background:#f9e7d3}.marvel-device.iphone6plus.gold .home{background:#cebba9;background:-moz-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0%, #cebba9), color-stop(50%, #f9e7d3), color-stop(100%, #cebba9));background:-webkit-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:-o-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:-ms-linear-gradient(-45deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);background:linear-gradient(135deg, #cebba9 0%, #f9e7d3 50%, #cebba9 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#cebba9', endColorstr='#cebba9',GradientType=1 )}.marvel-device.iphone6plus.black{background:#464646;-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.7);box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.7)}.marvel-device.iphone6plus.black:before{background:#080808}.marvel-device.iphone6plus.black:after{-webkit-box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #212121;box-shadow:inset 0 0 3px 0 rgba(0,0,0,0.1),inset 0 0 6px 3px #212121}.marvel-device.iphone6plus.black .top-bar,.marvel-device.iphone6plus.black .bottom-bar{background:#212121}.marvel-device.iphone6plus.black .volume,.marvel-device.iphone6plus.black .sleep{background:#464646}.marvel-device.iphone6plus.black .camera{background:#080808}.marvel-device.iphone6plus.black .home{background:#080808;background:-moz-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:-webkit-gradient(linear, left top, right bottom, color-stop(0%, #080808), color-stop(50%, #464646), color-stop(100%, #080808));background:-webkit-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:-o-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:-ms-linear-gradient(-45deg, #080808 0%, #464646 50%, #080808 100%);background:linear-gradient(135deg, #080808 0%, #464646 50%, #080808 100%);filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#080808', endColorstr='#080808',GradientType=1 )}.marvel-device.iphone6plus.black .home:before{background:#080808}.marvel-device.iphone6plus.landscape{padding:26px 112px;height:414px;width:736px}.marvel-device.iphone6plus.landscape .sleep{top:100%;-webkit-border-radius:0px 0px 2px 2px;border-radius:0px 0px 2px 2px;right:190px;height:4px;width:66px}.marvel-device.iphone6plus.landscape .volume{width:66px;height:4px;top:-4px;left:calc(100% - 188px - 66px);-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone6plus.landscape .volume:before{width:40px;height:2px;top:2px;right:-78px;left:auto;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone6plus.landscape .volume:after{left:-82px;width:66px;height:4px;top:0;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone6plus.landscape .top-bar{width:14px;height:100%;left:calc(100% - 68px - 14px);top:0}.marvel-device.iphone6plus.landscape .bottom-bar{width:14px;height:100%;left:68px;top:0}.marvel-device.iphone6plus.landscape .home{top:50%;margin-top:-34px;margin-left:0;left:24px}.marvel-device.iphone6plus.landscape .sensor{top:154px;left:calc(100% - 54px - 16px)}.marvel-device.iphone6plus.landscape .speaker{height:70px;width:6px;left:calc(100% - 59px - 6px);top:50%;margin-left:0px;margin-top:-35px}.marvel-device.iphone6plus.landscape .camera{left:calc(100% - 29px);top:50%;margin-left:0px;margin-top:-5px}.marvel-device.iphone5s,.marvel-device.iphone5c{padding:105px 22px;background:#2c2b2c;width:320px;height:568px;-webkit-border-radius:50px;border-radius:50px}.marvel-device.iphone5s:before,.marvel-device.iphone5c:before{width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;top:4px;content:'';left:4px;-webkit-border-radius:46px;border-radius:46px;background:#1e1e1e;z-index:1}.marvel-device.iphone5s .sleep,.marvel-device.iphone5c .sleep{position:absolute;top:-4px;right:60px;width:60px;height:4px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px;background:#282727}.marvel-device.iphone5s .volume,.marvel-device.iphone5c .volume{position:absolute;left:-4px;top:180px;z-index:0;height:27px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:#282727}.marvel-device.iphone5s .volume:before,.marvel-device.iphone5c .volume:before{position:absolute;left:0px;top:-75px;height:35px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone5s .volume:after,.marvel-device.iphone5c .volume:after{position:absolute;left:0px;bottom:-64px;height:27px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone5s .camera,.marvel-device.iphone5c .camera{background:#3c3d3d;width:10px;height:10px;position:absolute;top:32px;left:50%;margin-left:-5px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;z-index:3}.marvel-device.iphone5s .sensor,.marvel-device.iphone5c .sensor{background:#3c3d3d;width:10px;height:10px;position:absolute;top:60px;left:160px;z-index:3;margin-left:-32px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.marvel-device.iphone5s .speaker,.marvel-device.iphone5c .speaker{background:#292728;width:64px;height:10px;position:absolute;top:60px;left:50%;margin-left:-32px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;z-index:3}.marvel-device.iphone5s.landscape,.marvel-device.iphone5c.landscape{padding:22px 105px;height:320px;width:568px}.marvel-device.iphone5s.landscape .sleep,.marvel-device.iphone5c.landscape .sleep{right:-4px;top:calc(100% - 120px);height:60px;width:4px;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px}.marvel-device.iphone5s.landscape .volume,.marvel-device.iphone5c.landscape .volume{width:27px;height:4px;top:-4px;left:calc(100% - 180px);-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone5s.landscape .volume:before,.marvel-device.iphone5c.landscape .volume:before{width:35px;height:4px;top:0px;right:-75px;left:auto;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone5s.landscape .volume:after,.marvel-device.iphone5c.landscape .volume:after{bottom:0px;left:-64px;z-index:999;height:4px;width:27px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone5s.landscape .sensor,.marvel-device.iphone5c.landscape .sensor{top:160px;left:calc(100% - 60px);margin-left:0px;margin-top:-32px}.marvel-device.iphone5s.landscape .speaker,.marvel-device.iphone5c.landscape .speaker{height:64px;width:10px;left:calc(100% - 60px);top:50%;margin-left:0px;margin-top:-32px}.marvel-device.iphone5s.landscape .camera,.marvel-device.iphone5c.landscape .camera{left:calc(100% - 32px);top:50%;margin-left:0px;margin-top:-5px}.marvel-device.iphone5s .home{-moz-border-radius:36px;-webkit-border-radius:36px;border-radius:36px;width:68px;-webkit-box-shadow:inset 0 0 0 4px #2c2b2c;box-shadow:inset 0 0 0 4px #2c2b2c;height:68px;position:absolute;left:50%;margin-left:-34px;bottom:19px;z-index:3}.marvel-device.iphone5s .top-bar{top:70px;position:absolute;left:0}.marvel-device.iphone5s .bottom-bar{bottom:70px;position:absolute;left:0}.marvel-device.iphone5s.landscape .home{left:19px;bottom:50%;margin-bottom:-34px;margin-left:0px}.marvel-device.iphone5s.landscape .top-bar{left:70px;top:0px;width:3px;height:100%}.marvel-device.iphone5s.landscape .bottom-bar{right:70px;left:auto;bottom:0px;width:3px;height:100%}.marvel-device.iphone5s.silver{background:#bcbcbc}.marvel-device.iphone5s.silver:before{background:#fcfcfc}.marvel-device.iphone5s.silver .volume,.marvel-device.iphone5s.silver .sleep{background:#d6d6d6}.marvel-device.iphone5s.silver .top-bar,.marvel-device.iphone5s.silver .bottom-bar{background:#eaebec}.marvel-device.iphone5s.silver .home{-webkit-box-shadow:inset 0 0 0 4px #bcbcbc;box-shadow:inset 0 0 0 4px #bcbcbc}.marvel-device.iphone5s.gold{background:#f9e7d3}.marvel-device.iphone5s.gold:before{background:#fcfcfc}.marvel-device.iphone5s.gold .volume,.marvel-device.iphone5s.gold .sleep{background:#f9e7d3}.marvel-device.iphone5s.gold .top-bar,.marvel-device.iphone5s.gold .bottom-bar{background:white}.marvel-device.iphone5s.gold .home{-webkit-box-shadow:inset 0 0 0 4px #f9e7d3;box-shadow:inset 0 0 0 4px #f9e7d3}.marvel-device.iphone5c{background:white;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.2);box-shadow:0 1px 2px 0 rgba(0,0,0,0.2)}.marvel-device.iphone5c .top-bar,.marvel-device.iphone5c .bottom-bar{display:none}.marvel-device.iphone5c .home{background:#242324;-moz-border-radius:36px;-webkit-border-radius:36px;border-radius:36px;width:68px;height:68px;z-index:3;position:absolute;left:50%;margin-left:-34px;bottom:19px}.marvel-device.iphone5c .home:after{width:20px;height:20px;border:1px solid rgba(255,255,255,0.1);-moz-border-radius:4px;-webkit-border-radius:4px;border-radius:4px;position:absolute;display:block;content:'';top:50%;left:50%;margin-top:-11px;margin-left:-11px}.marvel-device.iphone5c.landscape .home{left:19px;bottom:50%;margin-bottom:-34px;margin-left:0px}.marvel-device.iphone5c .volume,.marvel-device.iphone5c .sleep{background:#dddddd}.marvel-device.iphone5c.red{background:#f96b6c}.marvel-device.iphone5c.red .volume,.marvel-device.iphone5c.red .sleep{background:#ed5758}.marvel-device.iphone5c.yellow{background:#f2dc60}.marvel-device.iphone5c.yellow .volume,.marvel-device.iphone5c.yellow .sleep{background:#e5ce4c}.marvel-device.iphone5c.green{background:#97e563}.marvel-device.iphone5c.green .volume,.marvel-device.iphone5c.green .sleep{background:#85d94d}.marvel-device.iphone5c.blue{background:#33a2db}.marvel-device.iphone5c.blue .volume,.marvel-device.iphone5c.blue .sleep{background:#2694cd}.marvel-device.iphone4s{padding:129px 27px;width:320px;height:480px;background:#686868;-webkit-border-radius:54px;border-radius:54px}.marvel-device.iphone4s:before{content:'';width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;top:4px;left:4px;z-index:1;-webkit-border-radius:50px;border-radius:50px;background:#1e1e1e}.marvel-device.iphone4s .top-bar{top:60px;position:absolute;left:0}.marvel-device.iphone4s .bottom-bar{bottom:90px;position:absolute;left:0}.marvel-device.iphone4s .camera{background:#3c3d3d;width:10px;height:10px;position:absolute;top:72px;left:134px;z-index:3;margin-left:-5px;-webkit-border-radius:100%;border-radius:100%}.marvel-device.iphone4s .speaker{background:#292728;width:64px;height:10px;position:absolute;top:72px;left:50%;z-index:3;margin-left:-32px;-webkit-border-radius:5px;border-radius:5px}.marvel-device.iphone4s .sensor{background:#292728;width:40px;height:10px;position:absolute;top:36px;left:50%;z-index:3;margin-left:-20px;-webkit-border-radius:5px;border-radius:5px}.marvel-device.iphone4s .home{background:#242324;-webkit-border-radius:100%;border-radius:100%;width:72px;height:72px;z-index:3;position:absolute;left:50%;margin-left:-36px;bottom:30px}.marvel-device.iphone4s .home:after{width:20px;height:20px;border:1px solid rgba(255,255,255,0.1);-webkit-border-radius:4px;border-radius:4px;position:absolute;display:block;content:'';top:50%;left:50%;margin-top:-11px;margin-left:-11px}.marvel-device.iphone4s .sleep{position:absolute;top:-4px;right:60px;width:60px;height:4px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px;background:#4D4D4D}.marvel-device.iphone4s .volume{position:absolute;left:-4px;top:160px;height:27px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:#4D4D4D}.marvel-device.iphone4s .volume:before{position:absolute;left:0px;top:-70px;height:35px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone4s .volume:after{position:absolute;left:0px;bottom:-64px;height:27px;width:4px;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px;background:inherit;content:'';display:block}.marvel-device.iphone4s.landscape{padding:27px 129px;height:320px;width:480px}.marvel-device.iphone4s.landscape .bottom-bar{left:90px;bottom:0px;height:100%;width:3px}.marvel-device.iphone4s.landscape .top-bar{left:calc(100% - 60px);top:0px;height:100%;width:3px}.marvel-device.iphone4s.landscape .camera{top:134px;left:calc(100% - 72px);margin-left:0}.marvel-device.iphone4s.landscape .speaker{top:50%;margin-left:0;margin-top:-32px;left:calc(100% - 72px);width:10px;height:64px}.marvel-device.iphone4s.landscape .sensor{height:40px;width:10px;left:calc(100% - 36px);top:50%;margin-left:0;margin-top:-20px}.marvel-device.iphone4s.landscape .home{left:30px;bottom:50%;margin-left:0;margin-bottom:-36px}.marvel-device.iphone4s.landscape .sleep{height:60px;width:4px;right:-4px;top:calc(100% - 120px);-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px}.marvel-device.iphone4s.landscape .volume{top:-4px;left:calc(100% - 187px);height:4px;width:27px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone4s.landscape .volume:before{right:-70px;left:auto;top:0px;width:35px;height:4px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone4s.landscape .volume:after{width:27px;height:4px;bottom:0px;left:-64px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.iphone4s.silver{background:#bcbcbc}.marvel-device.iphone4s.silver:before{background:#fcfcfc}.marvel-device.iphone4s.silver .home{background:#fcfcfc;-webkit-box-shadow:inset 0 0 0 1px #bcbcbc;box-shadow:inset 0 0 0 1px #bcbcbc}.marvel-device.iphone4s.silver .home:after{border:1px solid rgba(0,0,0,0.2)}.marvel-device.iphone4s.silver .volume,.marvel-device.iphone4s.silver .sleep{background:#d6d6d6}.marvel-device.nexus5{padding:50px 15px 50px 15px;width:320px;height:568px;background:#1e1e1e;-webkit-border-radius:20px;border-radius:20px}.marvel-device.nexus5:before{-webkit-border-radius:600px / 50px;border-radius:600px / 50px;background:inherit;content:'';top:0;position:absolute;height:103.1%;width:calc(100% - 26px);top:50%;left:50%;-moz-transform:translateX(-50%) translateY(-50%);-webkit-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.marvel-device.nexus5 .top-bar{width:calc(100% - 8px);height:calc(100% - 6px);position:absolute;top:3px;left:4px;-webkit-border-radius:20px;border-radius:20px;background:#181818}.marvel-device.nexus5 .top-bar:before{-webkit-border-radius:600px / 50px;border-radius:600px / 50px;background:inherit;content:'';top:0;position:absolute;height:103.0%;width:calc(100% - 26px);top:50%;left:50%;-moz-transform:translateX(-50%) translateY(-50%);-webkit-transform:translateX(-50%) translateY(-50%);-o-transform:translateX(-50%) translateY(-50%);-ms-transform:translateX(-50%) translateY(-50%);transform:translateX(-50%) translateY(-50%)}.marvel-device.nexus5 .bottom-bar{display:none}.marvel-device.nexus5 .sleep{width:3px;position:absolute;left:-3px;top:110px;height:100px;background:inherit;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px}.marvel-device.nexus5 .volume{width:3px;position:absolute;right:-3px;top:70px;height:45px;background:inherit;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px}.marvel-device.nexus5 .camera{background:#3c3d3d;width:10px;height:10px;position:absolute;top:18px;left:50%;z-index:3;margin-left:-5px;-webkit-border-radius:100%;border-radius:100%}.marvel-device.nexus5 .camera:before{background:#3c3d3d;width:6px;height:6px;content:'';display:block;position:absolute;top:2px;left:-100px;z-index:3;-webkit-border-radius:100%;border-radius:100%}.marvel-device.nexus5.landscape{padding:15px 50px 15px 50px;height:320px;width:568px}.marvel-device.nexus5.landscape:before{width:103.1%;height:calc(100% - 26px);-webkit-border-radius:50px / 600px;border-radius:50px / 600px}.marvel-device.nexus5.landscape .top-bar{left:3px;top:4px;height:calc(100% - 8px);width:calc(100% - 6px)}.marvel-device.nexus5.landscape .top-bar:before{width:103%;height:calc(100% - 26px);-webkit-border-radius:50px / 600px;border-radius:50px / 600px}.marvel-device.nexus5.landscape .sleep{height:3px;width:100px;left:calc(100% - 210px);top:-3px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.nexus5.landscape .volume{height:3px;width:45px;right:70px;top:100%;-webkit-border-radius:0px 0px 2px 2px;border-radius:0px 0px 2px 2px}.marvel-device.nexus5.landscape .camera{top:50%;left:calc(100% - 18px);margin-left:0;margin-top:-5px}.marvel-device.nexus5.landscape .camera:before{top:-100px;left:2px}.marvel-device.s5{padding:60px 18px;-webkit-border-radius:42px;border-radius:42px;width:320px;height:568px;background:#bcbcbc}.marvel-device.s5:before,.marvel-device.s5:after{width:calc(100% - 52px);content:'';display:block;height:26px;background:inherit;position:absolute;-webkit-border-radius:500px / 40px;border-radius:500px / 40px;left:50%;-moz-transform:translateX(-50%);-webkit-transform:translateX(-50%);-o-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.marvel-device.s5:before{top:-7px}.marvel-device.s5:after{bottom:-7px}.marvel-device.s5 .bottom-bar{display:none}.marvel-device.s5 .top-bar{-webkit-border-radius:37px;border-radius:37px;width:calc(100% - 10px);height:calc(100% - 10px);top:5px;left:5px;background:radial-gradient(rgba(0,0,0,0.02) 20%, transparent 60%) 0 0,radial-gradient(rgba(0,0,0,0.02) 20%, transparent 60%) 3px 3px;background-color:white;background-size:4px 4px;background-position:center;z-index:2;position:absolute}.marvel-device.s5 .top-bar:before,.marvel-device.s5 .top-bar:after{width:calc(100% - 48px);content:'';display:block;height:26px;background:inherit;position:absolute;-webkit-border-radius:500px / 40px;border-radius:500px / 40px;left:50%;-moz-transform:translateX(-50%);-webkit-transform:translateX(-50%);-o-transform:translateX(-50%);-ms-transform:translateX(-50%);transform:translateX(-50%)}.marvel-device.s5 .top-bar:before{top:-7px}.marvel-device.s5 .top-bar:after{bottom:-7px}.marvel-device.s5 .sleep{width:3px;position:absolute;left:-3px;top:100px;height:100px;background:#cecece;-webkit-border-radius:2px 0px 0px 2px;border-radius:2px 0px 0px 2px}.marvel-device.s5 .speaker{width:68px;height:8px;position:absolute;top:20px;display:block;z-index:3;left:50%;margin-left:-34px;background-color:#bcbcbc;background-position:top left;-webkit-border-radius:4px;border-radius:4px}.marvel-device.s5 .sensor{display:block;position:absolute;top:20px;right:110px;background:#3c3d3d;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;width:8px;height:8px;z-index:3}.marvel-device.s5 .sensor:after{display:block;content:'';position:absolute;top:0px;right:12px;background:#3c3d3d;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;width:8px;height:8px;z-index:3}.marvel-device.s5 .camera{display:block;position:absolute;top:24px;right:42px;background:black;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;width:10px;height:10px;z-index:3}.marvel-device.s5 .camera:before{width:4px;height:4px;background:#3c3d3d;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;position:absolute;content:'';top:50%;left:50%;margin-top:-2px;margin-left:-2px}.marvel-device.s5 .home{position:absolute;z-index:3;bottom:17px;left:50%;width:70px;height:20px;background:white;-webkit-border-radius:18px;border-radius:18px;display:block;margin-left:-35px;border:2px solid black}.marvel-device.s5.landscape{padding:18px 60px;height:320px;width:568px}.marvel-device.s5.landscape:before,.marvel-device.s5.landscape:after{height:calc(100% - 52px);width:26px;-webkit-border-radius:40px / 500px;border-radius:40px / 500px;-moz-transform:translateY(-50%);-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.marvel-device.s5.landscape:before{top:50%;left:-7px}.marvel-device.s5.landscape:after{top:50%;left:auto;right:-7px}.marvel-device.s5.landscape .top-bar:before,.marvel-device.s5.landscape .top-bar:after{width:26px;height:calc(100% - 48px);-webkit-border-radius:40px / 500px;border-radius:40px / 500px;-moz-transform:translateY(-50%);-webkit-transform:translateY(-50%);-o-transform:translateY(-50%);-ms-transform:translateY(-50%);transform:translateY(-50%)}.marvel-device.s5.landscape .top-bar:before{right:-7px;top:50%;left:auto}.marvel-device.s5.landscape .top-bar:after{left:-7px;top:50%;right:auto}.marvel-device.s5.landscape .sleep{height:3px;width:100px;left:calc(100% - 200px);top:-3px;-webkit-border-radius:2px 2px 0px 0px;border-radius:2px 2px 0px 0px}.marvel-device.s5.landscape .speaker{height:68px;width:8px;left:calc(100% - 20px);top:50%;margin-left:0;margin-top:-34px}.marvel-device.s5.landscape .sensor{right:20px;top:calc(100% - 110px)}.marvel-device.s5.landscape .sensor:after{left:-12px;right:0px}.marvel-device.s5.landscape .camera{top:calc(100% - 42px);right:24px}.marvel-device.s5.landscape .home{width:20px;height:70px;bottom:50%;margin-bottom:-35px;margin-left:0;left:17px}.marvel-device.s5.black{background:#1e1e1e}.marvel-device.s5.black .speaker{background:black}.marvel-device.s5.black .sleep{background:#1e1e1e}.marvel-device.s5.black .top-bar{background:radial-gradient(rgba(0,0,0,0.05) 20%, transparent 60%) 0 0,radial-gradient(rgba(0,0,0,0.05) 20%, transparent 60%) 3px 3px;background-color:#2c2b2c;background-size:4px 4px}.marvel-device.s5.black .home{background:#2c2b2c}.marvel-device.lumia920{padding:80px 35px 125px 35px;background:#ffdd00;width:320px;height:533px;-moz-border-radius:40px / 3px;-webkit-border-radius:40px / 3px;border-radius:40px / 3px}.marvel-device.lumia920 .bottom-bar{display:none}.marvel-device.lumia920 .top-bar{width:calc(100% - 24px);height:calc(100% - 32px);position:absolute;top:16px;left:12px;-moz-border-radius:24px;-webkit-border-radius:24px;border-radius:24px;background:black;z-index:1}.marvel-device.lumia920 .top-bar:before{background:#1e1e1e;display:block;content:'';width:calc(100% - 4px);height:calc(100% - 4px);top:2px;left:2px;position:absolute;-moz-border-radius:22px;-webkit-border-radius:22px;border-radius:22px}.marvel-device.lumia920 .volume{width:3px;position:absolute;top:130px;height:100px;background:#1e1e1e;right:-3px;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px}.marvel-device.lumia920 .volume:before{width:3px;position:absolute;top:190px;content:'';display:block;height:50px;background:inherit;right:0px;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px}.marvel-device.lumia920 .volume:after{width:3px;position:absolute;top:460px;content:'';display:block;height:50px;background:inherit;right:0px;-webkit-border-radius:0px 2px 2px 0px;border-radius:0px 2px 2px 0px}.marvel-device.lumia920 .camera{background:#3c3d3d;width:10px;height:10px;position:absolute;top:34px;right:130px;z-index:5;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.marvel-device.lumia920 .speaker{background:#292728;width:64px;height:10px;position:absolute;top:38px;left:50%;margin-left:-32px;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px;z-index:3}.marvel-device.lumia920.landscape{padding:35px 80px 35px 125px;height:320px;width:568px;-moz-border-radius:2px / 100px;-webkit-border-radius:2px / 100px;border-radius:2px / 100px}.marvel-device.lumia920.landscape .top-bar{height:calc(100% - 24px);width:calc(100% - 32px);left:16px;top:12px}.marvel-device.lumia920.landscape .volume{height:3px;right:130px;width:100px;top:100%;-webkit-border-radius:0px 0px 2px 2px;border-radius:0px 0px 2px 2px}.marvel-device.lumia920.landscape .volume:before{height:3px;right:190px;top:0px;width:50px;-webkit-border-radius:0px 0px 2px 2px;border-radius:0px 0px 2px 2px}.marvel-device.lumia920.landscape .volume:after{height:3px;right:430px;top:0px;width:50px;-webkit-border-radius:0px 0px 2px 2px;border-radius:0px 0px 2px 2px}.marvel-device.lumia920.landscape .camera{right:30px;top:calc(100% - 140px)}.marvel-device.lumia920.landscape .speaker{width:10px;height:64px;top:50%;margin-left:0;margin-top:-32px;left:calc(100% - 48px)}.marvel-device.lumia920.black{background:black}.marvel-device.lumia920.white{background:white;-webkit-box-shadow:0 1px 2px 0 rgba(0,0,0,0.2);box-shadow:0 1px 2px 0 rgba(0,0,0,0.2)}.marvel-device.lumia920.blue{background:#00acdd}.marvel-device.lumia920.red{background:#CC3E32}.marvel-device.htc-one{padding:72px 25px 100px 25px;width:320px;height:568px;background:#bebebe;-webkit-border-radius:34px;border-radius:34px}.marvel-device.htc-one:before{content:'';display:block;width:calc(100% - 4px);height:calc(100% - 4px);position:absolute;top:2px;left:2px;background:#adadad;-webkit-border-radius:32px;border-radius:32px}.marvel-device.htc-one:after{content:'';display:block;width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;top:4px;left:4px;background:#eeeeee;-webkit-border-radius:30px;border-radius:30px}.marvel-device.htc-one .top-bar{width:calc(100% - 4px);height:635px;position:absolute;background:#424242;top:50px;z-index:1;left:2px}.marvel-device.htc-one .top-bar:before{content:'';position:absolute;width:calc(100% - 4px);height:100%;position:absolute;background:black;top:0px;z-index:1;left:2px}.marvel-device.htc-one .bottom-bar{display:none}.marvel-device.htc-one .speaker{height:16px;width:216px;display:block;position:absolute;top:22px;z-index:2;left:50%;margin-left:-108px;background:radial-gradient(#343434 25%, transparent 50%) 0 0,radial-gradient(#343434 25%, transparent 50%) 4px 4px;background-size:4px 4px;background-position:top left}.marvel-device.htc-one .speaker:after{content:'';height:16px;width:216px;display:block;position:absolute;top:676px;z-index:2;left:50%;margin-left:-108px;background:inherit}.marvel-device.htc-one .camera{display:block;position:absolute;top:18px;right:38px;background:#3c3d3d;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;width:24px;height:24px;z-index:3}.marvel-device.htc-one .camera:before{width:8px;height:8px;background:black;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;position:absolute;content:'';top:50%;left:50%;margin-top:-4px;margin-left:-4px}.marvel-device.htc-one .sensor{display:block;position:absolute;top:29px;left:60px;background:#3c3d3d;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;width:8px;height:8px;z-index:3}.marvel-device.htc-one .sensor:after{display:block;content:'';position:absolute;top:0px;right:12px;background:#3c3d3d;-moz-border-radius:100%;-webkit-border-radius:100%;border-radius:100%;width:8px;height:8px;z-index:3}.marvel-device.htc-one.landscape{padding:25px 72px 25px 100px;height:320px;width:568px}.marvel-device.htc-one.landscape .top-bar{height:calc(100% - 4px);width:635px;left:calc(100% - 685px);top:2px}.marvel-device.htc-one.landscape .speaker{width:16px;height:216px;left:calc(100% - 38px);top:50%;margin-left:0px;margin-top:-108px}.marvel-device.htc-one.landscape .speaker:after{width:16px;height:216px;left:calc(100% - 692px);top:50%;margin-left:0;margin-top:-108px}.marvel-device.htc-one.landscape .camera{right:18px;top:calc(100% - 38px)}.marvel-device.htc-one.landscape .sensor{left:calc(100% - 29px);top:60px}.marvel-device.htc-one.landscape .sensor :after{right:0;top:-12px}.marvel-device.ipad{width:576px;height:768px;padding:90px 25px;background:#242324;-webkit-border-radius:44px;border-radius:44px}.marvel-device.ipad:before{width:calc(100% - 8px);height:calc(100% - 8px);position:absolute;content:'';display:block;top:4px;left:4px;-webkit-border-radius:40px;border-radius:40px;background:#1e1e1e}.marvel-device.ipad .camera{background:#3c3d3d;width:10px;height:10px;position:absolute;top:44px;left:50%;margin-left:-5px;-webkit-border-radius:100%;border-radius:100%}.marvel-device.ipad .top-bar,.marvel-device.ipad .bottom-bar{display:none}.marvel-device.ipad .home{background:#242324;-webkit-border-radius:36px;border-radius:36px;width:50px;height:50px;position:absolute;left:50%;margin-left:-25px;bottom:22px}.marvel-device.ipad .home:after{width:15px;height:15px;margin-top:-8px;margin-left:-8px;border:1px solid rgba(255,255,255,0.1);-webkit-border-radius:4px;border-radius:4px;position:absolute;display:block;content:'';top:50%;left:50%}.marvel-device.ipad.landscape{height:576px;width:768px;padding:25px 90px}.marvel-device.ipad.landscape .camera{left:calc(100% - 44px);top:50%;margin-left:0;margin-top:-5px}.marvel-device.ipad.landscape .home{top:50%;left:22px;margin-left:0;margin-top:-25px}.marvel-device.ipad.silver{background:#bcbcbc}.marvel-device.ipad.silver:before{background:#fcfcfc}.marvel-device.ipad.silver .home{background:#fcfcfc;-webkit-box-shadow:inset 0 0 0 1px #bcbcbc;box-shadow:inset 0 0 0 1px #bcbcbc}.marvel-device.ipad.silver .home:after{border:1px solid rgba(0,0,0,0.2)}
2 |
--------------------------------------------------------------------------------
/static/stylesheets/jquery.emojipicker.css:
--------------------------------------------------------------------------------
1 | .emojiPickerIconWrap {display:inline-block; position:relative;}
2 | .emojiPickerIcon {position:absolute; top:0; right:0; cursor:pointer; }
3 |
4 | .emojiPickerIconWrap .white {background:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjc2Ljg5MXB4IiBoZWlnaHQ9IjI3Ni44OTFweCIgdmlld0JveD0iMCAwIDI3Ni44OTEgMjc2Ljg5MSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjc2Ljg5MSAyNzYuODkxIg0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxjaXJjbGUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRkZGRkZGIiBzdHJva2Utd2lkdGg9IjExIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGN4PSIxMzguNDQ1IiBjeT0iMTM4LjQ0NSIgcj0iMTMyLjk0NSIvPg0KPGNpcmNsZSBmaWxsPSIjRkZGRkZGIiBjeD0iNjguMTIiIGN5PSIxMjUuMzk1IiByPSIxNi41MDciLz4NCjxjaXJjbGUgZmlsbD0iI0ZGRkZGRiIgY3g9IjIwOC42MTciIGN5PSIxMjUuMzk1IiByPSIxNi41MDgiLz4NCjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0ZGRkZGRiIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik02OC4xMiwxODIuMDM0DQoJYzAsMCw2OS43OTMsNzAuNzA0LDE0MC40OTgsMCIvPg0KPC9zdmc+DQo=') center center no-repeat; background-size:60%;}
5 | .emojiPickerIconWrap .black {background:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjc2Ljg5MXB4IiBoZWlnaHQ9IjI3Ni44OTFweCIgdmlld0JveD0iMCAwIDI3Ni44OTEgMjc2Ljg5MSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjc2Ljg5MSAyNzYuODkxIg0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxjaXJjbGUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjMDAwMDAwIiBzdHJva2Utd2lkdGg9IjExIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGN4PSIxMzguNDQ1IiBjeT0iMTM4LjQ0NSIgcj0iMTMyLjk0NSIvPg0KPGNpcmNsZSBjeD0iNjguMTIiIGN5PSIxMjUuMzk1IiByPSIxNi41MDciLz4NCjxjaXJjbGUgY3g9IjIwOC42MTciIGN5PSIxMjUuMzk1IiByPSIxNi41MDgiLz4NCjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iIzAwMDAwMCIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik02OC4xMiwxODIuMDM0DQoJYzAsMCw2OS43OTMsNzAuNzA0LDE0MC40OTgsMCIvPg0KPC9zdmc+DQo=') center center no-repeat; background-size:60%;}
6 | .emojiPickerIconWrap .yellow {background:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjc2Ljg5MXB4IiBoZWlnaHQ9IjI3Ni44OTFweCIgdmlld0JveD0iMCAwIDI3Ni44OTEgMjc2Ljg5MSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjc2Ljg5MSAyNzYuODkxIg0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxjaXJjbGUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRUJDMjAwIiBzdHJva2Utd2lkdGg9IjExIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGN4PSIxMzguNDQ1IiBjeT0iMTM4LjQ0NSIgcj0iMTMyLjk0NSIvPg0KPGNpcmNsZSBmaWxsPSIjRUJDMjAwIiBjeD0iNjguMTIiIGN5PSIxMjUuMzk1IiByPSIxNi41MDciLz4NCjxjaXJjbGUgZmlsbD0iI0VCQzIwMCIgY3g9IjIwOC42MTciIGN5PSIxMjUuMzk1IiByPSIxNi41MDgiLz4NCjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0VCQzIwMCIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik02OC4xMiwxODIuMDM0DQoJYzAsMCw2OS43OTMsNzAuNzA0LDE0MC40OTgsMCIvPg0KPC9zdmc+DQo=') center center no-repeat; background-size:60%;}
7 | .emojiPickerIconWrap .grey, .emojiPickerIconWrap .gray {background:url('data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0idXRmLTgiPz4NCjwhLS0gR2VuZXJhdG9yOiBBZG9iZSBJbGx1c3RyYXRvciAxNi4wLjAsIFNWRyBFeHBvcnQgUGx1Zy1JbiAuIFNWRyBWZXJzaW9uOiA2LjAwIEJ1aWxkIDApICAtLT4NCjwhRE9DVFlQRSBzdmcgUFVCTElDICItLy9XM0MvL0RURCBTVkcgMS4xLy9FTiIgImh0dHA6Ly93d3cudzMub3JnL0dyYXBoaWNzL1NWRy8xLjEvRFREL3N2ZzExLmR0ZCI+DQo8c3ZnIHZlcnNpb249IjEuMSIgaWQ9IkxheWVyXzEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB3aWR0aD0iMjc2Ljg5MXB4IiBoZWlnaHQ9IjI3Ni44OTFweCIgdmlld0JveD0iMCAwIDI3Ni44OTEgMjc2Ljg5MSIgZW5hYmxlLWJhY2tncm91bmQ9Im5ldyAwIDAgMjc2Ljg5MSAyNzYuODkxIg0KCSB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxjaXJjbGUgZmlsbD0ibm9uZSIgc3Ryb2tlPSIjRUJDMjAwIiBzdHJva2Utd2lkdGg9IjExIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGN4PSIxMzguNDQ1IiBjeT0iMTM4LjQ0NSIgcj0iMTMyLjk0NSIvPg0KPGNpcmNsZSBmaWxsPSIjRUJDMjAwIiBjeD0iNjguMTIiIGN5PSIxMjUuMzk1IiByPSIxNi41MDciLz4NCjxjaXJjbGUgZmlsbD0iI0VCQzIwMCIgY3g9IjIwOC42MTciIGN5PSIxMjUuMzk1IiByPSIxNi41MDgiLz4NCjxwYXRoIGZpbGw9Im5vbmUiIHN0cm9rZT0iI0VCQzIwMCIgc3Ryb2tlLXdpZHRoPSIxMyIgc3Ryb2tlLWxpbmVjYXA9InJvdW5kIiBzdHJva2UtbWl0ZXJsaW1pdD0iMTAiIGQ9Ik02OC4xMiwxODIuMDM0DQoJYzAsMCw2OS43OTMsNzAuNzA0LDE0MC40OTgsMCIvPg0KPC9zdmc+DQo=') center center no-repeat; background-size:60%;}
8 |
9 | .emojiPicker {display:none; position:absolute; outline:none; border:none; box-shadow:0 0 7px #555; border-top-left-radius:4px; border-top-right-radius:4px;}
10 | .emojiPicker div.emoji {width:1.3em; height:1.3em; position:relative; display:inline-block;}
11 | .emojiPicker span.emoji {width:1.3em; height:1.3em; display:inline-block; position:relative; overflow:hidden; text-indent:-9999px; vertical-align:middle;}
12 | .emojiPicker .hidden {display:none;}
13 |
14 | .emojiPicker nav {position:relative; z-index:0; background-color:#f2f2f2; border-top-left-radius:4px; border-top-right-radius:4px;}
15 | .emojiPicker nav div.tab {display:inline-block; margin:2% 1% 0 1%; padding:2% 2% 1% 2%; border-top-left-radius:4px; border-top-right-radius:4px; cursor:pointer;}
16 | .emojiPicker nav div.tab.active {background-color:#fff; box-shadow:0 0 3px #ccc;}
17 |
18 | .emojiPicker section {overflow:scroll; position:relative; z-index:10; background:#fff;}
19 | .emojiPicker section div {width:40px; float:left; margin:3%;}
20 | .emojiPicker section div:hover {cursor:pointer;}
21 |
--------------------------------------------------------------------------------
/static/stylesheets/styles.css:
--------------------------------------------------------------------------------
1 | body {
2 | height: 100vh;
3 | }
4 |
5 | .marvel-device.iphone6.silver {
6 | margin-top: -30px;
7 | }
8 |
9 | .marvel-device .screen {
10 | text-align: left;
11 | z-index: 3;
12 | color: inherit;
13 | -webkit-box-shadow: inherit;
14 | box-shadow: inherit;
15 | }
16 |
17 | .action-bar {
18 | width: 330px;
19 | }
20 |
21 | .option {
22 | width: 40px;
23 | padding-top: 8px;
24 | }
25 |
26 | span.emoji {
27 | font-family: initial;
28 | }
29 |
30 | #msg-input {
31 | width: 245px;
32 | }
33 |
34 | .chat-app {
35 | position: relative;
36 | height: 100%;
37 | padding-top: 0 !important;
38 | }
39 |
40 | .chat-app .action-bar {
41 | position: absolute;
42 | width: 100%;
43 | bottom: 0;
44 | }
45 |
46 | .swish-input {
47 | /*height: 43px;*/
48 | }
49 |
50 | #try-it-out {
51 | width: 160px;
52 | font-weight: 200;
53 | padding: 10px 16px;
54 | vertical-align: bottom;
55 | }
56 |
57 | #message-list {
58 | height: 420px;
59 | overflow: scroll;
60 | }
--------------------------------------------------------------------------------
/templates/index.html:
--------------------------------------------------------------------------------
1 |
2 |
3 | Realtime Chat with Pusher + React
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
50 |
51 |
52 |
53 |
54 |
55 |
56 |
57 |
--------------------------------------------------------------------------------