node package manager



A collection of tools to create connect-fonts and npm compatible packages.


Set up generic author/package maintainer information

Run scripts/setup to set up generic author information that can be used to create multiple font packs.

Create a Font Pack

scripts/create_fontpack creates a connect-fonts compatible font pack from the .ttf files in a source directory. If you have already run scripts/setup, creating a font pack is easy:

<path_to_connect_fonts_tools>/scripts/create_fontpack --pn <pack_name> --sp <source_path> --tp <target_path>

If the font pack is for public use, additional parameters can be specified that will be placed inside the font pack's package.json and files.

<path_to_connect_fonts_tools>/scripts/create_fontpack --pn <pack_name> --ph <pack_homepage_url> --pr <pack_repo_url> --pb <pack_bugtracker_url> --sp <source_path> --tp <target_path>

Once the pack is created, it can be published to npm:

cd <font_pack_directory>
npm publish

The font pack can then be installed from npm:

npm install <pack_name>

If the font pack is not to be published to the npm repository, it can be installed to another local project directory:

cd <target_project_dir>
npm install <font_pack_directory>

Subset an already installed font pack

scripts/subset can be used to subset an already installed font pack into fonts that are locale-optimised.

cd node_modules/<font_directory>/fonts/default
<path_to_connect_fonts_tools>/script/subset --ss=<subsets> --sp <font_name or .> --tp ../ -o --wf

Other tools

Tools exist to create individual portions of a font pack or npm module.

  • create_index - create an index.js for use by connect-fonts
  • create_license - create LICENSE
  • create_package_json - create package.json for use by npm
  • create_readme - create file that contains font, author, license and repo information.
  • create_webfonts - create .woff, .svg, and .eot fonts from a .ttf file
  • display_directory_metadata - read and display the common metadata embedded in the .ttf files in a directory
  • display_file_metadata - read and display the metadata embedded in a single .ttf file
  • normalize_filenames - normalize all the filenames. Lowercases all filenames, expand -it to -italics, remove -webfont
  • subset - subset a .ttf font into smaller, locale specific fonts


create_fontpack and subset make use of FontForge.

FontForge can be installed in Mac OSX with Homebrew by typing brew install fontforge. In Linux or Windows, see the directions provided by the Open Font Library.


Credits: comes from Google Font Directory and is licensed under the Apache 2.0 license. Its authors are Raph Levien and Dave Crossland.

Getting involved:

MOAR font packs!

Any updates to connect-fonts-tools are appreciated. All submissions will be reviewed and considered for merge.


This software is available under version 2.0 of the MPL:, from Google Font Directory, is licensed under the Apache 2.0 license.