Font Feature Settings
-
Explain layout features, etc. that are useful for subsetting.
-
☐ #todo --- Are “Berkeley Mono” font-feature-settings accurate???
-
☐ #todo --- Monarcha (Monarcha-Book) font-feature-settings
-
Almanac of OpenType Features: https://sparanoid.com/lab/opentype-features/
-
Check what Opentype Font Features a typeface supports: https://wakamaifondue.com/
CSS Template
--appleFontStack: system-ui, -apple-system, BlinkMacSystemFont,"Helvetica Neue", "Apple Color Emoji";
--userMonoFont: "Berkeley Mono", "MonoLisa", "MonoLisa Nerd Font Mono", ui-monospace, Menlo, monospace, var(--appleFontStack);
--monoFFS: "zero", "calt", "liga", "ccmp", "locl", "mark", "mkmk", "kern";
--userTextFont: "Universal Sans", ui-sans-serif, sans-serif, var(--appleFontStack);
--textFFS: "ss09", "ss11", "ss14", "cv10", "cv13", "pnum", "zero", "calt", "kern", "locl";
--userHeading: "Universal Sans Display", "SF Pro Rounded", ui-sans-serif, sans-serif, var(--appleFontStack);
--headingFFS: "ss09", "ss11", "ss14", "cv10", "cv13", "pnum", "zero", "calt", "kern", "locl";
--userSerifFont: "Monarcha", ui-serif, serif, var(--appleFontStack);
--serifFFS: "liga", "kern";Individual Fonts
Monospace
Cartograph CF
font-feature-settings: 'ss01', 'ss03', 'ss05', 'ss06', 'liga', 'kern';- aalt
- calt
- case
- ccmp
- dnom
- frac
- liga
- locl
- numr
- ordn
- salt
- ss01
- ss02
- ss03
- ss04
- ss05
- ss06
- sups
- vert
- vrt2
- cpsp
- kern
- mark
- mkmk
Ellograph CF
font-feature-settings: 'ss01', 'ss02', 'liga', 'kern';- Opentype font feature settings for monospace (ellograph-cf)
ss01- with
ss01turned on: y - with
ss01turned off: y
- with
ss02--- alternate C, G, O, W:- with
ss02turned on: C G O W - with
ss02turned off: C G O W
- with
cpsp: capital spacingliga: ligatures- Screenshot:
aaltccmpdnomfracligaloclnumrordnss01ss02ss03ss04supscpspkernmarkmkmk
Geist Mono
[!info]- Geist Mono --- Wakamaifondue *
ccmploclmarkaaltfracfwid→ Full-width for CJKligaordnsinfss01: a without serif (better)ss02: single storied ass03: l with bottom right serifss04: Straight lined Rss06: minimal capital Gss07: smaller arrowhead for↑ ↗ → ↘ ↓ ↙ ← ↖ss08: diacritics spacingss09: zerosubssups
font-feature-settings: "'ss01' on, 'ss03' on, 'ss04' on, 'ss09' on, 'liga' on";Input Mono
font-feature-settings: 'ss01', 'ss02', 'ss09', 'ss10', 'ss11', 'ss12', 'zero';ss01: alternate (single-story) ass02: g (single story)ss03: i (without the bottom line)ss04: l (without the bottom line)ss05: only right bottom line --- iss06: only right bottom line --- lss09: alternate i (curved bottom right line)ss10: alternate l (curved bottom right line)ss11: middle *ss12: alternate {}ss13: no dot in 0ss20:*, /, ≤, ≤symbolsfraczeronumrdnomsinfsups
Monaspace by GitHub
font-feature-settings: 'calt', 'ss06', 'ss07', 'ss08';Neon, Xenon and Radonare great for use in daily.- Stylistically useful: Krypton
calt: texture healing and a few positional changes (none that could obfuscate the understanding of characters)ss06: ## and ### will be merged (but each # still distinct)ss07--- same thing***, /*, */ /*/ (*, *), (*))some characters are positionally correctedss08---.=, .-, ..<positions are corrected. (in the middle)
JetBrains Mono
font-feature-settings: 'cv03', 'cv07', 'cv08', 'cv11', 'cv12', 'cv17', 'cv18', 'cv20', 'cv99', 'calt';MonoLisa
font-feature-settings: "ss03", "zero", "calt", "liga", "ccmp", "locl", "mark", "mkmk", "kern";font-kerning: normal;aaltcaltcaseccmpdnomfracligaloclnumronumordnsaltsinfss01ss03ss04ss05ss06subssupszeromarkmkmk- Required:
ccmp, locl, mark, mkmk - Turned on by default:
calt, liga ss03:-
zerocalt-
liga-
IntelOne Mono
- Required:
ccmp, locl, mark
FiraCode / FiraMono
font-feature-settings: "ccmp" on, "locl" on, "mark" on, "mkmk" on, "calt" on, "liga" on, "dlig" on, "ss03" on, "cv31" on, "onum" on, "kern" on;Explanation
Defaults: "ccmp" on,"locl" on,"mark" on,"mkmk" on, "kern" on
ccmp: Glyph Compositionlocl: Localized Formsmark: Mark Positioningmkmk: Mark to Mark Positioningkern: Kerning
User Enabled: "calt" on, "ss03" on, "cv31" on, "onum" on
calt: contextual alternatesliga: ligaturesdlig: discretionary ligaturesss03: variation of ampersand (&)cv31: rounded parenthesisonum: oldstyle figures
Notes: not needed ---
cv11(slashed zero) Zero is already slashed in calt (contextual alternates)
Martian Mono
::TODO::
- ☐ Add all the available font-features of this font in a list
font-feature-settings: "rlig" on, "ccmp" on, "mark" on, "cv01" on, "cv02" on, "calt" on;Source Code Pro
font-feature-settings: "size", "cv17", "zero", "ccmp", "locl", "mark", "mkmk";Twilio Sans Mono
ss05is for zero character variant
font-feature-settings: "ss05", "calt", "locl";Serif
Loretta
font-feature-settings: 'liga', 'kern';- aalt
- case
- ccmp
- dnom
- frac
- liga
- lnum
- locl
- numr
- onum
- ordn
- sinf
- subs
- sups
- kern
- mark
- mkmk
VC Garamond Condensed
css VC Garamond Condensed font-feature-settings: 'ss01', 'ss02', 'ss04', 'lnum', 'onum', 'liga', 'case', 'kern';
ss01: alternate fss02: alternate kss04: alternate pound sign £lnum: lining figuresonum: OldStyle Figuresliga: Standard Ligaturescase: Case-sensitive formskern: Kerning
Exchange MP
/* this typeface has small capitals smcp 🫨; ss02 may be replaced with ss01 */font-feature-settings: 'liga', 'ss02', 'tnum', 'ccmp', 'locl', 'mark';- ccmp
- locl
- mark
- aalt
- c2sc
- case
- dnom
- frac
- liga
- numr
- salt
- sinf
- smcp
- ss01
- ss02
- ss03
- subs
- sups
- tnum
- kern

