How to assess what optical size(s) a given type style is intended for?

I'm going to do a call with David Berlow to discuss this topic on Wednesday at 2pm Eastern Daylight Time (GMT-4), let me know if you'd like to join, and hopefully I'll post a recording

Comments
-
Count me in.1
-
I've been thinking about this a lot lately (seven-size family almost... done...), would be happy to join if you'd have me0
-
I'll like to join!
Quote from Simon's article:
"for a given design, there should be some kind of relationship between the stroke contrast, spacing, vertical metrics, and parametric values such that when we measure these values, we can work out the “natural” optical size for the design... ... but if we, as a whole, believe that certain things make a design more suited to text and other things make it suited to display, shouldn’t those “things” be, at least roughly, measurable and reproducible?
...
...
we can try to work this relationship out.
(Spoiler: I haven’t got there yet, and would appreciate input"About nine years ago, I explored ways to create a script that could determine the “gray value” of each font. My goal was to sort all the Google Fonts from lightest to darkest. (At that time, there were about 100 fonts, most of them single-style.)
The first approach was to measure just the stem width.
Obviously, that didn’t work—stem width is only one factor. Some fonts were more condensed, others wider. And many other variables come into play.Eventually, I gave up—but the unsolved problem kept nagging at me.
Then one day, while practicing calligraphy, I stumbled upon a surprisingly effective solution… a bit of a eureka moment. The solution revealed itself while I was practicing with various nibs of different widths, using the practice sheets that calligraphy books recommend for each nib size and style.What I noticed, basically, was that there was a relationship between the nib size and the guidelines on the practice sheets.
Not sure how to explain it using words, so i will make a quick sketch...
This are the typical proportions used in calligraphy for normal text:
– 5 nib widths for the x-height
– 1 nib for the stem
– 3 nibs for the counterIn the second sketch is more display-oriented, the proportions are:
– 3 nibs for height
– 1 nib for stem width
– 1 nib for the counterWhat’s interesting here is that these measurements aren’t absolute and they’re not based on any standard unit. Instead, they’re all relative to the nib size. And while there are many other proportions that can be measured, these three are the key ones, they define most of the visual relationships in the texture of the text.
With this insight, I was able to write a Python script that measured the proportions and calculated a value using
<b>x-height</b> × <b>stem width</b> × <b>counter width</b>
across all the fonts I fed into it.
That way, I got a “darkness” value for each font, and I could sort them from the most compact and heavy to the lightest and most open.The script isn’t perfect—it doesn’t account for serifs, for example—but overall, the results were pretty solid.
It’s not a definitive method, but the idea of multiplying x-height by stem width by counter width might be a good starting point if you want to refine it and improve the concept.
Here is the old script FL5 script. It also normalizes the values according to the EM units.
https://github.com/impallari/Impallari-Fontlab-Macros/blob/master/IMP Measures/All Darkness.py
2 -
To sum it up:
Darkness Value = x-height * stem * counter
This will get you started, then you may add other features (like serifs, ascender or whatever) and somehow factor-in their relative contribution value, since they are less relevant to the mix.
5×1×3 may be the ideal relation for body text (at least in calligraphy),
As the Darkness value goes up or down, it moves into the display or petit zones.
0 -
As the Darkness value goes up or down, it moves into the display or petit zones.Not necessarily, because you have three independent factors contributing to your Darkness value, and these can be manipulated to produce e.g. the same Darkness value for designs with different x-height, or different stem thickness. Sometimes, a change in Darkness value is only going to reflect a bolder or lighter design, not one whose proportions are more or less suited to small optical sizes or display type.
I think the three values you have identified probably are useful, but not if you try to resolve them to a single Darkness Value. Maintaining the three data points as ratios might be more useful?1 -
And perhaps then the darkness can be related to the em size vs pt size, since you want an even color across a type specimen waterfall:
This image by David Berlow demonstrating how Font Bureau achieved this for Roboto Flex:1 -
John Hudson said:...Sometimes, a change in Darkness value is only going to reflect a bolder or lighter design, not one whose proportions are more or less suited to small optical sizes or display type...
The best way to evaluate it will be to feed the script a bunch of fonts (both similar and extreme ones) and generate a test page to see the results visually, sorted by darkness. It may provide a better understanding of what's good and what's bad about it, and ideas for improvement... or maybe applying the general concept of using the nib as reference for a totally new and different formula.
0 -
BTW, as you may well know, using the nib thickness as a reference is how proportions are reckoned in Arabic calligraphy, and there is a fairly direct relationship to the intended size of different styles.
___
PS. I am not the person who clicked Disagree on your last post @PabloImpallari, in case you were wondering.2 -
Dave — Unfortunately, I have a meeting scheduled for tomorrow afternoon and won’t be available for your call with DB. Say hello for me. ;-)I would be very interested in a recording after, as I’m sure many others would as well. Thanks.2
-
0
-
Notes& Transcript @ Google Docs
Video @ youtu.be/6vgasFvF1VA
TLDR, David Berlow explained how he seeks to make optical size typographic color even over a waterfall, and Simon Cozens will explore this; Eben Sorkin will attempt to write up his ideas about how to use '/o' proportions to detect optical size.2 -
Thanks for recording and making available. I’ll look forward to watching when I have time.(BTW, you might add the explicit "https://" to your video URL above. The system turns it into a link, but only appends the segments to the current TD url. Of course, savvy users can figure out to just copy and paste the URL rather than clicking.)1
-
One of the things we discussed last night was the idea that we find a good optical size by equalizing grey; David Berlow showed that a very simple optical size adjustment for fonts without an opsz axis is to simply change the weight of a setting as the point size changes, so that the settings have equal optical grey. I wondered if this could give some insight into working out the natural optical size of a family - set the font at various sizes in the same area of text box, and see which size gives you a similar grey value to a reference font. I haven't quite fully fleshed that out, but I wrote a simple web tool which sets the same weight across different sizes, and then measures the grey so you can see how it changes by size.
I'm not entirely sure how to interpret the results yet other than "browsers seem to do something weird with 6pt text". But here it is: Colorimeter. The "blur" feature works best on Firefox (due to a Chrome bug it becomes insanely slow if you use it a few times), and the "Rendering strategy" feature works best on Chrome. It's fastest in Safari, but neither of those features work. So try a few browsers.0 -
One of the things we discussed last night was the idea that we find a good optical size by equalizing grey...Isn’t that begging the question?
3 -
Similar reaction to John’s, I think: I don’t disagree that one goal of optical adjustment is maintaining a similar density across sizes. But I don’t agree with the conclusion that then matching any font’s density to a separate reference gets you to a “natural” optical size for a given design.That is to say, I don’t think that all fonts ostensibly optimized for 11 pt, for example, will all share the same grey value. Maybe within some range; but that range might be broad enough to be meaningless for diagnostic purposes.1
-
The takeaway I get from the comparison of sizes where the smaller ones are boosted in weight is not that "color" is being "equalized," but just that strokes are getting sturdier as size goes down, to compensate for their absolute thinning.I'm curious as to why these new proposals for calculating "color" are superior to the more intuitive and simple idea that the word could describe the ratio of black areas to white areas in a font. That is how I use the term when talking about a quantifiable aspect of typesetting. And in that respect I'd think a given static font would have the same color at whatever point size it's set (barring vagaries of rendering and the like).Of course, when it comes to readability, it might be more useful to talk not of "lighter" color or "darker" color, but of "even color"--more the texture than the luminance. But that seems even further from how the term is being used upthread.Maybe this is all semantics, but I'm with John and Kent that pursuing particular "color" levels is the wrong target.Thanks for posting the video!0
-
odd about the link, i fixed it (i think1
-
Craig Eliason said:I'm curious as to why these new proposals for calculating "color" are superior to the more intuitive and simple idea that the word could describe the ratio of black areas to white areas in a font.1
-
I think the idea of measuring grey value derived from the ratio of black to white area coverage is sound in the context of weight change as ‘a very simple optical size adjustment for fonts without an opsz axis’. Indeed, it is the sort of thing that is algorithmically reversible, so one could start with the grey value for a given text size and in the layout change the wght axis of a font to match that grey value at other sizes.
But this is only accidentally an ‘optical size adjustment’, however simple: it is grey value matching, and this happens to correlate to one target of optical size adjustment, which is to prevent small sizes appearing too light.
1 -
I feel almost every sentence I write in this and other discussions related to opsz should be loaded with a massive caveat that the comments are Latin-centric and may not apply to other script.
Some years ago, I was pondering why Granjon’s smallest size Greek types included more ligatures than his larger text sizes, so I went and looked at examples of them and other tiny Greek type in use, which led me to a realisation about size-specific design as informed by particular use cases — e.g. marginal notes — and not just size per se.
As David Berlow mentions in the video, small sizes of CJK type actually get lighter rather than heavier, because the complexity of the structures start to fill in without compensation in the stroke thickness.
3 -
Simon Cozens said:Craig Eliason said:I'm curious as to why these new proposals for calculating "color" are superior to the more intuitive and simple idea that the word could describe the ratio of black areas to white areas in a font.
Why, then, would a single static weight at different sizes show up as having different levels of "color" in that sense? (Aside from the difference in characters that appear in the sample.) Does rasterization distortion tend to push the overall grayness one way or the other?0 -
Smaller type, because it's composed of thinner strokes (in an absolute sense), will appear lighter in color or gray than larger sizes of the same type if it's just scaled down, even though the "inked" area relative to the surrounding negative space is the same. You can see this even with fairly similar sizes, for example, with fake small caps.0
-
Note that what Mark is talking about wouldn’t impact the measurement we are discussing.
Edit: Ah, Craig makes an excellent point below. Fair. Once you reduce the cap size to the x-height, you have effectively introduced more white space.0 -
Mark Simonson said:Smaller type, because it's composed of thinner strokes (in an absolute sense), will appear lighter in color or gray than larger sizes of the same type if it's just scaled down, even though the "inked" area relative to the surrounding negative space is the same. You can see this even with fairly similar sizes, for example, with fake small caps.In the case of faux small caps, though, the "inked area relative to the surrounding negative space" *isn't* the same, since the scaling down introduces more white space above and below the "em square" which throws off the proportion. I wonder if the ratio of the incremental black you'd add to beef up faux small caps to look right, to the white space introduced above and below, would match the overall black to white ratio of a full letter on the em.Therein might lie a better method for parametrically faking small caps, actually!...1
-
If we are to measure from the inside edges of the stems of the cap H, and from baseline to cap height, surely the balance of gray will remain the size invariant.
But when we are looking at a long galley of text set at different sizes within the same sized text box, and I think we are necessarily talking about different amounts of ink fitting within that text box due to the different number of glyphs being typeset, no matter the typeface - and ink rises as size rises. Probably even on one line?
There's a weight difference when filling a jar with rocks versus pebbles versus sand... The jar looks full with sand, but sand is less dense than rocks has a lot of visually imperceptible air in it...
Maybe a bad analogy....
But we reduce weight in large sizes for a reason0 -
Mark Simonson said:Smaller type, because it's composed of thinner strokes (in an absolute sense), will appear lighter in color or gray than larger sizes of the same type if it's just scaled down, even though the "inked" area relative to the surrounding negative space is the same. You can see this even with fairly similar sizes, for example, with fake small caps.
Another resource which might be relevant to the conversation: https://www.youtube.com/watch?v=ADtPIhtXfBY0 -
Exactly; this is why I introduced the blur filter to my colorimeter.This is how I am following the discussion so far:
David B was talking about using weight as ersatz optical size adjustment in fonts that do not have actual optical size adjustments to the design. So for this part of the discussion we can ignore things like changing proportions.
Craig pointed out that in scaling an instance of a design — presuming that everything is scaled together: type size, leading, measure — there is no difference in the ratio of black and white, figure and ground, so the grey value is going to be the same regardless of size.
Mark pointed out that the thinner strokes of smaller sizes of type mean it will appear — be perceived — as lighter.
If talking about printed text, though, that perception is irrelevant to grey value, because of Craig’s point, unless we were able to measure grey value in the perceptual areas of the brain rather than on the page. Print has consistent stroke density, regardless of text size.
On screen, though, stroke density is not consistent because of various kinds of antialiased rendering, so smaller sizes of type may not only be perceptually lighter but actually lighter, because rendered in shades of grey.
So is it in this context, Simon, that you are seeing measuring grey value as useful?0 -
I think so. I'm not claiming yet that measuring grey value is useful. I'm still fishing around for something useful to measure that can be plugged into a formula to spit out a design opsz, and the obvious stuff I tried to measure in my blog post didn't suggest any relevant correlations.
The call with David B made me realise that grey value across an area at different sizes of the same font varied by point size, and that optical size adjustments to the font could be made to equalise it. Obviously weight is only one of those adjustments, but I don't really care about that - I'm not a designer trying to make the "right" adjustment for a family; I'm just trying to reverse engineer an opsz from an existing font.
But at this stage I haven't tested to see if grey value produces any relevant correlations yet either. It's just another variable I want to measure and see if it turns up anything useful.0
Categories
- All Categories
- 46 Introductions
- 3.8K Typeface Design
- 475 Type Design Critiques
- 555 Type Design Software
- 1.1K Type Design Technique & Theory
- 638 Type Business
- 829 Font Technology
- 29 Punchcutting
- 506 Typography
- 120 Type Education
- 312 Type History
- 74 Type Resources
- 109 Lettering and Calligraphy
- 30 Lettering Critiques
- 79 Lettering Technique & Theory
- 528 Announcements
- 84 Events
- 110 Job Postings
- 164 Type Releases
- 169 Miscellaneous News
- 274 About TypeDrawers
- 54 TypeDrawers Announcements
- 118 Suggestions and Bug Reports