Minify font seamlessly
NPM version Build Status Downloads Dependencies Font support
$ npm install --save fontmin
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .src('fonts/*.ttf') .dest('build/fonts'); fontmin.run(function (err, files) { if (err) { throw err; } console.log(files[0]); // => { contents: <Buffer 00 01 00 ...> } });
You can use gulp-rename to rename your files:
var Fontmin = require('fontmin'); var rename = require('gulp-rename'); var fontmin = new Fontmin() .src('fonts/big.ttf') .use(rename('small.ttf'));
Creates a new Fontmin instance.
Type: Array|Buffer|String
Set the files to be optimized. Takes a buffer, glob string or an array of glob strings as argument.
Type: String
Set the destination folder to where your files will be written. If you don't set any destination no files will be written.
Type: Function
Add a plugin to the middleware stack.
Type: Function
Optimize your files with the given settings.
The callback will return an array of vinyl files in files and a Readable/Writable
stream in stream
The following plugins are bundled with fontmin:
- glyph — Compress ttf by glyph.
- ttf2eot — Convert ttf to eot.
- ttf2woff — Convert ttf to woff.
- ttf2svg — Convert ttf to svg.
- css — Generate css from ttf, often used to make iconfont.
- svg2ttf — Convert font format svg to ttf.
- svgs2ttf — Concat svg files to a ttf, just like css sprite.
Compress ttf by glyph.
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .use(Fontmin.glyph({ text: '天地玄黄 宇宙洪荒', hinting: false // keep ttf hint info (fpgm, prep, cvt). default = true }));
Convert ttf to eot.
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .use(Fontmin.ttf2eot());
Convert ttf to woff.
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .use(Fontmin.ttf2woff({ deflate: true // deflate woff. default = false }));
Convert ttf to svg.
you can use imagemin-svgo to compress svg:
var Fontmin = require('fontmin'); var svgo = require('imagemin-svgo'); var fontmin = new Fontmin() .use(Fontmin.ttf2svg()); .use(svgo());
Generate css from ttf, often used to make iconfont.
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .use(Fontmin.css({ fontPath: './', // location of font file base64: true, // inject base64 data:application/x-font-ttf; (gzip font with css). // default = false glyph: true, // generate class for each glyph. default = false iconPrefix: 'my-icon', // class prefix, only work when glyph is `true`. default to "icon" fontFamily: 'myfont', // custom fontFamily, default to filename or get from analysed ttf file asFileName: false // rewrite fontFamily as filename force. default = false }));
Convert font format svg to ttf.
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .src('font.svg') .use(Fontmin.svg2ttf());
Concat svg files to a ttf, just like css sprite.
awesome work with css plugin:
var Fontmin = require('fontmin'); var fontmin = new Fontmin() .src('svgs/*.svg') .use(Fontmin.svgs2ttf('font.ttf', {fontName: 'iconfont'})) .use(Fontmin.css({ glyph: true }));
$ npm install -g fontmin
$ fontmin --help Usage $ fontmin <file> [<output>] $ fontmin <directory> [<output>] $ fontmin <file> > <output> $ cat <file> | fontmin > <output> Example $ fontmin fonts/* build $ fontmin fonts build $ fontmin foo.ttf > foo-optimized.ttf $ cat foo.ttf | fontmin > foo-optimized.ttf Options -t, --text require glyphs by text -b, --basic-text require glyphs with base chars -d, --deflate-woff deflate woff --font-family font-family for @font-face CSS --css-glyph generate class for each glyf. default = false -T, --show-time show time fontmin cost
you can use curl to generate font for websites running on PHP, ASP, Rails and more:
$ text=`curl www.baidu.com` && fontmin -t "$text" font.ttf
or you can use html-to-text to make it smaller:
$ npm install -g html-to-text $ text=`curl www.baidu.com | html-to-text` && fontmin -t "$text" font.ttf
what is more, you can use phantom-fetch-cli to generate font for SPA running JS template:
$ npm install -g phantom-fetch-cli $ text=`phantom-fetch http://www.chinaw3c.org` && fontmin -t "$text" font.ttf
MIT © fontmin