Skip to content

Design doc: Soft hyphen (U+00AD) rendering #185154

Open

Description

@dbebawy

Document Link

https://flutter.dev/go/soft-hyphens

(Redirect PR: flutter/website#13282 — once merged the go-link will resolve; direct doc: https://docs.google.com/document/d/1w_d53wb-RMuwXmXIPq67JrZYG97XF1mDaKEoKBDt8-E)

What problem are you solving?

Flutter text does not render a visible hyphen glyph when a line breaks on a soft hyphen (U+00AD). The line break happens, but the hyphen never appears — in contrast to every major web browser, native mobile text engine, and the Unicode specification. This makes Flutter unsuitable for any workflow relying on manual hyphenation markup (multilingual CMS content, justified/narrow-column text, long compound words in German/Dutch/Finnish, etc.).

Tracking issue: #18443 (open since 2018, 302+ reactions).

The underlying Skia fix has already landed (CL 1208837 at 98daf58d) and has rolled into flutter/flutter. The behavior is gated behind ParagraphStyle::setRenderSoftHyphens() and Flutter needs to opt in. The design doc proposes a two-stage rollout: (1) enable globally in the engine (draft PR #185152), and (2) expose a Dart-level hyphens API on ParagraphStyle/TextStyle mirroring CSS hyphens.

Activity

  1. added
    engineflutter/engine related. See also e: labels.
    a: typographyText rendering, possibly libtxt
    c: proposalA detailed proposal for a change to Flutter
    design docTracks a design discussion document
    on Apr 16, 2026
  2. added
    📜Issue was posted to Discord. Remove to have the issue reannounced. (For "design doc", "emergency")
    on Apr 16, 2026
  3. added
    P2Important issues not at the top of the work list
    on Apr 21, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    📜Issue was posted to Discord. Remove to have the issue reannounced. (For "design doc", "emergency")P2Important issues not at the top of the work lista: typographyText rendering, possibly libtxtc: proposalA detailed proposal for a change to Flutterdesign docTracks a design discussion documentengineflutter/engine related. See also e: labels.team-engineOwned by Engine teamtriaged-engineTriaged by Engine team

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions