A ”Max Visible Opacity” setting for glyph markColor in Font View? Would greatly improve dark mode.



  • Current Issue

    I’ve made a script to toggle between light & dark mode in RoboFont:

    https://gist.github.com/arrowtype/ce0cee426f47c2fe7e82aa07d1e0a450

    However, there is an unfortunate bump in dark mode: markColors that are high-opacity can greatly disrupt the dark palette.

    That is, I have set up existing UFOs with marks that are opacity=1. However, these colors were selected with a light UI in mind, so they work well when surrounding glyph cell backgrounds are white, but not very well when they are dark. Here's my typical gray for glyphs made from Glyph Construction, disrupting an otherwise dark theme:

    13e557d1-9d62-49a2-ab3c-28d72e98ed0f-image.png

    Glyph marks are much more effective when changed to a lower opacity, about 0.25–0.5. Here are the same marks but at 0.5:

    09ead2a7-d2a6-42b8-904e-ddd1034af0de-image.png

    Unfortunately, in my darkmode toggle script, the best I can do to get working mark colors for darkmode is to offer to change the opacity of marks if they are above a threshold. However, this requires me to change data in the actual UFO, and doesn’t work automatically for new UFOs I open. Because I have existing marks in many UFOs and don’t want to make meaningless commits, this is unappealing. Worse, for some users, they may have processes or scripts connected to specific glyph mark colors (e.g. a collaborative workflow that relies on different hues or opacities to show what is "done" vs "in progress," perhaps also connected to automatic proofing, etc).

    Possible Solution

    If the RoboFont preferences had a setting like glyphCellDisplayedMarkOpacity with a 0–1 value, this problem could be very easily solved. E.g. a glyphCellMaxMarkOpacity of 0.5 would multiply all rendered mark opacities in the glyph view by 0.5. This would enable Font View preferences to be freely adjusted without requiring users to edit the actual mark color information in glyphs.

    This isn't the only possible solution, but it seems like it might allow the flexibility needed here, with a minimum of additional required preferences for users.

    Thanks for adding the glyph view preferences! This is a big bonus to an app I use daily. :)