web-dev-qa-db-ja.com

素晴らしいフォントにカスタムアイコンを追加する

Font Awesome iconフォントが大好きで、私のサイトのほとんどのアイコンに使用したいのですが、提供されるものに加えて必要なカスタムsvgアイコンがいくつかあります。

。svgバージョンのFont Awesome は、ほとんどこれらの<glyph />要素で構成されていることに気付きました。

...
<glyph unicode="&#xf0b2;" horiz-adv-x="1536" d="M0 80v477q0 51 24.5 61.5t59.5 -24.5l162 -162l340 338l-338 338l-164 -164q-35 -35 -59.5 -25.5t-24.5 60.5v477q0 31 23 57q27 23 57 23h477q51 0 61.5 -24.5t-24.5 -59.5l-160 -158l338 -338l332 334l-162 162q-35 35 -24.5 59.5t61.5 24.5h477q33 0 55 -23 q25 -25 25 -57v-477q0 -51 -24.5 -61.5t-59.5 24.5l-162 162l-334 -334l338 -336l158 160q35 35 59.5 24.5t24.5 -61.5v-477q0 -35 -25 -55q-23 -25 -55 -25h-477q-51 0 -61.5 24.5t24.5 59.5l166 166l-336 336l-340 -340l162 -162q35 -35 24.5 -59.5t-61.5 -24.5h-477 q-31 0 -55 25q-25 20 -25 55z" />
<glyph unicode="&#xf0c0;" horiz-adv-x="1880" d="M0 852v152q0 18 1 47.5t10 56.5t29.5 46.5t57.5 19.5q-45 29 -71.5 75.5t-26.5 104.5q0 43 16.5 82t46 68.5t68.5 46t82 16.5q45 0 84 -16.5t67.5 -46t46 -68.5t17.5 -82q0 -57 -27.5 -104t-72.5 -76q37 0 57.5 -19.5t29.5 -46.5t11 -56.5t2 -47.5v-152 q-14 -8 -23.5 -18.5t-27.5 -10.5h-328q-16 0 -26.5 10.5t-22.5 18.5zM158 57v387q0 78 45 138.5t98 109.5q10 10 25.5 21.5t33.5 15.5q18 6 41 7t45 5q61 10 130 19.5t135 19.5q-90 57 -144.5 151.5t-54.5 207.5q0 88 34 166.5t92 136t136 91.5t166 34t166 -34t136 -91.5 t92 -136t34 -166.5q0 -113 -54 -207t-145 -152q66 -10 134.5 -19t130.5 -20q23 -4 45 -5t41 -7q18 -4 33.5 -15.5t27.5 -21.5q66 -59 103.5 -116.5t37.5 -131.5v-387q-12 -6 -20 -13t-18.5 -14t-23.5 -14.5t-36 -15.5h-1368q-35 0 -54.5 22.5t-43.5 34.5zM1452 852v152 q0 18 2 47.5t11.5 56.5t30 46.5t56.5 19.5q-45 29 -72.5 75.5t-27.5 104.5q0 43 16.5 82t46 68.5t68.5 46t84 16.5q43 0 82 -16.5t68.5 -46t46 -68.5t16.5 -82q0 -57 -26.5 -104t-71.5 -76q37 0 56.5 -19.5t28.5 -46.5t11 -56.5t2 -47.5v-152q-12 -8 -22.5 -18.5 t-26.5 -10.5h-328q-18 0 -27.5 10.5t-23.5 18.5z" />
<glyph unicode="&#xf0c1;" horiz-adv-x="1597" d="M0 1137q0 88 34 166.5t92 137t136 92.5t168 34q86 0 166 -33t139 -92q8 -8 21.5 -20.5t26 -25t21.5 -25.5t9 -25q0 -18 -12 -31q-6 -8 -25 -12q-47 -10 -88 -22.5t-86 -31.5q-4 -4 -16 -4t-25.5 10.5t-31 21.5t-42 21.5t-57.5 10.5q-35 0 -66.5 -13.5t-54 -37t-36 -54 t-13.5 -67.5q0 -41 17.5 -75t43 -63.5t56.5 -56.5t57 -53l180 -178q23 -25 54.5 -37t66.5 -12q43 0 73 16t46 16q12 0 39 -21.5t55.5 -49t50 -55t21.5 -42.5q0 -29 -36 -51t-83 -38.5t-94 -26t-72 -9.5q-86 0 -164.5 33t-140.5 92l-303 305q-61 59 -94 139.5t-33 166.5z M578 1010q0 29 35.5 51t82.5 38.5t94 26t72 9.5q86 0 166 -33t139 -92l303 -305q61 -59 94 -139.5t33 -166.5q0 -90 -33.5 -167.5t-92 -136t-137.5 -92.5t-167 -34q-86 0 -165.5 34t-139.5 93q-8 8 -21.5 19.5t-25.5 25t-21.5 26.5t-9.5 26q0 18 13 28q6 8 24 12 q47 10 88 22.5t86 33.5q12 4 17 4q12 0 25.5 -10.5t30.5 -21.5t41 -21.5t58 -10.5q72 0 121 49.5t49 120.5q0 41 -17 76t-44 63.5t-56.5 55.5t-56.5 53l-178 180q-53 49 -123 50q-43 0 -72.5 -17.5t-46.5 -17.5q-12 0 -38.5 21.5t-55 49t-50 56t-21.5 41.5z" />
...

