How to opentype stylistic sets, alternates, and swashes
- Step 1Stylistic sets (ss01–ss20) — Up to 20 named sets per font. Each set switches a group of glyphs — alternative 'a' shape, simplified 'g', different '@'. Common in modern programming fonts (e.g., JetBrains Mono ss01–ss20).
- Step 2Stylistic alternates (salt) — Single 'show me alternates' feature. Substitutes the default form for an alternate without specifying which set. Less precise than ss01–ss20 but useful when you just want 'the other version'.
- Step 3Swashes (swsh) — Decorative letter forms with extended swirls — common in script and display fonts. Activate via font-feature-settings: 'swsh' 1; or font-variant-alternates: swash(...). Use sparingly for headlines.
Frequently asked questions
Are stylistic sets standardised?+
Set numbers (ss01–ss20) are reserved across fonts but their meanings are font-defined. ss01 in Inter alters dollar sign and zero; ss01 in Roboto Flex is different. Always check the foundry's documentation.
How do I discover what each set does?+
Some fonts include 'cv01–cv99' (character variant) features that affect single glyphs — easier to test than full sets. The OpenType Features Inspector enumerates available features; rendering test pages confirm what each does visually.
Can I combine stylistic sets?+
Yes: font-feature-settings: 'ss01' 1, 'ss03' 1, 'salt' 1;. Stack as many as desired. Some sets conflict (toggling both produces the default), but most coexist cleanly.
Privacy first
Every JAD Font tool runs entirely in your browser using opentype.js and the wawoff2 WASM Brotli encoder. Your fonts never leave your device — verified by zero outbound network requests during processing.