-
Notifications
You must be signed in to change notification settings - Fork 805
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Alternate Braille glyphs optimized for pseudographics use #647
Comments
I just found out that Unicode plans to have those 2×4 grids separately from Braille, as U+1CD00...U+1CDE5 in “Symbols Having the possibility to render Braille as octants could still be a nice stylistic set, and could use the same glyphs as the new Symbols for Legacy Computing Supplement. (https://www.unicode.org/L2/L2021/21235-terminals-supplement.pdf) |
Interesting. As the thread from Finii at the end there mentions, Braille does serve a purpose and I'm hesitant to vary from the established forms for the sake of graphics. The Legacy symbols range seems a better place for it. |
All the pseudographics 2×2, 2×3, and 2×4, have been accepted for Unicode 16, including separated versions of 2×2 and 2×3.
|
Unicode 16.0 will include octants especially for the purpose presented in this feature request. We could still provide a stylistic set to switch Braille to octants for apps that use Braille as pseudo-pixels and cannot be updated to use octants. |
Introduction and concepts
Some characters are designed especially for pseudographics, such as the old ▄ ▀ █ (as well as ▌ ▐ ░ ▒ ▓), already found in IBM PC / MS-DOS. These are often referred to as half blocks as they can be used to treat each character cell as 2 pseudo-pixels (or a 1×2 grid).
Others have been inherited from the PET / Commodore 64 and other 8-bit era computers, splitting each cell in 4 pseudo-pixels (or a 2×2 grid): ▖ ▘ ▌ ▗ ▄ ▚ ▙ ▝ ▞ ▀ ▛ ▐ ▟ ▜ █.
A higher grid density has been inherited from TRS-80 and Teletext, and now added to the Unicode Symbols for Legacy Computing, supporting 6 pseudo-pixels (or a 2×3 grid):
These are not yet supported, but are in other feature requests: #597 and #607
The next grid density of pseudo-pixels would be a 2×4 grid, and it sort of exists, as the Braille characters are basically that, but with discrete dots instead of a no-gap pixels-like grid: ⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿
And that is exactly how these characters are already being used by terminal apps, as can be seen in the screenshots of #130, showing that the reason Braille has been added to Cascadia was precisely for their use as pseudo-graphic characters.
Another Braille design would improve the terminal
Now that we know Braille are often used as 2×4 pseudo-pixels grids in terminal apps, we could improve their display by optimizing their look for that scenario.
Here are their common discrete dots design currently found in Cascadia (reordered in a more natural pixels bits values order):
They could instead, or as a stylistic set, follow the design of the pseudo-pixels grids mentioned earlier:
This would greatly improve the look of text-mode apps using Braille as a high-density pseudo-graphics mode.
Note this is already the style used by the UNSCII font: http://viznut.fi/unscii/, which has been used for the example above.
I would even go as far as to say their pixels look should be the default and their classic discrete dots look should be the alternate stylistic set, as I believe they'll be used as pseudo-pixels much more regularly when used in the context of terminal apps than to provide visual representation of Braille to people who cannot take advantage of Braille displayed on a screen anyway.
Example
Here's a Braille pseudo-pixels example.
As displayed in Windows Terminal with the current Cascadia Mono:
As displayed in Windows Terminal with UNSCII:
The text was updated successfully, but these errors were encountered: