npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

webfont-ex

v0.0.3

Published

Generator of fonts from svg icons, svg icons to svg font, svg font to ttf, ttf to eot, ttf to woff, ttf to woff2

Downloads

4

Readme

webfont

NPM version Travis Build Status Build status dependencies Status devDependencies Status Greenkeeper badge

Generator of fonts from SVG icons.

Features:

  • Supported font formats: WOFF2, WOFF, EOT, TTF and SVG.
  • Support configuration Files - use a JavaScript, JSON or YAML file to specify configuration information for an entire directory and all of its subdirectories.
  • Supported browsers: IE8+.
  • Generates CSS files allows to use custom templates.
  • CLI.

Install

npm install --save-dev webfont

Usage

const webfont = require('webfont').default;

webfont({
  files: 'src/svg-icons/**/*.svg',
  fontName: 'my-font-name'
})
  .then((result) => {
    console.log(result);
  });

Or

import webfont from 'webfont';

webfont({
  files: 'src/svg-icons/**/*.svg',
  fontName: 'my-font-name'
})
  .then((result) => {
    console.log(result);
  });

Options

files

A file glob, or array of file globs. Ultimately passed to node-glob to figure out what files you want to lint.

node_modules and bower_components are always ignored.

configFile

A webfont configuration object.

fontName

Type: String Default: webfont

The font family name you want.

### formats

Type: Array Default value: ['svg', 'ttf', 'eot', 'woff', 'woff2'] Possible values: svg, ttf, eot, woff, woff2.

Font file types to generate.

template

Type: string Default: null

Possible values: css, scss (feel free to contribute). If you want to use custom template use this option. Example: template: path.resolve(__dirname, './my-template.css').

cssTemplateClassName

Type: string Default: null

Default font class name.

cssTemplateFontPath

Type: string Default: ./

Path to generated fonts in the CSS file.

cssTemplateFontName

Type: string

Default value getting from fontName options, but you can specify any value.

glyphTransformFn

Type: function Default: null

If you need transform glyph metadata (e.g. titles of CSS classes) before transferred in style template for your icons, you can use this option with glyphs metadata object.

Example:

glyphTransformFn: (obj) => {
    obj.name += '_transform';
}

fontId

fontStyle

fontWeight

fixedWidth

centerHorizontally

normalize

fontHeight

round

descent

ascent

startUnicode

prependUnicode

Options that are passed directly to svgicons2svgfont. Option fontName for svgicons2svgfont taken from above fontName argument.

Command Line Interface

The interface for command-line usage is fairly simplistic at this stage, as seen in the following usage section.

Usage

webfont --help prints the CLI documentation.

Options

  Generator of fonts from svg icons, svg icons to svg font, svg font to ttf, ttf to eot, ttf to woff, ttf to woff2

  Usage
      $ webfont [input] [options]

  Input
      Files(s) or glob(s).
      If an input argument is wrapped in quotation marks, it will be passed to node-glob
      for cross-platform glob support.

  Options
      --config                       Path to a specific configuration file (JSON, YAML, or CommonJS)
                                     or the name of a module in `node_modules` that points to one.
                                     If no `--config` argument is provided, webfont will search for
                                     configuration  files in the following places, in this order:
                                         - a `webfont` property in `package.json`
                                         - a `.webfontrc` file (with or without filename extension:
                                             `.json`, `.yaml`, and `.js` are available)
                                         - a `webfont.config.js` file exporting a JS object
                                     The search will begin in the working directory and move up the
                                     directory tree until a configuration file is found.
      -f, --font-name                The font family name you want, default: "webfont".
      -h, --help                     Output usage information.
      -v, --version                  Output the version number.
      -r, --formats                  Only this formats generate.
      -d, --dest                     Destination for generated fonts (directory).
      -t, --template                 Type of styles ('css', 'scss') or path to custom template.
      -s, --dest-styles              Destination for generated styles (directory). If not passed used `dest` argument.
      -c, --css-template-class-name  Class name in css template.
      -p, --css-template-font-path   Font path in css template.
      -n, --css-template-font-name   Font name in css template.
      --verbose                      Tell me everything!.

  For "svgicons2svgfont":
      --font-id                      The font id you want, default as "--font-name".
      --font-style                   The font style you want.
      --font-weight                  The font weight you want.
      --fixed-width                  Creates a monospace font of the width of the largest input icon.
      --center-horizontally          Calculate the bounds of a glyph and center it horizontally.
      --normalize                    Normalize icons by scaling them to the height of the highest icon.
      --font-height                  The outputted font height [MAX(icons.height)].
      --round                        Setup the SVG path rounding [10e12].
      --descent                      The font descent [0].
      --ascent                       The font ascent [height - descent].
      --start-unicode                The start unicode codepoint for unprefixed files [0xEA01].
      --prepend-unicode              Prefix files with their automatically allocated unicode codepoint.
      --metadata                     Content of the metadata tag.

Exit codes

The CLI can exit the process with the following exit codes:

  • 0: All ok.
  • 1: Something unknown went wrong.
  • Other: related to using packages.

Related

  • svgicons2svgfont - Simple tool to merge multiple icons to an SVG font.
  • svg2ttf - Converts SVG fonts to TTF format.
  • ttf2eot - Converts TTF fonts to EOT format.
  • ttf2woff - Converts TTF fonts to WOFF format.
  • ttf2woff2 - Converts TTF fonts to WOFF2.

Roadmap

  • The ability to generate from any type to any type.
  • More tests, include CLI test.
  • Option glyphTransformFn should return object, not change passed.
  • Improved docs.
  • Reduce package size (maybe implement ttf2woff2 with native js library).
  • Improve performance (maybe use cache for this).
  • Implement webpack loader.
  • Close all issues.

Contribution

Feel free to push your code if you agree with publishing under the MIT license.

Changelog

License