Hindi
Orthography notes

Updated 17 December, 2024

This page brings together basic information about the Devanagari script and its use for the Hindi language. It aims to provide a brief, descriptive summary of the modern, printed orthography and typographic features, and to advise how to write Hindi using Unicode.

Referencing this document

Richard Ishida, Hindi Orthography Notes, 17-Dec-2024, https://r12a.github.io/scripts/deva/hi

Sample

Select part of this sample text to show a list of characters, with links to more details.
Change size:   36px

अनुच्छेद १. सभी मनुष्यों को गौरव और अधिकारों के मामले में जन्मजात स्वतन्त्रता और समानता प्राप्त है । उन्हें बुद्धि और अन्तरात्मा की देन प्राप्त है और परस्पर उन्हें भाईचारे के भाव से बर्ताव करना चाहिए ।

अनुच्छेद २. सभी को इस घोषणा में सन्निहित सभी अधिकारों और आज़ादियों को प्राप्त करने का हक़ है और इस मामले में जाति, वर्ण, लिंग, भाषा, धर्म, राजनीति या अन्य विचार-प्रणाली, किसी देश या समाज विशेष में जन्म, सम्पत्ति या किसी प्रकार की अन्य मर्यादा आदि के कारण भेदभाव का विचार न किया जाएगा । इसके अतिरिक्त, चाहे कोई देश या प्रदेश स्वतन्त्र हो, संरक्षित हो, या स्त्रशासन रहित हो या परिमित प्रभुसत्ता वाला हो, उस देश या प्रदेश की राजनैतिक, क्षेत्रीय या अन्तर्राष्ट्रीय स्थिति के आधार पर वहां के निवासियों के प्रति कोई फ़रक़ न रखा जाएगा ।

Source: Unicode UDHR, articles 1 & 2

Usage & history

Origins of the Devanagari script, 11thC – today.

Phoenician

└ Aramaic

└ Brahmi

└ Gupta

└ Siddham

└ Nagari

└ Devanagari

+ Kaithi

+ Nandinagari

+ Gujarati

+ Modi

Devanagari is used in India and Nepal for almost 200 languages, making it the fourth most widely adopted writing system in the world. Among the others, it is the script used for writing Sanskrit and Hindi.

देवनागरी

Devanagari is a descendant of the 3rd century BCE Brahmi script through the Gupta script and then the closely related Nagari script. The modern standardised form of Devanagari was in use by about 1000 CE. An early version in the Kutila inscription of Bareilly, dated to 992 CE, demonstrates the emergence of the horizontal bar to group letters belonging to a word.

It has long been used traditionally by religiously educated people throughout South Asia to record and transmit information, and often appears in parallel with a wide variety of local scripts.

More information: Scriptsource, Wikipedia

Basic features

Devanagari is an abugida. Consonant letters have an inherent vowel sound. Combining vowel signs are attached to the consonant to indicate that a different vowel follows the consonant. See the table in the right-hand column for a brief overview of features of the Hindi language.

Devanagari text runs left-to-right in horizontal lines.

Orthographic syllables (as opposed to phonetic syllables) play a significant role in Devanagari. An orthographic syllable starts at the beginning of any cluster of consonants and incorporates the whole cluster plus any following vowels and diacritics.

❯ consonantSummary

Phonetically, Hindi, like other Indic languages, has four forms of plosives, illustrated here with the bilabial stop: unvoiced p, voiced b, aspirated , and murmured . It also has a set of retroflex consonants. These are all represented separately in the orthography.

The 33 consonant letters used for Hindi are supplemented by repertoire extensions for 8 more non-native sounds by applying the nukta diacritic to characters.

Consonant clusters at any location are normally indicated using the virama between consonants. This results in a large number of conjunct forms expressed using half-forms, stacked consonants, and ligated glyphs. Occasionally, a visible virama is used.

As part of a cluster, RA has special forms. When initial in an orthographic syllable it appears as a hook at the top right of the whole syllable. When non-initial it appears as one of 2 special marks applied to the other consonants.

Word-final consonant sounds may be represented by 2 dedicated combining marks (anusvara & visarga), but are generally ordinary consonants that are not marked by a virama. Also, the inherent vowel of a penultimate consonant in a word of 3 syllables that ends in a non-inherent vowel is usually elided, and not marked as such.

❯ basicV

The Hindi orthography is an abugida with one inherent vowel. It represents other post-consonant vowels using 11 vowel signs. All are combining marks, and a single Unicode character is used per base consonant.

There are no circumgraphs nor multipart vowels, but there is 1 pre-base vowel sign.

Standalone vowel sounds are written using 12 independent vowels, one for each vowel sound, including the inherent vowel.

Vowels may be nasalised, using the candrabindu diacritic.

Hindi uses native number digits. Punctuation is mostly ASCII, but dandas may be used for phrase boundaries.

The Unicode Devanagari block contains more characters than other indic scripts, partly because it serves as a pivot script for transliterations of other scripts.

Character index

Letters

Show

Consonants

प␣फ␣ब␣भ␣त␣थ␣द␣ध␣ट␣ठ␣ड␣ढ␣क␣ख␣ग␣घ␣च␣छ␣ज␣झ␣स␣श␣ष␣ह␣म␣न␣ञ␣ण␣ङ␣व␣र␣ल␣य␣क़␣फ़␣ज़␣ख़␣ग़␣ड़␣ढ़

Independent vowels

इ␣ई␣उ␣ऊ␣ए␣अ␣ओ␣ऐ␣औ␣आ␣ऍ␣ऑ

Vocalic

Other

ऽ␣ॐ

Combining marks

Show

Vowel signs

ि␣ी␣ु␣ू␣े␣ो␣ै␣ौ␣ा␣ॅ␣ॉ

Vocalic

Other

़␣्␣ँ␣ं␣ः

Numbers

Show
०␣१␣२␣३␣४␣५␣६␣७␣८␣९

Punctuation

Show
।␣॥␣॰␣‘␣’␣“␣”␣—

ASCII

!␣(␣)␣,␣.␣:␣;␣?␣-␣%

Symbols

