Geometric Shapes Complete Guide
Unicode's Geometric Shapes block contains 96 characters covering circles, squares, triangles, diamonds, and other polygons in filled, outlined, and various shaded styles. This complete guide catalogs all geometric shape characters with their code points, visual appearance, and copy-paste support.
Unicode dedicates an entire block to geometric shapes -- circles, squares, triangles, diamonds, and other polygons in filled, outlined, and variously styled forms. The Geometric Shapes block (U+25A0--U+25FF) contains 96 characters, supplemented by hundreds more in the Geometric Shapes Extended block, Block Elements, and Miscellaneous Symbols. This guide catalogs the major geometric characters, explains their organization, and demonstrates practical uses in interfaces, data visualization, and text design.
The Geometric Shapes Block (U+25A0--U+25FF)
This primary block contains 96 characters covering the fundamental geometric forms:
Squares and Rectangles
| Character | Code Point | Name |
|---|---|---|
| ■ | U+25A0 | BLACK SQUARE |
| □ | U+25A1 | WHITE SQUARE |
| ▪ | U+25AA | BLACK SMALL SQUARE |
| ▫ | U+25AB | WHITE SMALL SQUARE |
| ▬ | U+25AC | BLACK RECTANGLE |
| ▭ | U+25AD | WHITE RECTANGLE |
| ▮ | U+25AE | BLACK VERTICAL RECTANGLE |
| ▯ | U+25AF | WHITE VERTICAL RECTANGLE |
| ◻ | U+25FB | WHITE MEDIUM SQUARE |
| ◼ | U+25FC | BLACK MEDIUM SQUARE |
| ◽ | U+25FD | WHITE MEDIUM SMALL SQUARE |
| ◾ | U+25FE | BLACK MEDIUM SMALL SQUARE |
Unicode provides squares in multiple sizes -- large (■ □), medium (◻ ◼), medium-small (◽ ◾), and small (▪ ▫). The "black" variants are filled, "white" are outlined. This size progression enables multi-level bullet lists and visual hierarchies in plain text.
Circles
| Character | Code Point | Name |
|---|---|---|
| ● | U+25CF | BLACK CIRCLE |
| ○ | U+25CB | WHITE CIRCLE |
| ◉ | U+25C9 | FISHEYE |
| ◌ | U+25CC | DOTTED CIRCLE |
| ◍ | U+25CD | CIRCLE WITH VERTICAL FILL |
| ◎ | U+25CE | BULLSEYE |
| ◐ | U+25D0 | CIRCLE WITH LEFT HALF BLACK |
| ◑ | U+25D1 | CIRCLE WITH RIGHT HALF BLACK |
| ◒ | U+25D2 | CIRCLE WITH LOWER HALF BLACK |
| ◓ | U+25D3 | CIRCLE WITH UPPER HALF BLACK |
| ◔ | U+25D4 | CIRCLE WITH UPPER RIGHT QUADRANT BLACK |
| ◕ | U+25D5 | CIRCLE WITH ALL BUT UPPER LEFT QUADRANT BLACK |
The half-filled and quarter-filled circles (◐ ◑ ◒ ◓ ◔ ◕) are particularly useful for representing partial progress, ratings, or pie-chart approximations in text-only contexts.
Triangles
| Character | Code Point | Name |
|---|---|---|
| ▲ | U+25B2 | BLACK UP-POINTING TRIANGLE |
| △ | U+25B3 | WHITE UP-POINTING TRIANGLE |
| ▴ | U+25B4 | BLACK UP-POINTING SMALL TRIANGLE |
| ▵ | U+25B5 | WHITE UP-POINTING SMALL TRIANGLE |
| ▶ | U+25B6 | BLACK RIGHT-POINTING TRIANGLE |
| ▷ | U+25B7 | WHITE RIGHT-POINTING TRIANGLE |
| ▸ | U+25B8 | BLACK RIGHT-POINTING SMALL TRIANGLE |
| ▹ | U+25B9 | WHITE RIGHT-POINTING SMALL TRIANGLE |
| ▼ | U+25BC | BLACK DOWN-POINTING TRIANGLE |
| ▽ | U+25BD | WHITE DOWN-POINTING TRIANGLE |
| ▾ | U+25BE | BLACK DOWN-POINTING SMALL TRIANGLE |
| ▿ | U+25BF | WHITE DOWN-POINTING SMALL TRIANGLE |
| ◀ | U+25C0 | BLACK LEFT-POINTING TRIANGLE |
| ◁ | U+25C1 | WHITE LEFT-POINTING TRIANGLE |
| ◂ | U+25C2 | BLACK LEFT-POINTING SMALL TRIANGLE |
| ◃ | U+25C3 | WHITE LEFT-POINTING SMALL TRIANGLE |
Triangles come in all four directions and two sizes. The right-pointing triangle ▶ is commonly used as a play button, while ▲ and ▼ serve as sort indicators in table headers.
Diamonds
| Character | Code Point | Name |
|---|---|---|
| ◆ | U+25C6 | BLACK DIAMOND |
| ◇ | U+25C7 | WHITE DIAMOND |
| ◈ | U+25C8 | WHITE DIAMOND CONTAINING BLACK SMALL DIAMOND |
| ◊ | U+25CA | LOZENGE |
The lozenge ◊ is technically a different shape (taller and narrower than a diamond) and is used in pharmaceutical notation and mathematical typesetting.
Stars and Pentagons
| Character | Code Point | Name |
|---|---|---|
| ★ | U+2605 | BLACK STAR |
| ☆ | U+2606 | WHITE STAR |
| ✡ | U+2721 | STAR OF DAVID |
| ⬟ | U+2B1F | PENTAGON |
| ⬠ | U+2B20 | WHITE PENTAGON |
| ⬡ | U+2B21 | WHITE HEXAGON |
| ⬢ | U+2B22 | BLACK HEXAGON |
Note that ★ and ☆ are in the Miscellaneous Symbols block, not Geometric Shapes. They are included here because they are used alongside geometric shapes in practice.
Block Elements (U+2580--U+259F)
The Block Elements block provides 32 characters for building box-drawing graphics and terminal-based visualizations:
Horizontal Blocks (Fractional Heights)
| Character | Code Point | Name |
|---|---|---|
| ▀ | U+2580 | UPPER HALF BLOCK |
| ▁ | U+2581 | LOWER ONE EIGHTH BLOCK |
| ▂ | U+2582 | LOWER ONE QUARTER BLOCK |
| ▃ | U+2583 | LOWER THREE EIGHTHS BLOCK |
| ▄ | U+2584 | LOWER HALF BLOCK |
| ▅ | U+2585 | LOWER FIVE EIGHTHS BLOCK |
| ▆ | U+2586 | LOWER THREE QUARTERS BLOCK |
| ▇ | U+2587 | LOWER SEVEN EIGHTHS BLOCK |
| █ | U+2588 | FULL BLOCK |
These characters progress from one-eighth height (▁) to full height (█), creating an eight-step vertical bar chart in a single character column.
Shade Characters
| Character | Code Point | Name |
|---|---|---|
| ░ | U+2591 | LIGHT SHADE |
| ▒ | U+2592 | MEDIUM SHADE |
| ▓ | U+2593 | DARK SHADE |
| █ | U+2588 | FULL BLOCK |
The shade characters are iconic in computing history -- they were essential in DOS-era text-mode user interfaces for creating shadows, gradients, and visual depth effects.
Vertical and Quadrant Blocks
| Character | Code Point | Name |
|---|---|---|
| ▌ | U+258C | LEFT HALF BLOCK |
| ▐ | U+2590 | RIGHT HALF BLOCK |
| ▖ | U+2596 | QUADRANT LOWER LEFT |
| ▗ | U+2597 | QUADRANT LOWER RIGHT |
| ▘ | U+2598 | QUADRANT UPPER LEFT |
| ▙ | U+2599 | QUADRANT UPPER LEFT AND LOWER LEFT AND LOWER RIGHT |
| ▚ | U+259A | QUADRANT UPPER LEFT AND LOWER RIGHT |
| ▛ | U+259B | QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT |
| ▜ | U+259C | QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER RIGHT |
| ▝ | U+259D | QUADRANT UPPER RIGHT |
| ▞ | U+259E | QUADRANT UPPER RIGHT AND LOWER LEFT |
| ▟ | U+259F | QUADRANT UPPER LEFT AND UPPER RIGHT AND LOWER LEFT AND LOWER RIGHT |
The quadrant characters divide a cell into four quarters, enabling 2x2 pixel resolution per character -- useful for low-resolution graphics in terminals.
Practical Applications
Progress Bars
Block elements create compact text-based progress bars:
def progress_bar(percent, width=20):
filled = int(width * percent / 100)
bar = "\u2588" * filled + "\u2591" * (width - filled)
return f"|{bar}| {percent}%"
print(progress_bar(75))
# |████████████████░░░░| 75%
Sparkline Charts
Block elements can approximate sparkline charts:
def sparkline(values):
blocks = " \u2581\u2582\u2583\u2584\u2585\u2586\u2587\u2588"
lo, hi = min(values), max(values)
if lo == hi:
return "\u2584" * len(values)
return "".join(
blocks[int((v - lo) / (hi - lo) * 7) + 1]
for v in values
)
data = [4, 8, 15, 16, 23, 42, 30, 12, 5, 1]
print(sparkline(data))
# ▁▂▃▃▄█▅▂▁▁
Rating Stars
def star_rating(score, max_score=5):
full = int(score)
half = 1 if score - full >= 0.5 else 0
empty = max_score - full - half
return "\u2605" * full + ("\u00BD" if half else "") + "\u2606" * empty
print(star_rating(3.5))
# ★★★½☆
CSS: Geometric Bullets
ul.diamond-list {
list-style: none;
}
ul.diamond-list li::before {
content: "\25C6 ";
color: #2563eb;
}
ul.circle-list li::before {
content: "\25CF ";
color: #059669;
}
JavaScript: Sort Direction Indicators
function sortIcon(direction) {
if (direction === 'asc') return '\u25B2'; // ▲
if (direction === 'desc') return '\u25BC'; // ▼
return '\u25C6'; // ◆ (unsorted)
}
// Table header rendering
headers.forEach(h => {
h.textContent = `${h.dataset.label} ${sortIcon(h.dataset.sort)}`;
});
Geometric Shapes Extended (U+1F780--U+1F7FF)
Unicode 7.0 added an extended block with additional geometric shapes:
| Character | Code Point | Name |
|---|---|---|
| 🟠 | U+1F7E0 | LARGE ORANGE CIRCLE |
| 🟡 | U+1F7E1 | LARGE YELLOW CIRCLE |
| 🟢 | U+1F7E2 | LARGE GREEN CIRCLE |
| 🟣 | U+1F7E3 | LARGE PURPLE CIRCLE |
| 🟤 | U+1F7E4 | LARGE BROWN CIRCLE |
| 🟥 | U+1F7E5 | LARGE RED SQUARE |
| 🟦 | U+1F7E6 | LARGE BLUE SQUARE |
| 🟧 | U+1F7E7 | LARGE ORANGE SQUARE |
| 🟨 | U+1F7E8 | LARGE YELLOW SQUARE |
| 🟩 | U+1F7E9 | LARGE GREEN SQUARE |
| 🟪 | U+1F7EA | LARGE PURPLE SQUARE |
| 🟫 | U+1F7EB | LARGE BROWN SQUARE |
These colored shapes render as emoji and provide a way to convey color information in text -- useful for game boards, status indicators, and category labels.
Font Support
Geometric shapes have excellent cross-platform support because they have been in Unicode since early versions:
| Shape Group | Block | Support Level |
|---|---|---|
| Squares, circles, triangles | Geometric Shapes (U+25A0) | Excellent |
| Block elements | Block Elements (U+2580) | Excellent |
| Stars | Misc. Symbols | Excellent |
| Colored shapes | Geometric Shapes Extended | Good (emoji) |
| Extended geometric | Geometric Shapes Extended | Moderate |
For terminal and CLI applications, the block elements and basic geometric shapes are among the most reliably rendered characters across operating systems and terminal emulators, making them ideal for text-based user interfaces and data visualization.
Geometric shapes are workhorses of Unicode -- they appear in every rating widget, progress bar, sort indicator, and text-based chart on the modern web. The 96 characters in the primary Geometric Shapes block, combined with the 32 Block Elements and their extended counterparts, give developers a rich vocabulary for visual communication using nothing but plain text.
Symbol Reference içinde daha fazlası
Unicode contains hundreds of arrow symbols spanning simple directional arrows, double arrows, …
Unicode provides multiple check mark and tick symbols ranging from the classic …
Unicode includes a rich collection of star shapes — from the simple …
Unicode contains dozens of heart symbols including the classic ♥, black and …
Unicode's Currency Symbols block and surrounding areas contain dedicated characters for over …
Unicode has dedicated blocks for mathematical operators, arrows, letterlike symbols, and alphanumeric …
Beyond the ASCII parentheses and square brackets, Unicode includes angle brackets, curly …
Unicode offers a wide variety of bullet point characters beyond the standard …
Unicode's Box Drawing block contains 128 characters for drawing lines, corners, intersections, …
Unicode includes musical note symbols such as ♩♪♫♬ in the Miscellaneous Symbols …
Unicode includes precomposed fraction characters for common fractions like ½ ¼ ¾ …
Unicode provides precomposed superscript and subscript digits and letters — such as …
Unicode contains dozens of circle symbols including filled circles, outlined circles, circles …
Unicode includes filled squares, outlined squares, small squares, medium squares, dashed squares, …
Unicode provides a comprehensive set of triangle symbols in all orientations — …
Unicode includes filled and outline diamond shapes, lozenge characters, and playing card …
Unicode provides various cross and X mark characters including the heavy ballot …
The hyphen-minus on your keyboard is just one of Unicode's many dash …
Unicode defines typographic quotation marks — curly quotes — for dozens of …
Unicode includes dedicated characters for the copyright symbol ©, registered trademark ®, …
The degree symbol ° (U+00B0) and dedicated Celsius ℃ and Fahrenheit ℉ …
Unicode's Enclosed Alphanumerics block provides circled numbers ①②③, parenthesized numbers ⑴⑵⑶, and …
Unicode includes a Number Forms block with precomposed Roman numeral characters such …
Greek letters like α β γ δ π Σ Ω are widely …
The Unicode Dingbats block (U+2700–U+27BF) contains 192 decorative symbols originally from the …
Unicode includes a Playing Cards block with characters for all 52 standard …
Unicode provides characters for all six chess piece types in both white …
Unicode's Miscellaneous Symbols block includes the 12 zodiac signs ♈♉♊♋♌♍♎♏♐♑♒♓, planetary symbols, …
Unicode's Braille Patterns block (U+2800–U+28FF) encodes all 256 possible combinations of the …
The Unicode Letterlike Symbols block contains mathematical and technical symbols derived from …
Unicode's Miscellaneous Technical block contains symbols from computing, electronics, and engineering, including …
Diacritics are accent marks and other marks that attach to letters to …
Unicode defines dozens of invisible characters beyond the ordinary space, including zero-width …
Unicode includes warning and hazard symbols such as the universal caution ⚠ …
Unicode's Miscellaneous Symbols block includes sun ☀, cloud ☁, rain ☂, snow …
Unicode includes symbols for many of the world's major religions including the …
Unicode includes the traditional male ♂ and female ♀ symbols from astronomy, …
Apple's macOS uses Unicode characters for keyboard modifier keys such as ⌘ …
Unicode symbols like ▶ ◀ ► ★ ✦ ⚡ ✈ and hundreds …