summaryrefslogtreecommitdiff
path: root/fonts/libertinus-fonts/documentation/Features.md
diff options
context:
space:
mode:
Diffstat (limited to 'fonts/libertinus-fonts/documentation/Features.md')
-rw-r--r--fonts/libertinus-fonts/documentation/Features.md146
1 files changed, 146 insertions, 0 deletions
diff --git a/fonts/libertinus-fonts/documentation/Features.md b/fonts/libertinus-fonts/documentation/Features.md
new file mode 100644
index 0000000000..faa4cbd834
--- /dev/null
+++ b/fonts/libertinus-fonts/documentation/Features.md
@@ -0,0 +1,146 @@
+# Standard OpenType Font Features
+
+Libertinus supports several OpenType features.
+Some are enabled by default (`-`) others have to be opted in (`+`).
+
+- Small Caps: `+smcp` and `+c2sc`
+- Ligatures and Contextual Alternates: `-liga`, `+hlig`, `+dlig`; `-calt`
+- Kerning: `-kern`
+- Capital Spacing: `+cpsp`, `case`
+- Slashed zero: `+zero`
+- Numerals: `-tnum`, `+pnum`, `-lnum`, `+onum`, `+pnum+onum`
+- Vulgar fractions: `+frac`
+- Subscripts and Superscripts: `+sinf`, `+sups`
+- Diacritic marks: `-mark`, `-mkmk`
+- Stylistic alternates: `+salt`
+
+Most of these can be accessed by high-level CSS properties or values
+and by GUI controls in DTP software.
+
+## Cased forms: `+case`
+
+All digits and some punctuation characters (i.e. parentheses, guillemets and hyphen)
+use shapes that better fit with all-uppercase text (`.cap` or `.sc`).
+
+## Standard ligatures: `-liga`
+
+In serif faces,
+the Latin lowercase letter sequences *ſſ*, *ſſi*, *ſſj*, *ſſk*, *ſſl*, *ſh*, *ſi*, *ſj*, *ſl*, *ſs*, *ſt*, *ff*, *ffh*, *ffi*, *ffj*, *ffk*, *ffl*, *fh*, *fi*, *fj*, *fk*, *fl*, *ft*
+form default ligatures.
+
+In sans-serif faces,
+only the Latin lowercase letter sequences *ff* (also if the second one has a shortened head) and *ft*
+form default ligatures.
+
+The related feature `clig` is not used.
+
+The respective CSS property is `font-variant-ligatures` with the value `common-ligatures` (or `no-common-ligatures`).
+
+## Discretionary and Historical Ligatures: `+dlig`, `+hlig`
+
+The only historical ligatures supported are Latin lowercase *st* and *ct* in all faces.
+
+In all faces,
+Latin lowercase letter sequences *tt* and *tz*
+form discretionary ligatures.
+Only in serif faces (i.e. non-sans-serif),
+Latin letter sequences *Th*, *ck* and *ch*
+also form discretionary ligatures.
+These can all be manually forced by using ZWJ (U+200D) between letters when just the default feature `liga` is active.
+
+The respective CSS property is `font-variant-ligatures` with the values `discretionary-ligatures` and `historical-ligatures`.
+
+## Contextual alternates: `-calt`
+
+In all faces,
+the Latin capital and small-capital letter *Q* gains a long tail if followed by either lowercase or small-capital letter *u* or *v*.
+
+The Latin lowercase letter *f*, even when part of the ligature *ff*, has a shortened head
+if followed by closing parentheses, top quotation mark, lowercase letter with ascending left leg, lowercase letter with diacritic mark above or uppercase letter not starting with a leg or stem on the left.
+
+The related feature `clig` is not used.
+
+The respective CSS property is `font-variant-ligatures` with the value `contextual` (or `no-contextual`).
+
+## Localized alternates: `locl`
+
+For Serbian and Macedonian,
+in all faces,
+the Cyrillic lowercase letter be *б*
+and in italic faces,
+the Cyrillic lowercase letters ghe *г*, gje *ѓ*, de *д*, pe *п* and te *т*
+are replaced by alternate glyphs.
+
+For Scandinavian languages, because of preferences in Sami typography,
+the Latin uppercase letter Eng *Ŋ* uses a alternative glyph, cf. `ss07`.
+
+For Turkic languages,
+ligatures where the Latin lowercase letter *i* is the second part are deactivated,
+i.e. *fi*, *ffi*, *ſi* and *ſſi*.
+The small-capitals handling of *i* / *ı* does not depend on `locl`, but is part of `smcp` (and `c2sc`).
+
+## Numerals: `-tnum`, `+pnum`, `-lnum`, `+onum`, `+pnum+onum`
+
+Except for Libertinus Math,
+the standard digits can be forced to *old-style* forms (with ascenders and descenders) with `onum` (`.taboldstyle`),
+to default *lining* forms with `lnum`,
+to *proportional* forms with `pnum` (`.fitted`),
+to *tabular* (fixed-width) forms with `tnum`.
+The latter two also apply to Euro *€* and Yen *¥* currency symbols and trump the other features.
+
+The respective CSS property is `font-variant-numeric` with the values `oldstyle-nums`, `lining-nums`, `proportional-nums` and `tabular-nums`, respectively.
+
+## Vulgar fractions: `+frac`; `subs`, `sups`; `sinf`
+
+The same sets of inferior/subscript and superior/superscript glyphs are used for various features.
+
+The respective CSS property for `frac` is `font-variant-numeric` with the value `diagonal-fractions`. The value `stacked-fraction` is not supported.
+
+# Custom OpenType Font Features: Stylistic Sets
+
+## Stylistic alternates: `+salt`
+
+For non-sans-serif faces,
+Latin uppercase letters *J*, *K*, *R* and *W* use alternate glyphs (`.alt`).
+
+For small-caps faces,
+Latin lowercase letters *a*, *q*, *ŋ* and *ß* use alternate glyphs (`.scalt` etc.).
+
+In all faces,
+Latin uppercase letters *Q*, eng *Ŋ* and eszet *ẞ*, Latin lowercase letters *h*, *y* and Eszet *ß*,
+Greek lowercase letters Beta *β*, Theta *θ*, Kappa *κ* and Phi *φ*,
+Cyrillic lowercase letter Be *б*
+and the ampersand *&* use alternate glyphs, cf. `calt`, `ss03`, `ss04`, `ss06`, `ss07`, `locl`.
+
+The respective CSS property is `font-variant-alternates` with the value `stylistic(<feature-value-name>)`.
+
+## Stylistic Set 1 `ss01` *Low diaeresis on ‘A’, ‘E’, ‘O’*
+
+Intended for German, the umlaut dots above the Latin capital letters *A* and *O* (*Ä*, *Ö*) are moved further apart while the ones above *U* (*Ü*) are put closer together.
+
+## Stylistic Set 2 `ss02` *Swashy ‘J’ ‘K’ ‘R’*
+
+A bit more swashy, cursive look with elongated tails for Latin uppercase letter *K* and *R* and a left-hand horizontal top for *J*.
+This does not apply to sans-serif faces.
+
+## Stylistic Set 3 `ss03` *‘double s’ to two ‘s’*
+
+All variants of German eszett (lowercase *ß*, uppercase *ẞ* and small-capital) are rendered as round-s digraphs *SS/ss* instead, very applicable to Swiss German texts.
+
+## Stylistic Set 4 `ss04` *Upper case ‘double s’ to two ‘S’*
+
+Only the uppercase German eszett *ẞ* is rendered as a round-s digraph *SS*; subset of `ss03`.
+
+## Stylistic Set 5 `ss05` *Crossed ‘W’*
+
+Latin uppercase letter *W* is rendered as a ligature of two *V*, i.e. the middle verticals are longer, as used in the Wikipedia logo.
+This does not apply to sans-serif faces.
+
+## Stylistic Set 6 `ss06` *Swash ‘&’*
+
+The ampersand *&* is rendered as an *et* ligature.
+
+## Stylistic Set 7 `ss07` *Swap ‘Eng’ forms*
+
+The uppercase letter Eng *Ŋ*, i.e. an *N* with a descending tail on the right leg, uses the capital *N* glyph as its base instead of the default enlarged lowercase *n* glyph.
+The localized `locl` UC Style for Sami is changed the other way around.