Svgアイコンコードを取得して、新しいグリフ要素として貼り付け、未使用のUnicodeコードを割り当てることは効果的ですか?

126

Icomoon を試してください。独自のSVGをアップロードしてライブラリに追加し、FontAwesomeと独自のアイコンを組み合わせたカスタムフォントを作成できます。

117
davidtheclark

fontcustom を指定すると、svgファイルから独自のフォントが作成されます。

33
Glen

持っているものに依存します。 svgアイコンが単なるパスの場合、「d」属性を新しい<glyph>要素にコピーするだけで、そのグリフを簡単に追加できます。ただし、パスはフォントの座標系(通常、[0,0,2048,2048]-Truetypeフォントの標準であるEM-square)に合わせてスケーリングし、必要なベースラインに揃える必要があります。

ただし、すべてのブラウザがsvgフォントをサポートしているわけではないため、どこでも動作させる場合は、他の形式にも変換する必要があります。

Fontforge svgファイルをインポートでき(グリフスロットを選択し、[ファイル]> [インポート]を選択してからsvg画像を選択)、関連するすべてのフォント形式(svg、truetype、woffなど)に変換できます。

17
Erik Dahlström

あなたのアイコンを FontAwesome 独自のカスタムライブラリを作成および管理します。個人的には、維持を維持する方がはるかに簡単だと思います FontAwesome 独自のアイコンライブラリを作成する場合は、分離します。そうすれば、FontAwesomeをCDNからサイトに読み込むことができ、それを最新に保つことを心配する必要がなくなります。

独自のカスタムアイコンを作成する場合、各アイコンを作成するには アドビイラストレーター または同様のソフトウェア。アイコンを作成したら、それぞれをSVG形式でコンピューターに保存します。

次に、 IcoMoonhttp://icomoon.io 、これは(私の意見では)最高のフォント生成ソフトウェアを備えており、無料です。 IcoMoon svgで保存された個々のフォントをフォントライブラリにインポートし、eotttfwoff、およびsvgでカスタムアイコングリフライブラリを生成できます。 1つのフォーマット IcoMoon woff2は生成されません。

でアイコンパックを生成した後 IcoMoonに向かいます FontSquirrelhttp://fontsquirrel.com およびフォントジェネレーターを使用します。で生成されたttfファイルを使用します IcoMoon。新しく生成されたアイコンパックに、woff2形式のアイコンパックがあります。

eotttfsvgwoff、およびwoff2のファイルがすべて同じ名前であることを確認してください。 2つの異なるWebサイト/ソフトウェアからアイコンパックを生成していますが、生成された出力に異なる名前を付けています。

両方の場所でアイコンパック用のCSSが生成されます。しかし、CSSは IcoMoon woff2宣言に@font-face {}形式を含めません。プロジェクトにCSSを追加するときに、必ず追加してください。

@font-face {
    font-family: 'customiconpackname';
    src: url('../fonts/customiconpack.eot?lchn8y');
    src: url('../fonts/customiconpack.eot?lchn8y#iefix') format('embedded-opentype'),
         url('../fonts/customiconpack.ttf?lchn8y') format('truetype'),
         url('../fonts/customiconpack.woff2?lchn8y') format('woff'),
         url('../fonts/customiconpack.woff?lchn8y') format('woff'),
         url('../fonts/customiconpack.svg?lchn8y#customiconpack') format('svg');
    font-weight: normal;
    font-style: normal;
}

を使用して、アイコンパック内の各アイコンのグリフUnicode値を取得できることに注意してください。 IcoMoon ソフトウェア。これらの値は、CSSを介してアイコンを割り当てる際に役立ちます(上記のfont-familyの例で宣言されている@font-face {...}を使用している場合):

selector:after {
    font-family: 'customiconpackname';
    content: '\e953';
    }

フォントパックで生成されたsvgファイルをテキストエディターで開くと、グリフUnicode値e953を取得することもできます。例えば。:

<glyph unicode="&#xe953;" glyph-name="eye" ... />
13
Pegues

