Telugu Script
Telugu carries Andhra Pradesh and Telangana, and it takes the series' throughline on consonant clusters in the opposite direction from Tamil. Where Tamil mostly avoids conjuncts, Telugu builds them constantly, but not by ligating sideways the way Devanagari does: it stacks a reduced form of each extra consonant straight down, below the base letter, sometimes two or three deep. This article covers its letters, that vertical stacking system, and what a font needs to render it correctly.
Telugu, in one screen
An abugida descended from Brahmi, with rounded, loop-heavy letterforms and a consonant-cluster system built entirely around vertical stacking below the base.
Telugu's Unicode block holds 14 independent vowels, each carrying its inherent "a" sound until a dependent vowel sign changes it, and 36 consonants, more than either Devanagari or Tamil. Like Tamil, Telugu distinguishes short and long e and o as separate vowels, a Dravidian feature the northern scripts in this series don't share.
The series so far has tracked how each script handles a consonant cluster, and the range keeps widening. Devanagari ligates a cluster into a conjunct, reshaping the letters that share it. Tamil mostly skips reshaping altogether, marking a bare consonant with a pulli and moving on. Telugu sits at the opposite end from Tamil: nearly every cluster gets reshaped, but downward rather than sideways. The second consonant in a cluster typically shrinks into a below-base form, called a vattu, and drops directly under the first. A third consonant can stack under that, building a short vertical tower instead of a horizontal ligature.
Microsoft's own OpenType documentation for Telugu defines this explicitly: a below-base form is one of the standard consonant classifications a font declares through the blwf feature, alongside half forms and the pre-base and above-base forms used for "Ra." In principle Telugu also supports reph, the above-base form of "Ra" used in Devanagari when Ra opens a cluster it doesn't belong to. In practice, many Telugu fonts, including the one rendering this page, skip reph entirely and give initial Ra a below-base vattu form like any other consonant, which keeps the whole system pointed in one direction: down.
Telugu has no continuous headline, so the baseline does the same anchoring work it does in Tamil. But the zone below the baseline works much harder here: instead of a shallow dip from rounded letterforms, it has to hold entire stacked consonants, and a three-consonant cluster can reach nearly half the height of the base letter itself.
లక్ష్మి ("Lakshmi") shows the system at full depth. The first letter, ల, sits on the baseline like any consonant. What follows is a single visual column built from three consonants: క on top, a reduced vattu form of ష stacked directly under it, and మ as the base at the bottom, carrying the vowel sign ి that closes the word. All three consonants belong to one syllable, kṣmi, and a font has to draw that stack as a single coordinated shape, not three glyphs placed on top of each other and hoped into alignment.
The series introduction showed a Devanagari vowel sign reordering to the left of its consonant at render time, and Tamil reorders a different sign the same way. Telugu doesn't reorder any vowel sign to a pre-base position at all. Every dependent vowel sign in Telugu attaches above, below, or to the right of its consonant, exactly where it was typed, in reading order.
Between them, those three signs cover every direction Telugu uses for vowel attachment except one: it never moves a sign in front of its consonant. Short and long e and o (ె ే ొ ో) modify the top of the consonant's own stroke rather than adding a fully separate mark, which is why they can look like a small change to the letter itself rather than an addition to it.
When a Telugu consonant has no vowel and is followed by another consonant, the font doesn't leave it bare with a visible virama the way Tamil does. It substitutes a reduced below-base form, the vattu, and drops it under the consonant that follows. Doubled consonants, common in everyday words, are the simplest case.
In అక్క ("elder sister"), the second క shrinks to a small loop under the first, a shape most Telugu speakers stop consciously noticing as a separate letter. సంస్కృతం ("Sanskrit") stacks స and క the same way, then adds the vocalic-r vowel sign ృ underneath that. And వర్షం ("rain") is the case section 2 mentioned directly: "Ra" opens a cluster here, the textbook condition for reph in Devanagari, but this font stacks it below ష as a vattu instead of raising it above the line.
Telugu uses the full Indic feature set the series introduction described, more of it than Tamil calls on and organized around the same downward stacking logic as Devanagari's below-base and half forms. The practical difference is which features do the heavy lifting: Devanagari leans on ligation and reph, Telugu leans on below-base substitution.
| Feature | Tag | What it builds here |
|---|---|---|
| Localized forms | locl | Swaps in Telugu-specific glyph shapes where they differ from the script default. |
| Nukta forms | nukt | Rarely used; Telugu has few sounds borrowed through nukta marks. |
| Akhand ligatures | akhn | Required ligatures formed before any reordering or stacking happens. |
| Reph | rphf | Defined in the spec for above-base "Ra," but skipped by many fonts in favor of a below-base vattu. |
| Below-base forms | blwf | Builds the vattu forms behind Telugu's vertical stacking, the script's main conjunct mechanism. |
| Half forms | half | An alternate reduced form for a pre-base consonant, used by some fonts instead of a full vattu. |
| Post-base forms | pstf | Positions right-attaching signs like ా. |
| Above/below-base marks | abvm / blwm | Final positioning of vowel signs that attach above (ి ీ ె ే ొ ో) or below (ు ూ ృ ౄ) the base glyph. |
Applied in order, these features decide which consonant in a cluster becomes the base, reduce every other consonant to a stacked vattu form, then position whatever vowel sign the syllable carries around the result. A font that handles below-base substitution and mark attachment correctly has covered most of what Telugu orthography asks of it.
| Symptom | Likely cause | Fix |
|---|---|---|
| Two- or three-level vattu stack collides with the line above or below it | Insufficient vertical clearance reserved for stacking | Test deep stacks like క్ష్మి against tight line spacing, not just isolated words |
| An initial "Ra" cluster renders inconsistently between fonts | Some fonts implement reph (rphf), others fall back to a vattu; both are spec-valid | Decide deliberately which convention the font follows and apply it consistently, not per-glyph |
| Above-base vowel signs collide with a tall consonant's own loop | Fixed anchor position rather than a per-glyph mark attachment point | Use mark-to-base anchors tuned to each consonant's actual top shape |
| Common conjuncts like క్ష render as a generic stack instead of a refined shape | No dedicated ligature glyph, so the font falls back to mechanical stacking | Draw frequent conjuncts as dedicated glyphs rather than always genericizing |
| Rounded strokes look mechanically uniform at heavy weights | Stroke expansion applied evenly without adjusting curve tension | Adjust counters and curve tension as weight increases to preserve the script's calligraphic roundness |
- 1Draw all 36 consonants and 14 independent vowels at consistent weight, keeping curves properly rounded rather than flattened.
- 2Build below-base vattu forms for consonants that commonly cluster, and test them stacking two and three deep.
- 3Decide whether an initial "Ra" takes a reph form or a vattu form, and implement rphf or blwf consistently across the font.
- 4Construct above-base vowel signs with anchors tuned to each consonant's own top shape, not one fixed position.
- 5Test below-base vowel signs against consonants that already carry a vattu stack, since both compete for the same zone.
- 6Test across shaping engines and at multiple sizes and weights before calling the script done.
Copy these into a test document. Each targets a different part of the shaping pipeline covered above.