Tiny Heart Symbols
A heart that does not tower over the line it sits in. Six of these are Neutral width, two are Ambiguous, and three are Wide no matter what.
Tap any tile to copy it. Nothing is sent anywhere — the copy happens in your browser.
The eleven heart-named characters, ranked by how much room they take
Size is not something a character carries. What it carries is an East Asian Width value, and
that value decides how many cells it claims. Neutral is the narrow class: one cell, always. Wide is
a full cell, always. Ambiguous means it depends on the font context — narrow where Western text is
expected, full-cell where East Asian text is — so the same codepoint changes size with nothing in
the text changing. Sorted by that value, the eleven fall into three bands.
| Character | Codepoint and name | Width |
|---|---|---|
| ☙ | U+2619 REVERSED ROTATED FLORAL HEART BULLET | Neutral |
| ❣ | U+2763 HEAVY HEART EXCLAMATION MARK ORNAMENT | Neutral |
| ❤ | U+2764 HEAVY BLACK HEART | Neutral |
| ❥ | U+2765 ROTATED HEAVY BLACK HEART BULLET | Neutral |
| ❦ | U+2766 FLORAL HEART | Neutral |
| ❧ | U+2767 ROTATED FLORAL HEART BULLET | Neutral |
| ♡ | U+2661 WHITE HEART SUIT | Ambiguous |
| ♥ | U+2665 BLACK HEART SUIT | Ambiguous |
| ⺖ | U+2E96 CJK RADICAL HEART ONE | Wide |
| ⺗ | U+2E97 CJK RADICAL HEART TWO | Wide |
| ⼼ | U+2F3C KANGXI RADICAL HEART | Wide |
Six stay narrow whatever happens
☙, ❣, ❤, ❥, ❦ and ❧ are Neutral. In a
monospace column — a terminal, a fixed-width table, a text banner — each takes one cell and the
column holds. This is the band to pick from when a heart must not disturb the line it sits in.
Two shift under you
U+2661 WHITE HEART SUIT and U+2665 BLACK HEART SUIT are the Ambiguous pair, and they are also the two most likely to be
copied, because they are the plain outline and solid hearts. They are one cell in a Western context
and two where East Asian text is expected. Nothing in the text marks the difference, which is why a
list that lined up on one machine can arrive misaligned on another. Swapping either for a Neutral
heart of the same fill settles it.
Three are not hearts at all
U+2E96 CJK RADICAL HEART ONE, U+2E97 CJK RADICAL HEART TWO and U+2F3C KANGXI RADICAL HEART carry HEART in their names because that is the name of
the radical they stand for, not because they are heart-shaped. They are radical characters, all
three are Wide, and they are the widest thing that answers to a heart search. Rule them out.
The other cause of a large heart
Width is not the only lever, but the second one does not apply here. The catalog marks all
11 of these as text by default — U+2764 defaults to a text glyph, and so does every other row in the
table — so none of them arrives in colour on its own.
The red heart from a phone keyboard is U+2764 followed by an invisible variation selector
asking for the colour form, drawn at picture size: one glyph, two characters, and the extra one is
the whole difference. The selectors and what they cost are worked through on
black and white heart symbols; writing the same
character for HTML or for a field that refuses it is on
heart symbol in text and HTML.
So: which one
For a heart that stays the size of the surrounding text in any context, take a Neutral character
that has no emoji form of its own — ❦, ❧, ❥ or ☙. Each is a
bullet ornament rather than a suit or an emoji base, which is exactly why nothing can inflate it.
The eight shapes and what separates them are on heart symbols, and
the whole reference sits under
symbols to copy and paste.