Show

Not used for modern Hindi

Other

Show
‌␣‍

To be investigated

[␣]␣ʼ␣͏␣​␣‑␣–␣—␣…␣‰
Items to show in lists

Phonology

Click on the sounds to reveal locations in this document where they are mentioned.

Phones in a lighter colour are non-native or allophones. Source Wikipedia.

Vowel sounds

ɪ ɪ ʊ ʊ ə ə ɛː ɛː ɔː ɔː æ æ ɑː ɑː

The phoneme ə is often written a in phonemic transcriptions. Its pronunciation may also be slightly lower (such as ɐ).

and in word-final position are typically shortened to i and u,wp,#Vowels eg. शक्ति वस्तु

Where ɦ has inherent vowels on either side, those vowels may become ɛ, eg. कहना

A similar process occurs for word-final ɦ,wp,#Vowels eg. कह

For more details, see Wikipedia.

Consonant sounds

labial dental alveolar post-
alveolar
retroflex palatal velar uvular glottal
stops p b t d     ʈ ɖ   k ɡ q ʔ
aspirated     ʈʰ ɖʱ   ɡʱ    
affricates       t͡ʃ d͡ʒ          
aspirated       t͡ʃʰ d͡ʒʱ          
fricatives f v   s z ʃ ʂ   x ɣ   h ɦ
nasals m   n   ɳ ɲ ŋ  
approximants ʋ w   l     j    
trills/flaps     r ɾ   ɽ  
aspirated         ɽʱ  

Hindi, like other Indic languages, has four forms of plosives, illustrated here with the bilabial stop: unvoiced p, voiced b, aspirated , and murmured . It also has a set of retroflex consonants.

v and w are allophones of ʋ in Hindi. w typically occurs between a consonant and vowel,wp,#Allophony_of_[v]_and_[w] eg. compare पकवान व्रत

For more details, see Wikipedia.

Structure

The effective unit of the writing systems is the orthographic syllable, consisting of a consonant and vowel (CV) core and, optionally, one or more preceding consonants, with a canonical structure of (((C)C)C)V.u

Consonant letters by themselves constitute a CV unit, where the V is an inherent vowel, whose exact phonetic value may vary by writing system. Independent vowels also constitute a CV unit, where the C is considered to be null. A dependent vowel sign is used to represent a V in CV units where C is not null and V is not the inherent vowel. u

In some cases, a phonological diphthong, such as Hindi जाओ ɟāọ̄ is actually written as two orthographic CV units, where the second of these units is an independent vowel letter. u

Two diacritics (generally classified as vowels) can be used to represent a syllable-final nasal or an unvoiced aspiration. Medial consonants are catered for by the consonant cluster model. Diacritics are also used to nasalise vowel sounds.

Vowels

Vowel summary table

The following table summarises the main vowel to character assigments.

ⓘ represents the inherent vowel. Dependent vowels are on the left, standalone vowels on the right. Diacritics are added to the vowels to indicate nasalisation (not shown here).

Plain:
ि␣ी␣ु␣ू
इ␣ई␣उ␣ऊ
े␣ो
ए␣ओ
ै␣ौ␣ॉ
ऐ␣औ␣ऑ
ॅ␣ा
ऍ␣आ
Vocalics:

For additional details see vowel_mappings.

Inherent vowel

ka [U+0915 DEVANAGARI LETTER KA]

a following a consonant is not written, but is seen as an inherent part of the consonant letter, so ka is written using just the consonant letter.

Vowels after consonants

Post-consonant vowels are written using 11 vowel signs. All are combining marks, and a single Unicode character is used per base consonant.

There are no circumgraphs nor multipart vowels, but there is 1 pre-base vowel sign..

Vowel signs

की kiː [U+0915 DEVANAGARI LETTER KA + U+0940 DEVANAGARI VOWEL SIGN II]

Hindi uses the following dedicated combining marks, called vowel signs, to write vowels.

ि␣ी␣ु␣ू␣े␣ो␣ै␣ौ␣ा

It also includes 2 vowel signs used for sounds in foreign (especially English) loan words.

ॅ␣ॉ

Six vowel signs are spacing combining characters, meaning that they consume horizontal space when added to a base consonant.

All vowel signs are typed and stored after the base consonant, and the rendering process puts them in the correct place for display.

An orthography that uses vowel signs is different from one that uses simple diacritics or letters for vowels, in that the vowel signs are generally attached to an orthographic syllable, rather than just applied to the letter of the immediately preceding consonant. In other words, pre-base vowel sign components are rendered before a whole consonant cluster if that cluster is rendered as a conjunct (see prebase for an example).

Pre-base vowel sign

कि ki U+0915 DEVANAGARI LETTER KA + U+093F DEVANAGARI VOWEL SIGN I

One vowel sign appears to the left of the base consonant letter or cluster.

ि

This is a combining mark that is always typed and stored after the base consonant(s), ie. the codepoints follow the order in which the items are pronounced. The rendering process places the glyph before the base consonant without changing the code points. Click on the following word to see the sequence of characters in storage.

दिन

It is actually placed before the start of an orthographic syllable. In fig_prebase the sequence of glyphs for the orthographic syllable is rendered VCC, whereas the pronunciation is CCV. In conjuncts with 3 consonants, it will still be rendered before the consonants.

शक्ति
A prebase vowel, pronounced after a consonant cluster, but rendered to the left of the conjunct.
show composition

शक्ति

However, if the cluster is split by a visible virama, this creates two syllables and the pre-base vowel sign appears after the last consonant with the virama. The sequence of displayed glyphs is now CVC. If the conjunct contains 3 consonants, the displayed order will be CCVC.

शक्ति
The same word, but without the conjunct. The vowel is now rendered to the left of the last consonant in the cluster.
show composition

शक्ति

Vowel lengthening

An extra-long, sustained vowel sound can be indicated using [U+093D DEVANAGARI SIGN AVAGRAHA], eg. आईऽऽऽ! <aiii!>

This was originally used as a vowel elision marker in Sanskrit.

Nasalisation

ँ␣ं

