- promptfont font assets and license - key_mapping CSVs for Godot input bindings and prompt-font glyphs across keyboard/mouse, PC/Xbox/Sony/Nintendo controllers, and touch - gen.py generates prompt_font_mapping.gd from key_mapping/promptfont.csv, splicing between STARTGEN/ENDGEN markers - device, manager, file_manager scaffolding (work in progress) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
67 lines
5.7 KiB
Markdown
67 lines
5.7 KiB
Markdown
## About PromptFont
|
|
This is a font designed for user interfaces and button prompts in games. It includes the base alphabet, icons for keys, gamepad buttons, devices, and a wide variety of general user interface icons like stats, actions, items, attributes, and more. All the icons included in the font are custom made and available under the same [SIL Open Font Licence](LICENSE.txt). Included trademarks however of course still belong to their respective owners.
|
|
|
|
PromptFont is based on the Xolonium font by Severin Meyer.
|
|
|
|
## Attribution
|
|
If you use this font in your project please leave an attribution notice in your credits like this:
|
|
|
|
> PromptFont by Yukari "Shinmera" Hafner, available at https://shinmera.com/promptfont
|
|
|
|
## Release Files
|
|
The [PromptFont release](https://codeberg.org/shinmera/promptfont/releases/download/latest/promptfont.zip) includes a couple of files. Here's what they're for:
|
|
|
|
- ``LICENSE.txt``
|
|
A copy of the SIL Open Font license
|
|
- ``README.md``
|
|
A copy of this readme
|
|
- ``index.html``
|
|
A copy of the [website](https://shinmera.com/docs/promptfont) so you can use it offline as well
|
|
- ``glyphs.json``
|
|
This is a JSON file with an array of the glyphs the font provides. Each glyph is an object with the following attributes:
|
|
- ``character`` The actual character as a one-character string
|
|
- ``code`` The unicode codepoint name (``U+XXXX``)
|
|
- ``codepoint`` The actual codepoint as an integer
|
|
- ``category`` The category the glyph belongs to
|
|
- ``name`` The unique human-readable name of the glyph
|
|
- ``code-name`` The unique code-readable name of the glyph. It only contains lowercase characters a-z, numbers 0-9, and dashes. This should make it easy to turn into a code symbol
|
|
- ``tags`` A list of tags that apply to the glyph. There are a number of tags for glyph variants and so on, but the most important categories are probably:
|
|
- ``analog`` Analog stick movements and `l`, `r`, `s` for the sticks
|
|
- ``button`` Button presses and `x`, `y`, `a`, `b`, `l1`, `r1`, `l3`, `r3`, etc for the buttons
|
|
- ``dpad`` Dpad movements
|
|
- ``key`` Keyboard keys
|
|
- ``touch``, ``press``, ``hold``, ``release``, ``move-l``, ``move-r``, ``move-u``, ``move-d``, etc for movements
|
|
- ``device`` Device icons
|
|
- ``xbox`` Applies to Xbox style gamepads
|
|
- ``nintendo`` Applies to Nintendo style gamepads
|
|
- ``sony`` Applies to Sony Playstation style gamepads
|
|
- ``generic`` Applies to any gamepad
|
|
- ``ui`` User interface icons
|
|
- ``wide-alternate`` The glyph has a wider alternate variant to its standard unit square representation. You can get the variant by shifting the codepoint up by 2560 (`0xA00`). If you use a text system that supports ligatures, you can instead use a zero-width space (`U+200B`) after a glyph to select its wide variant, if available. Since the zero-width space is invisible, if no wide alternate is available, it won't be visible that you tried to select for one, making the process completely transparent.
|
|
- ``backfill`` This is a backfill glyph, intended for use together with another appropriate glyph. By using a different colour for the backfill glyph than for the following glyph, you can provide additional contrast and styling control for your prompt displays. If you use a text system that supports ligatures, you can instead use a zero-width joining space (`U+200A`) after a glyph to select its appropriate backfill glyph. So to create, for instance, a backfilled left click, you would write ``\\u278A\\u200A\\u278A`` and change the text colour for the first two and third characters.
|
|
- ``tags.txt``
|
|
A plaintext CSV file that maps all of the tags to the ``code-name`` of each glyph that was tagged as such. Each line is simply the tag name followed by the code names separated by a space.
|
|
- ``promptfont.txt``
|
|
A plaintext UTF-8 file that contains all the characters that the font provides.
|
|
- ``promptfont.ttf`` ``promptfont.otf`` ``promptfont.woff`` ``promptfont.woff2``
|
|
Compiled versions of the font, which you should be able to use directly in-engine or other programs.
|
|
- ``promptfont.css``
|
|
A CSS file that includes CSS classes for every special glyph, so you can easily embed it in HTML pages and JS games.
|
|
- ``promptfont.h`` ``promptfont.cs`` ``promptfont.py`` ``promptfont.lua`` ``promptfont.lisp`` ``promptfont.rs`` ``promptfont.gd`` ``promptfont.gml``
|
|
Source files that define constants for the special glyphs to allow easier embedding in C, C++, C#, Python, Lua, Lisp, Rust, GDScript and GML.
|
|
- ``promptfont.exe`` ``promptfont.run`` ``promptfont.o``
|
|
Binaries of the promptfont utilities. You can use this to search for glyphs or to compile the data files from the json representation.
|
|
- ``atlas-*.png``
|
|
Texture atlases of the various glyphs. Each glyph is 64x64 pixels and has a 1 pixel margin around itself. They are ordered left to right top to bottom according to their filename in the ``glyphs/`` directory of this repository. Since these rasterised versions don't scale well we heavily recommend you to use the fonts directly.
|
|
|
|
## Engine Specifics
|
|
Since there's far too many engines out there and their methods vary a lot, we can't include guides in this repository. For specifics on how to use this font in your engine of choice, please consult the [user-contributed Wiki](https://shinmera.com/project/promptfont/wiki/).
|
|
|
|
## Contributing Glyphs
|
|
For a brief guide on what to watch out for if you'd like to contribute to this font, please see the [CONTRIBUTING.md](CONTRIBUTING.md) file. If you'd like to request new glyphs to be added, please comment on the [issue ticket]().
|
|
|
|
## Support
|
|
If you'd like to support the continued development of PromptFont, please consider becoming a backer on Patreon:
|
|
|
|
[](https://patreon.com/shinmera)
|