2013-03-11 5 views
73

フォントAwesome Sassファイルhttps://github.com/FortAwesome/Font-Awesome/blob/master/sass/font-awesome.sassを使用して_font-awesome.sassとしていますので、私のSassプロジェクトで@importとすることができます。私もhttp://middlemanapp.com/を使用してSassCssに変換しています。質問:フォントの最適化使用するクラスのみ

  1. は私の変換の.cssにのみに使用されるアイコンのクラスをもたらすための方法はありますか?今、それは_font-awesome.sassからすべてのクラスを実施しているので

  2. BONUS:は、それが生産、使用上のそれを小さくする使用するアイコンのクラスで何とかフォント再コンパイルすることは可能ですか?

上記の#1のヒントを得ることができれば、これで十分でしょう。

ありがとうございました。

+0

実際には、それは未使用のスタイルをたくさん削除しますが、それは可能ではないと思います。 –

+0

csslintは未使用のクラスを見つけるのに役立ちますので、少なくとも手動で行う必要はありません。あなたはおそらくあなた自身を実装しなければならないでしょうが、githubにも載っていますので、あなた自身がロールすることができます – albert

+2

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

答えて

85

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

不要なグリフを取り除くためにフォントファイル自体を編集するには、サードパーティーのアプリケーションが必要ですが、この質問の対象外です。


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

+0

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

+0

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

10

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

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

+3

ページがダウンしました – jscripter

+0

Thx、ただ気付きました。それが永久かどうかわからないが、コードはここにある:https://github.com/johnsmclay/icnfnt – nickhar

+1

そのツールが正式な資格を持つかどうかわからない –

40

fontelloは非常に良いですが、IcoMoonはもっと素晴らしいです。

+1

IcoMoonでは、独自のフォントをインポートできます。 Fontelloは – jscripter

+1

ではありません。Fontello(http://fontello.com/)では、SVGのカスタムグリフを追加できるようになりました。 – Turadg

+0

IcoMoonは、フォント驚くばかりのアイコンのサブセットのみをサポートしていることがわかりました。 –

1

セレクター%を拡張可能にするため、セレクターを作るためには、ささいなことがあります。これが完了すると、希望のアイコンと一致するようにクラスを作成してから、@extendのフォントを使ってすばらしいクラスを作成することができます。

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

例:SCSS

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

のEtの出来上がりで次に

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

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

5

私はSASSではなくLESSを使用していますので、実装を変更する必要があります。

環境:

  • これはあなたが必要とするUnicode文字番号のリストを生成するためのフォント素晴らしい4.5.0(現行バージョン)
  • のUbuntu 14.04 LTS
  • bashの
  • 使用: 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.lessを開き、grepの出力をファイルに貼り付ける必要があります。運のベスト

    、 マーティン

    0

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

    +0

    Fontasticは何かを実証するために前もって登録する必要があります – Green

    +0

    1年前に私が覚えている限りそうではなかった。悲しい。 – user194715

    +0

    [mailinator](http://mailinator.com)を使ってアカウントを作成してください。アイコンのエクスポートには完全に機能しました。 – ppires

    -3
    <script> 
         // Asynchronously load non-critical css 
         function loadCSS(e, t, n) { "use strict"; var i = window.document.createElement("link"); var o = t || window.document.getElementsByTagName("script")[0]; i.rel = "stylesheet"; i.href = e; i.media = "only x"; o.parentNode.insertBefore(i, o); setTimeout(function() { i.media = n || "all" }) } 
         // load css file async 
         loadCSS("//maxcdn.bootstrapcdn.com/font-awesome/4.1.0/css/font-awesome.min.css"); 
        </script> 
    
    +0

    これは、元の質問に加えてコードスニペット以外の説明が少しうまくいくことを解決しません。最後に、なぜwindow.documentで、単に文書化するのではなく、あなたがすでに関数のパラメータを縮小しているのであれば? loadCSSの最初のパラメータのみを使用しますが、残りの部分は何ですか?使用しない場合は、取り外します。最後に、あなたのコメントにある唯一のコードであれば、非拡張コードをstackoverflowに投稿してください。私たちは機械ではありません。 –

    関連する問題