Compare commits

...

31 Commits

Author SHA1 Message Date
Joshua Peek
97f5441ada Gemoji 1.0.0 2012-10-02 15:26:33 -05:00
Trevor Turk
e43f1ac171 try to give attribution where possible 2012-10-02 15:24:13 -05:00
Trevor Turk
fc275cad0a clean up readme 2012-10-02 15:17:17 -05:00
Joshua Peek
38731ced7e Stub gemoji require 2012-10-02 15:15:41 -05:00
Joshua Peek
0e3f686bbd Rename gemspec 2012-10-02 15:15:13 -05:00
Trevor Turk
bd929a9ee0 require emoji in the task 2012-10-01 16:57:41 -05:00
Trevor Turk
436209c12f require environment instead of emoji 2012-10-01 16:51:21 -05:00
Trevor Turk
24d9881f20 move rake task so we can require it in our apps 2012-10-01 16:42:43 -05:00
Trevor Turk
74372af2f8 draft new readme 2012-10-01 11:14:45 -05:00
Jamie Dihiansan
a94b90198a Update LICENSE
Added 37signals credit.
2012-10-01 10:09:40 -05:00
Joshua Peek
25da8c9323 Add copyrights 2012-10-01 10:07:18 -05:00
Joshua Peek
da797b13e3 Emoji 0.4.0 2012-10-01 09:40:40 -05:00
Joshua Peek
9fa5dcd311 Remove gitignore 2012-10-01 09:40:01 -05:00
Joshua Peek
f2f80d4e8a Merge pull request #11 from github/improved-octocat
Know a better Octocat emoji
2012-10-01 07:38:21 -07:00
Matt Burke
315015e90e Recreate symlinks from 97709fea55 with all lowercase file names. 2012-09-30 17:30:01 -04:00
Joshua Peek
d815c7f9b7 💥
Closes #10
2012-09-29 10:18:36 -05:00
Coby Chapple
5919a89968 use a better octocat image 2012-09-29 14:54:32 +10:00
Joshua Peek
3358ffbeb4 Remove some old instructions 2012-09-28 10:05:13 -05:00
Joshua Peek
e46c8207fc Just images/emoji 2012-09-28 10:00:59 -05:00
Joshua Peek
ded4714831 Merge pull request #9 from github/cleanup
Cleanup
2012-09-28 07:58:30 -07:00
Joshua Peek
8c15ced399 Add rake copy task 2012-09-28 09:53:41 -05:00
Joshua Peek
765df113e1 Remove stuff 2012-09-28 09:36:54 -05:00
Shay Frendt
52210cece2 Merge pull request #7 from github/remove-git-from-gemspec
Update gemspec to not rely on `git` executable
2012-08-24 13:07:48 -07:00
Shay Frendt
bcf62ad7cd Update gemspec to not rely on git executable
- This prevents runtime issues when this gem is vendored in an
  application running on systems that don't have git installed
2012-08-24 14:23:58 -04:00
Trevor Turk
db6bc0fb28 todo about the problematic symlinks 2012-08-01 13:01:44 -05:00
Trevor Turk
69e7ea119c Revert "Recreate symlinks from 97709fea55c97c55c467b983b2d98c927fbb5b3f"
This reverts commit 15fd347c8e.
2012-08-01 13:00:15 -05:00
Trevor Turk
1ebc4b1f74 Emoji 0.3.4 2012-08-01 12:01:37 -05:00
Trevor Turk
a2e1d15d13 notes and todos 2012-08-01 11:53:38 -05:00
Trevor Turk
ffaef44107 use replace for sprite and emojify for images 2012-08-01 11:45:06 -05:00
Joshua Peek
10a29606b6 Emoji 0.3.3 2012-08-01 11:43:56 -05:00
Joshua Peek
2f1da81b8c Fix dir again 2012-08-01 11:43:43 -05:00
25 changed files with 64 additions and 1039 deletions

1
.gitignore vendored
View File

@@ -1 +0,0 @@
Gemfile.lock

View File

@@ -1,2 +0,0 @@
source :rubygems
gemspec

14
LICENSE Normal file
View File

@@ -0,0 +1,14 @@
octocat, squirrel, shipit
Copyright (c) 2012 GitHub Inc. All rights reserved.
bowtie, neckbeard
Copyright (c) 2012 37signals, LLC. All rights reserved.
feelsgood, finnadie, goberserk, godmode, hurtrealbad, rage 1-4, suspect
Copyright (c) 2012 id Software. All rights reserved.
trollface
Copyright (c) 2012 whynne@deviantart. All rights reserved.
All other images
Copyright (c) 2012 Apple Inc. All rights reserved.

View File

@@ -1,35 +1,28 @@
Emoji
=====
gemoji
======
Shared Emoji assets between GitHub, Campfire, and BCX.
Emoji images and names. See the LICENSE for copyright information.
Contributing
------------
### Designers
Installation
============
Drop a 64x64 png into `images/` and commit it.
Install and require `gemoji` or add it to your Gemfile.
### Others
Rerun `rake` to rebuild static assets and sprites. (Trying to make this step unnecessary)
Example Rails Helper
====================
Deploying
---------
### GitHub
1. Run `rake emoji` in app root
### Campfire
1. Push changes to 37signals/emoji
2. Update emoji version in config/externals.yml
3. Run `cap local externals:setup` in app root
4. Run `rake emoji` in app root
5. Run `Rails.cache.clear` in app console
### BCX
1. Push changes to 37signals/emoji
2. Run `bundle update emoji` in app root
```ruby
module EmojiHelper
def emojify(content)
h(content).to_str.gsub(/:([a-z0-9\+\-_]+):/) do |match|
if Emoji.names.include?($1)
'<img alt="' + $1 + '" height="20" src="' + asset_path("emoji/#{$1}.png") + '" style="vertical-align:middle" width="20" />'
else
match
end
end.html_safe if content.present?
end
end
```

View File

@@ -1,32 +0,0 @@
$:.unshift File.expand_path("../lib", __FILE__)
require 'emoji'
require 'sprockets'
require 'rake/clean'
Assets = Sprockets::Environment.new do |env|
env.append_path Emoji.path
env.append_path File.join(Emoji.path, 'assets')
end
file "lib/emoji.png" do |f|
Assets["emoji.png.erb"].write_to(f.name)
end
file "lib/emoji.js" do |f|
Assets["emoji.js.erb"].write_to(f.name)
end
file "lib/emoji.css" do |f|
Assets["emoji.css.erb"].write_to(f.name)
end
assets = [
"lib/emoji.png",
"lib/emoji.js",
"lib/emoji.css"
]
assets.each { |asset| CLOBBER.include(asset) }
task :default => [:clobber] + assets

View File

@@ -1,14 +0,0 @@
Gem::Specification.new do |s|
s.name = "emoji"
s.version = "0.3.2"
s.summary = "Emoji Assets"
s.description = "Shared Emoji assets between GitHub, Campfire, and BCX."
s.authors = ["GitHub", "37signals"]
s.email = "support@github.com"
s.homepage = "https://github.com/github/emoji"
s.files = `git ls-files`.split("\n")
s.add_development_dependency "sprockets", "~> 2.0"
end

12
gemoji.gemspec Normal file
View File

@@ -0,0 +1,12 @@
Gem::Specification.new do |s|
s.name = "gemoji"
s.version = "1.0.0"
s.summary = "Emoji Assets"
s.description = "Emoji assets"
s.authors = ["GitHub"]
s.email = "support@github.com"
s.homepage = "https://github.com/github/gemoji"
s.files = Dir["README.md", "images/**/*.png", "lib/**/*"]
end

1
images/boom.png Symbolic link
View File

@@ -0,0 +1 @@
unicode/1f4a5.png

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.8 KiB

After

Width:  |  Height:  |  Size: 4.3 KiB

View File

Before

Width:  |  Height:  |  Size: 5.7 KiB

After