Any vowel in Hindi can be nasalised, except for the vocalics.s

Nasalisation is usually indicated using [U+0901 DEVANAGARI SIGN CANDRABINDU], eg. मुँह

When a vowel sign rises above the head line, the glyph for this character may be simplified to just a dots, which can be written using [U+0902 DEVANAGARI SIGN ANUSVARA] instead of candrabindu, eg. हैं

The distinction between use of [U+0901 DEVANAGARI SIGN CANDRABINDU] and [U+0902 DEVANAGARI SIGN ANUSVARA] is not always clearly defined. For example, snake can be written in both of the following ways: साँप सांप

Standalone vowels

Devanagari represents standalone vowels using a set of ‘independent vowel’ letters. The set contains a character to represent the inherent vowel sound.

Independent vowels used by Hindi:

इ␣ई␣उ␣ऊ␣ए␣अ␣ओ␣ऐ␣औ␣आ

Two more are used for sounds in loan words.

ऍ␣ऑ

The following combinations are also regarded as letters of the alphabet.

अं␣अः␣अँ

Examples:

ईंधन

कटाई

ऑफ़िस

अँगरेज़ी

Note the sound difference between the use of a standalone vowel vs. a vowel sign after a consonant: नई nị̄ nəiː नी niː

Vowel absence

The inherent vowel is not always pronounced. For example in Hindi it is not usually pronounced at the end of a word, although a ghost echo may appear after a word-final cluster of consonants, eg. योग्य राष्ट्र

In addition Hindi has a general rule that when a word has three or more syllables and ends in a vowel other than the inherent a, the penultimate vowel is not pronounced, eg. compareसमझ smjʱ səməɟʱ समझा smjʱā səmɟʱaːandरहन rhn rəhən रहना rhnā rəhnaː

(For a number of reasons, however, this rule does not always hold.)

Devanagari uses [U+094D DEVANAGARI SIGN VIRAMA] (called halant in Hindi) to kill the inherent vowel after a consonant. The virama is rarely seen. As just mentioned, no virama is used at the end of a word, or in the penultimate syllable where the above rules apply. The virama is also usually hidden when the consonant is part of a consonant cluster (see clusters). The virama is visible, however, if it isn't followed by a consonant, eg. the following explicitly represents just the sound k,क्

Vowel sounds to characters

This section maps Hindi vowel sounds to common graphemes in the Devanagari orthography.

Sounds listed as 'infrequent' are allophones, or sounds used for foreign words, etc. Light coloured characters occur infrequently.

vowel sign

standalone

ɪ

vowel sign ि

standalone

ʊ

vowel sign

standalone

vowel sign

standalone

vowel sign

standalone

vowel sign

standalone

oːm

symbol

ə

inherent vowel eg. क़लम

standalone

ə̃

standalone अँ

standalone अं

ə(ɦ)

standalone अः

ɛː

vowel sign

standalone

ɔː

vowel sign

standalone

ɔ

vowel sign

standalone

vowel sign

standalone

æ

vowel sign Used for non-native sounds in loan words, especially English.

standalone

◌̃

nasalisation

alternative 0902 Occasionally used to spell the same words.

Vocalics

In Devanagari, vocalics are available both as vowel signs and independent vowels.

Hindi generally uses just one vocalic.

ृ␣ऋ

Other vocalics are used for Sanskrit.

ॄ␣ॢ␣ॣ␣ॠ␣ऌ␣ॡ

Consonants

Consonant summary table

The following table summarises the main consonant to character assigments.

Stops
प␣ब␣त␣द␣ट␣ड␣क␣ग␣क़
Aspirated
फ␣भ␣थ␣ध␣ठ␣ढ␣ख␣घ
Affricates
च␣छ␣ज␣झ
Fricatives
फ़␣व␣स␣ज़␣श␣ष␣झ़␣श़␣ख़␣ग़␣ह
Nasals
म␣न␣ञ␣ण␣ङ
Other
व␣र␣ड़␣ढ़␣ल␣य
Finals
ं␣ः

For additional details see vowel_mappings.

Basic consonants

Basic set of consonants, used for Hindi and Sanskrit. (Phonetic information for Hindi.)

प␣फ␣ब␣भ␣त␣थ␣द␣ध␣ट␣ठ␣ड␣ढ␣क␣ख␣ग␣घ␣ ␣च␣छ␣ज␣झ␣ ␣व␣स␣श␣ष␣ह␣ ␣म␣न␣ञ␣ण␣ङ␣ ␣व␣र␣ल␣य

Hindi also counts 3 character combinations as consonantal letters of the alphabet.

त्र␣ज्ञ␣क्ष

Repertoire extension

[U+093C DEVANAGARI SIGN NUKTA] is used to represent foreign sounds, eg. in the following example the dot changes to ख़ x ख़ारीदारी

A list of graphemes used in Hindi that combine nukta with an existing consonant. These are all counted as letters of the Hindi alphabet. The 5th one is very rare.

क़␣फ़␣ज़␣झ़␣श़␣ख़␣ग़␣ड़␣ढ़

The nukta should always be typed and stored immediately after the consonant it modifies, and before any combining vowels or diacritics.

The Unicode block also contains the following precomposed code points for the sequences used in Hindi.

क़␣फ़␣ज़␣ख़␣ग़␣ड़␣ढ़

The Unicode Standard recommends not to use the precomposed code points for Hindi, but instead to use the base+nukta sequences. See also nukta_encoding for more information.

Onsets

Clusters of consonant letters at the beginning of an orthographic syllable occur in Hindi, and they are handled as described in the section clusters.

Special behaviours include handling of RA at the beginning of an orthographic syllable (see rconjuncts).

Finals

Although traditionally classified as vowels, 2 diacritics represent syllable-final consonant sounds.

ं␣ः

Nasal sounds m n ŋ that are homorganic with a following consonant are commonly written using [U+0902 DEVANAGARI SIGN ANUSVARA]. This mark is positioned over the previous consonant, eg. हिंदी

Most words that use the anusvara can also be written using the consonant itself, eg. हिन्दी

