The word-break property controls whether line breaks may appear inside words when text would otherwise overflow its content box. It is most useful for long URLs, hashes, and unbroken strings in narrow cards, table cells, or chat bubbles.
The property is inherited. The initial value is normal. Pair it with overflow-wrap and white-space when you tune wrapping behavior.
Baseline widely available.
Core values (normal, break-all, keep-all) work across modern browsers. break-word is deprecated. auto-phrase is experimental (limited engines).
Set lang. Language hints help the browser apply the right rules.
Use keep-all. CJK text should not break between characters the way normal often allows.
Non-CJK is unchanged. Latin text still follows normal rules under keep-all.
Pick the right tool. For Japanese phrase wrapping in Chromium, see experimental auto-phrase.
Edge Cases & Pitfalls
Most mistakes come from using break-all on prose or mixing it up with overflow-wrap.
deprecated
break-word is deprecated
Prefer overflow-wrap: anywhere. word-break: break-word still works widely but is not the modern choice.
experimental
auto-phrase is experimental
Limited support (notably Chromium for Japanese with lang="ja"). Do not rely on it as the only wrapping strategy.
vs wrap
break-all vs overflow-wrap
break-all can break even when moving the whole word to the next line would fit. overflow-wrap is usually gentler for readable text.
white-space
white-space: nowrap wins
If wrapping is disabled with white-space, word-break cannot create new lines. Check wrapping is allowed first.
manual
manual is not supported yet
The spec lists manual for Southeast Asian break control, but browsers do not support it today.
Compatibility
Browser Support
word-break is a browser CSS property for text layout. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Widely available
word-break
Core values normal, break-all, and keep-all are widely supported. break-word works but is deprecated. auto-phrase is limited (Chromium family).
98%Core values
Google ChromeSupported
Full support
Mozilla FirefoxSupported
Full support
Apple SafariSupported
Full support
Microsoft EdgeSupported
Full support
OperaSupported
Full support
Samsung InternetSupported
Full support
Internet Explorer5.5+
Partial (no keep-all early)
word-breakBaseline · Widely available
Bottom line: Safe to use for everyday wrapping control. Treat auto-phrase as progressive enhancement. This is not a JavaScript runtime API.
Remember
Key Takeaways
Role: decide if long words may break mid-character to avoid overflow.
Initial:normal. Inherited. One keyword at a time.
break-all for URLs/tokens; keep-all for CJK; prefer overflow-wrap for prose.
Avoid legacy: skip new uses of deprecated break-word; treat auto-phrase as experimental.
One line:word-break stops narrow boxes from blowing out on long strings — use the softest value that still fits.
Frequently Asked Questions
It controls whether the browser may insert line breaks inside words or long strings when text would otherwise overflow its content box.
The initial value is normal. The browser uses the default line-break rules for the language.
Use break-all for long unbroken strings such as URLs, hashes, or code tokens in a narrow box. Prefer overflow-wrap for regular paragraph text so words break only when needed.
keep-all stops word breaks in Chinese, Japanese, and Korean (CJK) text. Non-CJK text behaves like normal.
Yes. Prefer overflow-wrap: anywhere (or overflow-wrap: break-word) for soft wrapping of long strings. break-word still works in many browsers for compatibility.
Yes. It applies to all elements and is inherited. It is a browser CSS property, not a Node.js feature.