Skip to content
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

Programatically generate the Monocraft font #74

Merged
merged 32 commits into from
Dec 27, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
32 commits
Select commit Hold shift + click to select a range
9911ffb
Add script to generate fonts
IdreesInc Dec 23, 2022
65ffed0
Add ability to generate glyphs from pixels
IdreesInc Dec 24, 2022
8cc519f
Add descents and characters 33 to 126
IdreesInc Dec 24, 2022
1645f30
Add support for diacritics and reference glyphs
IdreesInc Dec 24, 2022
e2b12e1
Add more letters with diacritics
IdreesInc Dec 24, 2022
3cd7e5e
Add Cyrillic characters
IdreesInc Dec 25, 2022
102a854
Add some symbols
IdreesInc Dec 25, 2022
c040310
Added generation of data for characters with diacritics
Ciubix8513 Dec 26, 2022
8d0f036
Fix parentheses and underscore
IdreesInc Dec 26, 2022
09b24c4
Add ligatures
IdreesInc Dec 26, 2022
c61d49a
Add metadata
IdreesInc Dec 26, 2022
90782b0
Create LICENSE for code that generates the font
IdreesInc Dec 26, 2022
061c729
Revert "Create LICENSE for code that generates the font"
IdreesInc Dec 26, 2022
faac770
Add license for source code
IdreesInc Dec 26, 2022
5209d7f
Rename license files
IdreesInc Dec 26, 2022
e791376
Remove files that are no longer needed
IdreesInc Dec 26, 2022
711d158
Add copyright notice
IdreesInc Dec 26, 2022
b3672e5
Added license notice
Ciubix8513 Dec 26, 2022
c83992b
Fix for merge conflict
Ciubix8513 Dec 26, 2022
b580259
Merge branch '73-programatically-generate-monocraft' into main
Ciubix8513 Dec 26, 2022
ae7c885
Merge pull request #72 from Ciubix8513/main
IdreesInc Dec 26, 2022
3a8b70e
Reorganize diacritic generation code
IdreesInc Dec 27, 2022
245227a
Add more diacritics
IdreesInc Dec 27, 2022
3e72f59
Add dot above diacritic
IdreesInc Dec 27, 2022
6bbfe4c
Remove unnecessary glyph overrides
IdreesInc Dec 27, 2022
4d33f20
Generate glyph showcase when run
IdreesInc Dec 27, 2022
f903fa3
Make glyph showcase prettier
IdreesInc Dec 27, 2022
0be3af2
Fix i and j diacritics
IdreesInc Dec 27, 2022
3006076
Fix glyph preview
IdreesInc Dec 27, 2022
6ddcb8b
Add license header and remove builds from source
IdreesInc Dec 27, 2022
4e3bd39
Update README
IdreesInc Dec 27, 2022
412fd10
Fix license header wording
IdreesInc Dec 27, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 3 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,2 +1,5 @@

.DS_Store
src/__pycache__
dist/
src/build-font.sh
Binary file removed Monocraft.otf
Binary file not shown.
28 changes: 16 additions & 12 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,21 @@
# Monocraft

