Icons that don't have Unicode – what to do?

Things like "heart", "flag", "envelope" or "star" have their unicode. But things like "burger" menu, "share" or "tag" icons don't. What do I do? If I leave unicode empty, then at least Illustrator CS6 treats these glyphs as unknown and won't allow to change their family or weight via the menus.

I know that with San Francisco, Apple utilized Private Use area for some glyphs. Is that the solution? Is there a difference which numbers I use? Can I just start from U+F0000 and go forward?


  • Thomas PhinneyThomas Phinney Posts: 2,585
    edited February 2019
    You have several options:
    1. Use the Private Use Area for characters which are otherwise unencoded. This has the advantage that the glyphs are accessible in just about any app, although the convenience of that access may not be great.
    2. Make the special characters as unencoded alternates (via some OpenType feature) of characters that are encoded. Then you have to decide which character to make them an alternate of.
    3. Use some incorrect Unicode and encode them directly, in the wrong slots (like for example A-Z).
    4. If the entire font is such special characters, you could use the Microsoft "symbol font" approach, which is essentially a modified version of option #1, with some of the convenience of #3.
    In theory you could even do more than one of these options! This seems like an especially bad idea, however.

    The last time I made a symbol font it was ~ entirely characters without legitimate codepoints, and intended mostly for non-professionals, so I used option 3. If I was doing those again today I would go with #4.

    With approaches 2 and 3, you will get your characters turning into something wrong when the user changes fonts. Possibly with 1 (although quite possibly they’d just get notdefs, depending on fallback). Not sure about 4—that behavior may be dependent on the OS (or the app, in the case of Adobe apps).

  • Paul MillerPaul Miller Posts: 273
    edited February 2019
    Most word processors and desktop publishing applications won't recognise characters without a codepoint assigned to them, the characters without codepoints can only be accessed through open type features.
    Characters which are not in Unicode standard may be assigned codepoints in one of the Private Use Areas, that is what they are for and this gets around that problem but it also has disadvantages.
    Characters in the Private Use Areas will be different in each font and may not even exist, so their use will only be valid for the font which has the appropriate characters defined.
    You can use them in your documents but if you pass that document to someone else who hasn't got your font then those characters will disappear or get replaced by a box with a question mark inside.
    Having said that if you publish the document as a PDF file then it will preserve the characters as you intended.
  • George ThomasGeorge Thomas Posts: 623
    edited February 2019
    In the case of "burger", who not use 1F96A SANDWICH? Burgers are technically sandwiches, and Unicode symbols as shown do not dictate the actual design of a particular symbol in use.

  • Better yet, use 1F354 HAMBURGER.
  • @Thomas Phinney @Paul Miller
    So which range of PU do I have to use? Does it even matter?

  • George ThomasGeorge Thomas Posts: 623
    edited February 2019
    @André G. Isaak -- Hmm. Acrobat search did not turn up "burger" so I guess I should have been more specific. I thought it would do partials but obviously not. Thanks for posting the correction.
  • For "tag": U+1F3F7 Label perhaps?

  • @Thomas Phinney @Paul Miller
    So which range of PU do I have to use? Does it even matter?

    It is not terribly important, but since Adobe used to routinely fill from the bottom of PUA, you might choose to avoid that area (the first hundred or couple hundred codepoints). Also one might choose to avoid the MS Symbol Encoding double-mapping area... which I can’t find the documentation on, despite having dealt with it a bunch a few months ago. It’s in an OpenType spec recommendation or appendix, I think.

    Those two suggestions stem from the thought that it is better to get notdefs than wrong glyphs. This would be my preference, at least.
  • @Thomas Linard
    Is just putting all icons inside emoji range ok?
  • notdefnotdef Posts: 168
    edited February 2019
    Symbol fonts should be handled with care in the age of digital text. There was a bank a few years back that had their hamburger menu icon replaced by a bonafide hamburger emoji (yum!) on certain devices. You never know when something might override the specified web fonts, and digital text is not just *seen* but also interpreted semantically by screen readers, index- and search algorithms, etc, and a user might come along that has disabled custom fonts, or with a browser that doesn’t support certain font formats (some even outright disable web fonts). The all-encompassing symbol webfont is an especially terrible idea.
  • 1. make sure you consult the latest Unicode code charts for reference. New symbols get freshly encoded all the way.
    2. Don’t get misguided by the misuse of the term emoji. Unfortunately, it is used at Unicode nowadays indifferently for all bunches of symbols and pictographic characters, which in fact are no emotion-signs, but rather just ideograms of various kinds.
    3. The utilization of the PUA is a viable possibility if you mind the usage scenario of your font. If it is to get just yourself and your folks to work on something, then it may well be a good workaround. If your goal is to facilitate content getting transmitted and exchanged, than it is likely to be a rather bad idea.

    I have been thinking for years about making the good old German Bockwurst symbol a localized alternative variant of – what??
    – Still thinking, still thinking.
  • Eimantas PaškonisEimantas Paškonis Posts: 91
    edited February 2019
    The thing is that I'm not making a symbol font. It's text font but I want to go extra mile and add some icons. Maybe it's ultimately pointless since people will use separate icon sets anyway?
  • Eimantas PaškonisEimantas Paškonis Posts: 91
    edited February 2019
    Another question – if I put a thing like Speech Bubble into emoji range (1F4AC) instead of generic symbols (1F5E9), would this mean that default (Apple/Android/Facebook etc.) emojis would be overridden?
    In my eyes that means one shouldn't put anything into emoji range to avoid consistency issues.
  • Thomas PhinneyThomas Phinney Posts: 2,585
    edited February 2019
    ...would this mean that default (Apple/Android/Facebook etc.) emojis would be overridden?.

    Huh? Only in text specifically formatted with your font. So, generally, no.
  • Ray LarabieRay Larabie Posts: 1,337
    If you want to make Private Use Area characters easier for users to access, consider using custom shortcodes. I did that with Canada1500. In this case, for safety, I needed special symbols to fall back to something human readable. For example, the radiation symbol falls back to \radiation\. They're simple OpenType substitutions. I think backslashes are a good choice as they have little use outside of programming. I did something similar with Gargle, Meloche and Sunday Evening but I don't recommend using {[()]} as shortcodes could be activated unintentionally.
Sign In or Register to comment.