絵文字マートはカスタマイズ可能です
Web用の絵文字ピッカーHTMLコンポーネント
デモ
ミシブチームからあなたに連れてこられます
データ
ピッカー
絵文字コンポーネント
ヘッドレス検索
ネイティブから絵文字データを取得します
国際化
例
最新のブラウザ向けに構築されています
発達
ピッカーが作業するために必要なデータは、ライブラリから完全に分離されています。これにより、開発者はアプリのバンドルサイズをより適切に制御し、このデータがどのように、いつロードされるかを選択できるようになります。データは次のとおりです。
長所:ピッカーは即座にレンダリングし、データはオフラインで利用できます
短所:初期ページの読み込みが遅い(ロードするファイルが大きい)
YARN ADD @emoji-mart/data
'@emoji-mart/data'import {picker}から' emoji-mart'new picker({data})からデータをインポートする
長所:必要なときにのみデータが取得され、アプリのバンドルサイズに影響しません
短所:ネットワークの遅延は、オフラインで動作しません(サービスワーカーを構成しない限り)
'emoji-mart'new Pickerから{Picker}をインポート({{ データ:async()=> {const response = await fetch( 'https://cdn.jsdelivr.net/npm/@emoji-mart/data',) Return Response.json() }})
この例では、データはコンテンツ配信ネットワークから取得されますが、データをホストする場合は、独自のドメインからフェッチすることもできます。
npmインストール - aave emoji-mart @emoji-mart/data @emoji-mart/React
'@emoji-mart/data'importピッカーからのデータを'@emoji-mart/React'function app(){ return(<picker data = {data} onemojiselect = {console.log} /> )}
<スクリプトsrc = "https://cdn.jsdelivr.net/npm/emoji-mart@latest/dist/browser.js"> </script> <script> const pickeroptions = {onemojiselect:console.log} const picker = new emojimart.picker(pickeroptions) document.body.appendChild(ピッカー)</script>
オプション | デフォルト | 選択肢 | 説明 |
---|---|---|---|
データ | {} | ピッカーに使用するデータ | |
i18n | {} | ピッカーに使用するローカリゼーションデータ | |
カテゴリ | [] | frequent 、 people 、 nature 、 foods 、 activity 、 places 、 objects 、 symbols 、 flags | ピッカーに表示するカテゴリ。注文は尊重されます。 |
カスタム | [] | カスタム絵文字 | |
onemojiselect | null | 絵文字が選択されたときのコールバック | |
オンクリックアウトサイド | null | ピッカーの外側をクリックすると、コールバックが発生します | |
onaddcustomemoji | null | Callback add custom emojiボタンがクリックされたとき。ボタンは、このコールバックが提供されている場合にのみ表示されます。検索が結果を返さないときに表示されます。 | |
オートフォーカス | false | ピッカーが検索入力に自動的に集中する必要があるかどうか | |
カテゴリイコン | {} | カスタムカテゴリアイコン | |
動的幅 | false | ピッカーが<em-emoji-picker> の幅に基づいて動的にperLine 計算する必要があるかどうか。有効になると、 perLine は無視されます | |
emojibuttoncolors | [] | IE #f00 、 pink 、 rgba(155,223,88,.7) | ホバーの背景色に影響する色の配列 |
絵文字 | 100% | すなわち6px 、 1em 、 100% | 絵文字ボタンの半径 |
emojibuttonsize | 36 | 絵文字ボタンのサイズ | |
emojisize | 24 | 絵文字のサイズ(ボタンの内側) | |
絵文字 | 14 | 1 2 3 4 5 11 12 12.1 13 13.1 14 | 使用する絵文字データのバージョン。 @emoji-mart/data でサポートされている最新バージョンは現在14です |
emojisを除く | [] | ピッカーから除外される絵文字IDのリスト | |
アイコン | auto | auto 、 outline 、 solid | ピッカーに使用するアイコンのタイプ。明るいテーマでoutline 、暗いテーマのsolid 。 |
ロケール | en | en 、 ar 、 be 、 cs 、 de 、 es 、 fa 、 fi 、 fr zh hi 、 it 、 ja 、 ko 、 nl 、 pl 、 ru 、 sa 、 tr 、 uk 、 vi 、 pt | ピッカーに使用するロケール |
maxfrequentrows | 4 | 表示する頻繁な行の最大数。 0 頻繁なカテゴリを無効にします | |
ナビジション | top | top 、 bottom 、 none | ナビゲーションバーの位置 |
nocountryflags | false | 国の旗を表示するかどうか。提供されていない場合、TBHISは自動的に処理されます(Windowsはカントリーフラグをサポートしていません) | |
noresultsemoji | cry | NO結果の絵文字に使用する絵文字のID | |
Perline | 9 | 1行あたり表示する絵文字の数 | |
Previewemoji | point_up | 絵文字をホバリングしないときにプレビューに使用する絵文字のID。 point_up プレビュー位置が下部、プレビューの位置が上部の場合はpoint_down 場合。 | |
プレビューポジション | bottom | top 、 bottom 、 none | プレビューの位置 |
SearchPosition | sticky | sticky 、 static 、 none | 検索入力の位置 |
セット | native | native 、 apple 、 facebook 、 google 、 twitter | ピッカーに使用する絵文字のセット。 native 最もパフォーマンスが高いため、他の人はスプライトシートに依存しています。 |
肌 | 1 | 1 2 3 4 5 6 | 絵文字の肌のトーン |
スキントンポジション | preview | preview 、 search 、 none | スキントーンセレクターの位置 |
テーマ | auto | auto 、 light 、 dark | ピッカーの色のテーマ |
GetSpritesheeturl | null | ピッカーに使用するスプライトシートのURLを返す関数。提供されたデータと互換性があるはずです。 |
一連のカテゴリとその絵文字を提供することで、カスタム絵文字を使用できます。絵文字は複数の皮膚トーンをサポートし、GIFまたはSVGにすることもできます。
'@emoji-mart/data'import Pickerからのデータを'@emoji-mart/React'const custom = [[ {id: 'github'、name: 'github'、emojis:[{id: 'octocat'、name: 'octocat'、keywords:['github']、skins:[{src: './octocat.png' ' }、}、{id: 'shipit'、name: 'lirrel'、keywords:['github']、skins:[{src: './shipit-1.png'}、{src: './shipit -2.png '}、{src:' ./shipit-3.png '}、{src:' ./shipit-4.png '}、{src:' ./shipit-5.png '}、{ src: './shipit-6.png'}、]、}、]、 }、 {id: 'gifs'、name: 'gifs'、emojis:[{id: 'party_parrot'、name: 'party parrot'、keywords:['dance'、 'dancing']、skins:[{src: '。 /party_parrot.gif '}]、}、]、 }、] function app(){ return(<picker data = {data} custom = {custom} /> )}
カテゴリ名をキーとして、アイコンを値としてオブジェクトに提供することにより、カスタムカテゴリアイコンを使用できます。現在サポートされている形式は、 svg
文字列とsrc
です。例を参照してください。
const customcategoryicons = { categoryicons:{activity:{svg: '<svg xmlns = "http://www.w3.org/2000/svg" viewbox = "0 0 640 512"> <path d = "M57.89 397.2C-6.262- 8.616-16.02-13.19-25.92-13.19C-23.33 0-31.98 20.68-31.98 32.03C0 6.522 1.987 13.1 6.115 18.78L46.52 64C58.89 507.4 68.64 .03C0-6.522-1.988 -13.1-6.115-18.78L57.89 397.2ZM496.1 352C-44.13 0-79.72 -27.34-12.72 -39.2L-23.63-32.5C-13.44-18.5-33.77-27.68-54.12-27.68C-13.89 0-27.79 4.281-39.51 12.8L307.8 159.7C262.2 192.8 220.4 230.9 183.4C-27.27.27.27-59.18-59. 103.5 99.63L56.34 77.52C53.79-35.39 99.15-55.3 127.1-67.27C51.88-22 101.3-49.87 146.9-82.1L202.3-146.7C630.5 140.4 、}、人:{src: './people.png'、}、 }、}
絵文字のWebコンポーネントの使用は、どのライブラリを使用しても同じです。
まず、データが初期化されていることを確認する必要があります。これをページロードごとに1回だけ呼び出す必要があります。このようにinit
呼び出す場合、ピッカーの小道具に必ずしもデータを含める必要はないことに注意してください。それも傷つかない、それはヌープします。
'@emoji-mart/data'import {init}から' emoji-mart'init({data})からデータをインポートする
次に、HTML / JSXで絵文字コンポーネントを使用できます。
<em-emoji id = "+1" size = "2em"> </em-emoji> <em-emoji id = "+1" skin = "2"> </em-emoji> <em-emojiショートコード= ":+1 :: Skin-Tone-1:"> </em-emoji> <em-emojiショートコード= ":+1 :: Skin-Tone-2:"> </em-Emoji>
属性 | 例 | 説明 |
---|---|---|
id | +1 | 絵文字ID |
ショートコード | :+1::skin-tone-2: | 絵文字ショートコード |
ネイティブ | ? | ネイティブの絵文字 |
サイズ | 2em | インライン要素サイズ |
後退する | :shrug: | 絵文字が見つからない場合にレンダリングされる文字列 |
セット | native | 絵文字セット: native 、 apple 、 facebook 、 google 、 twitter |
肌 | 1 | 4 3 肌2 6 5 1 |
ピッカーなしで検索できます。絵文字コンポーネントと同様に、検索インデックスを使用するには、 data
最初に初期化する必要があります。
'@emoji-mart/data'import {init、searchindex}からのデータを' emoji-mart'init({data})async function search(value){ const emojis = await searchindex.search(value) const results = emojis.map((emoji)=> {return emoji.skins [0] .native }) console.log(results)} search( 'christmas')// => ['?' '??'、 '??'、 '?'? '、'? ❄️ '、'? '、'⛄ ']
ネイティブの絵文字から絵文字データを取得できます。これは、ネイティブの絵文字から絵文字IDを取得したい場合に便利です。絵文字コンポーネントと同様に、絵文字データを取得するには、最初にdata
初期化する必要があります。
'@emoji-mart/data'import {init、getemojidatafromnative}から' emoji-mart'init({data})getemojidatafromnative( '??')からデータをインポートします。 hand_with_index_and_middle_fingers_crossed ']、id:' crossed_fingers '、keywords:[' hand '、' with '、' index '、' and '、' middle '、' good '、' lucky ']、「Crossed Fingers」、ネイティブ: '??'、ショートコード: ':Crossed_fingers :: Skin-Tone-6:'、Skin:6、Unified: '1F91E-1F3ff'、} */
emojimart UIは複数の言語をサポートしています。あなたが足りない場合は、PRを自由に開くことができます。
i18nから'@emoji-mart/data/i18n/fr.json'i18n.search_no_results_1 = 'aucun emoji'new picker({i18n})からインポート
ファイルサイズが小さいことを考えると、英語は組み込まれており、提供する必要はありません。
カテゴリ
カスタム絵文字フォント
カスタムスタイル
絵文字コンポーネント
ヘッドレス検索
スラック色
emojimartはこれらのAPIに依存しています。古いブラウザーをサポートする必要がある場合は、ポリフィルを含める必要がある場合があります。
シャドウドム(MDN)
カスタム要素(MDN)
交差点装置(MDN)
async/await(mdn)
糸インストール 糸dev