In some cases, however, the anusvara form is more common. For example, the first of the two following alternatives is much more common पंजाब *पञ्जाब

Some words, mostly Sanskrit loan words, may end with a voiceless h after a vowel which can be written using [U+0903 DEVANAGARI SIGN VISARGA], eg. पुनः दुःखी

See also the candrabindu diacritic, which nasalises a vowel.

Consonant clusters

The absence of a vowel sound between two or more consonants can be visually indicated in one of the following ways.

  1. Create a conjunct. There are a number of possibilities here:
    1. Half-forms : Reduce the shape of all consonants in the cluster except the last to a 'half-form' by removing the vertical stroke.
    2. Stacking : Reduce a non-initial consonant in size and shape and position it below the first.
    3. Special ligation : Create a fusion of the two shapes, where one or other of the components may not be easily recognisable.
    4. The letter ra has its own idiosyncratic way of combining with other consonants, whether it precedes or follows them.
  2. Show a visible virama below the non-final consonants in the cluster.
  3. No indication, although there are usually generalised pronunciation rules that allow readers to spot these locations. Examples of these rules are given in the section about the inherent vowel.

See also doubling.

Conjunct formation

See a table of 2-consonant clusters.
The table allows you to test results for various fonts.

To produce a conjunct, [U+094D DEVANAGARI SIGN VIRAMA] is added between the consonants in the cluster. There are exceptions, but this type of virama is usually not displayed, eg. the sequence + + [U+0915 DEVANAGARI LETTER KA + U+094D DEVANAGARI SIGN VIRAMA + U+0937 DEVANAGARI LETTER SSA] produces क्ष

The font usually determines which visual method is used, although it is possible to influence this (see joiner).

Click on the figures below to see which characters are being shown.

Conjoined half-forms

A half-form is typically created by removing the vertical line in the consonant shape, where there is one. (The vertical line is associated with the inherent vowel, and around two-thirds of Devanagari consonant shapes contain one.) There is often some additional tweaking of glyphs in order to join the components neatly. The last consonant in the cluster retains its full shape.

तव→त्व कक→क्क तसव→त्स्व
Examples of conjuncts formed by using half-forms.

A small number of half-forms are only minimally different from side-by-side characters.

छग छ्ग
An example of a conjunct with a subtle difference between separate consonants with intervening vowel (left), and a conjunct cluster (right). The difference is highlighted on the left.

Vertical stacks

This is more common for Sanskrit, and few modern fonts reorder glyphs in this way, or do so for a limited number of combinations.

कक→क्क दब→द्ब हव→ह्व
Conjuncts formed by subjoining non-initial consonants.

Ligated conjuncts

Typically, only a small number of clusters are combined in a way that makes it difficult to spot the component parts. This is, however, the default for two particular clusters: क्ष k͓ʂ kṣ ज्ञ ɟ͓ɲ ɡj

कष→क्ष जञ→ज्ञ कत→क्त
Conjuncts formed by ligation.

Conjuncts with ra

When [U+0930 DEVANAGARI LETTER RA] follows another consonant, it is typically rendered as a small, diagonal line to the left, eg. क्र ग्र भ्रAfter 6 consonants, however, it is rendered as an upside-down v shape below, ie. ट्र ठ्र ड्र ढ्र ड़्र छ्रAfter [U+0924 DEVANAGARI LETTER TA] it produces त्र

कर→क्र टर→ट्र तर→त्र
Conjuncts formed by a following ra.

When ra precedes another consonant, it is rendered as a small hook above the vertical line in the cluster, eg. र्क r͓k र्ल r͓lWhere it precedes a cluster using half-forms, it is aligned with the vertical line of the trailing consonant, eg. र्स्प r͓s͓pHowever, if there is a spacing vowel sign with a vertical line to the right of the cluster, it aligns with that, eg. र्का r͓kā र्की r͓kī(This illustrates how the basic units of the script are orthographic syllables.)

र्क र्ल र्स्प र्का
The horizontal position of the hook for conjuncts formed by a preceding ra follows the main vertical bar of the syllable.

Visible virama

The ability to form conjuncts depends on the richness of the font. Where a font is not able to produce a half-form or ligature, etc., it will leave a visible virama glyph below the initial consonant(s) to indicate the missing vowel sound, as illustrated in fig_virama_visible.

ङ्ख ङ्ख
A consonant cluster for which there exists a conjunct form in the Tiro Hindi font (left), but not in the Noto Serif Devanagari font (right). The latter indicates that this is a cluster by showing a visible virama.

Examples of clusters that the default font used for this page is unable to render as a conjunct form: स्विट्ज़रलैंड रीट्वीट

An important consequence of representing clusters in this way is that the syllable boundaries are different. For example, if we follow the cluster with a left-positioned vowel sign, it will now appear after the virama, rather than before the cluster, eg. compare the position of the pre-base vowel sign in fig_virama_vowel. This change is also reflected in segmentation of the text for line-breaking, inter-character spacing, etc.

ङ्खि ङ्खि
Positioning of the pre-base vowel sign in relation to the same consonant cluster where a conjunct forms (left) vs. where a visible virama appears (right).

A visible virama may also be used with a single consonant, to indicate that it is to be pronounced without the inherent vowel, eg. क् k

Consonant lengthening

Lengthened (geminated) consonants are indicated in the script using the same mechanisms as for clusters.

Most native consonants may be lengthened, but not , ɽ, ɽʱ, or ɦ. Geminate consonants are always medial and preceded by one of ə, ɪ, or ʊ.wp,#Consonants

Using ZWJ & ZWNJ

ZWNJ It's possible to prevent the formation of conjuncts using U+200C ZERO WIDTH NON-JOINER (ZWNJ). For example:

ZWJ To produce a half-form, rather than a ligated form, use U+200D ZERO WIDTH JOINER (ZWJ). For example, क्‍ष   →   क्ष

It can also be used to produce standalone half-forms (for educational text) such as घ्‍

Consonant sounds to characters

This section maps Hindi consonant sounds to common graphemes in the Devanagari orthography.

Sounds listed as 'infrequent' are allophones, or sounds used for foreign words, etc. Light coloured characters occur infrequently.

