Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Variable font plans #32

Closed
raphlinus opened this issue Aug 17, 2019 · 4 comments
Closed

Variable font plans #32

raphlinus opened this issue Aug 17, 2019 · 4 comments

Comments

@raphlinus
Copy link
Collaborator

This issue sketches my plans for a variable font version, and asks for feedback regarding the exact parameters.

At first I plan to do a weight and width axis. I made a sketch of weights from 200 to 900, below:

inco-weight-sketch3

I'm happy with this, but wonder whether the 900 should be even blacker, and also whether there's call for a 100 weight. My tests of creating a 100 through extrapolation (400->200) are not very promising, sadly.

In addition, here's a sketch of a width axis from 50% of the original size to 200%.

inco-width-sketch

An explicit goal is that instances of the same weight but different width will have basically compatible color, so that spans of text can be fit to basically an arbitrary grid (with a 4:1 range of aspect ratios, which I consider generous but not extreme). I haven't polished the quality of the above sketch, but feel it indicates what I'm trying for. In particular, the narrow widths become more superelliptical, following the tradition of Alternate Gothic, Univers, etc.

A few notes about tools and process, though that's a much deeper discussion. At first I'm using Glyphs and a fairly standard interpolation scheme. I currently have four masters for width (starting from the existing 400 and 700, which I haven't touched yet), and three for width. If I continue with this, it will mean 12 masters. I'm interested in reducing the total, which I might be able to do with the existing MutatorMath-y interpolation scheme, but I also want to use this as a testbed for radial basis function interpolation (see OpenType/opentype-variations#7).

As soon as practical, I want to switch to Runebender for drawing glyphs. This font is one of the major drivers for Runebender development. However, we'll probably keep it in Glyphs format for a while, using an import/export flow.

To help spread the load, I plan to shortly accept contributions of glyphs for the various masters, should people want to contribute. That can be done in Glyphs or (when it's ready), Runebender. To keep the scope manageable, I am not currently accepting character set expansion; hopefully that will become a good idea farther down the line.

All hinting is to be autohinted. The exact strategy for this is still a bit fuzzy for me, as there are fun interactions between hinting and variable fonts.

A true italic is in scope for the font, but will likely be added after the upright is in reasonable shape.

The schedule for width+weight, plus an italic, preserving the existing character set, is mid-December. This feels tight (especially considering the coding work I want to put into Runebender) but doable. Contributions from the community might make it less tight :)

Feedback and suggestions are welcome!

@davelab6
Copy link
Member

Replacing the 700 Master with a 900 seems likely to work well, so you can do 9 Masters instead of 12.

I can also see that doing an inconsolata sans with a mono-prop axis could be fun :) next year!

@ctrlcctrlv
Copy link

A blacker maximum could be fun. Not many monospaced fonts get very black

@davelab6
Copy link
Member

davelab6 commented Oct 5, 2019

As shown in Roboto Extremo by @dberlow the heaviest weight needs to vary in stroke weight depending on pt size. What is the intended pt size of this design? :)

@dberlow
Copy link

dberlow commented Oct 6, 2019

Issue with glyphs that have width restriction causing weight restrictions here: googlefonts/roboto-flex#50

What goes wrong with tab figs goes wrong with monospaced ‘m’ too.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants