Open
Description
I wanted to follow up on some thoughts:
- dbaron's musings in A Coruña
- Issues around
line-sizing: normal
’s model working fine ifline-height
has significant slack, but not if it doesn't: the half-leading on the root element isn't enough to handle slight shifts in ascent/descent due to varying font-families, for example, if there's hardly any half-leading. See this video from ~11:37 - 12:30 (or just watch the whole thing if you prefer ;) - Handling descendant inlines on the first/last line for
leading-trim
- Possible benefits of splitting the choice of metric into an inheritable, independently-cascading property, leaving
leading-trim
to focus on whether or not to trim.
Starting from some of dbaron's comments, I suspect reworking the relationship of these two features might solve a lot of these issues.
For example, what if instead of line-sizing: legacy | normal
(inheritable) and leading-trim-over/under: normal | <metric>
(non-inheritable, applies to block containers, inline boxes) we had:
text-edge-over/under: leading | normal | <metric>
(inheritable, applies to inline boxes except root inline)leading
inline box does the usual thing of contributing half-leadingnormal
inline box ignores 'line-height', contributes margin-box edge<metric>
is likenormal
, but also trims the content-height from ascent/descent down to specified metric
leading-trim: normal | start | end | both
(non-inheritable, applies to block containers)normal
applies half-leading over/under the root inline box on all linesstart
trims outer half-leading of root inline box on first line, down totext-edge
metricend
trims outer half-leading of root inline box on last line, down totext-edge
metric