Width:  |  Height:  |  Size: 5.7 KiB

View File

Before

Width:  |  Height:  |  Size: 5.6 KiB

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

Before

Width:  |  Height:  |  Size: 6.0 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

View File

@@ -1 +0,0 @@
<%= Emoji.generate_sprite %>

View File

@@ -1,14 +0,0 @@
var Emoji = {
names: <%= Emoji.names.to_json %>,
paths: <%= Emoji.names.inject({}) { |h, n| h[n] = asset_path("emoji/#{n}.png"); h }.to_json %>,
replace: function(string) {
return string.replace(/:([a-z0-9\+\-_]+):/g, function(match, $1) {
if (Emoji.names.indexOf($1) >= 0) {
return '<img alt="' + $1 + '" height="20" src="' + Emoji.paths[$1] + '" style="vertical-align:middle" width="20" />';
} else {
return ':' + $1 + ':';
}
})
}
};

View File

@@ -1,10 +0,0 @@
.emoji {
display: inline-block;
background: url("<%= Emoji.image_path(self, 'emoji.png') %>") top left no-repeat;
width: 20px;
height: 20px;
vertical-align: middle;
}
<% Emoji.names.each_with_index do |name, index| %>
.emoji-<%= name %> { background-position: 0px -<%= index * 20 %>px; }
<% end %>

View File

