The hyphenate-character property lets you choose which character appears when a word breaks across lines. It is a typography tool for polishing hyphenation in narrow columns and editorial layouts.
01
Hyphenation
Line breaks.
02
auto
Default value.
03
Strings
Custom chars.
04
hyphens
Works with it.
05
Language
lang matters.
06
Inherited
Set on parent.
Fundamentals
Introduction
The hyphenate-character property in CSS is used to specify the string that appears when words are split at the end of a line. It gives you more control over typography and helps hyphenation match your design style.
This property is especially useful in magazines, blogs, sidebars, and any layout with narrow text columns where automatic hyphenation improves readability.
Definition and Usage
Apply hyphenate-character on text containers such as paragraphs, articles, or columns. Pair it with hyphens: auto so the browser can break words automatically, and set a valid lang attribute so hyphenation rules match the language.
💡
Beginner Tip
hyphenate-character only changes the character shown at the break. You still need hyphenation enabled with the hyphens property for automatic word splitting.
Foundation
📝 Syntax
The syntax for the hyphenate-character property is straightforward:
syntax.css
element{hyphenate-character:auto|string;}
Here, string can be a single character like "-" or a sequence such as "—" or "–".
The default value of the hyphenate-character property is auto, which means the browser selects an appropriate hyphen based on the content language’s typographic conventions.
Syntax Rules
Accepts the keyword auto or a quoted <string> value.
The property is inherited.
Works best with hyphens: auto on narrow text blocks.
Set a correct lang attribute on HTML for language-aware hyphenation.
Browsers may truncate very long custom strings.
Cheat Sheet
⚡ Quick Reference
Question
Answer
Initial value
auto
Applies to
All elements
Inherited
Yes
Animatable
Discrete
Common use
Custom hyphen marks in hyphenated text columns
Reference
💎 Property Values
Value
Description
auto
The browser chooses a language-appropriate hyphenation character. This is the default.
<string>
A custom string used at the end of the line before a hyphenation break.
"-"
Standard hyphen-minus character.
"—"
Em dash for a stronger visual break.
"–"
En dash for a softer alternative.
Scope
Works With the hyphens Property
hyphenate-character controls which character appears at a hyphenation break. The related hyphens property controls whether hyphenation happens:
hyphens: none — No automatic hyphenation. Custom characters will not appear on automatic breaks.
hyphens: manual — Breaks only at soft hyphens (­) or explicit break points.
hyphens: auto — The browser may hyphenate words automatically. This is the usual pairing for hyphenate-character.
⚠
Language Requirement
Add lang="en", lang="de", or another valid language code on the element or <html> tag so the browser knows which hyphenation rules to apply.
Preview
👀 Live Preview
A narrow paragraph with hyphens: auto and hyphenate-character: "—" (resize the window to see breaks in supporting browsers):
This paragraph demonstrates custom hyphenation styling. When words break across lines in a narrow column, the browser may display an em dash instead of a standard hyphen.
Hands-On
Examples Gallery
Use an em dash, explicit hyphen, en dash, and compare auto against a custom character in narrow columns.
🔢 Custom Hyphen Characters
Start with the reference example — an em dash used during automatic hyphenation.
Example 1 — Em Dash Hyphenation
Replace the default hyphen with an em dash when words break at line ends.
Internationalization and hyphenation depend on language and column width.
"—"
Internationalization and hyphenation depend on language and column width.
How It Works
auto uses language conventions. A custom string overrides that choice for a consistent design look.
A11y
♿ Accessibility
Hyphenation is visual — Screen readers typically read the full word, not the break character.
Do not over-hyphenate headings — Long headings split across lines can be harder to scan.
Keep language accurate — Correct lang values help both hyphenation and pronunciation.
Test readability — Very decorative break characters may distract in body text.
Provide fallbacks — Text remains readable even when hyphenation is unsupported.
🧠 How hyphenate-character Works
1
Hyphenation is enabled
You set hyphens: auto and a valid lang attribute on the text.
Setup
2
A word needs to break
In a narrow column, the browser finds a valid hyphenation point within a long word.
Line wrap
3
hyphenate-character is applied
The browser inserts your custom string or the auto language default at the break.
Rendering
=
–
Styled hyphenation
Line breaks look consistent with your typography while keeping text readable.
Compatibility
🖥 Browser Compatibility
The hyphenate-character property is supported in modern browsers including Chrome 106+, Firefox 98+, Safari 17+, and Edge 106+. It reached Baseline status in 2023.
✓ Baseline · Modern browsers
Custom hyphen marks in today’s browsers
Current versions of Chrome, Firefox, Safari, and Edge support hyphenate-character for automatic and soft hyphens.
94%Modern browser support
Google Chrome106+ · Desktop & Mobile
Full support
Mozilla Firefox98+ · Desktop & Mobile
Full support
Apple Safari17+ · macOS & iOS
Full support
Microsoft Edge106+ · Chromium
Full support
Opera92+ · Modern versions
Full support
Fallback behavior
When unsupported, text still wraps normally with the browser’s default hyphen character.
💻
Older browsersIgnore custom character · Default hyphenation remains
Partial
hyphenate-character property94% supported
Bottom line: Safe to use as progressive enhancement in modern projects. Text remains readable without it.
Wrap Up
🎉 Conclusion
The hyphenate-character property gives you fine control over how hyphenation looks in web typography. By customizing the character used at line breaks, you can keep narrow columns readable and visually consistent with your design.
For beginners, remember the pairing: enable hyphens: auto, set a valid lang attribute, then choose auto or a custom string for the break character.