使用するクラスのみに最適なFontAwesome


86

Font Awesome Sassファイルhttps://github.com/FortAwesome/Font-Awesome/blob/master/sass/font-awesome.sassを使用して_font-awesome.sassにしているので@import、Sassプロジェクトに参加できます。また、http://middlemanapp.com/を使用してSassをに変換していますCssます。質問:

  1. 使用済みのアイコンクラスのみを変換された.cssに取り込む方法はありますか?今は_font-awesome.sassのすべてのクラスを運んでいたからです

  2. ボーナス:再コンパイルすることは可能ですか?使用済みのアイコンクラス使用してフォント、本番環境で使用ときにフォントを小さくすることは可能ですか?

上記の#1に関するヒントを得ることができれば、それで十分です。

ありがとう。


csslintは未使用のクラスを見つけるのに役立つので、少なくとも手動で行う必要はありません。自動化...おそらく自分で実装する必要がありますが、自分でロールできるようにgithubにもあります
albert 2013年

2
使用しているクラスをSassがどのように知っていると思いますか?このウェブサイトは、いくつかのアイコンフォントからカスタムフォントファイルを生成できます: fontello.com
cimmanon

@cimmanonなぜあなたはあなたの答えを下に投稿しませんか、そして私はそれを受け入れますか?私はfontello.comを使用していて、それが私が探していたものでした。
HP。

回答:


89

Sassは、実際にどのクラスを使用しているかわかりません。これは、手動で自分でトリミングする必要があるものです。提供された.scssファイルを開き、不要なものをハックアウトします。

不要なグリフを削除するためにフォントファイル自体を編集するには、サードパーティのアプリケーションが必要であり、この質問の範囲を超えています。


Fontelloは、これらすべてを実行できるオンラインWebサービスです。複数のアイコンフォントコレクションを組み合わせて、プロジェクトに最適なフォントファイルを作成できます。カスタマイズされたフォントファイルに加えて、すでに生成されたスタイルを含む複数の.cssファイルを提供します(拡張子を.scssに変更すると、既存のSassプロジェクトにインポートできるようになります)。


fontelloはアイコンのクラス名を自動的に変更します-これを回避する方法はありますか?
アダム

Fontelloにはいくつかのアイコンがありません。Reactなし、JavaScript、Node.js、Javaなど
グリーン

44

fontelloはとても良いですが、IcoMoonはさらに素晴らしいです。


1
IcoMoonを使用すると、独自のフォントをインポートできます。Fontelloはしません
jscripter 2014

1
IcoMoonはFontAwesomeアイコンのサブセットのみをサポートしていることがわかりました。
Tony O'Hagan 2015

1
@ TonyO'Haganたぶん、ローカルファイルシステムからFontAwesomeフォントファイルをインポートできます。
L_K 2015年

IcoMoonにはアイコンがありません。たとえば、React、JavaScript、Node.jsはありません
Green

2
参考までに、Font AwesomeアイコンをIcoMoonにインポートすると、一部のアイコンが常に中央に配置されるとは限りません。InkscapeでFont Awesomeフォントファイルを開くと、IcoMoonではなくフォントファイルに問題があるようです。一部のアイコンの位置がずれています(ただし、ブラウザに出力すると正しく表示されます)。解決策は、IcoMoonのグリフ編集コントロールを使用して、キャンバスの幅を狭くし、アイコンを中央に配置することです。
ノエルホワイトモア2017年

11

Fontからアイコンをサブセット化できるようになりました-本番環境での使用に最適です。icnfntと呼ばれる公式のサブセット化ツールがありますあります。これを使用すると、現在のバージョンのFont-awesome(v3.0.2)から必要なアイコンだけを選択してパッケージできます。

カスタムダウンロードには、すべてのCSS、LESS、SCSS、およびSASSコードも含まれています。


7
そのツールが公式として適格かどうかはわかりません
Alex W

6

私はSASSではなくLESSを使用しているので、実装を調整する必要があるかもしれません。

環境:

  • Font awesome 4.5.0(現在のバージョン)
  • Ubuntu 14.04 LTS
  • bash

これを使用して、必要なUnicode文字番号のリストを生成します。

fa_icons="globe|vimeo|youtube|facebook|twitter|google-plus"
for code in $(egrep "^@fa-var-($fa_icons):" less/font-awesome/variables.less | cut -d ':' -f 2 | sed -e 's/^ "\\//' | sed -e 's/";/,/' | sort ); do echo -n $code; done

次に、カスタムサブセットを選択するエキスパートモードのFontSquirrelでこれを使用します:http://www.fontsquirrel.com/tools/webfont-generator

Unicode範囲では、上からコンマ区切りの値を入力します。

次に、CSSから不要なものを削除するには:

egrep "@fa-var-($fa_icons);" less/font-awesome/icons.less

less/font-awesome/icons.lessgrepからの出力を開いてファイルに貼り付ける必要があります。


2

ええと、サスは確かに少し揺らしてセレクター%をベースにすることができるので、それらは拡張可能です。これが完了すると、必要なアイコンに一致するようにクラスを作成できます。@extendfont-awesomeクラスを作成ます。

個人的に、私はこれを行い、実際にはマークアップのクラスを使用せず、関連する要素へのセレクターを使用し、 @extendとこれらのクラスでそれらをです。

例:

// _icons.scss
%#{$fa-css-prefix}-glass:before { content: $fa-var-glass; }
...

// _core.scss
%#{$fa-css-prefix} {
    ...
}

それからあなたのscssで

a.search {
    @extend %fa;
    @extend %fa-search;
}

エボイラ。


2

Fontasticは私のために働きました(それはFont Awesome githubページにリストされていました)。必要なグリフを選択し、新しいカスタムフォントとしてダウンロードします。優れたツール。


Fontasticでは、何かをデモンストレーションするために事前に登録する必要があります
Green

私が覚えている限り、1年前はそうではありませんでした。悲しい。
mp31415 2017年

1
mailinatorを使用してそこにアカウントを作成するだけです。アイコンのエクスポートには完全に機能しました。
ppires 2017年

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.