All Projects → ecomfe → Fontmin

ecomfe / Fontmin

Licence: mit
Minify font seamlessly

Programming Languages

javascript
184084 projects - #8 most used programming language
Smarty
1635 projects
HTML
75241 projects

Projects that are alternatives of or similar to Fontmin

Nerd Fonts
Iconic font aggregator, collection, & patcher. 3,600+ icons, 50+ patched fonts: Hack, Source Code Pro, more. Glyph collections: Font Awesome, Material Design Icons, Octicons, & more
Stars: ✭ 31,778 (+622.06%)
Mutual labels:  font, icon-font
Awesome Stock Resources
🌇 A collection of links for free stock photography, video and Illustration websites
Stars: ✭ 10,162 (+130.9%)
Mutual labels:  font, icon-font
Academicons
An icon font for academics
Stars: ✭ 541 (-87.71%)
Mutual labels:  font, icon-font
Glyphsearch
Search for icons from Font Awesome, Glyphicons, IcoMoon, Ionicons, and Octicons
Stars: ✭ 448 (-89.82%)
Mutual labels:  font, icon-font
glyphhanger
Your web font utility belt. It can subset web fonts. It can find unicode-ranges for you automatically. It makes julienne fries.
Stars: ✭ 422 (-90.41%)
Mutual labels:  font, subset
Prestashop Icon Font
An open source icon pack made with love by the PrestaShop design team. You can use it everywhere to make your designs and websites look awesome.
Stars: ✭ 311 (-92.93%)
Mutual labels:  font, icon-font
Openwebicons
A font!
Stars: ✭ 835 (-81.03%)
Mutual labels:  font, icon-font
Coreui Icons
CoreUI Free Icons - Premium designed free icon set with marks in SVG, Webfont and raster formats
Stars: ✭ 1,813 (-58.8%)
Mutual labels:  font, icon-font
Eficonfont
Yet another stupid wrapper of icon font.
Stars: ✭ 200 (-95.46%)
Mutual labels:  font, icon-font
Svgtofont
Read a set of SVG icons and ouput a TTF/EOT/WOFF/WOFF2/SVG font.
Stars: ✭ 149 (-96.61%)
Mutual labels:  font, icon-font
Keyrune
Magic: the Gathering set symbol pictographic font
Stars: ✭ 272 (-93.82%)
Mutual labels:  font, icon-font
fontagon
Fontagon is a great tool that easily converts svg into icon font. Fontagon-cli allows faster conversion to commands.
Stars: ✭ 18 (-99.59%)
Mutual labels:  font, icon-font
Fontisto
The iconic font and CSS toolkit. Fontisto gives you scalable vector icons that can instantly be customized: size, color, drop shadow and anything that can be done with the power of CSS.
Stars: ✭ 413 (-90.62%)
Mutual labels:  font, icon-font
Open Baskerville
An open font project to create a revival of Fry’s Baskerville
Stars: ✭ 372 (-91.55%)
Mutual labels:  font
Devicon
Set of icons representing programming languages, designing & development tools
Stars: ✭ 4,536 (+3.07%)
Mutual labels:  font
Fraunces
Git Repository for Fraunces Font Family
Stars: ✭ 310 (-92.96%)
Mutual labels:  font
Weepeople
A typeface of people sillhouettes, to make it easy to build web graphics featuring little people instead of dots.
Stars: ✭ 399 (-90.93%)
Mutual labels:  font
Openvg
Tools for exploring OpenVG
Stars: ✭ 371 (-91.57%)
Mutual labels:  font
Remixicon
Open source neutral style icon system
Stars: ✭ 3,956 (-10.11%)
Mutual labels:  icon-font
Opentype.js
Read and write OpenType fonts using JavaScript.
Stars: ✭ 3,393 (-22.9%)
Mutual labels:  font

fontmin

Minify font seamlessly

NPM version Build Status Downloads Dependencies Font support

Homepage

Install

$ npm install --save fontmin

Usage

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'));

API

new Fontmin()

Creates a new Fontmin instance.

.src(file)

Type: Array|Buffer|String

Set the files to be optimized. Takes a buffer, glob string or an array of glob strings as argument.

.dest(folder)

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.

.use(plugin)

Type: Function

Add a plugin to the middleware stack.

.run(cb)

Type: Function

Optimize your files with the given settings.

cb(err, files, stream)

The callback will return an array of vinyl files in files and a Readable/Writable stream in stream

Plugins

The following plugins are bundled with fontmin:

  • glyph — Compress ttf by glyph.
  • ttf2eot — Convert ttf to eot.
  • ttf2woff — Convert ttf to woff.
  • ttf2woff2 — Convert ttf to woff2.
  • 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.
  • otf2ttf — Convert otf to ttf.

.glyph()

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
    }));

.ttf2eot()

Convert ttf to eot.

var Fontmin = require('fontmin');

var fontmin = new Fontmin()
    .use(Fontmin.ttf2eot());

.ttf2woff()

Convert ttf to woff.

var Fontmin = require('fontmin');

var fontmin = new Fontmin()
    .use(Fontmin.ttf2woff({
        deflate: true           // deflate woff. default = false
    }));

.ttf2woff2()

Convert ttf to woff2.

var Fontmin = require('fontmin');

var fontmin = new Fontmin()
    .use(Fontmin.ttf2woff2());

.ttf2svg()

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());

.css()

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
        local: true             // boolean to add local font. default = false
    }));

Alternatively, a transform function can be passed as fontFamily option.

var Fontmin = require('fontmin');

var fontmin = new Fontmin()
    .use(Fontmin.css({
        // ...
        fontFamily: function(fontInfo, ttf) {
          return "Transformed Font Family Name"
        },
        // ...
    }));

.svg2ttf()

Convert font format svg to ttf.

var Fontmin = require('fontmin');

var fontmin = new Fontmin()
    .src('font.svg')
    .use(Fontmin.svg2ttf());

.svgs2ttf()

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
    }));

.otf2ttf()

Convert otf to ttf.

var Fontmin = require('fontmin');

var fontmin = new Fontmin()
    .src('fonts/*.otf')
    .use(Fontmin.otf2ttf());

CLI

$ 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

Related

Thanks

License

MIT © fontmin

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].