p

consonant

consonant

b

consonant

consonant

t

consonant

consonant

t͡ʃ

consonant

t͡ʃʰ

consonant

t̪ɾ

consonant letter त्र

d

consonant

consonant

d͡ʒ

consonant

d͡ʒʱ

consonant

ʈ

consonant

ʈʰ

consonant

ɖ

consonant

ɖʱ

consonant

k

consonant

consonant letter क्ष

consonant

ɡ

consonant

ɡj

consonant letter ज्ञ

ɡʱ

consonant

q

consonant with nukta क़

precomposed consonant 0958 The decomposed sequence is recommended.

f

consonant with nukta फ़

precomposed consonant The decomposed sequence is recommended.

v

consonant Occurs as an allophone of ʋ.

s

consonant

z

consonant with nukta ज़

precomposed consonant The decomposed sequence is recommended.

ʂ

consonant

ʃ

consonant

ʒ

consonant with nukta झ़ Very rare, used in loanwords from Persian, Portuguese and English. Hindi speakers often use z or d͡ʒ instead.

consonant with nukta श़ Modern orthography uses झ़ instead.

x

consonant with nukta ख़

precomposed consonant The decomposed sequence is recommended.

ɣ

consonant with nukta ग़

precomposed consonant The decomposed sequence is recommended.

h~ɦ

consonant Mostly limited to Sanskrit loan words.

voiceless breath Coda.

m

consonant

final nasal Coda followed by a labial consonant.

n

consonant

final nasal Coda followed by an alveolar consonant.

ɳ

consonant Brought into Hindi via Sanskrit loan words, but casually pronounced n and ɽ̃ is a common allophone. Does not appear initially.wp,#External_borrowing

ɲ

consonant This letter is not usually used alone.

ŋ

consonant Used only with a velar consonant. Rarely seen in Hindi.

final nasal Coda followed by a velar consonant.

w

consonant A variant of ʋ commonly occuring between a consonant and vowel.

ʋ

consonant

r

consonant

ɾɪ

vocalic vowel sign

vocalic independent vowel

ɽ

consonant with nukta ड़

precomposed consonant The decomposed sequence is recommended.

ɽʱ

consonant with nukta ढ़

precomposed consonant The decomposed sequence is recommended.

l

consonant

j

consonant

Symbol

[U+0950 DEVANAGARI OM] is a religious symbol used in both Hinduism and Buddhism. 

Encoding choices

This section looks at alternative strategies for typing and storing vowel signs and independent vowels used by Hindi, taking into consideration the effects of normalising the text using Unicode Normalisation Form D (NFD), and Normalisation Form C (NFC).

Vowel signs

The single code points on the left should be used, and not the sequences on the right, because they are not made the same by normalisation. Therefore the content will be regarded as different, which will affect searching and other operations on the text.

Use Do not use
[U+094B DEVANAGARI VOWEL SIGN O] + [U+093E DEVANAGARI VOWEL SIGN AA + U+0947 DEVANAGARI VOWEL SIGN E]
[U+094C DEVANAGARI VOWEL SIGN AU] + [U+093E DEVANAGARI VOWEL SIGN AA + U+0948 DEVANAGARI VOWEL SIGN AI]

Independent vowels

Again, the single code points on the left should be used, and not the sequences on the right, because they are not made the same by normalisation.

Use Do not use
[U+0906 DEVANAGARI LETTER AA] + [U+0905 DEVANAGARI LETTER A + U+093E DEVANAGARI VOWEL SIGN AA]
[U+0913 DEVANAGARI LETTER O] + [U+0905 DEVANAGARI LETTER A + U+094B DEVANAGARI VOWEL SIGN O]
[U+0914 DEVANAGARI LETTER AU] + [U+0905 DEVANAGARI LETTER A + U+094C DEVANAGARI VOWEL SIGN AU]
[U+0910 DEVANAGARI LETTER AI] + [U+090F DEVANAGARI LETTER E + U+0947 DEVANAGARI VOWEL SIGN E]

Nuktas

The way the Unicode Standard recommends to type and store graphemes with nuktas is a little unusual for Devanagari. Here we look at alternative strategies for all uses of the nukta in the Devanagari block (usage recommendations for Hindi are given in the section nukta), and consider the effects of normalising the text using Unicode Normalisation Form D (NFD), and Normalisation Form C (NFC).

For the following alternatives (unusually) the decomposed form is recommended by the Unicode Standard. NFC does not recombine the parts into precomposed characters. Instead, normalisation produces decomposed forms for both approaches using NFC and NFD, so both approaches are canonically equivalent.

Precomposed Decomposed (recommended)
[U+0958 DEVANAGARI LETTER QA] क़ [U+0915 DEVANAGARI LETTER KA + U+093C DEVANAGARI SIGN NUKTA]
[U+095E DEVANAGARI LETTER FA] फ़ [U+092B DEVANAGARI LETTER PHA + U+093C DEVANAGARI SIGN NUKTA]
[U+095B DEVANAGARI LETTER ZA] ज़ [U+091C DEVANAGARI LETTER JA + U+093C DEVANAGARI SIGN NUKTA]
[U+0959 DEVANAGARI LETTER KHHA] ख़ [U+0916 DEVANAGARI LETTER KHA + U+093C DEVANAGARI SIGN NUKTA]
[U+095A DEVANAGARI LETTER GHHA] ग़ [U+0917 DEVANAGARI LETTER GA + U+093C DEVANAGARI SIGN NUKTA]
[U+095C DEVANAGARI LETTER DDDHA] ड़ [U+0921 DEVANAGARI LETTER DDA + U+093C DEVANAGARI SIGN NUKTA]
[U+095D DEVANAGARI LETTER RHA] ढ़ [U+0922 DEVANAGARI LETTER DDHA + U+093C DEVANAGARI SIGN NUKTA]
[U+095F DEVANAGARI LETTER YYA] य़ [U+092F DEVANAGARI LETTER YA + U+093C DEVANAGARI SIGN NUKTA]

