Gujarati Script

Gujarati carries the state of Gujarat, and Microsoft's own OpenType documentation states the relationship plainly: the script "is closely related to Devanagari." That's the most direct family tie in this entire series. Gujarati keeps Devanagari's ligated conjuncts, its reph, and its pre-base i-matra almost unchanged, and drops one thing: the continuous headline that unites a line of Devanagari text. It also adds two vowels Devanagari doesn't have, built for sounds that arrived through trade. This article covers its letters, that inheritance, and what a font needs to render it correctly.

Fast facts

Gujarati, in one screen

An abugida descended from Devanagari, keeping nearly all of its shaping mechanics while dropping the continuous headline.

ISO 15924
Gujr, Unicode block U+0A80 to U+0AFF
Languages
Official script of Gujarat, India, for the Gujarati language
Direction
Left to right, with no continuous headline, unlike its closest relative Devanagari
Signature complexity
Nearly Devanagari's full shaping model minus the shirorekha, plus two vowels for loanword sounds
1.Consonants and vowels

Gujarati's letter inventory tracks Devanagari's closely: 34 consonants and 13 dependent vowel signs, nearly a one-to-one match. Where it diverges is two independent vowels Devanagari's core set doesn't encode: and , "candra" (crescent) forms added to write vowel sounds, like the "a" in English "cat" or the "o" in "office," that came into Gujarati through centuries of trade contact and don't fit its native vowel set.

Independent vowels (14)
a
ā
i
ī
u
ū
ê (candra)
e
ai
ô (candra)
o
au
Consonants (34)
ka
kha
ga
gha
ṅa
ca
cha
ja
jha
ña
ṭa
ṭha
ḍa
ḍha
ṇa
ta
tha
da
dha
na
pa
pha
ba
bha
ma
ya
ra
la
ḷa
va
śa
ṣa
sa
ha
Dependent vowel signs (13) + virama
◌ાā
◌િi
◌ીī
◌ુu
◌ૂū
◌ૃ
◌ૄr̥̄
◌ૅê (candra)
◌ેe
◌ૈai
◌ૉô (candra)
◌ોo
◌ૌau
◌્virama
Other marks
◌ંanusvara
◌ઃvisarga
Om
Not shown
A candrabindu () and nukta () for transliterated sounds; an avagraha (); a historic rupee sign () and an abbreviation sign (); the extended vocalic RR and LL letters and their vowel signs; Gujarati's own digits; and a handful of additional signs added for specific historical or dialectal use. None of these are part of everyday running text.
2.What makes Gujarati distinctive: Devanagari without the headline

Microsoft's own OpenType documentation states the relationship without qualification: Gujarati "is closely related to Devanagari." Historically, the script grew out of a cursive, faster-to-write variant of Devanagari used for trade and commercial record-keeping, and the clearest visible trace of that history is what's missing: the shirorekha, the continuous horizontal line that runs across the top of a line of Devanagari text. Gujarati letters keep the same basic shapes without it, each one sitting independently on the baseline.

Everything below that headline carries over. Gujarati ligates conjuncts the way Devanagari does, uses the same reph mechanism for an initial "Ra," and reorders its i-matra to the left of its consonant, the same pre-base pattern the series introduction described. The one clear addition is the pair of candra vowels, and , built specifically to carry sounds that arrived through loanwords rather than through Gujarati's native phonology.

3.Visual anatomy: baseline without a headline

Picture this word in Devanagari and a single horizontal stroke would run across the top, linking every letter into one continuous line. Gujarati drops that stroke and nothing else: the baseline still anchors the word, and each letter still reaches whatever height its own shape calls for.

Gujarati zones, illustrated with the word Gujarati The word Gujarati in Gujarati script, with guide lines marking the baseline and letter tops, showing the absence of a continuous headline that Devanagari would carry here. Visual anatomy No shirorekha to connect them Letter tops (no headline) Baseline Below-base zone ગુજરાતી

Compare this to the series introduction's Devanagari diagram: the same rough letterforms, the same general proportions, but no horizontal stroke tying the tops together. and attach above and below and in the ordinary way; the word simply reads as a row of independent letters rather than a line hanging from a bar.

4.How a syllable is built

Gujarati's reordering rules mirror Devanagari's almost exactly. The i-matra shifts to a pre-base position, an initial "Ra" that isn't the syllable's base rises into reph above the following consonant, and the two candra vowel signs attach in their own position to mark a loanword sound.

કિ
Pre-base i-matra
+ vowel sign I → કિ
ધર્મ
Reph
duty, religion · rises above
બૅન્ક
Candra vowel
bank (loanword) · marks the borrowed vowel

