CSS Text 4 Draft Updated
The CSS Working Group has published an updated Working Draft of CSS Text 4. This CSS module defines properties for text manipulation and specifies their processing model. It covers line breaking, justification and alignment, white space handling, and text transformation.
This is a fairly minor update, mostly focused on refinements to the text-spacing-trim property, which should be of interest for CJK typography. Changes since the last Working Draft are listed in the Changes section.
Please send feedback by either filing an issue in GitHub (preferable) or sending mail to the (archived) public mailing list www-style@w3.org with the spec code ([css-text-4]
) and your comment topic in the subject line. (Alternatively, you can email one of the editors and ask them to forward your comment.)
Minutes Telecon 2024-02-07
- Resolved: Overflowing into the gutter of a classic scrollbar triggers scrollable overflow, overflowing into the gutter of a overlay scrollbar does not trigger scrollable overflow (Issue #5253: Overflow into the gutter)
- Resolved: Drop scrollbar-gutter: force (Issue #9815: Subgrid obviates the need for `scrollbar-gutter: force`)
- There needs to be more use case discovery for issue #3871 (Detect physical keyboard (keyboard capable of shortcuts?)). On the call games were mentioned as a potential use case, but also concerns about fingerprinting and needing to tell the user so they can opt to add a keyboard.
- Resolved: Add window-focus: active | none, bikeshed later (Issue #5828: active vs inactive window states)
- Resolved: Add window-focus: active or none matching behavior of javascript in print behavior and matching (Issue #5828)
- Resolved: Align canonical order of outline sub-properties with border (Issue #7700)
- Resolved: The caret animation is auto versus none (Issue #9707: Inteference with the caret blinking and the ability to animate its color)
Full Meeting Minutes
Minutes Telecon 2024-01-31
- Resolved: Adopt triage Service-Level Objectives (SLOs) (Issue #9820)
- Resolved: Keep view-transitions l2 as a leveled delta spec (Issue #9850: Consider a living-standard model for view-transitions)
Full Meeting Minutes
Minutes Telecon 2024-01-24
- Resolved: Specify outline as ink overflow (PR #9824 | Issue #8649: Specify extent of ink overflow)
- Resolved: Alignment on scroll containers results in same layout as non-scrolling containers, and doesn’t affect whether initial scroll position is zero-coordinate, just changes which direction and how far you can scroll (Issue #4957: What is supposed to happen to abspos in an end-aligned scroll container?)
- There was more discussion to be had about testing for issue #9508 (Upgrade to Recommendation?) so discussion will return to github.
- Resolved: Choosing the innermost for textbox:trim for most requested trim metric (Issue #5426: text-box-trim accumulation)
- Resolved: ink-overflow spills out of the page content area into padding and margins, user agents that can’t draw ink overflow may shift content down to avoid clipping (Issue #5335: text-box-trim vs fragmentation)
- Resolved: Should text-box-trim apply at fragmentation breaks, depend on the box-decoration-break property (Issue #5335)
Full Meeting Minutes
Minutes Telecon 2024-01-17
- Resolved: Create & publish FPWD for css-viewport-1
- Resolved: Adopt picture-in-picture media query (Issue #9260: Add display-mode for document picture-in-picture)
- Resolved: Remove requirement for the ua stylesheet rule for inverted-colors (Issue #9674: Inverted-colors media feature can cause problems on semi-transparent images)
- Resolved: No change to :has() behavior (Issue #9422: Is it intentional that :has(:is()) is different from :has()?)
- Resolved: Close issue #5684 (What is the reasoning for ignoring default namespaces only on the subject for :is() / :where() / :not()?) with no change
- Resolved: Contextually-invalid selectors have a specificity of zero (Issue #9600: Specificity of contextually-invalid selectors)
- Resolved: Add ScrollIntoView to the definition of relevant to the user, should also affect ancestors (Issue #9337: ScrollIntoView a descendant of element with content-visibility:auto)
Full Meeting Minutes
Minutes Telecon 2024-01-10
Text-Focused Extra Meeting
- Resolved: Define that hanging punctuation is set to none for pre elements in the user agent style sheet (Issue #9689: Prevent `pre` from inheriting hanging-punctuation by default with a user-agent style rule)
- Resolved: Forced break resets the balancing algorithm for text-wrap:balance (Issue #9112: Should `text-wrap: balance` apply separate logic before and after forced breaks?)
- Folks requested more time to think about issue #9310 (Interaction of `text-wrap: balance` and `(-webkit-)line-clamp`), especially for creating stability when there’s a display more text option after a one line block
- Resolved: The definition of space-first uses allow-end on the end side (Issue #9736: Line-end behavior of text-spacing-trim: space-first)
- Resolved: Use HALT when available and need a half-width glyph (Issue #8293: `text-spacing` and OpenType halt/vhal/chws/vchw features)
- Resolved: Add font-width property and descriptor and make font-stretch a legacy alias (Issue #551: font-stretch is unfortunately named)
Full Meeting Minutes
Regular Meeting
- Resolved: Make lighter defined the way plus-lighter is now defined, pending checking some additional tests that might show differences (FXTF Issue #446: ‘lighter’ vs ‘plus-lighter’)
- Resolved: Adopt keyword based feature queries, with names to be bikeshedded later, with the expectation that we will use them less than 2x per year and test and message their addition carefully (Issue #3559: Testing support of properties and values with partial implementations)
- Resolved: Add a keyword for alignment on blocks, with the specific name TBD (Issue #3559)
- Resolved: ‘auto’ means push or replace that’s not browser UI, or traverse with any user involvement, excluding any reloads (Issue #8783: Define navigation descriptor for @view-transition)
Full Meeting Minutes
Minutes Telecon 2024-01-03
- Resolved: Pursue event to make reports more ergonomic to use (Issue #7693: No event to track window position)
- Resolved: iframes will be effected by zoom, device pixel ratio will reflect it (Issue #9644: Should zoom affect iframes?)
- Resolved: Apply zoom to all replaced elements and to background images (Issue #9442: Zoom and replaced element intrinsic dimensions)
- Resolved: Go with option 1 for the syntax in creating view-transition-class (Issue #8319: Creating ‘classes’ of transition groups)
- Resolved: Add html function for testing both elements and attribute support (Issue #9746: Need a way in CSS to test for support of HTML features)
Full Meeting Minutes
Minutes Telecon 2023-12-20
- Resolved: CSS WG adopts the CSS Color HDR draft as a work item (Issue #9306: Add mechanism to query HDR headroom)
- Resolved: Remap property value space for text-spacing (Issue #9511: Visual regressions of line-start at portals and news sites)
- Resolved: Accept Murakami’s proposal to simplify to text-spacing: normal | trim-start | space-first | trim-auto | space-all | trim-all | auto (Issue #9511)
- Resolved: Disallow auto for view-transitions-name/view-transitions (Issue #9639: Disallow the name `auto` as `view-transition-name`)
- Resolved: Serialize implicit scope pseudoclass in rule selectors (Issue #9621: Always serialize the implicit `:scope` ?)
- Resolved: Add calc-size() to css-values-5 and work out details there (Issue #626: Transition to height (or width) “auto”)
Full Meeting Minutes
Minutes Telecon 2023-12-13
Extended Meeting Minutes
- Resolved: Add ‘all’ keyword to ‘timeline-scope’, equivalent to specifying all possible names (Issue #9158: Add a way for timeline-scope to pull up all contained timelines)
- Resolved: Add ‘scroll’ named range to view timelines, represents entire scroll range, bikeshed keyword in issue (Issue #9367: Range for entire scroll range)
- Resolved: Any position within the overlarge snap area is a valid snap position, as defined in the (clarified) spec (Issue #6863: Difficult to use snap areas which are larger than the scrollport)
- Resolved: fr values in stripes() convert to max(0, 100% – sum-of-percents – sum-of-fixed) * flex value / max(1, sum-of-flexes) (a ‘length-percentage’) when needed for interpolation (Issue #8622: Allow transitions between different types within `stripes()`)
- Resolved: Draft up this proposal into css-animations-2, come back to WG for review (Issue #8942: Add animation-trigger for triggering animations when an element is in a timeline’s range)
Full Meeting Minutes
Regular Meeting Minutes
- Resolved: No container is valid for unknown queries (Issue #7551: Inconsistent handling of known and unknown features jeopardizes backward compatibility)
- Resolved: Add the comma-separated syntax (Issue #7551)
- Issue #9701 (Media query for enclosed screens) will return to GitHub for further discovery about potential use cases and considerations about when an enclosed screen device is able to “cast” to another screen.
- Resolved: Add a new condition= attribute that takes ‘import-condition’ syntax (Issue #9375: Consider `@media supports()`)
- Resolved: Do not add `supports()` to @media (Issue #9375)
- Resolved: Accept edits (Issue #3320: Clarify fragment URLs resolve against the current tree, not document tree)
- Resolved: Accept the proposal in the comment (Issue #549: Align logical values for ‘position’ with the ones defined in CSS Logical Properties)
- Resolved: Add x,y,block,inline longhands, and the repeat-block and repeat-inline keywords to the shorthands (Issue #116: Add background-repeat-x/y)
Full Meeting Minutes
Minutes Telecon 2023-12-06
- Resolved: Percents that are resolved against numbers do that at parse time (Issue #9395: Resolve `percentage` representing `number` or `angle` at parse time)
- Resolved: Drop mix() from Values 4 (Issue #9343: Abandon mix()?)
- Resolved: We will never use mix to represent a single interpolated value but may have something like it for expressing the whole interpolation (Issue #9343)
- Resolved: Specify option 7 [Join with preceding ranges if there are later overlapping ranges and the gap is short] as normative behavior (Issue #9187: Improve or clarify nested snap behaviors)
- Resolved: Specify the whole list in this order as normative behavior (Issue #9622: Standardize snap point selection with multiple aligned boxes)
- Resolved: Revert the previous resolution and the associated edits (Issue #5477: CSS counter scope/inheritance is incompatible with HTML ordinals)
- Resolved: The working group is interested in defining an opt-in narrow scope for counter resets. Exact syntax tbd (Issue #5477)
- The group wants to make sure that if we make changes in issue #8915 (Blocking effects of timeline-scope) it wouldn’t lead to problems that would make containment less impactful. Discussion will return to the issue for more investigation.
- Upcoming meetings:
- Next week there will be an extra hour of meeting to cover additional topics.
- The next F2F will be Feb 12-14 in Mountain View CA. Group members are asked to add to the wiki if they will be attending.
Full Meeting Minutes