@Samuel-bergströmへの同様のアプローチ:

  • Fontawesome SVGのダウンロード https://github.com/FortAwesome/Font-Awesome/blob/master/src/assets/font-awesome/fonts/fontawesome-webfont.svg
  • FontForgeのダウンロード http://fontforge.github.io/en-US/downloads/
  • Inkscapeをダウンロードする
  • Inskscapeを開き、新しいフォントアイコンとして単一のレイヤーシェイプを作成します
  • SVGファイルを保存し、Inkscapeを閉じます
  • FontForgeを開きます(複数のモニターがある場合は、Windows-LeftArrowを使用して、モニターから消える奇妙なSWING Javaウィンドウがあり、ポップアップにモーダル問題があるため、再配置します。 )
  • ファイル| fontawesome-webfont.svgを開きます
  • ファイル|インポート
  • 一番下までスクロールし、アイコンを右クリックします|グリフ情報
  • Glyph NameをuniFXXXに更新します(XXXは501のようなもので、FontAwesome v4.5で使用される最高のUnicodeよりも大きい数字です)
  • Unicode Vlaue U + fXXX
  • OKをクリック
  • ファイル|保存する
  • ファイル|フォントを生成する...
  • FontForgeを閉じる
  • Webプロジェクトを開きます
  • フォントファイルを(私のプロジェクト内の) "\ Content\fonts \"フォルダーにコピーします。
  • 「\ Content\styles\fa\path.less」を次のように編集します。
@font-face {
      font-family: 'FontAwesome';
      //src: url('@{fa-font-path}/fontawesome-webfont.eot?v=@{fa-version}');
      src: 
        //url('@{fa-font-path}/fontawesome-webfont.eot?#iefix&v=@{fa-version}') format('embedded-opentype'),
        //url('@{fa-font-path}/fontawesome-webfont.woff2?v=@{fa-version}') format('woff2'),
        url('@{fa-font-path}/fontawesomeregular.woff?v=@{fa-version}') format('woff'),
        url('@{fa-font-path}/fontawesomeregular.ttf?v=@{fa-version}') format('truetype'),
        url('@{fa-font-path}/fontawesomeregular.svg?v=@{fa-version}#fontawesomeregular') format('svg');
    //  src: url('@{fa-font-path}/FontAwesome.otf') format('opentype'); // used when developing fonts
      font-weight: normal;
      font-style: normal;
    }

他の種類のファイルをコメントアウトすることは「論争の的」かもしれませんが、コメントに.eotまたは.otfファイルを生成する方法を聞いて喜んでいます。

  • 最後に、サミュエルが言及しているように、CSS/LESSを次のように更新します。

    .fa-XXX:before {content: "\ f501"; }

13
OzBob

Font Awesome 5では、独自のSVGデータを使用してカスタムアイコンを作成できます。 デモGitHubリポジトリ で、これを使って遊ぶことができます。そして これはCodePenです は、<script>ブロックで同様のことが行われることを示しています。

いずれの場合でも、単にlibrary.add()を使用して次のようなオブジェクトを追加するだけです。

export const faSomeObjectName = {
  // Use a prefix like 'fac' that doesn't conflict with a prefix in the standard Font Awesome styles
  // (So avoid fab, fal, fas, far, fa)
  prefix: string,
  iconName: string, // Any name you like
  icon: [
    number, // width
    number, // height
    string[], // ligatures
    string, // unicode (if relevant)
    string // svg path data
  ]
}

コードサンプルのコメント「svg path data」でラベル付けされた要素は、<path>の子である<svg>要素のd属性の値として割り当てられることに注意してください。このように(明確にするためにいくつかの詳細を省きます):

<svg>
  <path d=SVG_PATH_DATA></path>
</svg>

(ここで私の同様の答えから適応: https://stackoverflow.com/a/50338775/4642871

10
mwilkerson

SVG Webフォントとフォント作成について少し調査しましたが、私の目では、既存の素晴らしいフォントにフォントを「追加」したい場合は、次のことを行う必要があります:

inkscapeに移動してグリフを作成し、コードを読み取れるようにSVGとして保存します。現在使用されていないUnicode文字を割り当てて、フォント内の既存のグリフと競合しないようにします。これは難しいので、既存のグリフを独自のグリフに置き換える方が簡単だと思います(使用しないグリフを選択して、最初の部分をコピーしてください:

Svgを保存してから、オンラインコンバーターを使用してWebフォントに変換し、Webフォントがすべてのブラウザーで機能するようにします。

これが完了したら、いずれかのグリフを置き換えたSVGが必要です。その場合は完了です。そうでない場合は、新しいグリフのCSSを作成する必要があります。この場合は、既存のCSSのFAを再利用して、追加するだけです

>##CSS##
>.FA.NEW-GLYPH:after {
>content:'WHATEVER AVAILABLE UNICODE CHARACTER YOU FOUND'
>(other conditions should be copied from other fonts)
>}
3

Youtカスタムsvgアイコンを含むフォントが素晴らしいアイコン(またはすべて)が必要な場合:

1- http://fontawesome.io/ に移動して、たとえばデスクトップにZipとextract-itをダウンロードします。

2- http://fontastic.me/ に移動して、メールを使用してアカウントを作成します。

3-ログインしたら、ヘッダーオプションをクリックします:アイコンを追加します。

4-抽出されたZip内部フォントにあるfont-awesomeのSVGを選択します。

5-独自のsvgファイルをアップロードする手順を繰り返します。

6- Inside Home(ページのヘッダーで)ダウンロードするアイコンを選択し、カスタム名を付けるためにアイコンをカスタマイズし、リンクを作成するために公開を選択するか、フォントとcssをダウンロードします。

私の英語についてすみません! :D

1
CarLoOSX