Coder Social home page Coder Social logo

fontcustom's Introduction

Gem Version Build Status Code Quality

Font Custom

Icon fonts from the command line.

Generate cross-browser compatible icon fonts and supporting files (e.g. @font-face CSS) from a collection of SVGs.

Documentation
Changelog
Support
Contribute!

Installation

Requires Ruby 1.9.2+, FontForge with Python scripting.

# On Mac
brew install fontforge eot-utils ttfautohint
gem install fontcustom

# On Linux
sudo apt-get install fontforge ttfautohint
wget http://people.mozilla.com/~jkew/woff/woff-code-latest.zip
unzip woff-code-latest.zip -d sfnt2woff && cd sfnt2woff && make && sudo mv sfnt2woff /usr/local/bin/
gem install fontcustom

Quick Start

fontcustom compile path/to/vectors  # Compiles icons into `fontcustom/`
fontcustom watch path/to/vectors    # Compiles when vectors are changed/added/removed

fontcustom compile                  # Uses configuration options from `fontcustom.yml`
fontcustom watch

fontcustom config                   # Generate a blank a configuration file
fontcustom help                     # See all options

Configuration

To preserve options between compiles, create a configuration file with fontcustom config. This should live in the directory where you plan on running fontcustom commands.

# General Options (defaults shown)
font_name: fontcustom                 # Names the font and sets the name and directory
                                      # of generated files
project_root: (pwd)                   # Context for all relative paths
input: (project_root)                 # Where vectors and templates are located
output: (project_root)/(font name)    # Where generated files will be saved
config: (pwd)/fontcustom.yml          # Optional path to a configuration file
templates: [ css, preview ]           # Templates to generate alongside fonts
                                      # Possible values: preview, css, scss,
                                      # scss-rails, bootstrap, bootstrap-scss,
                                      # bootstrap-ie7, bootstrap-ie7-scss
css_prefix: icon-                     # CSS class prefix
no_hash: false                        # Don't add asset-busting hashes
preprocessor_path: ""                 # Font path used in CSS proprocessor templates
autowidth: false                      # Automatically size glyphs based on the width of
                                      # their individual vectors
debug: false                          # Output raw messages from fontforge
quiet: false                          # Silence all output messages

# For more control over file locations,
# set input and output as Yaml hashes
input:
  vectors: path/to/vectors            # required
  templates: path/to/templates

output:
  fonts: app/assets/fonts             # required
  css: app/assets/stylesheets
  preview: app/views/styleguide
  custom-template.yml: custom/path

SVG Recommendations

All vectors are imported as a single layer with colors and strokes ignored. If you run into trouble, try combining your paths and ensuring that you don't have any white fills (which show up as colored).

By default, Font Custom scales each vector to fit a 512x512 canvas with a baseline at 448. In practice, that means as long as your SVG viewBox is square, icons will look exactly like your SVGs.

If you set the autowidth option, Font Custom will trim the widths of each glyph to the vector width. Heights are unaffected.


Licenses

Brought to you by @endtwist and @ezYZ

fontcustom's People

Contributors

adamhooper avatar arthaey avatar bodaniel avatar chrishamant avatar dagjomar avatar endtwist avatar jasontbradshaw avatar kaizau avatar krisselden avatar lukemelia avatar thefrontender avatar twalpole avatar unity avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.