The next batch of characters produces precomposed characters under NFC, and decomposed under NFD. Both approaches are therefore canonically equivalent, even though the behaviour is different. In this case, the Unicode Standard recommends using the precomposed form.

Precomposed (recommended) Decomposed
[U+0929 DEVANAGARI LETTER NNNA] ऩ [U+0928 DEVANAGARI LETTER NA + U+093C DEVANAGARI SIGN NUKTA]
[U+0931 DEVANAGARI LETTER RRA] ऱ [U+0930 DEVANAGARI LETTER RA + U+093C DEVANAGARI SIGN NUKTA] 
[U+0934 DEVANAGARI LETTER LLLA]  ऴ [U+0933 DEVANAGARI LETTER LLA + U+093C DEVANAGARI SIGN NUKTA]

The final grapheme exists only in decomposed form, there is no precomposed equivalent.

Precomposed Decomposed
n/a झ़ [U+091D DEVANAGARI LETTER JHA + U+093C DEVANAGARI SIGN NUKTA]

In practise, it's hard to envisage content authors being aware of, let alone respecting, rules about whether they should use precomposed or decomposed forms. Keyboards or other input mechanisms, or perhaps sometimes applications that automatically normalise can perhaps guide users to the recommended practise, but it's likely that Devanagari text will always contain a mixture of forms for these graphemes.

Numbers, dates, currency, etc

Devanagari has a set of digits, that can be referred to as 'hindi' numerals. They are used regularly.

०␣१␣२␣३␣४␣५␣६␣७␣८␣९

The CLDR standard-decimal pattern is #,##,##0.###. The standard-percent pattern is #,##,##0%.cldr

An interesting feature of large numbers written in India is that they apply groupings of two, rather than three, digits between commas (even when using european digits).

20,00,000

Two million, written with Indian comma separators.

Currency

The CLDR standard format for currency is ¤#,##,##0.00.cldr

[U+20B9 INDIAN RUPEE SIGN] is the symbol introduced by the Government of India in 2010 as the official currency symbol for the Indian rupee (INR).u

It is distinguished from [U+20A8 RUPEE SIGN], which is an older symbol not formally tied to any particular currency.u Follow that link for more information about the rupee. 

Text direction

Text is normally written horizontally, left to right.

Show default bidi_class properties for characters in the modern Hindi orthography.

Glyph shaping & positioning

You can experiment with examples using the Hindi character app.

Glyph joining

Within a Hindi word, spacing glyphs are typically joined together at the top bar (shirorekha).

दिल्ली

The top bar extends across or through most spacing letters, including both consonants and vowels, but some letters create a gap in the line (while still joining at either side). Such a letter can be seen in the following example.

हाथ

Characters that create these gaps include digits and the following:

ओ␣औ␣अ␣आ␣थ␣भ␣ध␣श

Alignment of the top bar may be appropriate when mixing text of different sizes (see initials). Also, when Hindi text is mixed with another script that also has a top bar, such as Bengali, the top bars of both scripts may need to be aligned.

Context-based shaping & positioning

Context-based shaping

The shape of a character when displayed can vary, often dramatically, according to the context.

One very common example in most indic scripts is the handling of 'conjunct consonants', ie. groups of consonants with no intervening vowel sounds. Since consonants in indic scripts have an inherent vowel sound, when two consonants are combined this way you have to indicate that the vowel of the initial consonant is suppressed. This is normally done by altering the shape of the first consonant, or merging the shape of the two consonants.

To tell the font to do this, in Unicode you add  ् [U+094D DEVANAGARI SIGN VIRAMA​] between the two consonants. This produces the change in the shapes of the glyphs that indicates to the reader that this is a conjunct. The actual outcome is font dependent. For the word below which contains a conjunct of two [U+0932 DEVANAGARI LETTER LA] characters (making a long L sound) you may see a 'half-form' used for the first LA (shown on the left) or you may see (as shown on the right) a ligated form.

दिल्ली दिल्‍ली
Alternative representations of a geminated l consonant.

There are other types of context-based shaping, which are font specific. One is shown below. The width of the glyph for  ि [U+093F DEVANAGARI VOWEL SIGN I​] differs according to the base character to which it is attached.

हालाँकि प्रचलित
Context-sensitive shaping of the glyph for i.

Multiple combining characters

Diacritics regularly combine with a vowel sign attached to the same consonant or consonant cluster. The example below shows two combining characters that are positioned above the base character in a very common form of the verb 'to be'. One is [U+0948 DEVANAGARI VOWEL SIGN AI​], and the other the nasalisation mark [U+0902 DEVANAGARI SIGN ANUSVARA​].

हैं
Multiple combining characters over one base character.

Context-based positioning

Combining characters need to be placed in different positions, according to the context.

The example on the left below displays the dot (anusvara) immediately over the long vertical stroke. The example to the right has moved the dot slightly to the right in order to accomodate the vowel sign.

अंधे में
Context-sensitive placement of the anusvara diacritic.

In the following the image to the left shows the normal position of  ू [U+0942 DEVANAGARI VOWEL SIGN UU​], beneath the first letter. The example on the right shows that character displayed higher up and to the right when combined with the base character [U+0930 DEVANAGARI LETTER RA].

पूजा परू
Context-dependent placement of the glyph representing ra.

Typographic units

Word boundaries

Words are separated by spaces.

Devanagari has hyphenated words – mainly conjoined nouns,i eg. लाभ-हानि माता-पिता

Graphemes

This section is still undergoing research and development.

Grapheme clusters alone are not sufficient to represent typographic units in Hindi in all circumstances. Conjuncts are common and must not be split apart by edit operations that visually change the text (such as letter-spacing, first-letter highlighting, and in-word line breaking). For those operations one needs to segment the text using orthographic syllables, which string grapheme clusters together with [U+094D DEVANAGARI SIGN VIRAMA​], which has an Indic Syllabic Category of Virama.

However, Hindi needs to interpret the virama (halant) in two different ways for segmentation: (1) as a simple vowel-killer, and (2) as a conjunct initiator, depending on whether or not it is rendered visibly.

Grapheme clusters

Base Combining_mark* Joiner?

