[css-inline-3] Naming text-box-trim et al. · Issue #10675 · w3c/csswg-drafts (original) (raw)
Navigation Menu
- Explore
- Pricing
Provide feedback
Saved searches
Use saved searches to filter your results more quickly
Description
Just landed the edits to split text-box-edge
into two properties and add a shorthand with text-box-trim in 7869dc6 ; see
- CSSWG resolution in 8829
- Editor's Draft: line box sizing property definition
- Editor's Draft: leading-trimming properties and shorthand
We had left open some amount of syntax bikeshedding to follow up on, so before I publish the Editor's Draft I wanted to run the current state by the CSSWG.
Here's the syntax overview:
<text-edges> = [ text | cap | ex | ideographic | ideographic-ink ]
[ text | alphabetic | ideographic | ideographic-ink ]?
<text-trim> = start | end | both
/* line box sizing property (inherited) */
line-fit-edge: leading | <text-edges>
/* leading-trim properties (non-inherited) */
text-box: normal | <text-trim> || <text-edges>
text-box-trim: none | <text-trim>
text-box-edge: auto | <text-edges>
Shorthand details:
text-box: normal
sets to initial values (none
/auto
).- Setting only
<text-trim>
defaultstext-box-edge
toauto
(initial value). - Setting only
<text-edges>
defaultstext-box-trim
toboth
(not initial value).
Additional details:
text-box-edge: auto
copies fromline-fit-edge
, treatingleading
astext
.- Reminder:
line-fit-edge
values other thanleading
opt into the newer line box sizing model (leading only on root inline, honoring margin/border/padding on inline boxes).
Consequences:
- Defaulting this way enables trimming the leading by just setting a
<text-trim>
value. - If the author set something more aggressive and script-specific for the inherited
line-fit-edge
property, that gets passed through as the default trim edges. - They can alternatively set an explicit trim value in the
text-box
shorthand or cascade one independently with thetext-box-edge
longhand. - Shorthanding magic for
text-box
means that:text-box: both
sets trimming to the default edge on both sides.text-box: cap alphabetic
sets trimming to those edges on both sides.text-box: normal
does the normal thing of not trimming the line box. :)
We should rename the trim keywords:
Having the text-box
shorthand take start | end | both
reads badly, suggest renaming these keywords to trim-start | trim-end | trim-both
for two reasons:
- Consistency with
text-spacing-trim
- The shorthand reads a lot more reasonably:
text-box: trim-both
rather thantext-box: both
which is weird.
Proposed Resolutions:
- Adopt
text-box
/text-box-trim
/text-box-edge
properties as outlined above. - Rename
start | end | both
values oftext-box-trim
totrim-start | trim-end | trim-both
. - Name the line-box sizing property (previously discussed as
text-line-edge
to contrast withtext-box-edge
) toline-fit-edge
(for now), or to some alternative that people might suggest here. - Republish css-inline-3 as WD with these edits.