Typographic features made possible using digital typographic systems have solved many of the demands placed on computer systems to replicate traditional typography and have expanded the possibilities with many new features. Three systems are in common use: OpenType, devised by Microsoft and Adobe, Apple's Apple Advanced Typography (AAT), and SIL's Graphite. The lists below provide information about OpenType and AAT features. Graphite does not have a fixed set of features; instead it provides a way for computer fonts to define their own features.

OpenType typographic features The OpenType format defines a number of typographic features that a particular font may support. Some software, such as Adobe InDesign, LibreOffice/OpenOffice, or recent versions of Lua/XeTeX, gives users control of these features, for example to enable fancy stylistic capital letters (swash caps) or to choose between ranging (full-height) and non-ranging (old-style, or lower-case) digits. Some web browsers also support OpenType features in accordance with the CSS Fonts Module Level 3 specification, which allows OpenType features to be set directly via the property, or indirectly by means of higher-level mechanisms.

The following tables list the features defined in version 1.8.1 of the OpenType specification. The codes in the "type" column are explained after the tables. OpenType features may be applicable only to certain language scripts or specific languages, or in certain writing modes. The features are split into several tables accordingly.

Features primarily intended for or exclusively required by South-Asian alphasyllabaries (Indic/Brahmic) Long name tag type DescriptionAbove-base Formsabvf S1 Replaces the above-base part of a vowel sign. For Khmer and similar scripts.Above-base Mark Positioningabvm P4,5 Positions a mark glyph above a base glyph.Above-base Substitutionsabvs S4 Ligates a consonant with an above-mark.Below-base Formsblwf S4 Replaces halant+consonant combination with a subscript form.Below-base Mark Positioningblwm P4,5 Positions a mark glyph below a base glyphBelow-base Substitutionsblws S4 Ligates a consonant with a below-mark.Pre-base Formspref S4 Replaces halant+consonant at the end of a consonant cluster with a glyph at the beginning. Khmer, Myanmar, Malayalam, TeluguPre-base Substitutionspres S4,5 Ligates consonant combinations.Post-base Substitutionspsts S4 Ligates a final consonant+consonant.Post-base Formspstf S4 Replaces final halant+consonant with special form. Khmer and Gurmukhi, MalayalamDistancedist P2 Adjusts horizontal positioning between glyphs. (Always enabled, as opposed to 'kern'.)Akhandakhn S4 Hindi for unbreakable. Ligates consonant+halant+consonant, usually only for k-ss and j-ny combinations.Halant Formshaln S4 Replaces a glyph for final consonant+halant.Half Formhalf S4 Replaces consonant+halant with a half form, indicating it is part of a conjunct.Nukta Formsnukt S4 Replace consonant+nukta (dot mark) with single glyph.Rakar Formsrkrf S4 Replaces halant+ra with a rakar glyph, indicating it is part of a conjunct.Reph Formrphf S4 Replaces initial ra+halant with a final reph mark, indicating part of a conjunct.Vattu Variantsvatu S4 Replaces consonant+rakar combinations with a vattu variant ligature.Conjunct Formscjct S4 Ligates consonant+halant+consonant, indicates part of a conjunct.Conjunct Form After Rocfar S1 Khmer

Features primarily intended for or exclusively required by East-Asian tetragrams (Chinese, Japanese, Korean) Long name tag type DescriptionSimplified Formssmpl S1 Replaces sinograms with their simplified versions, may be language dependentTraditional Formstrad S1,3 Replaces Chinese characters with their traditional versions Traditional Name Formstnam S1Japanese alternates for proper namesExpert Formsexpt S1 Typographic alternatives for some Japanese tetragramsHojo Kanji Formshojo Hojo alternates for Japanese tetragramsNLC Kanji Formsnlck NLC alternates for Japanese tetragramsJIS 78 Formsjp78 S1,3 JIS C 6226-1978 alternates for Japanese tetragrams, not accessible per UnicodeJIS 83 Formsjp83 S1JIS X 0208-1983 alternates for Japanese tetragrams, not accessible per UnicodeJIS 90 Formsjp90 S1 JIS X 0208-1990 alternates for Japanese tetragrams, not accessible per UnicodeJIS 04 Formsjp04 JIS 2004 alternates for Japanese tetragrams, not accessible per UnicodeHangulhngl S1,3 Transliterates Chinese-style characters with Korean HangulLeading Jamo Formsljmo S4 Initial group of consonants for a synthesized Korean Hangul tetragramTrailing Jamo Formstjmo S4 Final group of consonants for a synthesized Korean Hangul tetragramVowel Jamo Formsvjmo S4 Medial group of vowels for a synthesized Korean Hangul tetragramFull Widthsfwid S1 Replaces proportionally spaced character with full-width versions (esp. for Latin letters within Chinese)Half Widthshwid S1, P1 Replaces uniformly-spaced characters with half-width versionAlternate Half Widthshalt P1 Re-positions full-width glyphs on half-width spacesThird Widthstwid S1, P1 Replaces uniformly-spaced character with a version of 1/3 width (punctuation, etc.)Quarter Widthsqwid S1 Replaces uniformly-spaced glyphs with quarter-width ones (punctuation etc.)Proportional Widthspwid S1 Replaces uniformly-spaced glyphs with proportional onesProportional Alternatespalt P1 Re-positions otherwise monospace characters according to glyph widthProportional Kanapkna S1 Kana for use alongside alphabets, without grid typographyRuby Notation Formsruby S1 Ruby characters, small printHorizontal Kana Alternateshkna S1 Alternate forms for horizontal kana text, e.g. ー for chōonpu instead of |, cf. vknaVertical Kanavkna S1 Alternate Japanese kana forms for vertical text, e.g. | for chōonpu instead of ー, cf. hknaCentered CJK Punctuationcpct P1 Positions punctuation marks vertically and horizontally

