Support multi-keyword values for CSS text-transform [chromium/src : main]

0 views
Skip to first unread message

Felipe Erias (Gerrit)

unread,
Feb 12, 2026, 12:40:27 AM (yesterday) Feb 12
to Kent Tamura, Koji Ishii, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, zol...@webkit.org
Attention needed from Kent Tamura and Koji Ishii

Felipe Erias added 1 comment

Patchset-level comments
File-level comment, Patchset 2 (Latest):
Felipe Erias . resolved

Hello,

This CL implements the full grammar for `text-transform` defined in CSS Text 4:

`none | [capitalize | uppercase | lowercase ] || full-width || full-size-kana | math-auto`

https://www.w3.org/TR/css-text-4/#text-transform-property

The implementation is long but reasonably straightforward. It's similar to the implementation of other multi-keyword properties like `text-decoration-line`.

One thing to note is that particular combinations of keywords (e.g. `uppercase full-size-kana`) can change the text length in complex ways. I have added specific logic in `ComputedStyle::ApplyTextTransform` to handle this, as well as a unit test.

Thank you for your feedback.

Best,
Felipe

Open in Gerrit

Related details

Attention is currently required from:
  • Kent Tamura
  • Koji Ishii
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement is not satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I9f87ea71f2db7873cc4f2cab1cef007573ab7b1b
Gerrit-Change-Number: 7568342
Gerrit-PatchSet: 2
Gerrit-Owner: Felipe Erias <felip...@igalia.com>
Gerrit-Reviewer: Felipe Erias <felip...@igalia.com>
Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
Gerrit-Reviewer: Koji Ishii <ko...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-Attention: Kent Tamura <tk...@chromium.org>
Gerrit-Attention: Koji Ishii <ko...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Feb 2026 05:39:58 +0000
Gerrit-HasComments: Yes
Gerrit-Has-Labels: No
satisfied_requirement
unsatisfied_requirement
open
diffy

Kent Tamura (Gerrit)

unread,
Feb 12, 2026, 2:07:41 AM (yesterday) Feb 12
to Felipe Erias, Kent Tamura, Koji Ishii, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, zol...@webkit.org
Attention needed from Felipe Erias and Koji Ishii

Kent Tamura voted Code-Review+1

Code-Review+1
Open in Gerrit

Related details

Attention is currently required from:
  • Felipe Erias
  • Koji Ishii
Submit Requirements:
  • requirement satisfiedCode-Coverage
  • requirement satisfiedCode-Owners
  • requirement is not satisfiedCode-Review
  • requirement is not satisfiedReview-Enforcement
Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
Gerrit-MessageType: comment
Gerrit-Project: chromium/src
Gerrit-Branch: main
Gerrit-Change-Id: I9f87ea71f2db7873cc4f2cab1cef007573ab7b1b
Gerrit-Change-Number: 7568342
Gerrit-PatchSet: 2
Gerrit-Owner: Felipe Erias <felip...@igalia.com>
Gerrit-Reviewer: Felipe Erias <felip...@igalia.com>
Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
Gerrit-Reviewer: Koji Ishii <ko...@chromium.org>
Gerrit-CC: Menard, Alexis <alexis...@intel.com>
Gerrit-Attention: Felipe Erias <felip...@igalia.com>
Gerrit-Attention: Koji Ishii <ko...@chromium.org>
Gerrit-Comment-Date: Thu, 12 Feb 2026 07:07:09 +0000
Gerrit-HasComments: No
Gerrit-Has-Labels: Yes
satisfied_requirement
unsatisfied_requirement
open
diffy

Koji Ishii (Gerrit)

unread,
2:41 AM (3 hours ago) 2:41 AM
to Felipe Erias, Kent Tamura, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, zol...@webkit.org
Attention needed from Felipe Erias

Koji Ishii voted and added 1 comment

Votes added by Koji Ishii

Code-Review+1

1 comment

Patchset-level comments
Koji Ishii . resolved

lgtm

Open in Gerrit

Related details

