India's constitution recognizes 22 scheduled languages, and most of them 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 explains that shared logic once, so the script-specific articles that follow can get straight to what's different about each one.
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.
Writing model
Syllables built from a base + dependent vowels + marks; conjuncts vary by script.
Mark placement + reordering + conjunct formation + language-specific forms.
Minimum OT toolkit
ccmploclmarkmkmk
1Why Indic scripts matter
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.
2The family story (without heavy linguistics)
Most scripts used in India descend from Brahmi, a script 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.
That shared layout is not an accident. The Unicode 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.
Once you know the pattern in one script's block, you can find your way around the others.
There are important 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, not a Brahmi
descendant. Meitei Mayek, used for Meitei in Manipur, is a genuine edge case: scholars are split on whether
it derives from Brahmic sources or developed on its own, though structurally 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.
3The big idea: syllable-centric writing ("abugida")
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, and other vowels are marked with 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.
4What makes Indic typography different from Latin
Shaping & conjuncts
Some scripts form conjuncts (cluster forms) that may involve half-forms, stacked shapes, or ligatures.
Reordering
Parts of a syllable can appear visually before/above/below the base even when encoded after it.
Marks & anchors
Mark positioning is a core quality marker: stable anchors, collision avoidance, and consistent zones.
Rendering engines
Your font is interpreted by shaping engines — HarfBuzz, DirectWrite, CoreText — and they don't always agree. Cross-engine testing matters.
Design takeaway
A "complete" glyph set isn't enough on its own. If marks don't anchor correctly or a shaping rule is missing,
readers see broken text — even when every individual letterform is well drawn.
5A map of scripts used in India (series menu)
This series starts with the nine scripts that share the ISCII-derived Unicode layout described above
(Devanagari, Bengali, Gujarati, Gurmukhi, Odia, Tamil, Telugu, Kannada, Malayalam), then covers scripts
outside that family — Meitei Mayek in Manipur, Ol Chiki for Santali — and finally optional historic scripts.
Devanagari Deva
Core
Headline, rich conjunct system, major languages and classical texts.
Rounded systems with complex combining behavior and collisions to manage.
Emphasis: bowls, anchors, text-size robustness.
Coming soon
Series note
We'll also cover Gujarati (Gujr) and Odia
(Orya) to complete the nine ISCII-layout scripts, then
Meitei Mayek (Mtei) and Ol Chiki
(Olck), plus optional historic and legacy scripts for
scholarly and display use.
6The designer's lens
Three ideas get conflated constantly, and keeping them separate will save you 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 single Devanagari character like क (U+0915) might be drawn as a base glyph,
a half-form glyph, or several conjunct-ligature glyphs, chosen entirely by context — the character
doesn't change, but the glyph does. Orthography then narrows the field further: not every
theoretically possible consonant cluster is one a native reader will ever type. Cluster-level quality,
not per-letter coverage, is what a shaping engine actually exposes.
Most Indic fonts rely on these essentials:
ccmp (composition),
locl (language forms),
mark + mkmk (mark attachment).
Script-specific features come next — and each script article will name them explicitly.
7Common cross-script pitfalls
Weak anchors
Marks drift, collide, or stack unpredictably across sizes and weights.
Missing "hard" clusters
Some syllables look fine, but real text breaks on common conjunct/mark combinations.
Over-tight spacing
Cluster collisions increase; word shapes get muddy at text sizes.
Not testing widely
A font that works in one app can fail in another due to different shapers.
Practical rule
Don't trust single-word tests. Test clusters, mixed marks, and real phrases, and check them again
on every platform you plan to ship on.
8How to use this series
1Read this article once for the shared concepts: syllables, marks, reordering, shaping engines.
2Pick your target script article (Devanagari, Gurmukhi, and more as they're published) — each follows the same structure.
3Use the Designer Starter Kit below to plan coverage, then use each article's test string pack to validate.
4Iterate: expand test strings → fix clusters → retest across apps and platforms → repeat.
If you're new: start with Devanagari
It teaches the core shaping concepts clearly (headline, conjunct strategy, dense marks) and builds instincts that transfer to many other scripts.
9Designer Starter Kit & test pack
The script-specific articles include a tailored test pack. This universal version covers the coverage plan,
the must-have OpenType features, and what to test before calling a script "done."
Minimum coverage plan
Core consonants and independent vowels
Dependent vowels (matras) and common marks
Virama/halant (where used)
Script numerals (and any common punctuation)
Language-specific forms (via locl)
Must-have OpenType features
ccmp — composition / pre-processing
locl — language-specific forms
mark — mark attachment
mkmk — mark-to-mark attachment
Script-specific shaping features as needed (covered in each script article)
Cluster patterns to include
Simple CV syllables (base + one vowel sign)
Base + top mark, base + bottom mark
Two marks stacking (mark + mark)
Virama/halant behavior (where relevant)
Common conjunct patterns (2-consonant and 3-consonant)
Numerals and punctuation mixed into text
Where to test
Web (Chromium / Firefox / Safari)
Office apps (Windows/macOS)
Adobe apps (InDesign/Illustrator) if relevant to your audience
Mobile (Android/iOS) for UI fonts
At multiple sizes and weights (text + headline)
Sample "generic" stringsReplace with script-specific syllables in each article.
Nimatype's own Unicode search and
block browser let you look up any of the code points mentioned in this
series directly — useful while you're building a coverage plan or double-checking a test string.
Quality checklist (universal)
No collisions in common clusters · predictable anchors · stable reordering · consistent spacing · tested across shapers.
10What's next
Continue with the script articles below. Each follows the same structure — Fast Facts, shaping model,
glyph production, and a script-specific test string pack — so once you've read one, you'll know your way
around the rest.