|
@@ -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
|