{"id":13721590,"url":"https://github.com/adobe-type-tools/box-drawing","last_synced_at":"2025-08-21T15:32:30.603Z","repository":{"id":7279384,"uuid":"8593623","full_name":"adobe-type-tools/box-drawing","owner":"adobe-type-tools","description":"Python script to draw all the box drawing characters and block elements based on parameters.","archived":false,"fork":false,"pushed_at":"2020-08-31T08:36:53.000Z","size":126,"stargazers_count":146,"open_issues_count":1,"forks_count":41,"subscribers_count":11,"default_branch":"master","last_synced_at":"2024-12-11T12:45:26.434Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":"http://adobe-type-tools.github.io/box-drawing/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/adobe-type-tools.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE.md","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2013-03-06T01:47:46.000Z","updated_at":"2024-12-08T14:08:44.000Z","dependencies_parsed_at":"2022-07-08T00:40:27.780Z","dependency_job_id":null,"html_url":"https://github.com/adobe-type-tools/box-drawing","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2Fbox-drawing","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2Fbox-drawing/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2Fbox-drawing/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/adobe-type-tools%2Fbox-drawing/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/adobe-type-tools","download_url":"https://codeload.github.com/adobe-type-tools/box-drawing/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":230520393,"owners_count":18238948,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-08-03T01:01:18.960Z","updated_at":"2024-12-20T01:15:40.529Z","avatar_url":"https://github.com/adobe-type-tools.png","language":"Python","funding_links":[],"categories":["Python"],"sub_categories":[],"readme":"# boxDrawing.py\n\nSoon after the first public release of [Source Code Pro][scp], users noted a lack of [Box Drawing Characters][boxwiki]. \nFortunately, this flaw could be remedied soon after—the whole set of Box Drawing Characters, plus all of the Block Elements are now part of Source Code Pro.  \n\n[Source Code Pro][scp] is a typeface family intended for both programmers and designers. It has a fairly wide range of weights, therefore it was agreed to adjust the Box Drawing Characters in their stem widths, to make for a better corresponding appearance.\nThe reasoning behind this decision is that everyone will benefit: The programmer will like the screen display adjusted to the chosen text weight. \nThe graphic designer will appreciate a multitude of combination possibilities; and an unseen dynamic range of drawing boxes.\n\nAll that is why this script was written. Drawing those generic glyphs by hand is not an amazing or creativity-challenging task. Much more fun is derived from modifying a script, which is capable of generating the most unexpected variations of Box Drawing Characters—over and over.\n\n\n## What does this script do?\n\nThis script will draw the complete ranges of [Box Drawing Characters (`U+2500`–`U+257F`)][box] and [Block Elements (`U+2580`–`U+259F`)][block] in the font editor of your choice.  \nThe design of those characters is based on a handful of parameters, which can be changed in the script file itself. \nFeel free to create Box Drawing Characters that are longer than usual; exceedingly wide, fat (both?); or hairline-thin.  \n\n\nTime was spent to make this script compatible with the triumvirate of commercial font editing applications; this means that this script will run in [RoboFont][], [Glyphs][], ~and even [FontLab][]~ without any modifications. It is also possible to run the script straight from the command line, which will generate a new [UFO file][ufo] right to your desktop.\n\n_(NB: FontLab 5 can no longer be tested because macOS 10.15 does not run 32-bit applications)._\n\n\n__Tested versions:__  \nRobofont: Version Version 3.4b (build 2003232105)\nGlyphs: Version 2.6.1 (1230)\n\n\n__Dependencies:__  \n\n- When using Glyphs or FontLab, [Robofab][] must be installed and working.\n\n- When using Glyphs, please make sure you have the [GSPen.py][] and [objectsGS.py][] modules installed.\n\n- When running the script from the command line, the [FontParts][] Python module must be installed.\n\n\n## What does this script not do?\n\nThis script is not for adding Box Drawing Characters to existing, compiled fonts.  \nIt is assumed you have type design software, and font source data available; or at least know what to do with a [UFO file][ufo].\n\n\n## What are Box Drawing Characters?\n\n__Box Drawing__ [Unicode range 2500-257F][box] and __Block Elements__ [Unicode range 2580-259F][block]:\n\n|         |  0  |  1  |  2  |  3  |  4  |  5  |  6  |  7  |  8  |  9  |  A  |  B  |  C  |  D  |  E  |  F  |\n| ------- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |\n| U+250x  |  ─  |  ━  |  │  |  ┃  |  ┄  |  ┅  |  ┆  |  ┇  |  ┈  |  ┉  |  ┊  |  ┋  |  ┌  |  ┍  |  ┎  |  ┏  |\n| U+251x  |  ┐  |  ┑  |  ┒  |  ┓  |  └  |  ┕  |  ┖  |  ┗  |  ┘  |  ┙  |  ┚  |  ┛  |  ├  |  ┝  |  ┞  |  ┟  |\n| U+252x  |  ┠  |  ┡  |  ┢  |  ┣  |  ┤  |  ┥  |  ┦  |  ┧  |  ┨  |  ┩  |  ┪  |  ┫  |  ┬  |  ┭  |  ┮  |  ┯  |\n| U+253x  |  ┰  |  ┱  |  ┲  |  ┳  |  ┴  |  ┵  |  ┶  |  ┷  |  ┸  |  ┹  |  ┺  |  ┻  |  ┼  |  ┽  |  ┾  |  ┿  |\n| U+254x  |  ╀  |  ╁  |  ╂  |  ╃  |  ╄  |  ╅  |  ╆  |  ╇  |  ╈  |  ╉  |  ╊  |  ╋  |  ╌  |  ╍  |  ╎  |  ╏  |\n| U+255x  |  ═  |  ║  |  ╒  |  ╓  |  ╔  |  ╕  |  ╖  |  ╗  |  ╘  |  ╙  |  ╚  |  ╛  |  ╜  |  ╝  |  ╞  |  ╟  |\n| U+256x  |  ╠  |  ╡  |  ╢  |  ╣  |  ╤  |  ╥  |  ╦  |  ╧  |  ╨  |  ╩  |  ╪  |  ╫  |  ╬  |  ╭  |  ╮  |  ╯  |\n| U+257x  |  ╰  |  ╱  |  ╲  |  ╳  |  ╴  |  ╵  |  ╶  |  ╷  |  ╸  |  ╹  |  ╺  |  ╻  |  ╼  |  ╽  |  ╾  |  ╿  |\n| U+258x  |  ▀  |  ▁  |  ▂  |  ▃  |  ▄  |  ▅  |  ▆  |  ▇  |  █  |  ▉  |  ▊  |  ▋  |  ▌  |  ▍  |  ▎  |  ▏  |\n| U+259x  |  ▐  |  ░  |  ▒  |  ▓  |  ▔  |  ▕  |  ▖  |  ▗  |  ▘  |  ▙  |  ▚  |  ▛  |  ▜  |  ▝  |  ▞  |  ▟  |\n\n\nBoth Box Drawing Characters and Block Elements are mostly at home in the world of text-based UI; you might remember brilliant examples from MS-DOS Defrag or ScanDisk.\n\n\t    ┌─┬────────────┐\n\t┌───┘ │ Beautiful  │  \n\t│     │ box.       │  ┌────────────╖\n\t│     ╰─┰──────────┤  │ Another    ╟┐\n\t│       ┃ The same │  │ quite nice ║│\n\t│       ┃ ole box. │  │ box.       ║│\n\t└───────┸──────────┘  ╘╤═══════════╝│\n\t                       └────────────┘       \n\nBox Drawing Characters can also be used for graphic design.\nAs an example, see the “source code” (pun) of the [Adobe Type Team holiday card 2012][xmas]:\n\n\t╔═*╓─╭╍╮╓─o*›┍━┑╻ ▲,┌─»\n\t╚═╗║╍╽┅╈╙─╖¡ ┆0┆╽╲╿ ┕━┓\n\t╚═╜╙━╹©╹╚═╱╳∙┕═┙╵=╹_└─┛\n\t╦┉╴╓─╮╓─ ╱╳¤╳╲┕ ┎─┎┬┬┒•\n\t║ ╗║─╮╬(•╱∑╳ɔ╲¡ʻ┣╸ || ┒\n\t╙─©◊ ◊╙─╱╳╳⅓╳╳╲┆┖─:┗┛ ┸\n\t┎╲ ╷╭─┨?╱╳¿╳╳▲╲♪╔═╡****\n\t┃╲╲┃┃─╮╱↑╳╳╳ợ╳╳╲╚═╗from\n\t╵ H┚╰─ᵒ╱╳╳∞╳╳╳¤╲╞═╝the↓\n\t↓╎O┊◊ˈ╱╳◉╳%╳╳=╳╳╲◆╦═╦═]\n\tH╎L┊─╱♪╳╳ʷ╳ ∫╳ §╲┊║A║™]\n\tA╎I┊╍╱╳∂╳╳◆╳╳╳Ω╳ ╲┊D┊═╗\n\tP─D──╱╳╳¶╳ ╳$╳  ¤╳┊O┊T║\n\tP║A┊╱╳ Ø╳╳ƒ╳╳╳☑╳  ╲B┊Y║\n\tY║Y┊╱¤╳╳œ╳╳╳Ṃ ╳╳| ╲E┊P║\n\t│┐S╱╳╳╳ˣ╳╳×╳╳╳◆ ╳¤╳╲┊E│\n\t↓ !!┟╥─╯┍╇┯█┯╇┑▚│┇──┴─┊\n\t   ╶═╝┎┘│━┵┼┶━│┈╢TEAM\u003c╯\n\t   ╺━│┃░▒▓▌!▐▓▒░┃││┼☑┘╳\n\n\t\nThe [Project Page][] has some more examples for Box Drawing Characters in use (using Source Code Pro as a web font).\n\n\n## Usage:\n- Open font editor of your choice (one of the three mentioned above).\n- Open the `boxDrawing.py` script file in your font editor; or move it (and `boxDrawingRecipes.py`) to your scripts folder.\n- Run.\n- Watch Box Drawing Characters emerge.\n- Done.\n\n__Alternate method:__\n\n- Run the script on the command line.\n- A UFO full of Box Drawing Characters is created (given that [FontParts][] is installed and working).\n\n\n\n\n[box]: http://www.unicode.org/charts/PDF/U2500.pdf\n[block]: http://www.unicode.org/charts/PDF/U2580.pdf\n[xmas]: http://blogs.adobe.com/typblography/files/2012/12/happy-holidays-2012.pdf\n[boxwiki]: http://en.wikipedia.org/wiki/Box_drawing_characters\n[scp]: https://github.com/adobe/source-code-pro\n[robofont]: http://doc.robofont.com/\n[glyphs]: http://glyphsapp.com/\n[fontlab]: https://www.fontlab.com/font-editor/fontlab-studio-5/\n[fontparts]: https://fontparts.robotools.dev/\n[robofab]: http://robofab.com\n[ufo]: http://unifiedfontobject.org/\n[Project Page]: http://adobe-type-tools.github.io/box-drawing/\n[objectsGS.py]: https://github.com/schriftgestalt/Glyphs-Scripts/blob/master/objectsGS.py\n[GSpen.py]: https://github.com/schriftgestalt/Glyphs-Scripts/blob/master/GSPen.py\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadobe-type-tools%2Fbox-drawing","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fadobe-type-tools%2Fbox-drawing","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fadobe-type-tools%2Fbox-drawing/lists"}