Combining marks may include zero or more of the following types of character.

  1. Nukta (see extendedC)
  2. Dependent vowels (see combiningV and vocalics)
  3. Final consonant marks (see finals and nasalisation)
  4. Virama (halant) (see clusters and novowel)

Any of the above may occur after a consonant base. Independent vowel bases usually only have final consonant marks. There is usually only one vowel sign per base consonant. A virama only occurs after a consonant and optional nukta.

The following examples show a variety of grapheme clusters:

Click on the text version of these words to see more detail about the composition.

पानी
हिंदी
अँगरेज़ी
अकस्मात्

Note how grapheme clusters segment the parts of a conjunct after the virama. This is not always desirable (see orthographicS just below).

Larger typographic units

(Consonant Nukta? Virama)* Grapheme_cluster

Hindi commonly stacks or conjoins glyphs, to form conjuncts. The conjuncts represent consonant clusters or gemination.

Grapheme clusters terminate after a sequence of marks that ends with a virama, but editorial operations that change the visual appearance of the text, such as letter-spacing, first-letter highlighting, in-word line-breaking, and justification, should never split conjunct forms apart. For this reason, an alternative way of segmenting graphemes is needed. This may not apply, however, for some other operations such as cursor movement or backwards delete.

Where conjuncts appear, a typographic unit contains multiple grapheme clusters. The non-final grapheme clusters all end with [U+094D DEVANAGARI SIGN VIRAMA​], and the final grapheme cluster begins with a consonant.

The following are examples. Some examples were shown in the previous section: here the conjunct is treated as a single typographic unit.

Click on the text version of these words to see more detail about the composition.

अकस्मात्
प्रत्येक
व्यक्ति
अंतर्राष्ट्रीय

Note that consonant clusters aren't always rendered as conjuncts, and in those cases the individual letters remain as separate graphemes. For example, consonants without an inherent vowel may be written using a consonant letter on its own at the end of a word or in other locations (see novowel), eg.

Click on the text version of these words to see more detail about the composition.

समझ
उलझा

On the very rare occasions when a virama needs to be visible even though it is followed by another base, an invisible character must be added to prevent it joining with the following base. U+200C ZERO WIDTH NON-JOINER can achieve that.

Complicating factors

Behaviour is font-dependent. If a font doesn't have a conjunct form for a particular combination of characters it will make the virama visible. The following shows an example produced by the default font used for this page, and the segmentation you would normally expect, and then compares it with the result for a font that does have the ability to form a conjunct..

Click on the text version of these words to see more detail about the composition.

रीट्वीट
Same word with a different font.

What's important to notice here is that it is normally possible to break a line after the virama when the virama is visible. This is currently difficult to manage because the decision as to whether the text is segmented into 2 graphemes or one depends only on the capabilities of the font used (ie. the rendered result); the code point sequence is identical for both cases, and gives no clues to which approach to segmentation is applicable.

Visible viramas can also affect vowel sign positioning. For the purposes of illustration, let's take the previous example and replace the vowel signs with ones that are displayed before the base. Observe the placement of the pre-base vowel in fig_prebase_position. In the conjunct form on the left, the vowel sign is rendered to the left of the whole conjunct. If the sequence is not rendered as a conjunct, as in the second example, the pre-base glyph precedes the VA, not the TA.

रिट्विट रिट्विट
Placement of pre-base vowel glyphs.

Browser behaviour

Test in your browser. The words test units that equate to grapheme clusters only, and others that include conjuncts. First, the text is displayed in a contenteditable paragraph, then in a textarea. Results are reported for Gecko (Firefox), Blink (Chrome), and WebKit (Safari) on a Mac.

अँगरेज़ी अकस्मात् अंतर्राष्ट्रीय उलझा

Cursor movement. Move the cursor through the text.
Gecko steps through the whole text using grapheme clusters. It takes 2 or more steps (depending on the number of GCs) to get through the conjuncts, one grapheme cluster at a time. In some cases, especially with RA, the cursor may look as if it is in the wrong position. Blink and WebKit step through all words using the orthographic syllables described here (ie. they step over a stack and all associated combining characters in one jump).

Selection. Place the cursor next to a character and hold down shift while pressing an arrow key.
The behaviour is the same as for cursor movement.

Deletion. Forward deletion works in the same way as cursor movement. The backspace key deletes code point by code point, for all browsers.

Line-break. See this test. The CSS sets the value of the line-break property to anywhere. Change the size of the box to slowly move the line break point.
Gecko appears to segment on grapheme cluster boundaries, except for inside the 3rd word, where it wraps first a vowel sign, then wraps the rest of the conjunct plus the previous grapheme cluster as a single unit. WebKit and Blink both wrap on orthographic syllable boundaries.

Punctuation & inline features

Phrase & section boundaries

!␣,␣:␣;␣.␣।␣॥␣?␣—

Devanagari uses standard Latin punctuation, but also has its own version of a full stop, [U+0964 DEVANAGARI DANDA]. Most style guides recommend to use no space before this punctuation, but use space after.

phrase

, [U+002C COMMA]

; [U+003B SEMICOLON]

: [U+003A COLON]

sentence [U+0964 DEVANAGARI DANDA]

. [U+002E FULL STOP]

? [U+003F QUESTION MARK]

! [U+0021 EXCLAMATION MARK] 

section [U+0965 DEVANAGARI DOUBLE DANDA]

Observation: A number of Hindi style guides consulted require that the danda follow the last letter in the sentence, with no intervening space.

चाहिए।

Devanagari danda, used like a Western full stop.

For boundaries of text above the sentence level there is [U+0965 DEVANAGARI DOUBLE DANDA].

The dandas are commonly used in Sanskrit and Prakrit poetry, and the double danda may be both before and after benedictory headings, rest-stops, etc., eg. ॥ श्रीसीताराम ॥

Both of these code points are also used in a number of other indic scripts.

Bracketed text

(␣)

Hindi commonly uses ASCII parentheses to insert parenthetical information into text.

  start end
standard

( [U+0028 LEFT PARENTHESIS]

) [U+0029 RIGHT PARENTHESIS]

