CSS text-emphasis-style Property

Beginner
5 min read
Updated: Oct 2026
3 examples
Live preview

Definition and Usage

The text-emphasis-style property sets the appearance of emphasis marks on each character (except spaces and control characters). It is a longhand of text-emphasis.

It is inherited. The initial value is none. Pair it with text-emphasis-color for color, and text-emphasis-position for placement.

Note One character for strings

Custom string marks should be a single character. Browsers may truncate or ignore multi-character strings.

CSS Syntax

syntax.css
text-emphasis-style: none | [ filled | open ] || [ dot | circle | double-circle | triangle | sesame ] | <string> | initial | inherit;

If neither filled nor open is given, filled is assumed. Default shape is circle in horizontal writing and sesame in vertical writing when only a fill keyword is set.

Property Values

ValueDescriptionTry it
noneDefault. No emphasis marksTry it
filled / openSolid or hollow marksTry it
dot / circle / triangle …Built-in shapes, also double-circle, sesameTry it
<string>One-character custom mark, e.g. "*"Try it
initialResets to noneTry it
inheritTakes the parent’s styleTry it

How to Use text-emphasis-style

Pick a shape (or string), optionally choose filled vs open, then color the marks if needed.

  1. Choose a shape: dot, circle, double-circle, triangle, or sesame.
  2. Optionally add filled or open (default fill is filled).
  3. Or use a one-character string: text-emphasis-style: "*".
  4. Set color with text-emphasis-color, or use the text-emphasis shorthand.
PieceRequired?Role
Style keyword / stringYes (to see marks)Creates the marks
Fill keywordOptionalfilled (default) or open
ColorOptionalSeparate longhand; defaults to currentColor
PositionOptionalSeparate property; not reset by style alone

Live Preview

Color stays red so shape changes are easy to see. Switch styles to compare built-in marks and a string.

Spaces get no marks. filled alone uses the writing-mode default shape.

Emphasis style preview
happy than right

text-emphasis-style: filled circle

CSS Examples

Each snippet focuses on text-emphasis-style. Color is optional and kept minimal. Use Try It Yourself for a live editor.

Example 1 — Filled Circle

The usual horizontal default shape when marks are turned on.

CSS
<style>
  .mark {
    text-emphasis-style: filled circle;
    text-emphasis-color: #dc2626;
  }
</style>

<p class="mark">Important</p>
Try It Yourself

How It Works

  1. Combine fill + shape. filled circle draws solid circles.
  2. Color separately. text-emphasis-color paints the marks red.
  3. Per character. Each letter gets a mark; spaces do not.
  4. Shorthand option. text-emphasis: filled circle #dc2626 does both at once.

Example 2 — Sesame Marks

Sesame marks are common in East Asian typography, especially vertical text.

CSS
<style>
  h2 {
    text-emphasis-style: sesame;
  }
</style>

<h2>重要ポイント</h2>
Try It Yourself

How It Works

  1. Name the shape. sesame selects sesame marks.
  2. Fill is implied. Without open, marks are filled.
  3. Color defaults. Marks use currentColor until you set a color.
  4. Vertical default. In vertical writing, sesame is the default shape if only fill is given.

Example 3 — Custom String

Use a single character as the mark.

CSS
<style>
  .star {
    text-emphasis-style: "*";
    text-emphasis-color: #ca8a04;
  }
</style>

<p class="star">Featured</p>
Try It Yourself

How It Works

  1. Quote one character. "*" becomes the mark for each letter.
  2. Skip fill keywords. Strings replace the shape list entirely.
  3. Color as needed. Pair with text-emphasis-color for contrast.
  4. Avoid long strings. Values like "foo" are not reliable across browsers.

Edge Cases & Pitfalls

If marks look wrong or missing, check these first.

none

none means no marks

Color and position do nothing until a non-none style (or shorthand) creates marks.

string

One character only

Do not use multi-character strings. The browser may show only the first grapheme or ignore them.

defaults

Fill and shape defaults

Missing fill → filled. Shape-only keywords are fine. Fill-only uses circle (horizontal) or sesame (vertical).

shorthand

Shorthand resets style

A later text-emphasis rule can override this longhand. It still does not reset position.

spaces

Spaces stay unmarked

Emphasis skips spaces and control characters. That is normal, not a bug.

Browser Support

text-emphasis-style is a browser text-decoration property. Node.js, Deno, and Bun do not apply it.

✓ Baseline · Widely available

text-emphasis-style

Interoperable across modern browsers since about March 2022. Internet Explorer does not support this property.

94% Modern browsers
Google Chrome 99+
Full
Mozilla Firefox 46+
Full
Apple Safari 7+
Full
Microsoft Edge 99+
Full
Opera 85+
Full
Samsung Internet 18+
Full
Internet Explorer No
None
text-emphasis-style Widely supported

Bottom line: Safe for modern sites. Support tracks the text-emphasis family. Older Safari used a -webkit- prefix; IE has no support.

Key Takeaways

  • Role: choose the emphasis mark shape or string symbol.
  • Shapes: dot, circle, double-circle, triangle, sesame.
  • Initial value: none. Inherited. Fill defaults to filled.
  • Shorthand twin: text-emphasis sets style and color together.

One line: text-emphasis-style turns emphasis marks on and chooses their shape.

Frequently Asked Questions

It sets the appearance of emphasis marks on each character: none, a shape keyword list such as filled circle, or a one-character string.
The initial value is none, so no marks appear until you set a style (or the text-emphasis shorthand).
filled draws a solid mark. open draws a hollow outline. If neither is set, filled is assumed.
Yes. Use a one-character string such as "*". Multi-character strings may be truncated or ignored.
Yes. A parent style can affect child text unless a child overrides it or the shorthand resets it.
It is Baseline Widely available (interoperable since about March 2022) in modern browsers. Internet Explorer does not support it. It is a browser rendering property, not a Node.js feature.

Next: text-indent

Learn how to indent the first line of a paragraph.

text-indent tutorial →

About the author

Mari Selvan M P
Mari Selvan M P 🔗

Developer, cloud engineer, and technical writer

  • Experience 12 years building web and cloud systems
  • Focus Full Stack Development, AWS, and Developer Education

I write practical tutorials so students and working developers can learn by doing—from databases and APIs to deployment on AWS.

8 people found this page helpful