diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index e155822b9..84578640f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -1,28 +1,24 @@ -## Hack Typeface Design +# Hack Typeface Design Hack is a monospaced typeface that is designed to optimize the display of source code text. +This document outlines the core ideas on which we build to continually improve Hack. Ideally, they serve as a final rationale to decide disputes of whatever nature. -### Primary Design Targets +## Design Targets -- ASCII glyph set (used to display the body of all source code text) -- font sizes between 8 - 14 px -- cross-platform, cross font renderer support on Linux, OS X, and Windows operating systems -- desktop text editor text displays -- terminal emulator text displays -- website text displays -- print text displays +Hack is a general purpose typeface for source code. The _needs of the many_ describe our core design targets. Generally, an issue that affects 90% of users, gets a higher priority than one that 'only' affects 10%. +### Core -### Primary Design Optimizations +- **ASCII glyph set**; generally speaking, all source code is limited to ASCII. Content/comments/documentation, on the other hand, often includes non-ASCII characters. The former gets precendence over the latter. +- Font-sizes between **8-14 px**, line-height >= 1 +- **Cross-platform**, cross font renderer support on Linux, OS X, and Windows operating systems +- Usage in **common developer scenarios** (on digital displays): text editors, terminals, embedded as webfont, etc. -- legibility - establish differences in the appearance of similar glyph shapes so as to properly identify different Unicode code points -- readability - glyph shape and spacing optimizations to improve the capacity to read character-character, word-word, and code block-code block combinations in source code -- visual semantics - establish semantic commonalities for glyphs used in source code text and create common visual designs within these semantic groups +## Goals, areas of improvement +- **Legibility** - establish differences in the appearance of similar glyph shapes so as to properly identify different Unicode code points +- **Readability** - glyph shape and spacing optimizations to improve the capacity to read character-character, word-word, and code block-code block combinations in source code +- **Visual semantics** - establish semantic commonalities for glyphs used in source code text and create common visual designs within these semantic groups -### Secondary Design Targets -- All glyphs outside of the ASCII set (including extended character sets used for the display of comments in source code) -- All font sizes outside of the primary design targets -- All forms of text display outside of the primary design targets