કિ reorders exactly the way the series introduction described for Devanagari. ધર્મ ("duty, religion") shows reph doing the same job it does across the northern scripts in this series: a bare "Ra" at the start of a cluster rises above the line instead of staying at reading-order position. And બૅન્ક ("bank"), a loanword from English, shows why the candra vowels exist: the "a" sound here has no native Gujarati vowel sign that fits it.

5.Conjuncts, inherited from Devanagari

Gujarati ligates consonant clusters the same way Devanagari does, building dedicated conjunct shapes rather than falling back to a generic stack or a bare mark. This applies equally to native vocabulary and to loanwords, which keep their consonant clusters even when their vowels need a candra sign to render correctly.

ક્ષ
Classic conjunct
+ → kṣa
નમસ્તે
Conjunct in a real word
hello · સ્ત ligates
સ્કૂલ
Conjunct in a loanword
school · સ્ક ligates like any native cluster

ક્ષ is the same conjunct this series has tracked through Devanagari, Tamil, and Telugu, and Gujarati draws it the way Devanagari does, as one fused shape. નમસ્તે ("hello") shows the same treatment inside an everyday word. સ્કૂલ ("school"), borrowed from English, proves the point about candra vowels: the vowel sounds need special letters, but the consonant cluster mechanics don't change at all.

6.The shaping model for Gujarati

Gujarati uses essentially the same feature set as Devanagari, applied the same way. The only meaningful addition is glyph coverage for the candra vowels, which need their own dedicated forms rather than a reused diacritic borrowed from another mark.

FeatureTagWhat it builds here
Localized formsloclSwaps in Gujarati-specific glyph shapes where they differ from the script default.
Nukta formsnuktSubstitutes nukta-marked consonants for sounds outside the native set.
Akhand ligaturesakhnRequired ligatures formed before any reordering happens.
RephrphfSubstitutes the above-base form of an initial, non-base "Ra."
Half formshalfBuilds the reduced pre-base form of a consonant that ligates into the next.
Conjunct formscjctForms dedicated ligatures like ક્ષ and સ્ત.
Post-base formspstfPositions right-attaching signs like .
Above/below-base marksabvm / blwmFinal positioning of vowel signs and the candra marks that attach above the base glyph.

A font that already handles Devanagari's conjunct ligation, reph, and pre-base reordering is most of the way to a working Gujarati implementation; what's left is drawing every letter without a headline stub and adding clean, dedicated glyphs for the two candra vowels.

7.Rendering pitfalls
SymptomLikely causeFix
Letters look like they carry a partial or broken top strokeGlyphs adapted from a Devanagari design without fully removing the headline stubRedraw each letter's top independently rather than trimming a shirorekha-bearing glyph
The i-matra doesn't reorder before its consonantMissing or misconfigured pre-base reordering lookupTest કિ explicitly, not just post-base vowel signs
Reph collides with a pre-base i-matra in the same syllableNo coordinated anchor between the two above-base elementsTest words that carry both reph and the i-matra together, not each in isolation
Candra vowels render as a generic mark or fall back to tofuFont doesn't include dedicated glyphs for and Draw both candra vowels and their matching dependent signs as first-class glyphs
Common conjuncts render as separate letters instead of a ligatureMissing cjct substitution for that consonant pairBuild dedicated ligatures for frequent clusters, the same way a Devanagari font would
Practical rule
Test with real words, not isolated letters. ધર્મ, બૅન્ક, and નમસ્તે each exercise a different part of the pipeline, reph, a candra vowel, and a native conjunct, and a font can pass a single-letter check while still failing all three.
8.Design and production checklist
  1. 1Draw all 34 consonants and 14 independent vowels, including the two candra vowels, at consistent weight.
  2. 2Build dedicated conjunct ligatures the way a Devanagari font would, not a generic fallback stack.
  3. 3Implement reph and pre-base i-matra reordering, and test them together in the same syllable.
  4. 4Draw the candra vowels and their dependent signs as dedicated glyphs, not reused diacritics.
  5. 5Double-check every letter's top is drawn clean, with no leftover headline stub from a Devanagari-derived design.
  6. 6Test across shaping engines and at multiple sizes and weights before calling the script done.
9.Test strings

Copy these into a test document. Each targets a different part of the shaping pipeline covered above.

ગુજરાતીThe script's own name, no continuous headline (Gujarati)
કિPre-base i-matra, reordered left
ધર્મReph, an initial non-base "Ra" (duty, religion)
બૅન્કCandra vowel in a loanword (bank)
ક્ષClassic Devanagari-style conjunct ligature
નમસ્તેConjunct and vowel signs together (hello)