Features primarily intended for or exclusively required by West-Asian (Semitic, Arabic) and other cursive scripts or fonts Long name tag type DescriptionCursive Positioningcurs P3 Precise positioning of a letter's connection to an adjacent oneJustification Alternatesjalt S3 User selectable wider and narrower alternates, used especially for justifyingMark Positioning via Substitutionmset S5 Used in Windows 95 for positioning of Arabic marksRequired Contextual Alternatesrclt S6Contextual alternates required for correct text display which differs from the default join for other letters, required especially important by ArabicRequired Ligaturesrlig S3 Ligatures required for correct text display (any script, but in cursive)Isolated Formsisol S1 Substitutes a special form of a letter occurring outside a word (required by Arabic and Syriac)Initial Formsinit S1 Substitutes a special form of a letter occurring at the beginning of a word (required by Arabic and Syriac)Medial Formsmedi S1 Substitutes a special form of letters between other letters in words (required by Arabic and Syriac)Medial Form #2med2 S5 SyriacTerminal Formsfina S1 Substitutes a special form of a letter at end of words (required by Arabic and Syriac)Terminal Form #2fin2 S5 SyriacTerminal Form #3fin3 S5 SyriacFinal Glyph on Line Alternatesfalt S3 Replaces final glyph on the line with an alternateStretching Glyph DecompositionstchS2 Substitutes a special form of a stretchy glyph onto one or more letters (required by Syriac)

Features intended for bicameral [cased] alphabets (Latin, Greek, Cyrillic, etc.) Long name tag type DescriptionSmall Capssmcp S1 Replaces lower-case letters with small caps versionsCapitals to Small Capsc2sc S1 Substitutes capital letters with small capsPetite Capspcap S1 Replaces lower-case letters with their petite caps analogsCapitals to Petite Capsc2pc S1 Replaces capital letters with petite capsUnicaseunic S1 Replaces lowercase and uppercase letters with a set of single case glyphsCapital Spacingcpsp P1 Adjusts spacing between letters in all-capitals textCase Sensitive Formscase P1 Replace characters, especially punctuation, with forms better suited for all-capital text, cf. titlItalicsital S1 Replaces letter with corresponding italic glyphOrdinalsordn S6,4 Replaces characters with ordinal forms for use after numbers

Features depending on writing direction Long name tag type DescriptionAlternative Vertical Metricsvalt P1 Positions shorter characters to be centered vertically with full-height charactersAlternative Vertical Half Metricsvhal P1 Positions characters to be centered vertically with half-height charactersProportional Alternate Vertical Metricsvpal P1 Re-positions glyphs vertically to be centered on proportional full-height charactersVertical Alternatesvert S1 A subset of vrt2: prefer the latter featureVertical Alternates and Rotationvrt2 S1 Replaces characters with forms suitable for vertical writing, possibly by rotating 90°Vertical Alternates for Rotationvrtr S1 Replaces characters with forms suitable for vertical writing, possibly by shifting or shapeVertical Kerningvkrn P2,8 Fine vertical positioning of characters based on shapeLeft-to-right glyph alternatesltra S1 Replaces characters with forms befitting left-to-right presentation (except mirrored forms)Left-to-right mirrored formsltrm S1 Replaces characters with possibly mirrored forms befitting left-to-right presentationRight-to-left glyph alternatesrtla S1 Replaces characters with forms befitting right-to-left presentation (except mirrored forms)Right-to-left mirrored formsrtlm S1 Replaces characters with possibly mirrored forms befitting right-to-left presentation

Features intended for digits and math Long name tag type DescriptionLining Figureslnum S1 Replaces numerals with glyphs meant to fit better in all-capitals text, often also tnumOldstyle Figuresonum S1 Replaces numerals with cased old-style numerals, often also pnumProportional Figurespnum S1 Replaces numerals with glyphs of proportional width, often also onumTabular Figurestnum S1 Replaces numerals with glyphs of uniform width, often also lnumFractionsfrac S4 Converts figures separated by slash with diagonal fractionAlternative Fractionsafrc S4 Converts figures separated by slash with alternative stacked fraction formDenominatordnom S1 Converts to appropriate fraction denominator form, invoked by fracNumeratornumr S1 Converts to appropriate fraction numerator form, invoked by fracScientific Inferiorssinf S1 as in "H2O", "SOx" or "YCbCr" (but using the same font weight and predefined position in contrast these plain HTML subs and sups)Slashed Zerozero S1 Replaces 0 figure with slashed 0Mathematical Greekmgrk S1 Replaces Greek characters with special forms for use in mathematicsFlattened accent formsflac This feature is applied to individual glyphs during layout of math formula.Dotless Formsdtls The dotless forms are to be used as base forms for placing mathematical accents over them.Math script style alternatesssty This feature can have a parameter indicating the script level: 1 for simple subscripts and superscripts, 2 for second level subscripts and superscripts (that is, scripts on scripts), and so on. (Currently, only the first two alternates are used). For glyphs that are not covered by this feature, the original glyph is used in subscripts and superscripts.

Ligation and alternate forms features intended for all scripts