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

List of proposals, specs and browser updates impacting the project #12

Closed JayPanoz closed 6 years ago

JayPanoz commented 6 years ago

I thought it would be a good idea to list all the specs and proposals which are likely to impact Readium CSS at some point in the future. Some of them are still in their early days but we’ll probably have to review the project once they are clearly defined.

The W3C CSSWG-Drafts repo is a good way to keep up.

To be honest, I’ve already been reviewing our approach to check whether it is future-proof or not. So far so good but we’ll have to keep the following in mind.

Media Queries Level 5

Logical Properties and Values

CSS Extensions

Calc notation: min() and max()

User Agent Properties

CSS Rhythmic Sizing

CSS Fonts Module Level 4

COGA Semantics to Enable Personalization

Multicol editing

W3C i18n

CSSOM (a.k.a. Houdini)

JayPanoz commented 6 years ago

This is not a proposal or spec but Firefox changing its CSS engine will also have a significant impact (testing). Cf. this announcement post on their blog.

JayPanoz commented 6 years ago

And it seems the AMP project + Igalia are collaborating with Apple to fix the iframe + scroll issues in webkit: http://frederic-wang.fr/amp-and-igalia-working-together-to-improve-the-web-platform.html

To me, it’s however unclear if that will impact the CSS (significant impact unlikely) or implems.

JayPanoz commented 6 years ago

So object-fit will ship on October 17 in Edge (customer version). Source.

JayPanoz commented 6 years ago

iPhone X (related to User Agent properties) might be an issue for web apps/implementations. It is still unclear how it will impact them but let’s keep it in mind, especially if this form factor is a blueprint for future iPhones.

The good news is that reading modes should be OK since (at least) Safari uses background-color on html or body to fill the letterbox margins.

The bad news is the home screen indicator (a.k.a. “breakout paddle”) is appearing on top of contents (+ auto-hide), and the native scrollbar (when the notch is on the right), Safari being in full screen, unlike other apps.

Edit: how to deal with the “notch” (tl;dr: there’s a new meta value and CSS “constants” to use).

JayPanoz commented 6 years ago

So, here’s a playground to test variable fonts (you’ll need the latest version of Safari, Chrome or Firefox).

I can feel a headache coming, should a lot of people start using them (we’ll probably have a lot of edge cases to deal with since it can even be used to animate icons).

[edit] On the other hand, implementers could use it for such a TypeGenius feature, or to fine-tune rendering of RS fonts.

JayPanoz commented 6 years ago

So after an audit in Firefox Quantum. Most is OK except:

Edit: fixes for Blink/Webkit seem to have fixed Firefox…

JayPanoz commented 6 years ago

Here’s an how-to on variable fonts. Listing this as it will hopefully solve a lot of issues related to fonts in the longer term, especially fonts we have to embed (i.e. only embed 1 file instead of 4, and even provide users with advanced settings allowing them to customize the weight, x-height, character width, etc. of those fonts).

This is still super new, not completely implemented, but support is being improved quite fast, and we could benefit from it at some point.

JayPanoz commented 6 years ago

So everything is A-OK in Firefox now. I guess fixes I committed today apply to Quantum as well. 🎉

JayPanoz commented 6 years ago

Added CSS extensions to the list as the impact could be pretty huge in the longer term.

JayPanoz commented 6 years ago

So this issue is documented now and should probably be a wiki page instead of an issue. I’ll close it as soon as it’s in the Wiki.

JayPanoz commented 6 years ago

Done. Wiki page.

Browsers’ updates bringing new features should be addressed as specific issues from now on (either issue or feature request).