The hyphens property controls how words are hyphenated when text wraps to the next line. You can ban breaks, allow only suggested breaks, or let the browser choose.
It applies to all elements and is inherited. The initial value is manual. Automatic hyphenation needs a language (lang) and a dictionary the browser supports. Customize the visible mark with hyphenate-character.
Language matters for auto.
Browsers hyphenate with hyphens: auto only when a suitable lang is set and a hyphenation dictionary is available.
If wrapping is disabled (for example via white-space: nowrap), hyphenation has nowhere to act.
wbr
<wbr> breaks without a hyphen
A line break at <wbr> does not insert a hyphen character.
Compatibility
Browser Support
hyphens is a browser typography property. Node.js, Deno, and Bun do not apply it.
✓ Baseline · Values vary by language
hyphens
none / manual / auto: Chrome 55+, Firefox 43+, Safari 17+, Edge 79+. Auto quality depends on language dictionaries.
95%Property support
Google Chrome55+
Full
Mozilla Firefox43+
Full
Apple Safari17+
Full
Microsoft Edge79+
Full
Opera44+
Full
Samsung Internet6.0+
Full
Internet ExplorerPartial (prefix / limited)
Partial
hyphensWidely supported
Bottom line: Safe for modern sites. Prefer soft hyphens when you need exact break points; use auto for general body text with a correct lang.
Remember
Key Takeaways
Role: decide whether words may hyphenate when lines wrap.
Values:none, manual (default), auto.
Inherited: yes. Soft hyphens hint break points for manual.
For auto: set lang and expect dictionary differences across browsers.
One line:hyphens chooses none, only suggested breaks, or automatic language-based hyphenation.
Frequently Asked Questions
It controls whether words can break with a hyphen when text wraps: never (none), only at soft hyphens (manual), or automatically (auto).
The initial value is manual. Words break only where soft hyphens or hard hyphens suggest a break.
Usually the lang attribute is missing, the line is wide enough that no wrap is needed, or the browser lacks a hyphenation dictionary for that language.
A soft hyphen (­) is an invisible break hint. It only shows a hyphen if the browser wraps at that point.
Yes. You can set it on a parent such as article or p and child text inherits it.
It is Baseline for common use: Chrome 55+, Firefox 43+, Safari 17+, Edge 79+. Language coverage for auto still varies. It is a browser typography property, not a Node.js feature.