• is the HTML entity for the bullet •, U+2022 BULLET, and • and • are its numeric references. HTML5 adds the alias •, which JSX doesn’t know. In UTF-8 it’s E2 80 A2.
Character • U+2022 BULLET
Named • (HTML5 also reads •)
Numeric • •
UTF-8 E2 80 A2
Encoding a row of links gives Home • About • Contact.
Bullet or middle dot
• U+2022 BULLET • list marks, bold separators
· U+00B7 MIDDLE DOT · light separators; Catalan l·l
⋅ U+22C5 DOT OPERATOR ⋅ multiplication: a ⋅ b
● U+25CF BLACK CIRCLE ●
◦ U+25E6 WHITE BULLET ◦
The bullet is larger and heavier than the middle dot; for a separator between links, · is the quieter choice.
A typed bullet isn’t a list
In HTML, a list is <ul> with <li> items: screen readers announce it as a list with a count, and CSS draws the markers, so no • goes in the markup. Lines that start with • inside a <p> are plain text. Markdown works the same way: CommonMark’s list markers are -, + and *, so text pasted from a word processor with • at each line stays one paragraph.
ul { list-style-type: disc; } /* the default for <ul> */
li::marker { color: #b45309; } /* recolor the bullet only */
As a separator
Between inline links, keep the bullet out of what screen readers read:
<a href="/">Home</a> <span aria-hidden="true">•</span> <a href="/about">About</a>
Or let CSS add it to a list of links, so the markup stays a list:
.links li + li::before { content: "\2022"; margin-inline: 0.5em; }
Legacy and JSX
Old pages contain •. That code is 0x95, a C1 control, but Windows-1252 put the bullet there, so the HTML standard reads it as • and reports a parse error, and this tool decodes it the same way. Write •.
JSX decodes • in text but renders • as those letters, because JSX compilers only know the HTML 4 names; in braces write {'\u2022'}. CommonMark decodes both names in Markdown text and leaves them literal in code spans.