Harmattan is an OpenType-enabled font family that supports the Arabic script. It includes a number of optional features that provide alternative rendering that might be preferable for use in some contexts. The sections below enumerate the details of these features. Whether these features are available to users will depend on both the application and the rendering technology being used. Some applications let the user control certain features such as Character Variants to turn on the rendering of variant characters. However, at this point, most applications do not make use of those features so another solution is needed to show the variant characters. For applications that do not make use of the OpenType Character Variants, you can now download fonts customized with the variant glyphs you choose. Read this document, visit TypeTuner Web, then choose the variants and download your font.

See Using Font Features. Although that page is not targeted at Arabic script support, it does provide a comprehensive list of applications that make full use of the OpenType font technology.

See also Arabic Fonts — Application Support. It provides a fairly comprehensive list of applications that make full use of the OpenType font technology.

This page uses web fonts (WOFF) to demonstrate font features and should display correctly in all modern browsers. For a more concise example of how to use Harmattan as a web font see harmattan-webfont-example.html in the font package web folder.

If this document is not displaying correctly a PDF version is also provided in the documentation/pdf folder of the release package.

Complete feature list

Language system tags

Affects: U+062F, U+0630, U+0688..U+068F, U+0690, U+06EE, U+0759, U+075A, U+08AE, U+0645, U+0765, U+0766, U+08A7, U+0647, U+0626, U+060C, U+061B, U+06F4, U+06F5, U+06F6, U+06F7, U+0650, U+064F, U+064C, U+0657

Unfortunately, the UI needed to access the language-specific behavior is not yet present in many applications. LibreOffice and Microsoft Word 2016 support language-specific behavior for Kashmiri, Kurdish, Sindhi and Urdu. Microsoft Word 2019, but not LibreOffice, supports language-specific behavior for Kyrgyz. Neither application provides support for the Rohingya or Wolof languages. Some Harfbuzz-based apps, e.g., XeTeX, can access language-specific behavior. In the past, it was not always possible to override language-specific behavior in cases where the language-specific variants were undesirable but, as of version 4.300, the font now supports this possibility.

Kurdish (Northern), Rohingya, Sindhi, Urdu

LanguageMeemHeh Doachashmee (06BE)4670650/064E064C0652Feature Setting
Defaultم مممھ ھھھ۴۶۷بِّبٌبْ
Kashmiriم مممھ ھھھ۴۶۷بِّبٌبْlang='ks'
Kurdish
(Northern)
م مممھ ھھھ۴۶۷بِّبٌبْlang='ku'
Rohingyaم مممھ ھھھ۴۶۷بِّبٌبْlang='rhg'
Sindhiم مممھ ھھھ۴۶۷بِّبٌبْlang='sd'
Urduم مممھ ھھھ۴۶۷بِّبٌبْlang='ur'

Kyrgyz and Wolof

LanguageDal06260650/064E064F0657Feature Setting
Default دئ ئئئبِّبُبٗ
Kyrgyz دئ ئئئبِّبُبٗlang='ky'
Wolof دئ ئئئبِّبُبٗlang='wo'

Character variants

There are some character shape differences in different languages which use the Arabic script. These can be accessed by using OpenType Character Variants, or through the language support mentioned above.

Jeem/Hah

Affects: U+062C, U+062D, U+062E, U+0682, U+0683, U+0684, U+0685, U+0686, U+06BF, U+0757, U+0758, U+088A, U+08A2, U+08C1, U+08C5, U+08C6

