FontVibe

shape symbols

Geometric shape symbols

Circles, squares, triangles and blocks for plain text layouts.

72 symbols · tap any one to copy

Geometric shapes

Build status dots, progress bars and checklists in plain text, or use the half-filled circles ◐ ◑ ◒ ◓ as a quick rating scale.

The Geometric Shapes block, U+25A0 to U+25FF, was encoded for charts, diagrams and terminal interfaces rather than for decoration, and its naming convention confuses almost everyone on first contact. In Unicode terminology black means filled and white means hollow, a hangover from describing ink on paper, so ● is officially a black circle even though it renders in whatever colour your text happens to be. Once that clicks, the block becomes easy to navigate: every shape comes in a filled version, a hollow version and usually a small version too.

The most useful characters here are the ones designed to represent a quantity. ◐ ◑ ◒ ◓ ◔ ◕ are circles with defined portions filled, which makes them the closest thing plain text has to a partial value, and they are what people reach for when they need a half star equivalent or a quarter-filled indicator. Combine them with ● and ○ and you can build a rating or a progress bar out of nothing but characters.

The triangles do double duty as interface furniture. ▲ and ▼ are the sort indicators in nearly every data table ever built, ▶ is a play button, and ◀ ▷ ◁ round out the set for navigation. ▪ ▫ are the small squares, sized to work as bullet points beside body text rather than as blocks.

The pentagons and hexagons ⬟ ⬠ ⬡ ⬢ ⬣ came much later, in the Geometric Shapes Extended block added in Unicode 7.0 in 2014. That twenty year gap is visible in support: a device that shows every circle and square perfectly may still draw an empty box for a hexagon, because its fonts predate the addition.

Then there are the coloured blocks 🔴 🔵 🟢 🟡 🟠 🟣 🟤 ⬛ ⬜, which are emoji rather than text shapes, and the puzzle result grids people post on social media are built from exactly these. They are also the source of the most common layout complaint on this page: emoji are typically drawn at double width in a monospaced context while text shapes are single width, so mixing the two in a progress bar or a table breaks the alignment. Build a bar from ● and ○ and it lines up. Build it from 🟢 and ⬜ and it will not.

Common questions

Why is ● called a black circle when it takes my text colour?

Because Unicode names describe ink on paper rather than screen colour, so black means filled and white means hollow throughout the block. The character has no colour of its own: it renders in whatever colour the surrounding text is, which is why it turns white automatically in dark mode.

How do I build a progress bar out of these?

Pick a filled and a hollow shape from the same family and repeat them, for example ●●●○○ for three out of five. Stick to text shapes rather than the coloured emoji blocks, because those are drawn at a different width and will make the bar uneven on some devices.

Why do the coloured circles break my alignment?

They are emoji, and emoji are usually rendered at roughly double the width of a text character in monospaced contexts such as code, terminals and spreadsheets. Text shapes like ○ and □ take a single width. Mixing them in a grid or a bar guarantees ragged columns.

Do shape symbols work in spreadsheets?

Yes, and they are genuinely useful there, since a cell containing ● can be filtered and sorted like any other text while reading as a status dot. Conditional formatting can even change its colour, because it is text rather than an image. Emoji blocks work too but cannot be recoloured.

See also