Introduction to Indic Scripts
India's constitution recognizes 22 scheduled languages, and most are written in scripts that share a common ancestor and a common logic: a consonant carries a built-in vowel until a mark changes it. This article covers that shared logic once, so the script-specific articles that follow can get straight to what's different about each one.
Indic scripts, in one screen
Most scripts used in India descend from Brahmi and are syllable-centric abugidas. Their typography depends on shaping engines and precise mark positioning, not just glyph coverage.
Indic scripts are in daily use across education, publishing, signage, government identity documents, and software interfaces for hundreds of millions of readers. When a font handles them poorly, the failure isn't cosmetic: misplaced marks and broken conjuncts make text genuinely harder to read, and readers notice.
Most scripts used in India descend from Brahmi, attested from the 3rd century BCE. Descent doesn't mean the letterforms look alike (Tamil and Devanagari share almost no visible resemblance), but it does mean they inherited a common structural logic and a common internal layout inside Unicode. The blocks for Devanagari, Bengali, Gurmukhi, Gujarati, Odia, Tamil, Telugu, Kannada, and Malayalam were built to mirror the 1988 ISCII standard: the independent vowel A, consonant KA, vowel sign AA, and so on sit at the same relative offset in every one of those blocks. Learn the pattern in one script's block and you can find your way around the rest.
There are exceptions. Urdu is written in the Perso-Arabic tradition (right to left, no inherent vowel), not Brahmic at all. Ol Chiki, designed in 1925 by Raghunath Murmu for the Santali language and used today across Jharkhand, West Bengal, and Odisha, is a deliberately independent invention. Meitei Mayek, used for Meitei in Manipur, is a genuine edge case: scholars are split on whether it derives from Brahmic sources, though it behaves as an abugida either way. This series treats each script on its own terms rather than forcing a single family tree onto all of them.
Linguist Peter T. Daniels coined the term abugida in 1990, borrowed from the first four letters of the Ethiopic Ge'ez script, for writing systems where each base character denotes a consonant plus a default (inherent) vowel, with other vowels marked by diacritics rather than full letters. Most Indic scripts fit this pattern: a consonant carries its inherent vowel until a dependent vowel sign (mātrā) attaches before, after, above, or below it, and additional marks modify the sound or spelling further.
For designers, this is the key shift from Latin. You aren't drawing isolated, self-sufficient letters. You're building a combining system that a shaping engine assembles into syllable clusters at render time, and the order you type in isn't always the order the glyphs end up in.
Before the shaping model, it helps to simply see the letters. Below are the core consonant and vowel inventories for Devanagari and Gurmukhi, the two scripts most northern readers will recognize first, set in their native fonts rather than transliterated, since Latin approximations hide exactly the visual texture a designer needs to look at. Every script article in this series opens with the same treatment for its own script, down to Unicode's own letter counts.
Devanagari
DevaGurmukhi
GuruGurmukhi builds its vowels differently. Three consonant-shaped letters, ੳ (ura), ਅ (aira), and ੲ (iri), act as vowel bearers, and the ten vowel sounds below are formed by attaching a matra to one of the three. Traditional counting (the "Painti," or thirty-five) includes those three bearers among the consonants; shown separately here, they add up to the same thirty-five.
Three ideas get conflated constantly, and keeping them separate saves real debugging time: Unicode (the encoded characters a string contains), glyphs (the shapes you draw in the font), and orthography (the spelling and usage conventions of a given language). One Unicode character can map to several glyphs depending on context, one glyph can serve several characters, and orthography decides which combinations actually occur in real text. A shaping engine works in four stages: it analyzes the text into syllable clusters, reorders characters where the script requires it, applies GSUB features to pick the right glyph shapes, then applies GPOS features to position glyphs and marks.
| Feature | Tag | What it does |
|---|---|---|
| Localized forms | locl | Swaps in language-specific glyph shapes once the text is tagged with a language. |
| Reph formation | rphf | Builds the above-base "reph" form of a leading Ra before a halant. |
| Half forms | half | Builds the pre-base "half" form a consonant takes when it doesn't carry the vowel. |
| Pre-base reordering | pref | Flags a consonant (typically Ra) that moves before the base at render time. |
| Below-base forms | blwf | Builds the form a consonant takes when it stacks below the base. |
| Post-base forms | pstf | Builds the form a consonant takes when it sits after the base, still attached. |
| Mark attachment | mark | Anchors a combining mark to its base glyph. |
| Mark-to-mark | mkmk | Anchors a second mark to a mark that's already attached, for stacking diacritics. |
Font developers control shaping by choosing which glyphs they assign to each feature, not by hand-placing forms. Every script article in this series names the exact subset it depends on and shows the syllable structure those features produce.
This series covers all nine scripts that share the ISCII-derived Unicode layout described above (Devanagari, Bengali, Gujarati, Gurmukhi, Odia, Tamil, Telugu, Kannada, Malayalam), and will go on to cover scripts outside that family, then optional historic scripts. Read this article once for the shared concepts, then go to whichever script article you need next: each one follows the same structure, opening with its own consonant and vowel inventory before getting into shaping and production.
Devanagari Deva
CoreHeadline, rich conjunct system, major languages and classical texts.
Gurmukhi Guru
CoreNo continuous headline, addak, and a small set of subjoined (pairī) forms.
Tamil Taml
CoreThe leanest consonant set in the series, no conjunct ligatures, and optional Grantha extensions.
Telugu Telu
SouthBelow-base "vattu" stacking up to three consonants deep, with no pre-base vowel reordering at all.
Kannada Knda
SouthThe same below-base stacking mechanism as Telugu, drawn as a noticeably more compact hook.
Malayalam Mlym
SouthTamil-like letterforms, but a full conjunct tradition and nine dedicated chillu letters.
Gujarati Gujr
WestNearly Devanagari's full shaping model minus the shirorekha, plus two vowels for loanword sounds.
Bengali Beng
CoreNamed ra-phala and ya-phala subjoined forms, plus khanda ta, a dedicated letter for a vowelless consonant.
Odia Orya
EastThe same reph, ra-phala, and post-base Yya forms as Bengali, drawn in letterforms built almost entirely from loops.