Parclo Serif
Body Text:
font-feature-settings: "onum", "zero", "calt", "liga", "dlig", "kern", "ccmp", "locl", "mark", "mkmk";Headings:
font-feature-settings: "ss01", "case", "onum", "zero", "calt", "liga", "dlig", "kern", "ccmp", "locl", "mark", "mkmk";Quotes / Blockquotes:
font-feature-settings: "ss03", "onum", "zero", "calt", "liga", "dlig", "kern", "ccmp", "locl", "mark", "mkmk";- ss01 --- filled circle figures
- ss02 --- circled figures (hollow / un-filled)
- ss03 --- decorative quotes
- frac
- lnum
- onum
- ordn
- pnum
- tnum
- zero
- numr
- calt
- dlig
- liga
- case
- dnom
- sinf
- subs
- sups
- kern
Sans-Serif
Elza Text
font-feature-settings: 'liga','zero','ccmp', 'locl', 'mark', 'mkmk', 'kern';Layout features
- aalt
- c2sc
- case
- ccmp
- dnom
- frac
- liga
- lnum
- locl
- numr
- onum
- ordn
- pnum
- salt
- sinf
- smcp
- ss01
- ss02
- ss03
- subs
- sups
- tnum
- zero
- cpsp
- kern
- mark
- mkmk
Whirly Birdie
font-feature-settings: 'aalt', 'liga', 'pnum', 'salt', 'ss01', 'ss02', 'ss03', 'ss04', 'tnum', 'kern', 'mark', 'mkmk';Variations:
- wght
- wdth
- ital
Stylistic sets:
salt: alternate Rss01: alternate Rss02: alternate H (the middle bar in the H is at the bottom)ss03: alternate Mss04: alternate Skern: Kerning on
Instrument Sans
font-feature-settings: 'ss03' on, 'ss04' on,'ss05' on, 'ss07' on, 'ss11' on, 'liga' on, 'kern' on;Stylistic Sets:
aalt- Access all alternativescase- Case-sensitive punctuationliga- Standard ligaturespnum- Proportional Figurestnum- Tabular Figures
Public Sans
font-feature-settings: 'lnum' on, 'onum' on, 'pnum' on, 'tnum' on, 'calt' on, 'liga' on, 'kern' on;Schibsted Grotesk
- Variation Settings:
- wght: 400:900
- Feature Settings:
- aalt
- calt
- case
- ccmp
- dlig
- dnom
- frac
- liga
- locl
- numr
- ordn
- pnum
- sups
- tnum
- zero
- kern
- mark
- mkmk
font-feature-settings: 'pnum', 'tnum', 'zero', 'calt', 'dlig', 'liga', 'kern';@font-face {font-family: "Schibsted Grotesk";src: local('Schibsted Grotesk');font-weight: 420 900;}Adapter PE Text / Adapter PE Display Font Features
--textFFS: "zero" on, "calt" on, "liga" on, "kern" on, "pnum" on !important;--headingFFS: "zero" on, "calt" on, "liga" on, "kern" on, "pnum" on !important;zero: slashed zerocalt: contextual alternatesliga: ligatureskern: kerningpnum: proportional
Inter
--textFFS: "calt", "ccmp", "dlig", "ss02", "ss03", "cpsp", "ordn", "kern";- calt
- tnum
- frac
- case
- ccmp
- numr
- dnom
- sups
- subs
- ss01 --- alternate 3, 4, 6 and 9
- ss02 --- slashed zero, I, l, and ß
- ss03 --- r into the next neighbor
- zero
- cv01 --- alt 1
- cv02 --- alt 4
- cv03 --- alt 6
- cv04 --- alt 9
- cv05 --- alt l ł ƚ ɫ ɬ ŀ ĺ ļ ľ ḷ ḹ ḻ ḽ
- cv06 --- alt r ɽ ɍ ɼ ŕ ŗ ř ȑ ȓ ṙ ṛ ṝ ṟ
- cv07 --- alt ß
- cv08 --- alt I Ï Ḯ Ɨ Ḭ Ì Í Î Ĩ Ī Ĭ Į İ Ǐ Ȉ Ȋ Ỉ Ị Ι Ί Ϊ Ἰ Ἱ Ἲ
- cv09 --- alt 3
- cv10 --- alt G Ǥ Ɠ Ĝ Ğ Ġ Ģ Ǧ Ǵ Ḡ
- cv11 --- alt a á ă ắ ặ ằ ẳ ẵ ǎ â ấ ậ ầ ẩ ẫ ȁ ä ǟ ȧ ạ ǡ à ả ȃ ā ą ẚ å ǻ ḁ ã
- locl
- salt
- aalt
- cpsp --- Capital Spacing
- ordn
- kern
Screenshot of features: Inter Font Features
SF Pro Rounded
font-feature-settings: "ccmp", "locl", "cv06", "cv08", "pnum", "calt", "liga", "kern";- c2sc
- calt
- case
- ccmp
- cv01
- cv02
- cv03
- cv04
- cv05
- cv06
- cv07
- cv08
- cv09
- cv10
- dnom
- frac
- liga
- locl
- numr
- pnum
- smcp
- ss01
- ss02
- ss03
- ss06
- ss07
- ss12
- ss13
- ss14
- ss15
- ss16
- ss17
- subs
- sups
- tnum
- kern
Screenshots:
Graphik
font-feature-settings: "pnum", "ss05", "kern", "mkmk", "liga";Tenon
font-feature-settings: "ss01", "pnum", "liga", "kern";Uncut Sans
- aalt, case, dnom, frac, liga, locl, numr, ordn, pnum, sinf, ss01, ss02, ss03, ss04, ss05, ss06, ss07, ss08, subs, sups, tnum, zero, kern
- ss01 --- normal ‘R’
- ss02 --- normal ‘Y’
- ss03 --- long tail ‘Q’ and ‘ø’
- ss04 --- small ‘a’
- ss05 --- normal 1, and 4
- ss06 --- normal !, ?
- ss07 --- rounded punctuation ("")
- ss08 --- normal arrows
- liga --- ff, rf, rt, and tt
- kern
font-feature-settings: "ss01", "ss02", "ss03", "ss05", "ss06", "ss07", "ss08", "liga", "kern", "locl", "pnum", "zero";Universal Sans
-
calt, case, cv06, cv08, cv09, cv10, cv11, cv12, cv13, cv14, cv15, cv16, cv17, cv18, cv19, dnom, frac, locl, nalt, numr, ordn, pnum, sinf, ss01, ss03, ss04, ss05, ss06, ss07, ss08, ss09, ss10, ss11, ss12, ss14, ss15, ss17, ss19, ss20, subs, sups, tnum, zero, kern
-
variable font
-
wght
-
trml
-
skew
-
Roundness
-
X-height
-
prop
ss09 --- alternate g
ss11 --- ‘l’ that looks like an l
ss14 --- altenate G
cv10 --- alternate y
cv13 --- alternate Q
pnum --- proportional numbers
zero --- slashed zero
calt --- smiley (:))
kern --- kerning
font-variation-settings: "wght" 400, "trml" 0, "skew" 0, "rnds" 50.22, "xhgt" 0, "prop" 100;font-feature-settings: "ss09", "ss11", "ss14", "cv10", "cv13", "pnum", "zero", "calt", "kern", "locl";
-
-
font-feature-settings: for OpenType features. -
font-variation-settings: for Variable Font settings.- More information (toggle this accordion)
- Both
font-feature-settingsandfont-variation-settingsare CSS properties that allow you to control the typography of text, but they apply to different types of font features.font-feature-settingsis used to control OpenType font features, which are advanced typographic features that are built into some fonts. OpenType features include things like ligatures, stylistic alternates, and small caps. Thefont-feature-settingsproperty allows you to enable or disable these features for a specific piece of text.- Here is an example of how to use
font-feature-settingsto enable discretionary ligatures:
font-feature-settings: "dlig" 1;- In this code, the
dligfeature is enabled with a value of 1, which means that discretionary ligatures will be used where available. font-variation-settings, on the other hand, is used to control variable fonts, which are fonts that have adjustable weight, width, and other attributes. Variable fonts allow you to adjust the font size and other properties without having to load multiple font files. Thefont-variation-settingsproperty allows you to adjust these properties for a specific piece of text.
- In this code, the
- Here is an example of how to use
font-variation-settingsto adjust the weight and width of a variable font:font-variation-settings: "wght" 700, "wdth" 120;- In this code, the
wght(weight) andwdth(width) axes are adjusted to values of 700 and 120, respectively, which will make the text heavier and wider.
- In this code, the
- ==In summary,
font-feature-settingsis used to control OpenType font features, whilefont-variation-settingsis used to control variable font properties.==
- Both
- More information (toggle this accordion)
Really Sans
font-feature-settings: "ss04", "ss05", "zero", "calt", "kern", "ccmp", "locl", "mark", "mkmk";- ==Special characters in Really Sans:==
- ①
- ②
- ③
- ④
- ⑤
- ⑥
- ⑦
- ⑧
- ⑨
- ⓪
- ⓿
- ❛
- ❜
- ❝
- ❞
- ❶
- ❷
- ❸
- ❹
- ❺
- ❻
- ❼
- ❽
- ❾
- ⸘
-
-
-
- 🡠
- 🡡
- 🡢
- 🡣
- 🡤
- 🡥
- 🡦
- 🡧
- 🡨
- 🡩
- 🡪
- 🡫
- 🡬
- 🡭
- 🡮
- 🡯