Attention is currently required from:
  • Felipe Erias
Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I9f87ea71f2db7873cc4f2cab1cef007573ab7b1b
    Gerrit-Change-Number: 7568342
    Gerrit-PatchSet: 2
    Gerrit-Owner: Felipe Erias <felip...@igalia.com>
    Gerrit-Reviewer: Felipe Erias <felip...@igalia.com>
    Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
    Gerrit-Reviewer: Koji Ishii <ko...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-Attention: Felipe Erias <felip...@igalia.com>
    Gerrit-Comment-Date: Fri, 13 Feb 2026 07:40:33 +0000
    Gerrit-HasComments: Yes
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Felipe Erias (Gerrit)

    unread,
    4:28 AM (1 hour ago) 4:28 AM
    to Koji Ishii, Kent Tamura, AyeAye, Chromium LUCI CQ, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, zol...@webkit.org

    Felipe Erias voted Commit-Queue+2

    Commit-Queue+2
    Open in Gerrit

    Related details

    Attention set is empty
    Submit Requirements:
    • requirement satisfiedCode-Coverage
    • requirement satisfiedCode-Owners
    • requirement satisfiedCode-Review
    • requirement satisfiedReview-Enforcement
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: comment
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I9f87ea71f2db7873cc4f2cab1cef007573ab7b1b
    Gerrit-Change-Number: 7568342
    Gerrit-PatchSet: 2
    Gerrit-Owner: Felipe Erias <felip...@igalia.com>
    Gerrit-Reviewer: Felipe Erias <felip...@igalia.com>
    Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
    Gerrit-Reviewer: Koji Ishii <ko...@chromium.org>
    Gerrit-CC: Menard, Alexis <alexis...@intel.com>
    Gerrit-Comment-Date: Fri, 13 Feb 2026 09:27:39 +0000
    Gerrit-HasComments: No
    Gerrit-Has-Labels: Yes
    satisfied_requirement
    open
    diffy

    Chromium LUCI CQ (Gerrit)

    unread,
    5:18 AM (20 minutes ago) 5:18 AM
    to Felipe Erias, Koji Ishii, Kent Tamura, AyeAye, Menard, Alexis, chromium...@chromium.org, apavlo...@chromium.org, blink-re...@chromium.org, blink-rev...@chromium.org, blink-revi...@chromium.org, blink-rev...@chromium.org, blink-revie...@chromium.org, blink-...@chromium.org, jmedle...@chromium.org, kinuko...@chromium.org, zol...@webkit.org

    Chromium LUCI CQ submitted the change

    Change information

    Commit message:
    Support multi-keyword values for CSS text-transform

    Implement the full CSS Text Level 4 grammar for text-transform:


    none | [capitalize | uppercase | lowercase] || full-width
    || full-size-kana | math-auto

    https://www.w3.org/TR/css-text-4/#text-transform-property

    In particular, this change allows combining case transforms with
    'full-width' and/or with 'full-size-kana'.

    This functionality is behind the CSSTextTransformMultiKeyword flag.

    external/wpt/css/css-text/text-transform/text-transform-multiple-001.html
    external/wpt/css/css-text/parsing/text-transform-valid.html
    external/wpt/css/css-text/parsing/text-transform-computed.html
    Tests:
    Bug: 483606387
    Change-Id: I9f87ea71f2db7873cc4f2cab1cef007573ab7b1b
    Reviewed-by: Kent Tamura <tk...@chromium.org>
    Reviewed-by: Koji Ishii <ko...@chromium.org>
    Commit-Queue: Felipe Erias <felip...@igalia.com>
    Cr-Commit-Position: refs/heads/main@{#1584526}
    Files:
    • M third_party/blink/renderer/core/css/css_properties.json5
    • M third_party/blink/renderer/core/css/cssom/style_property_map.cc
    • M third_party/blink/renderer/core/css/cssom/style_property_map_test.cc
    • M third_party/blink/renderer/core/css/cssom/style_value_factory.cc
    • M third_party/blink/renderer/core/css/parser/css_parser_fast_paths.cc
    • M third_party/blink/renderer/core/css/properties/css_parsing_utils.cc
    • M third_party/blink/renderer/core/css/properties/css_parsing_utils.h
    • M third_party/blink/renderer/core/css/properties/longhands/longhands_custom.cc
    • M third_party/blink/renderer/core/html/forms/internal_popup_menu.cc
    • M third_party/blink/renderer/core/layout/inline/inline_items_builder.cc
    • M third_party/blink/renderer/core/layout/layout_object.cc
    • M third_party/blink/renderer/core/style/computed_style.cc
    • M third_party/blink/renderer/core/style/computed_style.h
    • M third_party/blink/renderer/core/style/computed_style_test.cc
    • M third_party/blink/renderer/platform/runtime_enabled_features.json5
    • M third_party/blink/web_tests/TestExpectations
    • D third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-transform-computed-expected.txt
    • D third_party/blink/web_tests/external/wpt/css/css-text/parsing/text-transform-valid-expected.txt
    Change size: L
    Delta: 18 files changed, 269 insertions(+), 93 deletions(-)
    Branch: refs/heads/main
    Submit Requirements:
    • requirement satisfiedCode-Review: +1 by Koji Ishii, +1 by Kent Tamura
    Open in Gerrit
    Inspect html for hidden footers to help with email filtering. To unsubscribe visit settings. DiffyGerrit
    Gerrit-MessageType: merged
    Gerrit-Project: chromium/src
    Gerrit-Branch: main
    Gerrit-Change-Id: I9f87ea71f2db7873cc4f2cab1cef007573ab7b1b
    Gerrit-Change-Number: 7568342
    Gerrit-PatchSet: 3
    Gerrit-Owner: Felipe Erias <felip...@igalia.com>
    Gerrit-Reviewer: Chromium LUCI CQ <chromiu...@luci-project-accounts.iam.gserviceaccount.com>
    Gerrit-Reviewer: Felipe Erias <felip...@igalia.com>
    Gerrit-Reviewer: Kent Tamura <tk...@chromium.org>
    Gerrit-Reviewer: Koji Ishii <ko...@chromium.org>
    open
    diffy
    satisfied_requirement
    Reply all
    Reply to author
    Forward
    0 new messages