← Chrome 151 reference

v151 · css · typography · cjk

CSS ruby-overhang property

The ruby-overhang CSS property controls whether ruby annotation text — the small glosses shown above or beside CJK characters — is allowed to visually extend over adjacent characters when there is not enough room for it above the base text.

at a glance

Shipped inChrome 151 (desktop, Android, WebView; enabled by default)
StatusEnabled by default
SpecCSS Ruby Layout Level 1 §ruby-overhang
Standards position (Firefox)Mozilla standards-positions #1372 (no signal)
Standards position (Safari)WebKit standards-positions #681 (support)
ChromeStatus6560118298771456 — CSS ruby-overhang property
Source: chromestatus.com/feature/6560118298771456; ChromeStatus API record; milestone 151 features

Implementation-status divergence, both sides reported rather than resolved (fetched 2026-10-07): this page records ruby-overhang enabled by default in Chrome 151 across desktop, Android, and WebView per its active ship stage 260 and blink-dev Intent to Ship, while the ChromeStatus API record top-level status field still reads “Proposed” (accurate_as_of 2026-06-29). Additionally, MDN BCD (ruby-overhang.json) lists keyword none as unsupported in Chrome (version_added: false), while ChromeStatus and CSSWG resolution (CSSWG issue #5912) record that none is accepted as an alias for spaces.

why it exists

Ruby annotations (furigana in Japanese, pinyin in Chinese, etc.) often need more horizontal space than the base character they annotate. When there is not enough room, existing browser behaviour varies: some browsers let the annotation overhang into adjacent whitespace or CJK characters (which is the typographically preferred behaviour in Japanese publishing), while others compress the annotation or force extra spacing. ruby-overhang gives authors explicit control over this trade-off.

Per the CSSWG resolution in CSSWG issue #5912, the keyword none is an alias for spaces: both restrict overhang to whitespace only — no overhang into adjacent non-whitespace text. The auto keyword lets the browser decide based on script conventions.

Source: chromestatus feature summary; CSS Ruby spec §ruby-overhang; CSSWG issue #4492

the property syntax

The formal syntax from the CSS Ruby Layout Level 1 specification:

ruby-overhang: auto | spaces | none
Propertyruby-overhang
Applies toRuby container boxes / ruby annotation containers
InheritedYes
Initial valueauto
Values auto — browser decides based on script conventions (default)
spaces — annotation may overhang adjacent whitespace only
none — alias for spaces (per CSSWG resolution)
Source: CSS Ruby Layout Level 1 §ruby-overhang; MDN: ruby-overhang

examples

/* Default: browser decides overhang based on script */
ruby { ruby-overhang: auto; }

/* Restrict to whitespace only — tighter typesetting */
.tight-ruby { ruby-overhang: spaces; }

/* Explicitly no overhang into adjacent non-whitespace characters */
.no-overhang { ruby-overhang: none; }
東とう京きょう
ruby-overhang: auto
東とう京きょう
ruby-overhang: spaces
Source: CSS Ruby Layout Level 1; blink-dev Intent to Prototype

browser support

BrowserSupportNotes
Chrome 151+Enabled by defaultDesktop, Android, WebView; tracked in Chromium issue 366873207
Edge 151+Enabled by defaultChromium mirror
SafariShipped (18.2+)Shipped auto and none in 18.2; spaces in Technology Preview per webstatus.dev
FirefoxNo signalTracked in Mozilla standards-positions #1372
Source: chromestatus.com/feature/6560118298771456; WPT results for css-ruby; BCD: ruby-overhang.json

see also