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.