@@ -1,853 +0,0 @@
.emoji {
display: inline-block;
background: url("/images/emoji.png") top left no-repeat;
width: 20px;
height: 20px;
vertical-align: middle;
}
.emoji-+1 { background-position: 0px -0px; }
.emoji--1 { background-position: 0px -20px; }
.emoji-100 { background-position: 0px -40px; }
.emoji-109 { background-position: 0px -60px; }
.emoji-1234 { background-position: 0px -80px; }
.emoji-8ball { background-position: 0px -100px; }
.emoji-a { background-position: 0px -120px; }
.emoji-ab { background-position: 0px -140px; }
.emoji-abc { background-position: 0px -160px; }
.emoji-abcd { background-position: 0px -180px; }
.emoji-accept { background-position: 0px -200px; }
.emoji-aerial_tramway { background-position: 0px -220px; }
.emoji-airplane { background-position: 0px -240px; }
.emoji-alarm_clock { background-position: 0px -260px; }
.emoji-alien { background-position: 0px -280px; }
.emoji-ambulance { background-position: 0px -300px; }
.emoji-anchor { background-position: 0px -320px; }
.emoji-angel { background-position: 0px -340px; }
.emoji-anger { background-position: 0px -360px; }
.emoji-angry { background-position: 0px -380px; }
.emoji-ant { background-position: 0px -400px; }
.emoji-apple { background-position: 0px -420px; }
.emoji-aquarius { background-position: 0px -440px; }
.emoji-aries { background-position: 0px -460px; }
.emoji-arrow_backward { background-position: 0px -480px; }
.emoji-arrow_double_down { background-position: 0px -500px; }
.emoji-arrow_double_up { background-position: 0px -520px; }
.emoji-arrow_down { background-position: 0px -540px; }
.emoji-arrow_down_small { background-position: 0px -560px; }
.emoji-arrow_forward { background-position: 0px -580px; }
.emoji-arrow_heading_down { background-position: 0px -600px; }
.emoji-arrow_heading_up { background-position: 0px -620px; }
.emoji-arrow_left { background-position: 0px -640px; }
.emoji-arrow_lower_left { background-position: 0px -660px; }
.emoji-arrow_lower_right { background-position: 0px -680px; }
.emoji-arrow_right { background-position: 0px -700px; }
.emoji-arrow_right_hook { background-position: 0px -720px; }
.emoji-arrow_up { background-position: 0px -740px; }
.emoji-arrow_up_down { background-position: 0px -760px; }
.emoji-arrow_up_small { background-position: 0px -780px; }
.emoji-arrow_upper_left { background-position: 0px -800px; }
.emoji-arrow_upper_right { background-position: 0px -820px; }
.emoji-arrows_clockwise { background-position: 0px -840px; }
.emoji-arrows_counterclockwise { background-position: 0px -860px; }
.emoji-art { background-position: 0px -880px; }
.emoji-articulated_lorry { background-position: 0px -900px; }
.emoji-astonished { background-position: 0px -920px; }
.emoji-atm { background-position: 0px -940px; }
.emoji-b { background-position: 0px -960px; }
.emoji-baby { background-position: 0px -980px; }
.emoji-baby_bottle { background-position: 0px -1000px; }
.emoji-baby_chick { background-position: 0px -1020px; }
.emoji-baby_symbol { background-position: 0px -1040px; }
.emoji-baggage_claim { background-position: 0px -1060px; }
.emoji-balloon { background-position: 0px -1080px; }
.emoji-ballot_box_with_check { background-position: 0px -1100px; }
.emoji-bamboo { background-position: 0px -1120px; }
.emoji-banana { background-position: 0px -1140px; }
.emoji-bangbang { background-position: 0px -1160px; }
.emoji-bank { background-position: 0px -1180px; }
.emoji-bar_chart { background-position: 0px -1200px; }
.emoji-barber { background-position: 0px -1220px; }
.emoji-baseball { background-position: 0px -1240px; }
.emoji-basketball { background-position: 0px -1260px; }
.emoji-bath { background-position: 0px -1280px; }
.emoji-bathtub { background-position: 0px -1300px; }
.emoji-battery { background-position: 0px -1320px; }
.emoji-bear { background-position: 0px -1340px; }
.emoji-beer { background-position: 0px -1360px; }
.emoji-beers { background-position: 0px -1380px; }
.emoji-beetle { background-position: 0px -1400px; }
.emoji-beginner { background-position: 0px -1420px; }
.emoji-bell { background-position: 0px -1440px; }
.emoji-bento { background-position: 0px -1460px; }
.emoji-bicyclist { background-position: 0px -1480px; }
.emoji-bike { background-position: 0px -1500px; }
.emoji-bikini { background-position: 0px -1520px; }
.emoji-bird { background-position: 0px -1540px; }
.emoji-birthday { background-position: 0px -1560px; }
.emoji-black_circle { background-position: 0px -1580px; }
.emoji-black_joker { background-position: 0px -1600px; }
.emoji-black_nib { background-position: 0px -1620px; }
.emoji-black_square { background-position: 0px -1640px; }
.emoji-blossom { background-position: 0px -1660px; }
.emoji-blowfish { background-position: 0px -1680px; }
.emoji-blue_book { background-position: 0px -1700px; }
.emoji-blue_car { background-position: 0px -1720px; }
.emoji-blue_heart { background-position: 0px -1740px; }
.emoji-blush { background-position: 0px -1760px; }
.emoji-boar { background-position: 0px -1780px; }
.emoji-boat { background-position: 0px -1800px; }
.emoji-bomb { background-position: 0px -1820px; }
.emoji-book { background-position: 0px -1840px; }
.emoji-bookmark { background-position: 0px -1860px; }
.emoji-bookmark_tabs { background-position: 0px -1880px; }
.emoji-books { background-position: 0px -1900px; }
.emoji-boot { background-position: 0px -1920px; }
.emoji-bouquet { background-position: 0px -1940px; }
.emoji-bow { background-position: 0px -1960px; }
.emoji-bowling { background-position: 0px -1980px; }
.emoji-bowtie { background-position: 0px -2000px; }
.emoji-boy { background-position: 0px -2020px; }
.emoji-bread { background-position: 0px -2040px; }
.emoji-bride_with_veil { background-position: 0px -2060px; }
.emoji-bridge_at_night { background-position: 0px -2080px; }
.emoji-briefcase { background-position: 0px -2100px; }
.emoji-broken_heart { background-position: 0px -2120px; }
.emoji-bug { background-position: 0px -2140px; }
.emoji-bulb { background-position: 0px -2160px; }
.emoji-bullettrain_front { background-position: 0px -2180px; }
.emoji-bullettrain_side { background-position: 0px -2200px; }
.emoji-bus { background-position: 0px -2220px; }
.emoji-busstop { background-position: 0px -2240px; }
.emoji-bust_in_silhouette { background-position: 0px -2260px; }
.emoji-busts_in_silhouette { background-position: 0px -2280px; }
.emoji-cactus { background-position: 0px -2300px; }
.emoji-cake { background-position: 0px -2320px; }
.emoji-calendar { background-position: 0px -2340px; }
.emoji-calling { background-position: 0px -2360px; }
.emoji-camel { background-position: 0px -2380px; }
.emoji-camera { background-position: 0px -2400px; }
.emoji-cancer { background-position: 0px -2420px; }
.emoji-candy { background-position: 0px -2440px; }
.emoji-capital_abcd { background-position: 0px -2460px; }
.emoji-capricorn { background-position: 0px -2480px; }
.emoji-car { background-position: 0px -2500px; }
.emoji-card_index { background-position: 0px -2520px; }
.emoji-carousel_horse { background-position: 0px -2540px; }
.emoji-cat { background-position: 0px -2560px; }
.emoji-cat2 { background-position: 0px -2580px; }
.emoji-cd { background-position: 0px -2600px; }
.emoji-chart { background-position: 0px -2620px; }
.emoji-chart_with_downwards_trend { background-position: 0px -2640px; }
.emoji-chart_with_upwards_trend { background-position: 0px -2660px; }
.emoji-checkered_flag { background-position: 0px -2680px; }
.emoji-cherries { background-position: 0px -2700px; }
.emoji-cherry_blossom { background-position: 0px -2720px; }
.emoji-chestnut { background-position: 0px -2740px; }
.emoji-chicken { background-position: 0px -2760px; }
.emoji-children_crossing { background-position: 0px -2780px; }
.emoji-chocolate_bar { background-position: 0px -2800px; }
.emoji-christmas_tree { background-position: 0px -2820px; }
.emoji-church { background-position: 0px -2840px; }
.emoji-cinema { background-position: 0px -2860px; }
.emoji-circus_tent { background-position: 0px -2880px; }
.emoji-city_sunrise { background-position: 0px -2900px; }
.emoji-city_sunset { background-position: 0px -2920px; }
.emoji-cl { background-position: 0px -2940px; }
.emoji-clap { background-position: 0px -2960px; }
.emoji-clapper { background-position: 0px -2980px; }
.emoji-clipboard { background-position: 0px -3000px; }
.emoji-clock1 { background-position: 0px -3020px; }
.emoji-clock10 { background-position: 0px -3040px; }
.emoji-clock1030 { background-position: 0px -3060px; }
.emoji-clock11 { background-position: 0px -3080px; }
.emoji-clock1130 { background-position: 0px -3100px; }
.emoji-clock12 { background-position: 0px -3120px; }
.emoji-clock1230 { background-position: 0px -3140px; }
.emoji-clock130 { background-position: 0px -3160px; }
.emoji-clock2 { background-position: 0px -3180px; }
.emoji-clock230 { background-position: 0px -3200px; }
.emoji-clock3 { background-position: 0px -3220px; }
.emoji-clock330 { background-position: 0px -3240px; }
.emoji-clock4 { background-position: 0px -3260px; }
.emoji-clock430 { background-position: 0px -3280px; }
.emoji-clock5 { background-position: 0px -3300px; }
.emoji-clock530 { background-position: 0px -3320px; }
.emoji-clock6 { background-position: 0px -3340px; }
.emoji-clock630 { background-position: 0px -3360px; }
.emoji-clock7 { background-position: 0px -3380px; }
.emoji-clock730 { background-position: 0px -3400px; }
.emoji-clock8 { background-position: 0px -3420px; }
.emoji-clock830 { background-position: 0px -3440px; }
.emoji-clock9 { background-position: 0px -3460px; }
.emoji-clock930 { background-position: 0px -3480px; }
.emoji-closed_book { background-position: 0px -3500px; }
.emoji-closed_lock_with_key { background-position: 0px -3520px; }
.emoji-closed_umbrella { background-position: 0px -3540px; }
.emoji-cloud { background-position: 0px -3560px; }
.emoji-clubs { background-position: 0px -3580px; }
.emoji-cn { background-position: 0px -3600px; }
.emoji-cocktail { background-position: 0px -3620px; }
.emoji-coffee { background-position: 0px -3640px; }
.emoji-cold_sweat { background-position: 0px -3660px; }
.emoji-collision { background-position: 0px -3680px; }
.emoji-computer { background-position: 0px -3700px; }
.emoji-confetti_ball { background-position: 0px -3720px; }
.emoji-confounded { background-position: 0px -3740px; }
.emoji-congratulations { background-position: 0px -3760px; }
.emoji-construction { background-position: 0px -3780px; }
.emoji-construction_worker { background-position: 0px -3800px; }
.emoji-convenience_store { background-position: 0px -3820px; }
.emoji-cookie { background-position: 0px -3840px; }
.emoji-cool { background-position: 0px -3860px; }
.emoji-cop { background-position: 0px -3880px; }
.emoji-copyright { background-position: 0px -3900px; }
.emoji-corn { background-position: 0px -3920px; }
.emoji-couple { background-position: 0px -3940px; }
.emoji-couple_with_heart { background-position: 0px -3960px; }
.emoji-couplekiss { background-position: 0px -3980px; }
.emoji-cow { background-position: 0px -4000px; }
.emoji-cow2 { background-position: 0px -4020px; }
.emoji-credit_card { background-position: 0px -4040px; }
.emoji-crocodile { background-position: 0px -4060px; }
.emoji-crossed_flags { background-position: 0px -4080px; }
.emoji-crown { background-position: 0px -4100px; }
.emoji-cry { background-position: 0px -4120px; }
.emoji-crying_cat_face { background-position: 0px -4140px; }
.emoji-crystal_ball { background-position: 0px -4160px; }
.emoji-cupid { background-position: 0px -4180px; }
.emoji-curly_loop { background-position: 0px -4200px; }
.emoji-currency_exchange { background-position: 0px -4220px; }
.emoji-curry { background-position: 0px -4240px; }
.emoji-custard { background-position: 0px -4260px; }
.emoji-customs { background-position: 0px -4280px; }
.emoji-cyclone { background-position: 0px -4300px; }
.emoji-dancer { background-position: 0px -4320px; }
.emoji-dancers { background-position: 0px -4340px; }
.emoji-dango { background-position: 0px -4360px; }
.emoji-dart { background-position: 0px -4380px; }
.emoji-dash { background-position: 0px -4400px; }
.emoji-date { background-position: 0px -4420px; }
.emoji-de { background-position: 0px -4440px; }
.emoji-deciduous_tree { background-position: 0px -4460px; }
.emoji-department_store { background-position: 0px -4480px; }
.emoji-diamond_shape_with_a_dot_inside { background-position: 0px -4500px; }
.emoji-diamonds { background-position: 0px -4520px; }
.emoji-disappointed { background-position: 0px -4540px; }
.emoji-dizzy { background-position: 0px -4560px; }
.emoji-dizzy_face { background-position: 0px -4580px; }
.emoji-do_not_litter { background-position: 0px -4600px; }
.emoji-dog { background-position: 0px -4620px; }
.emoji-dog2 { background-position: 0px -4640px; }
.emoji-dollar { background-position: 0px -4660px; }
.emoji-dolls { background-position: 0px -4680px; }
.emoji-dolphin { background-position: 0px -4700px; }
.emoji-door { background-position: 0px -4720px; }
.emoji-doughnut { background-position: 0px -4740px; }
.emoji-dragon { background-position: 0px -4760px; }
.emoji-dragon_face { background-position: 0px -4780px; }
.emoji-dress { background-position: 0px -4800px; }
.emoji-dromedary_camel { background-position: 0px -4820px; }
.emoji-droplet { background-position: 0px -4840px; }
.emoji-dvd { background-position: 0px -4860px; }
.emoji-e-mail { background-position: 0px -4880px; }
.emoji-ear { background-position: 0px -4900px; }
.emoji-ear_of_rice { background-position: 0px -4920px; }
.emoji-earth_africa { background-position: 0px -4940px; }
.emoji-earth_americas { background-position: 0px -4960px; }
.emoji-earth_asia { background-position: 0px -4980px; }
.emoji-egg { background-position: 0px -5000px; }
.emoji-eggplant { background-position: 0px -5020px; }
.emoji-eight { background-position: 0px -5040px; }
.emoji-eight_pointed_black_star { background-position: 0px -5060px; }
.emoji-eight_spoked_asterisk { background-position: 0px -5080px; }
.emoji-electric_plug { background-position: 0px -5100px; }
.emoji-elephant { background-position: 0px -5120px; }
.emoji-email { background-position: 0px -5140px; }
.emoji-end { background-position: 0px -5160px; }
.emoji-envelope { background-position: 0px -5180px; }
.emoji-es { background-position: 0px -5200px; }
.emoji-euro { background-position: 0px -5220px; }
.emoji-european_castle { background-position: 0px -5240px; }
.emoji-european_post_office { background-position: 0px -5260px; }
.emoji-evergreen_tree { background-position: 0px -5280px; }
.emoji-exclamation { background-position: 0px -5300px; }
.emoji-eyeglasses { background-position: 0px -5320px; }
.emoji-eyes { background-position: 0px -5340px; }
.emoji-facepunch { background-position: 0px -5360px; }
.emoji-factory { background-position: 0px -5380px; }
.emoji-fallen_leaf { background-position: 0px -5400px; }
.emoji-family { background-position: 0px -5420px; }
.emoji-fast_forward { background-position: 0px -5440px; }
.emoji-fax { background-position: 0px -5460px; }
.emoji-fearful { background-position: 0px -5480px; }
.emoji-feelsgood { background-position: 0px -5500px; }
.emoji-feet { background-position: 0px -5520px; }
.emoji-ferris_wheel { background-position: 0px -5540px; }
.emoji-file_folder { background-position: 0px -5560px; }
.emoji-finnadie { background-position: 0px -5580px; }
.emoji-fire { background-position: 0px -5600px; }
.emoji-fire_engine { background-position: 0px -5620px; }
.emoji-fireworks { background-position: 0px -5640px; }
.emoji-first_quarter_moon { background-position: 0px -5660px; }
.emoji-first_quarter_moon_with_face { background-position: 0px -5680px; }
.emoji-fish { background-position: 0px -5700px; }
.emoji-fish_cake { background-position: 0px -5720px; }
.emoji-fishing_pole_and_fish { background-position: 0px -5740px; }
.emoji-fist { background-position: 0px -5760px; }
.emoji-five { background-position: 0px -5780px; }
.emoji-flags { background-position: 0px -5800px; }
.emoji-flashlight { background-position: 0px -5820px; }
.emoji-floppy_disk { background-position: 0px -5840px; }
.emoji-flower_playing_cards { background-position: 0px -5860px; }
.emoji-flushed { background-position: 0px -5880px; }
.emoji-foggy { background-position: 0px -5900px; }
.emoji-football { background-position: 0px -5920px; }
.emoji-fork_and_knife { background-position: 0px -5940px; }
.emoji-fountain { background-position: 0px -5960px; }
.emoji-four { background-position: 0px -5980px; }
.emoji-four_leaf_clover { background-position: 0px -6000px; }
.emoji-fr { background-position: 0px -6020px; }
.emoji-free { background-position: 0px -6040px; }
.emoji-fried_shrimp { background-position: 0px -6060px; }
.emoji-fries { background-position: 0px -6080px; }
.emoji-frog { background-position: 0px -6100px; }
.emoji-fuelpump { background-position: 0px -6120px; }
.emoji-full_moon { background-position: 0px -6140px; }
.emoji-full_moon_with_face { background-position: 0px -6160px; }
.emoji-game_die { background-position: 0px -6180px; }
.emoji-gb { background-position: 0px -6200px; }
.emoji-gem { background-position: 0px -6220px; }
.emoji-gemini { background-position: 0px -6240px; }
.emoji-ghost { background-position: 0px -6260px; }
.emoji-gift { background-position: 0px -6280px; }
.emoji-gift_heart { background-position: 0px -6300px; }
.emoji-girl { background-position: 0px -6320px; }
.emoji-globe_with_meridians { background-position: 0px -6340px; }
.emoji-goat { background-position: 0px -6360px; }
.emoji-goberserk { background-position: 0px -6380px; }
.emoji-godmode { background-position: 0px -6400px; }
.emoji-golf { background-position: 0px -6420px; }
.emoji-grapes { background-position: 0px -6440px; }
.emoji-green_apple { background-position: 0px -6460px; }
.emoji-green_book { background-position: 0px -6480px; }
.emoji-green_heart { background-position: 0px -6500px; }
.emoji-grey_exclamation { background-position: 0px -6520px; }
.emoji-grey_question { background-position: 0px -6540px; }
.emoji-grin { background-position: 0px -6560px; }
.emoji-guardsman { background-position: 0px -6580px; }
.emoji-guitar { background-position: 0px -6600px; }
.emoji-gun { background-position: 0px -6620px; }
.emoji-haircut { background-position: 0px -6640px; }
.emoji-hamburger { background-position: 0px -6660px; }
.emoji-hammer { background-position: 0px -6680px; }
.emoji-hamster { background-position: 0px -6700px; }
.emoji-hand { background-position: 0px -6720px; }
.emoji-handbag { background-position: 0px -6740px; }
.emoji-hankey { background-position: 0px -6760px; }
.emoji-hash { background-position: 0px -6780px; }
.emoji-hatched_chick { background-position: 0px -6800px; }
.emoji-hatching_chick { background-position: 0px -6820px; }
.emoji-headphones { background-position: 0px -6840px; }
.emoji-hear_no_evil { background-position: 0px -6860px; }
.emoji-heart { background-position: 0px -6880px; }
.emoji-heart_decoration { background-position: 0px -6900px; }
.emoji-heart_eyes { background-position: 0px -6920px; }
.emoji-heart_eyes_cat { background-position: 0px -6940px; }
.emoji-heartbeat { background-position: 0px -6960px; }
.emoji-heartpulse { background-position: 0px -6980px; }
.emoji-hearts { background-position: 0px -7000px; }
.emoji-heavy_check_mark { background-position: 0px -7020px; }
.emoji-heavy_division_sign { background-position: 0px -7040px; }
.emoji-heavy_dollar_sign { background-position: 0px -7060px; }
.emoji-heavy_exclamation_mark { background-position: 0px -7080px; }
.emoji-heavy_minus_sign { background-position: 0px -7100px; }
.emoji-heavy_multiplication_x { background-position: 0px -7120px; }
.emoji-heavy_plus_sign { background-position: 0px -7140px; }
.emoji-helicopter { background-position: 0px -7160px; }
.emoji-herb { background-position: 0px -7180px; }
.emoji-hibiscus { background-position: 0px -7200px; }
.emoji-high_brightness { background-position: 0px -7220px; }
.emoji-high_heel { background-position: 0px -7240px; }
.emoji-hocho { background-position: 0px -7260px; }
.emoji-honey_pot { background-position: 0px -7280px; }
.emoji-honeybee { background-position: 0px -7300px; }
.emoji-horse { background-position: 0px -7320px; }
.emoji-horse_racing { background-position: 0px -7340px; }
.emoji-hospital { background-position: 0px -7360px; }
.emoji-hotel { background-position: 0px -7380px; }
.emoji-hotsprings { background-position: 0px -7400px; }
.emoji-hourglass { background-position: 0px -7420px; }
.emoji-house { background-position: 0px -7440px; }
.emoji-hurtrealbad { background-position: 0px -7460px; }
.emoji-ice_cream { background-position: 0px -7480px; }
.emoji-icecream { background-position: 0px -7500px; }
.emoji-id { background-position: 0px -7520px; }
.emoji-ideograph_advantage { background-position: 0px -7540px; }
.emoji-imp { background-position: 0px -7560px; }
.emoji-inbox_tray { background-position: 0px -7580px; }
.emoji-incoming_envelope { background-position: 0px -7600px; }
.emoji-information_desk_person { background-position: 0px -7620px; }
.emoji-information_source { background-position: 0px -7640px; }
.emoji-innocent { background-position: 0px -7660px; }
.emoji-interrobang { background-position: 0px -7680px; }
.emoji-iphone { background-position: 0px -7700px; }
.emoji-it { background-position: 0px -7720px; }
.emoji-izakaya_lantern { background-position: 0px -7740px; }
.emoji-jack_o_lantern { background-position: 0px -7760px; }
.emoji-japan { background-position: 0px -7780px; }
.emoji-japanese_castle { background-position: 0px -7800px; }
.emoji-japanese_goblin { background-position: 0px -7820px; }
.emoji-japanese_ogre { background-position: 0px -7840px; }
.emoji-jeans { background-position: 0px -7860px; }
.emoji-joy { background-position: 0px -7880px; }
.emoji-joy_cat { background-position: 0px -7900px; }
.emoji-jp { background-position: 0px -7920px; }
.emoji-key { background-position: 0px -7940px; }
.emoji-keycap_ten { background-position: 0px -7960px; }
.emoji-kimono { background-position: 0px -7980px; }
.emoji-kiss { background-position: 0px -8000px; }
.emoji-kissing_cat { background-position: 0px -8020px; }
.emoji-kissing_face { background-position: 0px -8040px; }
.emoji-kissing_heart { background-position: 0px -8060px; }
.emoji-koala { background-position: 0px -8080px; }
.emoji-koko { background-position: 0px -8100px; }
.emoji-kr { background-position: 0px -8120px; }
.emoji-large_blue_circle { background-position: 0px -8140px; }
.emoji-large_blue_diamond { background-position: 0px -8160px; }
.emoji-large_orange_diamond { background-position: 0px -8180px; }
.emoji-last_quarter_moon { background-position: 0px -8200px; }
.emoji-last_quarter_moon_with_face { background-position: 0px -8220px; }
.emoji-laughing { background-position: 0px -8240px; }
.emoji-leaves { background-position: 0px -8260px; }
.emoji-ledger { background-position: 0px -8280px; }
.emoji-left_luggage { background-position: 0px -8300px; }
.emoji-left_right_arrow { background-position: 0px -8320px; }
.emoji-leftwards_arrow_with_hook { background-position: 0px -8340px; }
.emoji-lemon { background-position: 0px -8360px; }
.emoji-leo { background-position: 0px -8380px; }
.emoji-leopard { background-position: 0px -8400px; }
.emoji-libra { background-position: 0px -8420px; }
.emoji-light_rail { background-position: 0px -8440px; }
.emoji-link { background-position: 0px -8460px; }
.emoji-lips { background-position: 0px -8480px; }
.emoji-lipstick { background-position: 0px -8500px; }
.emoji-lock { background-position: 0px -8520px; }
.emoji-lock_with_ink_pen { background-position: 0px -8540px; }
.emoji-lollipop { background-position: 0px -8560px; }
.emoji-loop { background-position: 0px -8580px; }
.emoji-loudspeaker { background-position: 0px -8600px; }
.emoji-love_hotel { background-position: 0px -8620px; }
.emoji-love_letter { background-position: 0px -8640px; }
.emoji-low_brightness { background-position: 0px -8660px; }
.emoji-m { background-position: 0px -8680px; }
.emoji-mag { background-position: 0px -8700px; }
.emoji-mag_right { background-position: 0px -8720px; }
.emoji-mahjong { background-position: 0px -8740px; }
.emoji-mailbox { background-position: 0px -8760px; }
.emoji-mailbox_closed { background-position: 0px -8780px; }
.emoji-mailbox_with_mail { background-position: 0px -8800px; }
.emoji-mailbox_with_no_mail { background-position: 0px -8820px; }
.emoji-man { background-position: 0px -8840px; }
.emoji-man_with_gua_pi_mao { background-position: 0px -8860px; }
.emoji-man_with_turban { background-position: 0px -8880px; }
.emoji-mans_shoe { background-position: 0px -8900px; }
.emoji-maple_leaf { background-position: 0px -8920px; }
.emoji-mask { background-position: 0px -8940px; }
.emoji-massage { background-position: 0px -8960px; }
.emoji-meat_on_bone { background-position: 0px -8980px; }
.emoji-mega { background-position: 0px -9000px; }
.emoji-melon { background-position: 0px -9020px; }
.emoji-memo { background-position: 0px -9040px; }
.emoji-mens { background-position: 0px -9060px; }
.emoji-metal { background-position: 0px -9080px; }
.emoji-metro { background-position: 0px -9100px; }
.emoji-microphone { background-position: 0px -9120px; }
.emoji-microscope { background-position: 0px -9140px; }
.emoji-milky_way { background-position: 0px -9160px; }
.emoji-minibus { background-position: 0px -9180px; }
.emoji-minidisc { background-position: 0px -9200px; }
.emoji-mobile_phone_off { background-position: 0px -9220px; }
.emoji-money_with_wings { background-position: 0px -9240px; }
.emoji-moneybag { background-position: 0px -9260px; }
.emoji-monkey { background-position: 0px -9280px; }
.emoji-monkey_face { background-position: 0px -9300px; }
.emoji-monorail { background-position: 0px -9320px; }
.emoji-moon { background-position: 0px -9340px; }
.emoji-mortar_board { background-position: 0px -9360px; }
.emoji-mount_fuji { background-position: 0px -9380px; }
.emoji-mountain_bicyclist { background-position: 0px -9400px; }
.emoji-mountain_cableway { background-position: 0px -9420px; }
.emoji-mountain_railway { background-position: 0px -9440px; }
.emoji-mouse { background-position: 0px -9460px; }
.emoji-mouse2 { background-position: 0px -9480px; }
.emoji-movie_camera { background-position: 0px -9500px; }
.emoji-moyai { background-position: 0px -9520px; }
.emoji-muscle { background-position: 0px -9540px; }
.emoji-mushroom { background-position: 0px -9560px; }
.emoji-musical_keyboard { background-position: 0px -9580px; }
.emoji-musical_note { background-position: 0px -9600px; }
.emoji-musical_score { background-position: 0px -9620px; }
.emoji-mute { background-position: 0px -9640px; }
.emoji-nail_care { background-position: 0px -9660px; }
.emoji-name_badge { background-position: 0px -9680px; }
.emoji-neckbeard { background-position: 0px -9700px; }
.emoji-necktie { background-position: 0px -9720px; }
.emoji-negative_squared_cross_mark { background-position: 0px -9740px; }
.emoji-neutral_face { background-position: 0px -9760px; }
.emoji-new { background-position: 0px -9780px; }
.emoji-new_moon { background-position: 0px -9800px; }
.emoji-new_moon_with_face { background-position: 0px -9820px; }
.emoji-newspaper { background-position: 0px -9840px; }
.emoji-ng { background-position: 0px -9860px; }
.emoji-nine { background-position: 0px -9880px; }
.emoji-no_bell { background-position: 0px -9900px; }
.emoji-no_bicycles { background-position: 0px -9920px; }
.emoji-no_entry { background-position: 0px -9940px; }
.emoji-no_entry_sign { background-position: 0px -9960px; }
.emoji-no_good { background-position: 0px -9980px; }
.emoji-no_mobile_phones { background-position: 0px -10000px; }
.emoji-no_mouth { background-position: 0px -10020px; }
.emoji-no_pedestrians { background-position: 0px -10040px; }
.emoji-no_smoking { background-position: 0px -10060px; }
.emoji-non-potable_water { background-position: 0px -10080px; }
.emoji-nose { background-position: 0px -10100px; }
.emoji-notebook { background-position: 0px -10120px; }
.emoji-notebook_with_decorative_cover { background-position: 0px -10140px; }
.emoji-notes { background-position: 0px -10160px; }
.emoji-nut_and_bolt { background-position: 0px -10180px; }
.emoji-o { background-position: 0px -10200px; }
.emoji-o2 { background-position: 0px -10220px; }
.emoji-ocean { background-position: 0px -10240px; }
.emoji-octocat { background-position: 0px -10260px; }
.emoji-octopus { background-position: 0px -10280px; }
.emoji-oden { background-position: 0px -10300px; }
.emoji-office { background-position: 0px -10320px; }
.emoji-ok { background-position: 0px -10340px; }
.emoji-ok_hand { background-position: 0px -10360px; }
.emoji-ok_woman { background-position: 0px -10380px; }
.emoji-older_man { background-position: 0px -10400px; }
.emoji-older_woman { background-position: 0px -10420px; }
.emoji-on { background-position: 0px -10440px; }
.emoji-oncoming_automobile { background-position: 0px -10460px; }
.emoji-oncoming_bus { background-position: 0px -10480px; }
.emoji-oncoming_police_car { background-position: 0px -10500px; }
.emoji-oncoming_taxi { background-position: 0px -10520px; }
.emoji-one { background-position: 0px -10540px; }
.emoji-open_file_folder { background-position: 0px -10560px; }
.emoji-open_hands { background-position: 0px -10580px; }
.emoji-ophiuchus { background-position: 0px -10600px; }
.emoji-orange_book { background-position: 0px -10620px; }
.emoji-outbox_tray { background-position: 0px -10640px; }
.emoji-ox { background-position: 0px -10660px; }
.emoji-page_facing_up { background-position: 0px -10680px; }
.emoji-page_with_curl { background-position: 0px -10700px; }
.emoji-pager { background-position: 0px -10720px; }
.emoji-palm_tree { background-position: 0px -10740px; }
.emoji-panda_face { background-position: 0px -10760px; }
.emoji-paperclip { background-position: 0px -10780px; }
.emoji-parking { background-position: 0px -10800px; }
.emoji-part_alternation_mark { background-position: 0px -10820px; }
.emoji-partly_sunny { background-position: 0px -10840px; }
.emoji-passport_control { background-position: 0px -10860px; }
.emoji-paw_prints { background-position: 0px -10880px; }
.emoji-peach { background-position: 0px -10900px; }
.emoji-pear { background-position: 0px -10920px; }
.emoji-pencil { background-position: 0px -10940px; }
.emoji-pencil2 { background-position: 0px -10960px; }
.emoji-penguin { background-position: 0px -10980px; }
.emoji-pensive { background-position: 0px -11000px; }
.emoji-performing_arts { background-position: 0px -11020px; }
.emoji-persevere { background-position: 0px -11040px; }
.emoji-person_frowning { background-position: 0px -11060px; }
.emoji-person_with_blond_hair { background-position: 0px -11080px; }
.emoji-person_with_pouting_face { background-position: 0px -11100px; }
.emoji-phone { background-position: 0px -11120px; }
.emoji-pig { background-position: 0px -11140px; }
.emoji-pig2 { background-position: 0px -11160px; }
.emoji-pig_nose { background-position: 0px -11180px; }
.emoji-pill { background-position: 0px -11200px; }
.emoji-pineapple { background-position: 0px -11220px; }
.emoji-pisces { background-position: 0px -11240px; }
.emoji-pizza { background-position: 0px -11260px; }
.emoji-point_down { background-position: 0px -11280px; }
.emoji-point_left { background-position: 0px -11300px; }
.emoji-point_right { background-position: 0px -11320px; }
.emoji-point_up { background-position: 0px -11340px; }
.emoji-point_up_2 { background-position: 0px -11360px; }
.emoji-police_car { background-position: 0px -11380px; }
.emoji-poodle { background-position: 0px -11400px; }
.emoji-poop { background-position: 0px -11420px; }
.emoji-post_office { background-position: 0px -11440px; }
.emoji-postal_horn { background-position: 0px -11460px; }
.emoji-postbox { background-position: 0px -11480px; }
.emoji-potable_water { background-position: 0px -11500px; }
.emoji-pouch { background-position: 0px -11520px; }
.emoji-poultry_leg { background-position: 0px -11540px; }
.emoji-pound { background-position: 0px -11560px; }
.emoji-pouting_cat { background-position: 0px -11580px; }
.emoji-pray { background-position: 0px -11600px; }
.emoji-princess { background-position: 0px -11620px; }
.emoji-punch { background-position: 0px -11640px; }
.emoji-purple_heart { background-position: 0px -11660px; }
.emoji-purse { background-position: 0px -11680px; }
.emoji-pushpin { background-position: 0px -11700px; }
.emoji-put_litter_in_its_place { background-position: 0px -11720px; }
.emoji-question { background-position: 0px -11740px; }
.emoji-rabbit { background-position: 0px -11760px; }
.emoji-rabbit2 { background-position: 0px -11780px; }
.emoji-racehorse { background-position: 0px -11800px; }
.emoji-radio { background-position: 0px -11820px; }
.emoji-radio_button { background-position: 0px -11840px; }
.emoji-rage { background-position: 0px -11860px; }
.emoji-rage1 { background-position: 0px -11880px; }
.emoji-rage2 { background-position: 0px -11900px; }
.emoji-rage3 { background-position: 0px -11920px; }
.emoji-rage4 { background-position: 0px -11940px; }
.emoji-railway_car { background-position: 0px -11960px; }
.emoji-rainbow { background-position: 0px -11980px; }
.emoji-raised_hand { background-position: 0px -12000px; }
.emoji-raised_hands { background-position: 0px -12020px; }
.emoji-ram { background-position: 0px -12040px; }
.emoji-ramen { background-position: 0px -12060px; }
.emoji-rat { background-position: 0px -12080px; }
.emoji-recycle { background-position: 0px -12100px; }
.emoji-red_car { background-position: 0px -12120px; }
.emoji-red_circle { background-position: 0px -12140px; }
.emoji-registered { background-position: 0px -12160px; }
.emoji-relaxed { background-position: 0px -12180px; }
.emoji-relieved { background-position: 0px -12200px; }
.emoji-repeat { background-position: 0px -12220px; }
.emoji-repeat_one { background-position: 0px -12240px; }
.emoji-restroom { background-position: 0px -12260px; }
.emoji-revolving_hearts { background-position: 0px -12280px; }
.emoji-rewind { background-position: 0px -12300px; }
.emoji-ribbon { background-position: 0px -12320px; }
.emoji-rice { background-position: 0px -12340px; }
.emoji-rice_ball { background-position: 0px -12360px; }
.emoji-rice_cracker { background-position: 0px -12380px; }
.emoji-rice_scene { background-position: 0px -12400px; }
.emoji-ring { background-position: 0px -12420px; }
.emoji-rocket { background-position: 0px -12440px; }
.emoji-roller_coaster { background-position: 0px -12460px; }
.emoji-rooster { background-position: 0px -12480px; }
.emoji-rose { background-position: 0px -12500px; }
.emoji-rotating_light { background-position: 0px -12520px; }
.emoji-round_pushpin { background-position: 0px -12540px; }
.emoji-rowboat { background-position: 0px -12560px; }
.emoji-ru { background-position: 0px -12580px; }
.emoji-rugby_football { background-position: 0px -12600px; }
.emoji-runner { background-position: 0px -12620px; }
.emoji-running { background-position: 0px -12640px; }
.emoji-running_shirt_with_sash { background-position: 0px -12660px; }
.emoji-sa { background-position: 0px -12680px; }
.emoji-sagittarius { background-position: 0px -12700px; }
.emoji-sailboat { background-position: 0px -12720px; }
.emoji-sake { background-position: 0px -12740px; }
.emoji-sandal { background-position: 0px -12760px; }
.emoji-santa { background-position: 0px -12780px; }
.emoji-satellite { background-position: 0px -12800px; }
.emoji-satisfied { background-position: 0px -12820px; }
.emoji-saxophone { background-position: 0px -12840px; }
.emoji-school { background-position: 0px -12860px; }
.emoji-school_satchel { background-position: 0px -12880px; }
.emoji-scissors { background-position: 0px -12900px; }
.emoji-scorpius { background-position: 0px -12920px; }
.emoji-scream { background-position: 0px -12940px; }
.emoji-scream_cat { background-position: 0px -12960px; }
.emoji-scroll { background-position: 0px -12980px; }
.emoji-seat { background-position: 0px -13000px; }
.emoji-secret { background-position: 0px -13020px; }
.emoji-see_no_evil { background-position: 0px -13040px; }
.emoji-seedling { background-position: 0px -13060px; }
.emoji-seven { background-position: 0px -13080px; }
.emoji-shaved_ice { background-position: 0px -13100px; }
.emoji-sheep { background-position: 0px -13120px; }
.emoji-shell { background-position: 0px -13140px; }
.emoji-ship { background-position: 0px -13160px; }
.emoji-shipit { background-position: 0px -13180px; }
.emoji-shirt { background-position: 0px -13200px; }
.emoji-shit { background-position: 0px -13220px; }
.emoji-shoe { background-position: 0px -13240px; }
.emoji-shower { background-position: 0px -13260px; }
.emoji-signal_strength { background-position: 0px -13280px; }
.emoji-six { background-position: 0px -13300px; }
.emoji-six_pointed_star { background-position: 0px -13320px; }
.emoji-ski { background-position: 0px -13340px; }
.emoji-skull { background-position: 0px -13360px; }
.emoji-sleepy { background-position: 0px -13380px; }
.emoji-slot_machine { background-position: 0px -13400px; }
.emoji-small_blue_diamond { background-position: 0px -13420px; }
.emoji-small_orange_diamond { background-position: 0px -13440px; }
.emoji-small_red_triangle { background-position: 0px -13460px; }
.emoji-small_red_triangle_down { background-position: 0px -13480px; }
.emoji-smile { background-position: 0px -13500px; }
.emoji-smile_cat { background-position: 0px -13520px; }
.emoji-smiley { background-position: 0px -13540px; }
.emoji-smiley_cat { background-position: 0px -13560px; }
.emoji-smiling_imp { background-position: 0px -13580px; }
.emoji-smirk { background-position: 0px -13600px; }
.emoji-smirk_cat { background-position: 0px -13620px; }
.emoji-smoking { background-position: 0px -13640px; }
.emoji-snail { background-position: 0px -13660px; }
.emoji-snake { background-position: 0px -13680px; }
.emoji-snowboarder { background-position: 0px -13700px; }
.emoji-snowflake { background-position: 0px -13720px; }
.emoji-snowman { background-position: 0px -13740px; }
.emoji-sob { background-position: 0px -13760px; }
.emoji-soccer { background-position: 0px -13780px; }
.emoji-soon { background-position: 0px -13800px; }
.emoji-sos { background-position: 0px -13820px; }
.emoji-sound { background-position: 0px -13840px; }
.emoji-space_invader { background-position: 0px -13860px; }
.emoji-spades { background-position: 0px -13880px; }
.emoji-spaghetti { background-position: 0px -13900px; }
.emoji-sparkler { background-position: 0px -13920px; }
.emoji-sparkles { background-position: 0px -13940px; }
.emoji-speak_no_evil { background-position: 0px -13960px; }
.emoji-speaker { background-position: 0px -13980px; }
.emoji-speech_balloon { background-position: 0px -14000px; }
.emoji-speedboat { background-position: 0px -14020px; }
.emoji-squirrel { background-position: 0px -14040px; }
.emoji-star { background-position: 0px -14060px; }
.emoji-star2 { background-position: 0px -14080px; }
.emoji-stars { background-position: 0px -14100px; }
.emoji-station { background-position: 0px -14120px; }
.emoji-statue_of_liberty { background-position: 0px -14140px; }
.emoji-steam_locomotive { background-position: 0px -14160px; }
.emoji-stew { background-position: 0px -14180px; }
.emoji-straight_ruler { background-position: 0px -14200px; }
.emoji-strawberry { background-position: 0px -14220px; }
.emoji-sun_with_face { background-position: 0px -14240px; }
.emoji-sunflower { background-position: 0px -14260px; }
.emoji-sunglasses { background-position: 0px -14280px; }
.emoji-sunny { background-position: 0px -14300px; }
.emoji-sunrise { background-position: 0px -14320px; }
.emoji-sunrise_over_mountains { background-position: 0px -14340px; }
.emoji-surfer { background-position: 0px -14360px; }
.emoji-sushi { background-position: 0px -14380px; }
.emoji-suspect { background-position: 0px -14400px; }
.emoji-suspension_railway { background-position: 0px -14420px; }
.emoji-sweat { background-position: 0px -14440px; }
.emoji-sweat_drops { background-position: 0px -14460px; }
.emoji-sweat_smile { background-position: 0px -14480px; }
.emoji-sweet_potato { background-position: 0px -14500px; }
.emoji-swimmer { background-position: 0px -14520px; }
.emoji-symbols { background-position: 0px -14540px; }
.emoji-syringe { background-position: 0px -14560px; }
.emoji-tada { background-position: 0px -14580px; }
.emoji-tanabata_tree { background-position: 0px -14600px; }
.emoji-tangerine { background-position: 0px -14620px; }
.emoji-taurus { background-position: 0px -14640px; }
.emoji-taxi { background-position: 0px -14660px; }
.emoji-tea { background-position: 0px -14680px; }
.emoji-telephone { background-position: 0px -14700px; }
.emoji-telephone_receiver { background-position: 0px -14720px; }
.emoji-telescope { background-position: 0px -14740px; }
.emoji-tennis { background-position: 0px -14760px; }
.emoji-tent { background-position: 0px -14780px; }
.emoji-thought_balloon { background-position: 0px -14800px; }
.emoji-three { background-position: 0px -14820px; }
.emoji-thumbsdown { background-position: 0px -14840px; }
.emoji-thumbsup { background-position: 0px -14860px; }
.emoji-ticket { background-position: 0px -14880px; }
.emoji-tiger { background-position: 0px -14900px; }
.emoji-tiger2 { background-position: 0px -14920px; }
.emoji-tired_face { background-position: 0px -14940px; }
.emoji-tm { background-position: 0px -14960px; }
.emoji-toilet { background-position: 0px -14980px; }
.emoji-tokyo_tower { background-position: 0px -15000px; }
.emoji-tomato { background-position: 0px -15020px; }
.emoji-tongue { background-position: 0px -15040px; }
.emoji-tongue2 { background-position: 0px -15060px; }
.emoji-top { background-position: 0px -15080px; }
.emoji-tophat { background-position: 0px -15100px; }
.emoji-tractor { background-position: 0px -15120px; }
.emoji-traffic_light { background-position: 0px -15140px; }
.emoji-train { background-position: 0px -15160px; }
.emoji-train2 { background-position: 0px -15180px; }
.emoji-tram { background-position: 0px -15200px; }
.emoji-triangular_flag_on_post { background-position: 0px -15220px; }
.emoji-triangular_ruler { background-position: 0px -15240px; }
.emoji-trident { background-position: 0px -15260px; }
.emoji-triumph { background-position: 0px -15280px; }
.emoji-trolleybus { background-position: 0px -15300px; }
.emoji-trollface { background-position: 0px -15320px; }
.emoji-trophy { background-position: 0px -15340px; }
.emoji-tropical_drink { background-position: 0px -15360px; }
.emoji-tropical_fish { background-position: 0px -15380px; }
.emoji-truck { background-position: 0px -15400px; }
.emoji-trumpet { background-position: 0px -15420px; }
.emoji-tshirt { background-position: 0px -15440px; }
.emoji-tulip { background-position: 0px -15460px; }
.emoji-turtle { background-position: 0px -15480px; }
.emoji-tv { background-position: 0px -15500px; }
.emoji-twisted_rightwards_arrows { background-position: 0px -15520px; }
.emoji-two { background-position: 0px -15540px; }
.emoji-two_hearts { background-position: 0px -15560px; }
.emoji-two_men_holding_hands { background-position: 0px -15580px; }
.emoji-two_women_holding_hands { background-position: 0px -15600px; }
.emoji-u5272 { background-position: 0px -15620px; }
.emoji-u5408 { background-position: 0px -15640px; }
.emoji-u55b6 { background-position: 0px -15660px; }
.emoji-u6307 { background-position: 0px -15680px; }
.emoji-u6708 { background-position: 0px -15700px; }
.emoji-u6709 { background-position: 0px -15720px; }
.emoji-u6e80 { background-position: 0px -15740px; }
.emoji-u7121 { background-position: 0px -15760px; }
.emoji-u7533 { background-position: 0px -15780px; }
.emoji-u7981 { background-position: 0px -15800px; }
.emoji-u7a7a { background-position: 0px -15820px; }
.emoji-uk { background-position: 0px -15840px; }
.emoji-umbrella { background-position: 0px -15860px; }
.emoji-unamused { background-position: 0px -15880px; }
.emoji-underage { background-position: 0px -15900px; }
.emoji-unlock { background-position: 0px -15920px; }
.emoji-up { background-position: 0px -15940px; }
.emoji-us { background-position: 0px -15960px; }
.emoji-v { background-position: 0px -15980px; }
.emoji-vertical_traffic_light { background-position: 0px -16000px; }
.emoji-vhs { background-position: 0px -16020px; }
.emoji-vibration_mode { background-position: 0px -16040px; }
.emoji-video_camera { background-position: 0px -16060px; }
.emoji-video_game { background-position: 0px -16080px; }
.emoji-violin { background-position: 0px -16100px; }
.emoji-virgo { background-position: 0px -16120px; }
.emoji-volcano { background-position: 0px -16140px; }
.emoji-vs { background-position: 0px -16160px; }
.emoji-walking { background-position: 0px -16180px; }
.emoji-waning_crescent_moon { background-position: 0px -16200px; }
.emoji-waning_gibbous_moon { background-position: 0px -16220px; }
.emoji-warning { background-position: 0px -16240px; }
.emoji-watch { background-position: 0px -16260px; }
.emoji-water_buffalo { background-position: 0px -16280px; }
.emoji-watermelon { background-position: 0px -16300px; }
.emoji-wave { background-position: 0px -16320px; }
.emoji-wavy_dash { background-position: 0px -16340px; }
.emoji-waxing_crescent_moon { background-position: 0px -16360px; }
.emoji-waxing_gibbous_moon { background-position: 0px -16380px; }
.emoji-wc { background-position: 0px -16400px; }
.emoji-weary { background-position: 0px -16420px; }
.emoji-wedding { background-position: 0px -16440px; }
.emoji-whale { background-position: 0px -16460px; }
.emoji-whale2 { background-position: 0px -16480px; }
.emoji-wheelchair { background-position: 0px -16500px; }
.emoji-white_circle { background-position: 0px -16520px; }
.emoji-white_flower { background-position: 0px -16540px; }
.emoji-white_square { background-position: 0px -16560px; }
.emoji-wind_chime { background-position: 0px -16580px; }
.emoji-wine_glass { background-position: 0px -16600px; }
.emoji-wink { background-position: 0px -16620px; }
.emoji-wink2 { background-position: 0px -16640px; }
.emoji-wolf { background-position: 0px -16660px; }
.emoji-woman { background-position: 0px -16680px; }
.emoji-womans_clothes { background-position: 0px -16700px; }
.emoji-womans_hat { background-position: 0px -16720px; }
.emoji-womens { background-position: 0px -16740px; }
.emoji-wrench { background-position: 0px -16760px; }
.emoji-x { background-position: 0px -16780px; }
.emoji-yellow_heart { background-position: 0px -16800px; }
.emoji-yen { background-position: 0px -16820px; }
.emoji-yum { background-position: 0px -16840px; }
.emoji-zap { background-position: 0px -16860px; }
.emoji-zero { background-position: 0px -16880px; }
.emoji-zzz { background-position: 0px -16900px; }

