# 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.