Font Awesome'i yalnızca kullanılan sınıflar için optimize edin


86

Ben Yazı Müthiş Sass dosyasını kullanıyorum https://github.com/FortAwesome/Font-Awesome/blob/master/sass/font-awesome.sass bunu yapmak için _font-awesome.sass elimden yüzden @importbenim Sass projede. Ben de kullanıyorum http://middlemanapp.com/ dönüştürmek Sass için Css . Sorular:

  1. Dönüştürülmüş .css'lerime yalnızca kullanılmış simge sınıflarını getirmenin bir yolu var mı ? Çünkü şu anda _font-awesome.sass'tan tüm sınıfları taşıdı

  2. BONUS: Üretim kullanımında küçültmek için yazı tiplerini kullanılan simge sınıflarıyla bir şekilde yeniden derlemek mümkün müdür ?

Yukarıdaki 1 numarayla ilgili bazı ipuçları alabilirsem, bu yeterince harika olur.

Teşekkürler.


csslint, kullanılmayan sınıfları bulmanıza yardımcı olacaktır, bu nedenle en azından bunu manuel olarak yapmanız gerekmeyecektir. otomatikleştirme ... muhtemelen kendinizi uygulamak zorunda kalırsınız, ancak aynı zamanda github'da da kendi başınıza
dönebilirsiniz

2
Sass'ın hangi sınıfları kullandığınızı bilmesini nasıl bekliyorsunuz? Bu web sitesi bir dizi simge yazı tipinden
cimmanon

@cimmanon cevabınızı neden aşağıya göndermiyorsunuz, ben de kabul edeyim? Fontello.com'u kullanıyordum ve aradığım buydu.
HP.

Yanıtlar:


89

Sass'ın gerçekte hangi sınıfları kullandığınıza dair hiçbir fikri yok. Bu, kendiniz elle kırpmanız gereken bir şeydir. Sağlanan .scss dosyasını açın ve ihtiyacınız olmayan her şeyi ortadan kaldırın.

Gereksiz glifleri ortadan kaldırmak için yazı tipi dosyasının kendisini düzenlemek, bunu yapmak için bir 3. taraf uygulamasını gerektirir ve bu sorunun kapsamı dışındadır.


Fontello , tüm bunları sizin için yapabilen çevrimiçi bir web hizmetidir. Projeniz için mükemmel yazı tipi dosyası oluşturmak için birden çok simge yazı tipi koleksiyonunu karıştırmanıza ve eşleştirmenize olanak tanır. Özelleştirilmiş yazı tipi dosyasına ek olarak, sizin için önceden oluşturulmuş stilleri içeren birden çok .css dosyası sağlar (uzantıyı .scss olarak değiştirmek, bunları mevcut Sass projenize aktarmanıza olanak tanır).


fontello, simgelerin sınıf adını otomatik olarak değiştirir - bundan kaçınmanın bir yolu var mı?
Adam

Fontello'da bazı eksik simgeler var. Örneğin, React Yok, JavaScript, Node.js, Java
Yeşil

44

fontello çok iyi ama IcoMoon daha da harika.


1
IcoMoon, kendi yazı tipinizi içe aktarmanıza izin verir. Fontello değil
jscripter

1
IcoMoon'un yalnızca Font Awesome simgelerinin bir alt kümesini desteklediğini öğrendim.
Tony O'Hagan

1
@ TonyO'Hagan Belki Font Awesome yazı tipi dosyasını yerel dosya sisteminizden içe aktarabilirsiniz.
L_K

IcoMoon'da eksik simgeler var. Örneğin, React Yok, JavaScript, Node.js
Yeşil

2
Sadece bir Bilginize, ancak Font Awesome simgeleri IcoMoon'a içe aktarıldığında, bazı simgeler her zaman ortalanmayabilir - bu, IcoMoon yerine font dosyasında bir sorun gibi görünüyor çünkü Inkscape'de Font Awesome font dosyasını açarsanız bunu görebilirsiniz. simgelerin bazıları yanlış hizalanmış (tarayıcıya çıktılandıklarında doğru şekilde görüntülenmelerine rağmen). Çözüm, tuval genişliğini azaltmak ve simgeyi ortalamak için IcoMoon'un glif düzenleme kontrollerini kullanmak gibi görünüyor.
Noel Whitemore

11

Artık üretim kullanımı için Font-awesome'den simgeleri alt küme haline getirebilirsiniz. Artık , Font-awesome'in (v3.0.2) mevcut sürümünden yalnızca ihtiyacınız olan simgeleri seçmenize ve paketlemenize olanak tanıyan icnfnt adında resmi bir altkümeleme aracı var .

Özel indirme ayrıca tüm CSS, LESS, SCSS ve SASS kodunu içerir!


8
Bu aracın resmi olarak uygun olup olmayacağını bilmiyorum
Alex W

7

Ben SASS değil, DAHA AZ kullanıyorum, bu nedenle uygulamanızı uyarlamanız gerekebilir.

Çevre:

  • Font awesome 4.5.0 (mevcut sürüm)
  • Ubuntu 14.04 LTS
  • bash

İhtiyacınız olan Unicode karakter numaralarının listesini oluşturmak için bunu kullanın:

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

Daha sonra bunu FontSquirrel ile özel alt kümeleme seçtiğiniz uzman modunda kullanırsınız: http://www.fontsquirrel.com/tools/webfont-generator

Unicode aralıklarında yukarıdan virgülle ayrılmış değerler girin.

Sonra gereksiz şeyleri CSS'den kaldırmak için:

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

less/font-awesome/icons.lessGrep'deki çıktıyı açıp dosyaya yapıştırmanız gerekecek .


2

Pekala, sass, seçicileri %temel almak için kesinlikle biraz sallandırılabilir, böylece yalnızca genişletilebilirler. Bu yapıldıktan sonra, istenen simgelerle eşleşecek sınıflar oluşturulabilir ve ardından @extendharika font sınıfları yapılabilir.

Şahsen ben bunu yapıyorum ve aslında işaretlemede sınıfları kullanmıyorum ve sadece ilgili elemanlar için seçicileri ve @extendbu sınıflarla onları kullanıyorum.

Misal:

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

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

Sonra scss'inizde

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

Et voila.


2

Fontastic benim için çalıştı ( Font Awesome github sayfasında listelendi ). İhtiyacınız olan glifleri seçin ve bunları yeni bir özel yazı tipi olarak indirin. Mükemmel alet.


Fontastic, herhangi bir şeyi göstermek için önceden kaydolmanızı gerektirir
Green

Hatırladığım kadarıyla bir yıl önce durum böyle değildi. Üzgün.
mp31415

1
Mailinator'ı orada bir hesap oluşturmak için kullanın . Simgeleri dışa aktarmak için mükemmel çalıştı.
sayfa

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.