FeatureSampleFeature setting
Standardج ججج ح ححح خ خخخ ڂ ڂڂڂ ڃ ڃڃڃ ڄ ڄڄڄ څ څڅڅ چ چچچ ڿ ڿڿڿ ݗ ݗݗݗ ݘ ݘݘݘ ࢊ ࢊࢊࢊ ࢢ ࢢࢢࢢ ࣁ ࣁࣁࣁ ࣅ ࣅࣅࣅ ࣆ ࣆࣆࣆ cv08=0
Handwrittenج ججج ح ححح خ خخخ ڂ ڂڂڂ ڃ ڃڃڃ ڄ ڄڄڄ څ څڅڅ چ چچچ ڿ ڿڿڿ ݗ ݗݗݗ ݘ ݘݘݘ ࢊ ࢊࢊࢊ ࢢ ࢢࢢࢢ ࣁ ࣁࣁࣁ ࣅ ࣅࣅࣅ ࣆ ࣆࣆࣆ cv08=1

Dal

Affects: U+062F, U+0630, U+0688, U+0689, U+068A, U+068B, U+068C, U+068D, U+068E, U+068F, U+0690, U+06EE, U+0759, U+075A, U+08AE

FeatureSampleFeature setting
Standard د ذ ڈ ډ ڊ ڋ ڌ ڍ ڎ ڏ ڐ ۮ ݙ ݚ ࢮ cv12=0
Alternate د ذ ڈ ډ ڊ ڋ ڌ ڍ ڎ ڏ ڐ ۮ ݙ ݚ ࢮ cv12=1
Simple د ذ ڈ ډ ڊ ڋ ڌ ڍ ڎ ڏ ڐ ۮ ݙ ݚ ࢮ cv12=2

Sad/Dad

Affects: U+0635, U+0636, U+069D, U+069E, U+06FB, U+08AF

FeatureSampleFeature setting
Standardص صصص ض ضضض ڝ ڝڝڝ ڞ ڞڞڞ ࢯࢯࢯ ࢯ ۻ ۻۻۻcv20=0
Halfص صصص ض ضضض ڝ ڝڝڝ ڞ ڞڞڞ ࢯࢯࢯ ࢯ ۻ ۻۻۻcv20=1

Meem

Affects: U+0645, U+0765, U+0766, U+08A7

FeatureSampleFeature setting
Standard م ممم ݥ ݥݥݥ ݦ ݦݦݦ ࢧ ࢧࢧࢧ cv44=0
Sindhi-style م ممم ݥ ݥݥݥ ݦ ݦݦݦ ࢧ ࢧࢧࢧ cv44=1
Long-tail م ممم ݥ ݥݥݥ ݦ ݦݦݦ ࢧ ࢧࢧࢧ cv44=2

Heh

Affects: U+0647 (This feature is not recommended for use. The features available for Heh Doachashmee are preferred.)

FeatureSampleFeature setting
Standard ه ههه cv48=0
Kurdish-style ه ههه cv48=3
Sindhi-style ه ههه cv48=1
Urdu-style ه ههه cv48=2

Heh Doachashmee

Affects: U+06BE

FeatureSampleFeature setting
Standardھ ھھھcv49=0
Knottedھ ھھھcv49=1
Bowtieھ ھھھcv49=2
Kurdish-styleھ ھھھcv49=3

Kyrgyz OE

Affects: U+06C5

FeatureSampleFeature setting
Loopۅcv51=0
Barۅcv51=1

Yeh Hamza

Affects: U+0626

FeatureSampleFeature setting
Standardئ ‍ئcv54=0
Right hamzaئ ‍ئcv54=1
Mid hamzaئ ‍ئcv54=2

Maddah

Affects: U+0622, U+0627, U+0653, U+0653

FeatureSampleFeature setting
Small آ آ ◌ٓ cv60=0
Largeآ آ ◌ٓ cv60=1

Shadda+kasra placement

Affects: U+064D, U+0650 with U+0651

FeatureSampleFeature setting
Default بِّ ◌ِّ بٍّ ◌ٍّ cv62=0
Lowered بِّ ◌ِّ بٍّ ◌ٍّ cv62=1
Raised بِّ ◌ِّ بٍّ ◌ٍّ cv62=2

Damma

Affects: U+064F