View File

@@ -1,10 +0,0 @@
.emoji {
display: inline-block;
background: url("<%= Emoji.image_path(self, 'emoji.png') %>") top left no-repeat;
width: 20px;
height: 20px;
vertical-align: middle;
}
<% Emoji.names.each_with_index do |name, index| %>
.emoji-<%= name %> { background-position: 0px -<%= index * 20 %>px; }
<% end %>

View File

File diff suppressed because one or more lines are too long

View File

@@ -1,13 +0,0 @@
var Emoji = {
names: [<%= Emoji.names.map { |n| "\"#{n}\"" }.join(', ') %>],
replace: function(string) {
return string.replace(/:([a-z0-9\+\-_]+):/g, function(match, $1) {
if (Emoji.names.indexOf($1) >= 0) {
return '<span class="emoji emoji-' + $1 + '" title=":' + $1 + ':"></span>';
} else {
return ':' + $1 + ':';
}
})
}
}

View File

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.6 MiB

View File

@@ -1 +0,0 @@
<%= Emoji.generate_sprite %>

View File

@@ -1,6 +1,3 @@
require 'tmpdir'
require 'emoji_helper'
module Emoji
PATH = File.expand_path("..", __FILE__)
@@ -8,43 +5,19 @@ module Emoji
PATH
end
def self.images_path
File.join(path, "assets/images")
end
def self.names
@names ||= Dir["#{PATH}/../images/emoji/*.png"].sort.map { |fn| File.basename(fn, '.png') }
end
def self.replace(string)
string.gsub(/:([a-z0-9\+\-_]+):/) do |message|
name = $1.to_s.downcase
if names.include?(name)
%(<span class="emoji emoji-#{name}" title=":#{name}:"></span>)
else
message
end
end
end
def self.generate_sprite
Dir.mktmpdir('emoji') do |path|
output = ::File.join(path, 'emoji.png')
system "montage", "#{Emoji.path}/assets/images/emoji/*.png",
"-background", "transparent",
"-tile", "x#{Emoji.names.size}",
"-geometry", "20x20",
output
File.read(output)
end
@names ||= Dir["#{PATH}/../images/*.png"].sort.map { |fn| File.basename(fn, '.png') }
end
if defined? Rails::Engine
class Engine < Rails::Engine
end
def self.image_path(context, path)
context.asset_path(path)
end
else
def self.image_path(context, path)
"/images/#{path}"
rake_tasks do
load "tasks/emoji.rake"
end
end
end
end

View File

@@ -1,11 +0,0 @@
module EmojiHelper
def emojify(content)
h(content).to_str.gsub(/:([a-z0-9\+\-_]+):/) do |match|
if Emoji.names.include?($1)
image_tag("emoji/#{$1}.png", :size => "20x20", :style => "vertical-align:middle")
else
match
end
end.html_safe if content.present?
end
end

1
lib/gemoji.rb Normal file
View File

@@ -0,0 +1 @@
require 'emoji'

7
lib/tasks/emoji.rake Normal file
View File

@@ -0,0 +1,7 @@
task :emoji => :environment do
require 'emoji'
Dir["#{Emoji::PATH}/../images/*.png"].each do |src|
cp src, "#{Rails.root}/public/images/emoji/"
end
end