Quotations & citations

‘␣’␣“␣”

Hindi texts typically use quotation marks. Of course, due to keyboard design, quotations may also be surrounded by ASCII double and single quote marks.

  start end
top level

[U+201C LEFT DOUBLE QUOTATION MARK]

[U+201D RIGHT DOUBLE QUOTATION MARK]
nested

[U+2018 LEFT SINGLE QUOTATION MARK]

[U+2019 RIGHT SINGLE QUOTATION MARK]

The default quote marks for Hindi are [U+201C LEFT DOUBLE QUOTATION MARK] at the start, and [U+201D RIGHT DOUBLE QUOTATION MARK] at the end.cldr

When an additional quote is embedded within the first, the quote marks are [U+2018 LEFT SINGLE QUOTATION MARK] and [U+2019 RIGHT SINGLE QUOTATION MARK].cldr

Emphasis

Italicisation and bolding are not traditionally used for highlighting text in Devanagari.

Abbreviation, ellipsis & repetition

[U+0970 DEVANAGARI ABBREVIATION SIGN] is used to indicate abbreviations of words, eg. रुपया can be abbreviated as रु॰

Line & paragraph layout

Line breaking & hyphenation

Devanagari is normally wrapped at word boundaries.

Line-edge rules

As in almost all writing systems, certain punctuation characters should not appear at the end or the start of a line. The Unicode line-break properties help applications decide whether a character should appear at the start or end of a line.

Show (default) line-breaking properties for characters in the modern Hindi orthography.

The following list gives examples of typical behaviours for characters used in modern Hindi. Context may affect the behaviour of some of these and other characters.

Click on the Hindi characters to show what they are.

  • “ ‘ (   should not be the last character on a line
  • ” ’ ) ? ! ।॥ %   should not begin a new line
  •   should be kept with any number, even if separated by a space or parenthesis.

Line breaking should also not move a danda or double danda to the beginning of a new line, even if they are preceded by a space character. These punctuation characters should behave in the same way as a full stop does in English text.

In-word line-breaks

Devanagari text can be hyphenated during line wrap, though it is not very common (unlike several south Indian scripts). This is partly because Hindi contains mostly short words.st

Hyphenation is much more common when writing Sanskrit in the Devanagari script, because words tend to be much longer.

Hyphenation adds a hyphen at the end of the line when a word is broken.

Text alignment & justification

Justification is done, principally, by adjusting the space between words. (I have no information about whether high-end systems also adjust inter-character spacing slightly if inter-word doesn't resolve the issue, or to improve aesthetics.)

Text spacing

This section looks at ways in which spacing is applied between characters over and above that which is introduced during justification.

Inter-character spacing is sometimes applied to Hindi text, despite the fact that the top bar is usually joined up. When spacing is applied, the top bar appears broken. Such spacing may appear in decorative text in banners, newspapers, etc.i,#h_letter_spacing fig_text_spacing shows an example for the name plate of a museum.

पुरातत्व संग्रहालय सारनाथ
Letter-spacing applied to the name plate of a museum.

Baselines, line height, etc.

Devanagari has a so-called 'hanging' baseline (see the red line in fig_baselines).

fig_baselines shows glyphs from Noto Serif fonts. The basic height of Devanagari letters, and the hanging baseline, is just slightly higher than the Latin x-height, however ascenders and vowel signs, especially when accompanied by tone marks, push slightly beyond the Latin ascenders and descenders. The basic letter size for this font means that the bottom edge of basic letters sits on the alphabetic baseline used by the Latin letters.

qhxईकिझॄद्बड्रक़ु
Font metrics for Latin text in the Noto Serif font compared with Hindi glyphs in the Noto Serif Devangari font.

One situation where the hanging baseline is clearly used to align text is for paragraph-initial letter highlighting, where the top bar of the enlarged initial letter is aligned with the top bar of the first line of smaller paragraph text (see initials).

Counters, lists, etc.

You can experiment with counter styles using the Counter styles converter. Patterns for using these styles in CSS can be found in Ready-made Counter Styles, and we use the names of those patterns here to refer to the various styles.

The modern Hindi orthography uses numeric and alphabetic styles.

Numeric

The devanagari numeric style is decimal-based and uses these digits.rmcs

०␣१␣२␣३␣४␣५␣६␣७␣८␣९

Examples:

१␣२␣३␣४␣११␣२२␣३३␣४४␣१११␣२२२␣३३३␣४४४

Alphabetic

The hindi alphabetic style for the Hindi language uses these letters.

क␣ख␣ग␣घ␣ङ␣च␣छ␣ज␣झ␣ञ␣ट␣ठ␣ड␣ढ␣ण␣त␣थ␣द␣ध␣न␣प␣फ␣ब␣भ␣म␣य␣र␣ल␣व␣श␣ष␣स␣ह

Examples:

क␣ख␣ग␣घ␣ट␣फ␣ह␣कट␣गठ␣चभ␣ञग␣डण

Prefixes and suffixes

The most common approach to writing lists in Hindi uses a full stop as a suffix.

Examples:

१. २. ३. ४. ५.
Separator for Hindi list counters: full stop + space.

Styling initials

Devanagari content does sometimes enlarge the first part of the first word in a paragraph, in a similar way to drop caps. Instead of enlarging just the first letter in the word, it is normal to enlarge the first syllable. If the first character is the beginning of a conjunct, the whole conjunct should be included in the styling.

Enlarged syllable styling at the start of a paragraph.

In theory, the top line of the characters should align in the large text and the following first line, however it is possible to easily find examples where this is not accurate.

It is very common to see such initial-syllable enlargement centred inside a coloured box.

Enlarged syllable styled inside a coloured box.

In the boxed style, the box itself is usually aligned with the top of the first line of text and the bottom of the last, and the highlighted character(s) are centred horizontally and vertically in the box.

In both styles shown above, any punctuation such as opening quotes and opening parentheses should also be included in the initial styling.

According to ilreq, Hindi generally doesn't use the raised or sunken styles, and contour-filling is not needed for Indian text.i

Page & book layout

References