FeatureSampleFeature setting
Default بُ ◌ُcv70=0
Filledبُ ◌ُcv70=1
Shortبُ ◌ُcv70=2
Crossedبُ ◌ُcv70=3

Dammatan

Affects: U+064C

FeatureSampleFeature setting
Standardبٌ ◌ٌcv72=0
Six-nineبٌ ◌ٌcv72=1
Two-nineبٌ ◌ٌcv72=2

Inverted Damma

Affects: U+0657

FeatureSampleFeature setting
Defaultبٗ ◌ٗcv74=0
Hollowبٗ ◌ٗcv74=1
Filledبٗ ◌ٗcv74=2

Superscript Alef

Affects: U+0670 on all yeh, sad and seen-like characters
U+0620, U+0626, U+0633, U+0634, U+0635, U+0636, U+063D, U+063E, U+063F, U+0649, U+064A, U+0678, U+069A, U+069B, U+069C, U+069D, U+069E, U+06CC, U+06CD, U+06CE, U+06D0, U+06D1, U+06FA, U+06FB, U+075C, U+076D, U+0770, U+077D, U+077E, U+0775, U+0776, U+0777, U+08A8, U+08A9, U+08AF, U+08BA

FeatureSampleFeature setting
Defaultؠٰ ؠٰؠٰ ئٰ ئٰئٰ سٰ سٰسٰ شٰ شٰشٰ صٰ صٰصٰ ضٰ ضٰضٰ ؽٰ ؽٰؽٰ ؾٰ ؾٰؾٰ ؿٰ ؿٰؿٰ ىٰ ىٰىٰ يٰ يٰيٰ ٸٰ ٸٰٸٰ ښٰ ښٰښٰ ڛٰ ڛٰڛٰ ڜٰ ڜٰڜٰ ڝٰ ڝٰڝٰ ڞٰ ڞٰڞٰ یٰ یٰیٰ ۍٰ بۍٰ ێٰ ێٰێٰ ېٰ ېٰېٰ ۑٰ ۑٰۑٰ ۺٰ ۺٰۺٰ ۻٰ ۻٰۻٰ ݜٰ ݜٰݜٰ ݭٰ ݭٰݭٰ ݰٰ ݰٰݰٰ ݽٰ ݽٰݽٰ ݾٰ ݾٰݾٰ ݵٰ ݵٰݵٰ ݶٰ ݶٰݶٰ ݷٰ ݷٰݷٰ ࢨٰ ࢨٰࢨٰ ࢩٰ ࢩٰࢩٰ ࢯٰ ࢯٰࢯٰ ࢺٰ ࢺٰࢺٰcv76=0
Largeؠٰ ؠٰؠٰ ئٰ ئٰئٰ سٰ سٰسٰ شٰ شٰشٰ صٰ صٰصٰ ضٰ ضٰضٰ ؽٰ ؽٰؽٰ ؾٰ ؾٰؾٰ ؿٰ ؿٰؿٰ ىٰ ىٰىٰ يٰ يٰيٰ ٸٰ ٸٰٸٰ ښٰ ښٰښٰ ڛٰ ڛٰڛٰ ڜٰ ڜٰڜٰ ڝٰ ڝٰڝٰ ڞٰ ڞٰڞٰ یٰ یٰیٰ ۍٰ بۍٰ ێٰ ێٰێٰ ېٰ ېٰېٰ ۑٰ ۑٰۑٰ ۺٰ ۺٰۺٰ ۻٰ ۻٰۻٰ ݜٰ ݜٰݜٰ ݭٰ ݭٰݭٰ ݰٰ ݰٰݰٰ ݽٰ ݽٰݽٰ ݾٰ ݾٰݾٰ ݵٰ ݵٰݵٰ ݶٰ ݶٰݶٰ ݷٰ ݷٰݷٰ ࢨٰ ࢨٰࢨٰ ࢩٰ ࢩٰࢩٰ ࢯٰ ࢯٰࢯٰ ࢺٰ ࢺٰࢺٰcv76=1
Smallؠٰ ؠٰؠٰ ئٰ ئٰئٰ سٰ سٰسٰ شٰ شٰشٰ صٰ صٰصٰ ضٰ ضٰضٰ ؽٰ ؽٰؽٰ ؾٰ ؾٰؾٰ ؿٰ ؿٰؿٰ ىٰ ىٰىٰ يٰ يٰيٰ ٸٰ ٸٰٸٰ ښٰ ښٰښٰ ڛٰ ڛٰڛٰ ڜٰ ڜٰڜٰ ڝٰ ڝٰڝٰ ڞٰ ڞٰڞٰ یٰ یٰیٰ ۍٰ بۍٰ ێٰ ێٰێٰ ېٰ ېٰېٰ ۑٰ ۑٰۑٰ ۺٰ ۺٰۺٰ ۻٰ ۻٰۻٰ ݜٰ ݜٰݜٰ ݭٰ ݭٰݭٰ ݰٰ ݰٰݰٰ ݽٰ ݽٰݽٰ ݾٰ ݾٰݾٰ ݵٰ ݵٰݵٰ ݶٰ ݶٰݶٰ ݷٰ ݷٰݷٰ ࢨٰ ࢨٰࢨٰ ࢩٰ ࢩٰࢩٰ ࢯٰ ࢯٰࢯٰ ࢺٰ ࢺٰࢺٰcv76=2

