The information in this table is available(and up-to-date) at https://fonts.serenityos.net/.
Family | Default for | Size | Format | Serif | Monospace | Regular | Italic | Bold Italic | Bold | Black | Author |
---|---|---|---|---|---|---|---|---|---|---|---|
Ataraxia | 10 | .font | ✔️ | ✔️ | ✔️ | @djwisdom | |||||
Cathode | 10 | .font | ✔️ | ✔️ | @electrikmilk | ||||||
CJK Biáng | 36 | .font | ? | ✔️ | ✔️ | @Xexxa | |||||
Csilla | text editor, .txt | 10/12 | .font | ✔️ | ✔️ | ✔️ | |||||
Katica | system, .html | 10/12 | .font | ✔️ | ✔️ | ||||||
Liberation Serif | 8-36 | .ttf | ✔️ | ✔️ | ✔️ | ✔️ | ✔️ | @mattco98 | |||
Liza | 10/24/36 | .font | ✔️ | ✔️ | ✔️ | ✔️ | |||||
Lucidity | 12 | .font | ✔️ | ✔️ | @djwisdom | ||||||
Marieta | 24/36 | .font | ✔️ | ✔️ | @thankyouverycool | ||||||
Pabbleton | 14 | .font | ✔️ | ✔️ | |||||||
Roman | 10 | .font | ✔️ | ✔️ | @electrikmilk | ||||||
Satori | 10 | .font | ✔️ | ✔️ | @djwisdom | ||||||
Satori Mono | 10 | .font | ✔️ | ✔️ | ✔️ | @djwisdom | |||||
SerenitySans | 8-36 | .ttf | ✔️ | @sunverwerth | |||||||
Serifina | 10 | .font | ✔️ | ✔️ | @thankyouverycool | ||||||
Source | 10 | .font | ✔️ | ✔️ | @electrikmilk | ||||||
Tiny | 6 | .font | ✔️ | @Xexxa |
-
Read our quick intro to using FontEditor at (https://wiki.serenityos.net/FontEditor/UsingFontEditor.html)
-
Mandatory glyphs Always include character FFFD � (https://www.unicode.org/charts/PDF/UFFF0.pdf), it's the fallback character if a glyph is missing.
-
Filename: Give the font a filename in the following format NameStylePresentationSize.ext (examples: KaticaRegular10.font)
-
Metadata: metadata.family contains the fonts "name", for example "Katica". metadata.name contains the font "name" and style, for example "Katica Regular".
-
CJK: If the font is primarly or exclusively for CJK characters then prefix metadata.family and metadata.name with CJK and space. "CJK Name" & "CJK Name Style"
-
Constructed/artificial scripts: If you want to encode for example Klingon or Tengwar, then follow the assignments of UCSUR1
-
Unicode charts: Always check the Unicode charts if you do not know a script by heart. There is often useful information about the glyphs (similar glyphs for reference or if a glyph is based on another). How to read the symbols in Unicode Charts
-
If you want to add glyphs to Unicodes PUA(private use area) for use in SerenityOS, pick codepoints within the range 10CA00-10CFFF.
-
Currently reserved ranges:
- 10CD00-10CDFF Yak emojis https://serenityos.net/~xexxa/10CD Code points: 256, Assigned characters: 47.
-
System fonts are located in
Base/res/fonts/
(repo) and/res/fonts
(running SerenityOS)
-
Before making a PR / Merge conflicts: You can copy multiple glyphs in font editor(shift click to select a range), it is recommended that you have the habit of copying the glyphs you added/modified to a fresh pull of the font-file and look for conflicting pull request before creating a PR. There has been a few cases of merge conflicts and outdated font-files removing glyphs.
-
Commit: Always include the codepoints for the glyphs you added or modified. Modified glyphs should also include how/why they were modified.
-
PR: A screenshot of what you added/edited makes it easier for maintainers to review your fantastic work.
-
Katica: currently glyphs with multiple variants in Katica uses simplefied Chinese, if that is not available it uses suitable Chinese with a
G*
-code2. -
CJK Biáng: currently glyphs with multiple variants in CJK Biáng uses traditional Chinese.
A good sample text for testing (especially rarer) scripts is the Universal Declaration of Human Rights (UDHR), there are 487 translations at https://unicode.org/udhr/ (unicode), the sample could then if needed be compared to one of the 530 translations available at https://www.ohchr.org/EN/UDHR/Pages/SearchByLang.aspx (pdf, html, sound).
-
Emojis are located in
Base/res/emoji/
(repo) and/res/emoji
(running SerenityOS) -
New emoji should be added to emoji.txt. New emojis are no longer required to be added to emoji.txt. This is automatically handled by a script during CI run. -
Emoji has the filename
U+{hex code}.png
, eg.U+1F332.png
, emoji with multiple codepoints is separated with underscore, eg.U+1F1EE_U+1F1F8.png
-
Emoji presentation selectors(U+FE0F) has to be excluded from the filename of emoji with multiple codepoints #14917 Polar Bear 🐻❄️ with the codepoints
U+1F43B U+200D U+2744 U+FE0F
gets the filenameU+1F43B_U+200D_U+2744.png
-
The size of emoji is 7 px width and always 10 px height. Some kind of agreement was reached in #fonts to allow the width to be 7px, 8px, 9px, 10px when needed for complex emoji but the goal is to keep it 7x10 if possible.
-
Emoji shall be optimized to remove unneccesarry meta-data,
optipng -strip all
is recommended.(This does on occation render the emoji unvieweble in SerenityOS so it might be a good idea to check before making a PR!)(Fixed in SerenityOS/serenity#14910) -
Emojis are system-wide, no matter what font is used.
-
There are currently issues with glyphs in the .font taking precedent over emojis and with Emoji picker(not all emojis showing).
-
The commit message when adding emoji should contain the glyph, name and codepoint. You can automatically generate these with
Meta/generate-emoji-txt.sh Build/i686/UCD/emoji-test.txt /folder/to/the/emoji/you/have/made /the/file/you/want/the/list/of/emoji/in/the/right/format/commit.txt
-
Flag emoji: The visible part should, unlike the other emoji, be 10x7 if possible with transparant padding on the y-axis. Some flags is more suitable as 9x7, 10x6, etc. Some flexability is allowed.
A 10x7 flag in a 10x10 canvas
Katicabogárfélék is Hungarian for ladybug.