~/charsets/blocks · four fills and a space

Image to block ASCII art with filled cells

A space and four Unicode block elements: light shade, medium shade, dark shade, full block. Nothing here suggests tone with a punctuation stroke — each character paints the cell it sits in, so the output reads as a mosaic of pixels rather than as a page of letters.

 ░▒▓█
semaphore --charset blocks – □ ✕
[ how_the_ramp_works ]

Five levels of fill, one per cell

The ramp is a space plus ░▒▓█. Each glyph paints a fixed fraction of its cell, so two neighbours on the same step join into one flat patch, and the edge appears only where the step changes. A photograph comes out as terraces. That banding is the result this ramp is for; raise contrast to push the terraces apart.

The site's own font subset contains ░▒▓█, so the preview uses that face. A destination font may substitute another, and the four shades keep their order. See every charset side by side on the home page.

unicode block elements fill density and optical metrics
step glyph unicode luma range fill pattern rendering aesthetic
0[space]U+00200–20%0% emptyBackground paper or deep terminal black.
1░U+259120–40%25% stippleFine quarter-tone dot matrix. Soft haze.
2▒U+259240–60%50% checkerBalanced half-tone checkerboard. Smooth midtones.
3▓U+259360–80%75% stippleDense three-quarter fill. Solid body shading.
4█U+258880–100%100% solidPure geometric tile. Maximum silhouette weight.
[ poster_and_pixel_art ]

Where block characters stand out

pixel-art look

Because block elements occupy full cell boundaries rather than thin strokes, converted logos and sprites read as oversized pixels, producing an authentic 8-bit retro aesthetic.

line-height calibration

Ensure destination text containers specify line-height: 1.0. Excessive line spacing introduces horizontal gaps between rows that fracture otherwise solid fills.

terrace banding

With only 5 discrete fill steps, natural photos develop bold topographical bands. Increasing contrast pushes these terraces apart into dramatic posterized forms.

[ faq ]

Block charset questions

What are the Unicode block elements used in this charset?

The ramp uses four standardized Unicode Block Elements: Light Shade (░, U+2591, 25% fill), Medium Shade (▒, U+2592, 50% fill), Dark Shade (▓, U+2593, 75% fill), and Full Block (█, U+2588, 100% solid).

Why do block characters sometimes show horizontal or vertical gaps?

Block glyphs are designed to touch cell borders seamlessly. If gaps appear, the destination environment is enforcing a line-height greater than 1.0 or using a font with non-standard glyph bounding boxes. Setting line-height: 1 in CSS or terminal profiles restores seamless mosaic tiles.

When should I choose blocks over standard ASCII or braille?

Choose blocks for pixel art, retro gaming sprites, high-contrast posters, and README marquee headers where solid silhouette impact matters more than photographic realism.

Four fills and a space.

Open the converter with blocks preselected, drop an image, and move columns and contrast until the terraces sit where you want them. The conversion runs in your own tab; your image bytes never leave the device.

Open the block ASCII converter