Sukun

Affects: U+0652

FeatureSampleFeature setting
Closedبْ ◌ْcv78=0
Open downبْ ◌ْcv78=1
Open leftبْ ◌ْcv78=2
Closedبْ ◌ْcv78=3

End of ayah

Affects: U+06DD

These alternates are also available using the Stylistic Alternates (salt) feature, but at this time we know of no OpenType-based applications that can access these.

Firefox allows you to use U+06DD followed by the digits and proper rendering occurs. Some applications require the following:

  • precede the entire sequence (subtending mark plus following digits) with
    202D LEFT-TO-RIGHT OVERRIDE
  • follow the entire sequence with U+202C POP DIRECTIONAL FORMATTING.

Surrounding the sequence with U+202D and U+202C seems to give the most reliable results in different browsers. However, we have not found a solution that works in Internet Explorer/Edge.

In the example below, the following codepoints are used: U+202D U+06DD U+0031 U+0032 U+0033 U+202C U+202D U+06DD U+0611 U+0622 U+0663 U+202C.

FeatureSampleFeature setting
Standard‭۝123‬ ‭۝١٢٣‬cv80=0
Simplified A‭۝123‬ ‭۝١٢٣‬cv80=1
Simplified B‭۝123‬ ‭۝١٢٣‬cv80=2

The DISPUTED END OF AYAH (U+08E2) is also now available in the font. It works in the same way as End of ayah.

‭࣢٣٤٥‬

Eastern digits

Affects: U+06F4, U+06F6, U+06F7

FeatureSampleFeature setting
Standard۴۶۷cv82=0
Sindhi-style۴۶۷cv82=1
Urdu-style۴۶۷cv82=2
Kurdish-style۴۶۷cv82=3
Rohingya-style۴۶۷cv82=4
Default۴۶۷cv82=5

Comma

Affects: U+060C, U+061B (This feature is not recommended for use. The Unicode Standard recommends the use of U+2E41 and U+204F instead.)

FeatureSampleFeature setting
Upward، ؛cv84=0
Downward، ؛cv84=1

Decimal separator

Affects: U+066B

FeatureSampleFeature setting
Small reh٫cv85=0
Slash٫cv85=1

Other user font features

Line spacing

This feature is only available in TypeTuner Web.

Allows for adjustment of the default line spacing in the font (values shown are ordered in increasing line spacing).

Feature
Normal
Loose
1.0 Compatible Normal
1.0 Compatible Loose