2013-03-11 4 views
73

Sto utilizzando il file Font Awesome Sass https://github.com/FortAwesome/Font-Awesome/blob/master/sass/font-awesome.sass per renderlo _font-awesome.sass così posso @import nel mio progetto Sass. Sto anche usando http://middlemanapp.com/ per convertire Sass a Css. Domande:Ottimizza carattere Impressionante solo per le classi utilizzate

  1. C'è un modo per portare solo classi delle icone usate nel mio css convertito? Perché in questo momento ha effettuato tutte le classi da _font-awesome.sass

  2. BONUS: E 'possibile ricompilazione i font in qualche modo con classi delle icone usate per renderlo più piccolo in uso in produzione?

Se riesco a ottenere alcuni suggerimenti su # 1 sopra, sarebbe abbastanza impressionante.

Grazie.

+0

Questa è una buona domanda ... In effetti, questo rimuoverebbe molti stili inutilizzati ma non penso sia possibile. –

+0

csslint aiuterà a trovare le classi non utilizzate, quindi almeno non dovrai farlo manualmente. automatizzando ... probabilmente dovresti implementare te stesso, ma è anche su github in modo da poter eseguire da solo il tuo – albert

+2

Come ti aspetti che Sass sappia quali classi stai usando? Questo sito Web può generare file di font personalizzati da numerosi font di icone: http://fontello.com/ – cimmanon

risposta

85

Sass non ha idea di quali classi si sta effettivamente utilizzando. Questo è qualcosa che dovrai tagliare manualmente da solo. Apri il file .scss fornito e cancella tutto ciò che non ti serve.

La modifica del file del carattere stesso per eliminare glifi non necessari richiede un'applicazione di terzi e non rientra nell'ambito di questa domanda.


Fontello è un servizio web online che può fare tutto questo per voi. Ti consente di combinare più raccolte di font di icone per creare il file di font perfetto per il tuo progetto. Oltre al file di font personalizzato, fornisce più file .css contenenti stili già generati per te (la modifica dell'estensione in .scss ti consentirà di importarli nel tuo progetto Sass esistente).

+0

fontello cambia il nome della classe delle icone automaticamente - c'è un modo per evitarlo? – Adam

+0

Fontello ha alcune icone mancanti. No React, JavaScript, Node.js, Java, ad esempio – Green

10

Ora è possibile impostare sottoinsieme le icone da Font-awesome per l'utilizzo in produzione. È ora disponibile uno strumento di sottotitolo ufficiale denominato icnfnt, che consente di selezionare e raggruppare solo le icone necessarie dalla versione corrente di Font-awesome (v3.0.2).

Il download personalizzato include anche tutti i codici CSS, LESS, SCSS e SASS!

+3

La pagina è giù – jscripter

+0

Thx, appena notato. Non so se è permanente o no, ma il codice è qui: https://github.com/johnsmclay/icnfnt – nickhar

+1

Non so se quello strumento si qualificherebbe come ufficiale –

40

fontello è molto buono ma IcoMoon è ancora più impressionante.

+1

IcoMoon consente di importare il proprio carattere. Fontello non è – jscripter

+1

Fontello (http://fontello.com/) ora ti permette di includere glifi personalizzati da SVG. – Turadg

+0

Ho trovato che IcoMoon supporta solo un sottoinsieme di icone Font Awesome. –

1

Bene, il sass può certamente essere un po 'oscillante per rendere i selettori % basati in modo che siano solo estensibili. Una volta eseguita questa operazione, è possibile creare classi per abbinare le icone desiderate e quindi è possibile utilizzare le classi di font fantastici @extend.

Personalmente, lo faccio, e in realtà non uso le classi nel markup, e uso solo i selettori per gli elementi rilevanti e @extend con queste classi.

Esempio:

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

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

Poi, nel tuo SCSS

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

Et voilà.

5

Io uso MENO e non SASS quindi potrebbe essere necessario adattare l'implementazione.

Ambiente:

  • carattere impressionante 4.5.0 (versione attuale)
  • Ubuntu 14.04 LTS
  • bash
  • Utilizzare questo per generare la lista dei numeri di caratteri Unicode che è necessario: 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

    Si utilizza quindi con FontSquirrel in modalità esperto in cui si seleziona il subset personalizzato: http://www.fontsquirrel.com/tools/webfont-generator

    Negli intervalli Unicode immettere i valori separati da virgola dall'alto.

    Quindi per rimuovere elementi non necessari dal CSS: egrep "@ fa-var - ($ fa_icons);" less/font-awesome/icons.less

    Avrai bisogno di aprire less/font-awesome/icons.less e incollare l'output da grep nel file.

    Buona fortuna, Martin

    0

    Fontastic ha funzionato per me (è stata quotata Font Awesome github page). Seleziona i glifi di cui hai bisogno e scaricalo come nuovo carattere personalizzato. Strumento eccellente

    +0

    Fontastic richiede di registrarsi in anticipo per dimostrare nulla – Green

    +0

    Questo non era il caso di un anno fa, per quanto mi ricordo. Triste. – user194715

    +0

    Basta usare [mailinator] (http://mailinator.com) per creare un account lì. Ha funzionato perfettamente per esportare le icone. – 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

    Questo non risolve la domanda originale più un po 'di spiegazione al di fuori dello snippet di codice sarebbe buono. Infine: perché window.document e non semplicemente documentare, se stai già minimizzando i tuoi parametri di funzione? Utilizzi solo il primo parametro di loadCSS, a cosa servono i restanti? Se non utilizzato, rimuoverlo. Infine, si prega di inviare il codice non minified a StackOverflow, se è l'unico codice, che il tuo commento ha. Non siamo macchine. –