[![Github all releases](https://img.shields.io/github/downloads/IdreesInc/Monocraft/total.svg)](https://GitHub.com/IdreesInc/Monocraft/releases/)
![](https://img.shields.io/github/license/IdreesInc/Monocraft)
[![](https://img.shields.io/github/v/release/IdreesInc/Monocraft)](https://GitHub.com/IdreesInc/Monocraft/releases/)

![](images/preview.png)

The font for developers who like Minecraft a bit _too_ much.
The monospaced font for developers who like Minecraft a bit _too_ much.

*Notice: This project is not affiliated with Minecraft or Mojang in any way and is exclusively a fan project. This font emulates the typeface of the font used in the Minecraft UI, but it does not include any assets or font files from the original game.*

## Features

- Minecraft!
- The characters in this font were based around the [typeface](https://github.com/IdreesInc/Minecraft-Font) used in the Minecraft UI, with a select few glyphs updated for better readability and spacing
- The characters in this font were based around the [typeface](https://github.com/IdreesInc/Minecraft-Font) used in the Minecraft UI, with each glyph updated for better readability and spacing
- Monospaced!
- Each character has been carefully redesigned to work in a monospaced font
- Each of the 500+ glyphs included in this font have been carefully redesigned to work in a monospaced font
- Thin characters like "i" and "l" have been reworked with tasteful tails and serifs to look better in a monospaced environment
- Programming ligatures!
- Add some spice to your programming life with all new ligature characters
Expand All @@ -25,24 +29,24 @@ The font for developers who like Minecraft a bit _too_ much.

### Windows

Download the most recent `Monocraft.otf` file from the [Releases](https://github.com/IdreesInc/Minecraft-Mono/releases) page. Right click on the downloaded font and select **Install**. You might need administrative access to install fonts, depending on your machine.
Download the most recent `Monocraft.ttf` file from the [Releases](https://github.com/IdreesInc/Monocraft/releases) page. Right click on the downloaded font and select **Install**. You might need administrative access to install fonts, depending on your machine.

### Mac

#### Manually

Download the most recent `Monocraft.otf` file from the [Releases](https://github.com/IdreesInc/Minecraft-Mono/releases) page. Double click on the downloaded font file and select **Install Font** in the window that appears. More help available [here](https://support.apple.com/en-us/HT201749).

#### Using Homebrew

```shell
brew tap homebrew/cask-fonts
brew install --cask font-monocraft
```

#### Manually

Download the most recent `Monocraft.ttf` file from the [Releases](https://github.com/IdreesInc/Monocraft/releases) page. Double click on the downloaded font file and select **Install Font** in the window that appears. More help available [here](https://support.apple.com/en-us/HT201749).

### Linux

Download the most recent `Monocraft.otf` file from the [Releases](https://github.com/IdreesInc/Minecraft-Mono/releases) page. Move the file to ~/.local/share/fonts (create the folder if it doesn't already exist). In a terminal, run `fc-cache -fv`. Alternatively, log out and log in again.
Download the most recent `Monocraft.ttf` file from the [Releases](https://github.com/IdreesInc/Monocraft/releases) page. Move the file to ~/.local/share/fonts (create the folder if it doesn't already exist). In a terminal, run `fc-cache -fv`. Alternatively, log out and log in again.

## How to use

Expand All @@ -56,11 +60,11 @@ So far, the following ligatures have been added to the font:

<img src="images/ligatures.png" width="300">

If there is another character combination that you feel could be a ligature, feel free to create an issue.
If there is another character combination that you feel could be a ligature, feel free to create an issue!

### How were these characters generated?
### How are these characters generated?

Using [FontForge](https://fontforge.org/en-US/), a fantastic and open source font designer.
Using [FontForge's](https://fontforge.org/en-US/) excellent Python extension, the glyphs are created from configuration files representing each character's pixels. Diacritics are created separately and are combined with the original characters to create over 500 unique glyphs. To learn more, check out the source code in the [src](https://github.com/IdreesInc/Monocraft/tree/main/src) folder.

### Do you have a version with the original Minecraft font (not monospaced)?

Expand Down
1 change: 0 additions & 1 deletion backups/mono-bitmap-export.txt

This file was deleted.

46 changes: 28 additions & 18 deletions examples/glyphs.txt
Original file line number Diff line number Diff line change
@@ -1,27 +1,37 @@
--- Monocraft ---

A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z
A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
a b c d e f g h i j k l m n o p q r s t u v w x y z

0 1 2 3 4 5 6 7 8 9
0 1 2 3 4 5 6 7 8 9

! " # $ % & ‘ ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
! " # $ % & ' ( ) * + , - . / : ; < = > ? @ [ \ ] ^ _ ` { | } ~
¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á
Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á
â ã ä å æ ç è é ê ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý ÿ Ā ā Ă
ă Ć ć Ĉ ĉ Ċ ċ Č č Ď ď Ē ē Ĕ ĕ Ė ė Ě ě Ĝ ĝ Ğ ğ Ġ ġ Ĥ ĥ Ĩ ĩ Ī ī Ĭ
ĭ İ Ĵ ĵ Ĺ ĺ Ľ ľ Ń ń Ň ň Ō ō Ŏ ŏ Ő ő Ŕ ŕ Ř ř Ś ś Ŝ ŝ Š š Ť ť Ũ ũ
Ū ū Ŭ ŭ Ů ů Ű ű Ŵ ŵ Ŷ ŷ Ÿ Ź ź Ż ż Ž

€ ¡ ¢ £ ¤ ¥ ¦ § ¨ © ª « ¬ ® ¯ ° ± ² ³ ´ µ ¶ · ¸ ¹ º » ¼ ½ ¾ ¿ À Á Â Ã Ä Å Æ Ç È É Ê Ë Ì Í Î Ï Ð Ñ Ò Ó Ô Õ Ö × Ø Ù Ú Û Ü Ý Þ ß à á â ã ä å æ ç è é é ë ì í î ï ð ñ ò ó ô õ ö ÷ ø ù ú û ü ý Ő ő Ű ű
ž Ǎ ǎ Ǐ ǐ Ǒ ǒ Ǔ ǔ Ǣ ǣ Ǧ ǧ Ǩ ǩ ǰ Ǵ ǵ Ǹ ǹ Ǽ ǽ Ȟ ȟ Ȧ ȧ Ȯ ȯ Ȳ ȳ Ѐ Ё
Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С
Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с
т у ф х ц ч ш щ ъ ы ь э ю я ѐ ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ѝ ў џ

Ѐ Ё Ђ Ѓ Є Ѕ І Ї Ј Љ Њ Ћ Ќ Ѝ Ў Џ А Б В Г Д Е Ж З И Й К Л М Н О П Р С Т У Ф Х Ц Ч Ш Щ Ъ Ы Ь Э Ю Я а б в г д е ж з и й к л м н о п р с т у ф х ц ч ш щ ъ ы ь э ю я ѐ ё ђ ѓ є ѕ і ї ј љ њ ћ ќ ѝ ў џ
Ӂ ӂ Ӑ ӑ Ӓ ӓ Ӗ ӗ Ӝ ӝ Ӟ ӟ Ӣ ӣ Ӥ ӥ Ӧ ӧ Ӭ ӭ Ӯ ӯ Ӱ ӱ Ӳ ӳ Ӵ ӵ Ӹ ӹ Ḃ ḃ
Ḋ ḋ Ḟ ḟ Ḡ ḡ Ḣ ḣ Ḧ ḧ Ḱ ḱ Ḿ ḿ Ṁ ṁ Ṅ ṅ Ṕ ṕ Ṗ ṗ Ṙ ṙ Ṡ ṡ Ṫ ṫ Ṽ ṽ Ẁ ẁ
Ẃ ẃ Ẅ ẅ Ẇ ẇ Ẋ ẋ Ẍ ẍ Ẏ ẏ Ẑ ẑ ẗ ẘ ẙ Ẽ ẽ Ỳ ỳ Ỹ ỹ

☺ ☻ ♥
☺ ☻ ♥ ⨰ ⸚

--- Ligatures ---
= = -> ==
= = = -> ===
! = -> !=
! = = -> !==
- > -> ->
< - -> <-
= > -> =>
> = -> >=
< = -> <=


 = = -> ==
 = = = -> ===
 ! = -> !=
 ! = = -> !==
 < = -> <=
 > = -> >=
 < - -> <-
 - > -> ->
 = > -> =>
 < = > -> <=>
13 changes: 0 additions & 13 deletions examples/ligature-examples.txt

This file was deleted.

Loading