Code Monkey home page Code Monkey logo

Comments (13)

sponcey avatar sponcey commented on May 27, 2024

I set this up similar to how @thundernixon is using the ital axis in Recursive, where the default is 0.5 for a binary axis. This is the only way I could get this to work, otherwise if you set the masters to 0 or 1, you need duplicates for all areas of the design space. Is there a better way of handling this?

from fraunces.

davelab6 avatar davelab6 commented on May 27, 2024

I wonder if @arialcrime, @behdad, or @anthrotype has any suggestions

from fraunces.

thundernixon avatar thundernixon commented on May 27, 2024

The ital axis in Recursive is set to 0.5 by default because that is an “auto” setting – the italic glyph alternates are inactive when slnt is 0, then activated when slnt surpasses -7.49.

Do WONKalternates get automatically activated by another axis?

if you set the masters to 0 or 1, you need duplicates for all areas of the design space. Is there a better way of handling this?

ital has to have alternate glyphs in all masters. Is that what you mean by “duplicates,” or something else?

from fraunces.

arialcrime avatar arialcrime commented on May 27, 2024

Ultimately this is a design decision.

  • Should the default value reflect what is shown at the default position?
  • Or should the wonky letters appear by themselves once the optical size is increased?
    In case of the first it would mean that the default value would be 0. As a result, automatic replacement in bigger sizes wouldn’t happen without the user specifically activating it.
    In case of the other, WONK would be set to 1. At the origin position this would mean that conventional letters are displayed. (This is the current behavior)

Due to rules set in the designspace, the current default value of 0.5 should have the same effect as setting it to 1.

In general: The WONK axis replaces wonky letters with more conventional ones given the optical size is above 18 (and WONK is more than 0.49).

from fraunces.

sponcey avatar sponcey commented on May 27, 2024

@arialcrime The second scenario you described sounds like what I've been trying to approximate. If there is a way to set the default to 1, I think we should do that.

from fraunces.

arialcrime avatar arialcrime commented on May 27, 2024

I did some initial tests and it looked good with the default at 1, will share in the coming days.

from fraunces.

davelab6 avatar davelab6 commented on May 27, 2024
  1. If the default is going to 1, because there's no difference between 0.5 and 1.0, then should the axis be defined as truly binary, 0 to 1 with no decimal places?

  2. If the default is 1, then should the axis be renamed NORM and be flipped, so the default is 0 and if the user uses the axis, then they are opting in to more Normal designs?

    The default being 0 is useful for the Google Fonts CSS v2 API (https://developers.google.com/fonts/docs/css2) because axes are opt-in; if an axis is not specified, then users will get the axis default, and it seems more intuitive that this default is 0 rather than 1.

from fraunces.

davelab6 avatar davelab6 commented on May 27, 2024

The ital axis in Recursive is set to 0.5 by default because that is an “auto” setting – the italic glyph alternates are inactive when slnt is 0, then activated when slnt surpasses -7.49.

Based on playing with Recursive on recursive.design and v-fonts, I believe that if ital is set to 0.0 then they are never active for all values of slnt, and if ital is set to 1.0 then they are always active for all values of slnt.

I believe that is what @sponcey has attempted to do here, but with WONK allowing off/auto/on control of the opsz axis, whereas Recursive has ital allowing off/auto/on control of the slnt axis.

from fraunces.

thundernixon avatar thundernixon commented on May 27, 2024

Yes, thank you for adding clarity to the other half of the ital functionality, Dave.

That would be a reasonable use of the WONK axis, for sure. It’s a bit of a puzzle figuring out what logic is needed in rvrn GSUB rules to make this happen, but it might help looking through the recursive designspace ... and I’m happy to have a web meeting to explain it in the next couple of days, if helpful.

from fraunces.

arrowtype avatar arrowtype commented on May 27, 2024

Which is here:

https://github.com/arrowtype/recursive/blob/master/src/masters/recursive-MONO_CASL_wght_slnt_ital--full_gsub.designspace

from fraunces.

sponcey avatar sponcey commented on May 27, 2024

From a design point of view, I intended "wonkiness" to be the default. In order to be spec compliant, renaming the axis NORM and having a value of 0 then makes the most sense, since the user will enable/turn on "normalness". It's not ideal in the sense that a Normal axis doesn't feel descriptive in the spirit of the typeface, but I would rather change this than revert to a non-wonky default. The Normal subs were mainly intended for small optical sizes as an exception, not a general default.

If the default is going to 1, because there's no difference between 0.5 and 1.0, then should the axis be defined as truly binary, 0 to 1 with no decimal places?

@davelab6 Yes, I think it makes sense to call this a truly binary axis. However, I'm interested in the possibility down the road that there could be different stages of NORM.

That would be a reasonable use of the WONK axis, for sure. It’s a bit of a puzzle figuring out what logic is needed in rvrn GSUB rules to make this happen, but it might help looking through the recursive designspace ... and I’m happy to have a web meeting to explain it in the next couple of days, if helpful.

@thundernixon Thanks, I'll be in touch when we take a look at that!

from fraunces.

sponcey avatar sponcey commented on May 27, 2024

One more point, I'm not sure Normal feels right, or descriptive for the axis, will try to think of another name. i.e. De-WONK

from fraunces.

sponcey avatar sponcey commented on May 27, 2024

Closed and consolidated with issue #185

from fraunces.

Related Issues (20)

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.