Add new relative units RCH, REX, RCAP, and RIC
Categories
(Core :: CSS Parsing and Computation, enhancement, P3)
Tracking
()
| Tracking | Status | |
|---|---|---|
| firefox147 | --- | fixed |
People
(Reporter: aja, Assigned: sajidanwar, Mentored)
References
(Blocks 1 open bug, Regressed 1 open bug, )
Details
(Keywords: dev-doc-needed, parity-chrome, parity-safari, Whiteboard: webcompat:risk-moderate , [wptsync upstream])
User Story
web-feature: rcap web-feature: rch web-feature: rex web-feature: ric
Attachments
(3 files)
Expected results:
Add new relative units RCH and REX
| Reporter | ||
Updated•4 years ago
|
Comment 1•4 years ago
|
||
Also ic and cap, and their root-element variants ric and rcap.
Comment 2•4 years ago
|
||
This should be sort of straight-forward to implement following the rem code. Just adding more root font metrics in Device and tracking changes and so on.
Comment 3•4 years ago
|
||
I'm not sure we want to exactly follow the rem pattern here. AFAICS, for rem we always record the root font size in Device during finish_restyle for the root element, which is OK as it's quite simple -- it's just the computed value of the font-size property. But retrieving the other metrics ch, ex, ic and cap, is significantly more work as it requires actually instantiating a font to read metrics from it. I suspect the root-element versions of these units will only rarely be used, so it seems regrettable to always do that work.
Can we instead do something like evaluate them lazily on first use (which will usually not happen), and only then cache the value in Device?
Comment 4•4 years ago
|
||
We can, though is it really that much work to get the initial font-size metrics for the root element? In particular, won't the initial font metrics ~always be used for layout at some point? Anyways doing it lazily seems doable as well.
Comment 5•4 years ago
|
||
I'd be curious how often the root element's font metrics get used for anything; I'm guessing it may be quite common that a site specifies a bunch of font-* properties on the body, and nothing actually refers back to or uses the root's font, but I haven't looked into this deeply.
Updated•2 years ago
|
Comment 6•2 years ago
|
||
Safari and Chrome now support all four of these units as of WebKit preview 179.
Comment 7•1 year ago
|
||
(In other words:) According MDN CSS length BCD, Firefox is the only* major browser currently lacking support for rcap, rch, rex and ric units, as of now.
(* Samsung Internet reportedly does supports neither cap nor rcap.)
Updated•1 year ago
|
Updated•1 year ago
|
Updated•1 year ago
|
I'm also not super convinced that these root font metrics would require substantially more work than the regular font metrics would. While it's true that rem and rlh don't actually need font metrics, only the font-size and line-height values, the non-root versions of these still require the font metrics anyway whether any text is rendered or not. What makes this case different?
Updated•7 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
Updated•2 months ago
|
| Assignee | ||
Comment 9•7 days ago
|
||
Updated•7 days ago
|
| Assignee | ||
Comment 10•7 days ago
|
||
| Assignee | ||
Comment 11•7 days ago
|
||
Comment 12•4 days ago
|
||
Comment 14•4 days ago
|
||
| bugherder | ||
https://hg.mozilla.org/mozilla-central/rev/3ab25c4d6104
https://hg.mozilla.org/mozilla-central/rev/845b3c4b3821
https://hg.mozilla.org/mozilla-central/rev/7db60b276890
Comment 15•4 days ago
|
||
Intent to Prototype / Ship: https://groups.google.com/a/mozilla.org/g/dev-platform/c/8u_duv74_f4/m/axf5Fo8IBwAJ
Updated•4 days ago
|
| Assignee | ||
Comment 17•3 days ago
|
||
Thanks Emilio for the quick review and helpful feedback on the patches! I just downloaded the nightly build and confirmed that the new units are working! ☺️ Is there anything to do beyond the intent to ship, for stuff like MDN compatibility data, Can I Use, Baseline, etc., or do those kinds of things happen automatically?
I also found a few related bugs that could be updated:
- 1997746 - WPT failures on the Zoom + SVG + Font Relative Units test, fixed by this patch. Could be closed.
- 1879175 - Duplicate of this bug and could be closed.
- 1976354 - WPT failures on various tests, but four of them are fixed by this patch. Seems to be linked to the duplicate above instead of this bug.
Comment 18•3 days ago
|
||
(In reply to Sajid Anwar [:sajidanwar] from comment #17)
Is there anything to do beyond the intent to ship, for stuff like MDN compatibility data, Can I Use, Baseline, etc., or do those kinds of things happen automatically?
Would be great if those things were fully automated! That's not the case yet, but many things already are. 😀
To notify the MDN team, I've set the dev-doc-needed flag. That indicates that the feature needs to be documented on MDN and that the browser compat data (BCD) needs to be updated.
Can I Use relies on MDN's compat data for features that don't have an entry in their DB. So once the BCD gets updated, Can I Use gets it as well.
And Baseline is based on the web-features project, as far as I know. And I think they also pull the data from the BCD project to calculate what's Baseline.
Sebastian
Description
•