readium / readium-css

🌈 A set of reference stylesheets for EPUB Reading Systems, starting with Readium Mobile
https://readium.org/readium-css/
BSD 3-Clause "New" or "Revised" License
90 stars 20 forks source link

Provide custom font selection #22

Closed typometre closed 6 years ago

typometre commented 6 years ago

As @JayPanoz stated in #4 about Installing extra fonts, this is actually a thing. Users want to have control to meet their disability, preferences, taste… Providing a Google fonts install in the reading app is a good thing but what will be better is to provide the list of fonts already aiviable in the system as most of the users would have already installed there their needed fonts. It needs a work specific for each platform and implementation but will be the best way to provide users an install extra font features.

Most operating systems have a way to install custom fonts at a OS level so why do each app will reinvent the wheel and provide their on way to install font for their own use instead of just letting the user pick in the system installed fonts. As an example, even iOS which was really close have add a way to install fonts through Apple configurator app and the process is even simpler through http://sub.pentacom.jp/custom-ios-fonts/ or an app like Anyfont. Even font vendors like Myfonts eased the process with an install function directly on the order page. Before this, each app which want to give this option have done an install in app with the major drawback that the font was only aiviable in the app. Now with system install, all app could browse and pick a font from the system as other OS. This is an example but most platform have this possibility. Its works to done for each one but this seems the way to go as users willing to install a custom fonts in their reading apps must probably have ever installed it on the system for use in other apps.

llemeurfr commented 6 years ago

This is interesting, I copy our iOS / Android developers @camill-a and @aferditamuriqi for advise.

danielweck commented 6 years ago

Note that the Electron-NodeJS-TypeScript-Desktop-Navigator (quite a mouthful!) supports system fonts, in addition to the pre-defined ReadiumCSS font stack. Including Wingdings ;) (really!) (tried and tested on OSX ... but should work just fine on Linux and Windows as well)

If time allows (probably not), I will add support for WebFonts (e.g. stylesheet URLs from https://fonts.google.com )

JayPanoz commented 6 years ago

After careful consideration, that could also help us deal with edge cases.

Although we’re paying extra attention to the default/recommended typefaces (and their fallbacks in the font stacks), there will be edge cases. Thinking about old characters which were removed from say, the greek and cyrillic alphabets, local languages making use of diacritics that the country’s official language doesn’t use, or Unified Canadian Syllabics, for which our strategy is almost “Euphemia UCAS or nothing.”

This reminds me of Kobo’s warning for instance (emphasis mine):

Some glyphs do not render on most fonts. In cases where creators are unable to supply embedded fonts they can insert a note into the front matter of their content instructing users to select the font Georgia. It correctly renders the greatest set of scripts.

And there might be some cases for which the user must absolutely set a very specific font and can’t embed it.

JayPanoz commented 6 years ago

This issue has been moved to the apps’ tracker so that it can be more visible to app developers:

Please use those for further communication/discussion. Thanks!