A Malayalam variable typeface optimized for body text
Taking full advantage of variable font technology, Malini offers an unprecedented level of flexibility, all from a single font file. Malini has 4 variable axes: Weight
, Width
, Slant
and Optical Size
.
As a variable font, Malini gives you fine-grained control over each one of its styles. However, it also comes with 16 predefined styles that are easy to access through your font menu. Called named instances¹, these work just like regular static fonts do.
¹ Named instance: a predetermined location in the designspace of a variable font, similar to the "static instances" that are familiar in traditional digital fonts.
The Variable font capability makes Malini stylistically flexible and warmly energetic.
Malini is also available as multiple fonts with different weights.
Malini has the following axes:
Axis | Tag | Range | Default | Description |
---|---|---|---|---|
Weight | wght |
100 to 900 | 400 | Thin to Black. Can be defined with usual font-weight property. |
Slant | slnt |
-12 to 0 | 0 | Upright (0°) to Slanted (about 12°) |
Width | wdth |
75 to 125 | 100 | Condensed to Expanded. Can be defined with usual font-stretch property. |
Optical Size | opsz |
10 to 48 | 12 | Follows the font size to optimize the contrast and spacing |
-
Weight
wght
: 100 to 900. The overall thickness of letters and the darkness of text composed with them.Recommended use: Differences in weight can provide emphasis in text, show user interaction, or adjust the tone of communication. For light text on dark backgrounds, 400 (“Regular”) tends to be appropriate for text and code. For dark text on a light background, it can be beneficial to adjust the weight upwards to 500 (“Medium”).
-
Slant
slnt
: 0 to -12. The "forward lean" of letters. Note: -12 (negative 12) corresponds to a 12° clockwise slant, due to type design's roots in geometry.Recommended use: The Malayalam script with its glyph characteristics does not have an established slant behavior. Mostly we mimic the slanting in latin. And we often call italic. Note that italic and slant are not same. Use Slant as a secondary way to emphasize text or vary typographic tone. In text, it can be useful to use a partial slant of around -12.
-
Width
wdth
: 75 to 125%. The percentage of letter width. 75% is 'Condensed', where the letters are horizontally condensed to 75% of original width. 125% is 'Expanded' where the letters are horizontally stretched to 125% of original width.Recommended use: The condense or expand can be used to achieve precise typographic layout in a predefined rendering space. The content can be adjusted in this way to "fit" the space. Be aware of the legibility degradation when doing this.
-
Optical size
opsz
: 10 to 48. The contrast, spacing are adjusted to the current font size. In smaller sizes, glyphs will have less contrast and loose text. In larger font sizes, glyphs will have high contrast and tight spacing.Recommended use: Browsers will automatically choose the the correct opsz value as per font size. To disable that
font-optical-sizing: none
can be used. It is also possible to manually set anopsz
value to thefont-variation-settings
- Download the latest fonts from the Releases (Look under the "Assets" of the latest release, download the zip, and then open that zip)
- Install the fonts on your system. Depending on the Operating system, the installation steps vary. In general, Clicking on the font file give the option to install it.
Varibale fonts save bandwith in web pages by having a single font to download, while providing all style variations. Using them on webpages is a big topic. Please use a good tutorial like MDN
In general, you should link in the font with @font-face
@font-face {
font-family: 'Malini';
src: url('path/to/font/Malini-VF.woff2') format('woff2-variations');
font-weight: 100 900;
font-stretch: 75% 125%;
font-style: oblique 0deg -12deg;
}
Then, you can use the font with both font-weight
and font-variation-settings
. Using CSS custom properties will help to avoid some caveats of property inheritance.
Install the required software packages, assuming a debian based GNU/Linux Operating system
apt-get update -y
apt-get install -y make python3-pip python3-venv python3-yaml texlive-metapost libharfbuzz-bin
To build, set up the virtual environment and activate it.
virtualenv -p python3 venv
source venv/bin/activate
Then install requirements:
pip install -U -r requirements.txt
Then run make to build everything
make
This will take more than 15 minutes to build everything. But if you have a multi core processor, you can speed up this by using parallel build. Assuming you have 8 core system(8 CPUs)
make -j8
A directory named fonts will be generated.
All the Malayalam characters defined in Unicode version 15 are present in the font. Malini also has latin script support. Malini supports 294 languages convering approximately 2.8B speakers(Calculated using hyperglot tool)
Supported languages
- Acheron
- Achinese
- Acholi
- Afar
- Afrikaans
- Alekano
- Aleut
- Amahuaca
- Amarakaeri
- Amis
- Anaang
- Andaandi, Dongolawi
- Anuta
- Ao Naga
- Aragonese
- Arbëreshë Albanian
- Arvanitika Albanian
- Asháninka
- Ashéninka Perené
- Asu (Tanzania)
- Balinese
- Bari
- Basque
- Batak Dairi
- Batak Karo
- Batak Mandailing
- Batak Simalungun
- Batak Toba
- Bemba (Zambia)
- Bena (Tanzania)
- Bikol
- Bislama
- Borana-Arsi-Guji Oromo
- Bosnian
- Breton
- Buginese
- Candoshi-Shapra
- Caquinte
- Caribbean Hindustani
- Cashibo-Cacataibo
- Catalan
- Cebuano
- Central Aymara
- Central Kurdish
- Chamorro
- Chavacano
- Chiga
- Chiltepec Chinantec
- Chokwe
- Chuukese
- Cimbrian
- Cofán
- Congo Swahili
- Cook Islands Māori
- Cornish
- Corsican
- Creek
- Crimean Tatar
- Croatian
- Czech
- Danish
- Dehu
- Dutch
- Eastern Abnaki
- Eastern Arrernte
- Eastern Oromo
- Embu
- English
- Ese Ejja
- Faroese
- Fijian
- Filipino
- Finnish
- French
- Friulian
- Galician
- Ganda
- Garifuna
- Ga’anda
- German
- Gheg Albanian
- Gilbertese
- Gooniyandi
- Gourmanchéma
- Guadeloupean Creole French
- Gusii
- Haitian
- Hani
- Hawaiian
- Hiligaynon
- Ho-Chunk
- Hopi
- Huastec
- Hungarian
- Hän
- Icelandic
- Iloko
- Inari Sami
- Indonesian
- Irish
- Istro Romanian
- Italian
- Ixcatlán Mazatec
- Jamaican Creole English
- Japanese
- Javanese
- Jola-Fonyi
- K'iche'
- Kabuverdianu
- Kalaallisut
- Kalenjin
- Kamba (Kenya)
- Kaonde
- Karelian
- Kashubian
- Kekchí
- Kenzi, Mattokki
- Khasi
- Kikuyu
- Kimbundu
- Kinyarwanda
- Kituba (DRC)
- Kongo
- Konzo
- Kuanyama
- Kven Finnish
- Kölsch
- Ladin
- Ladino
- Latgalian
- Latin
- Ligurian
- Lithuanian
- Lombard
- Low German
- Lower Sorbian
- Luba-Lulua
- Lule Sami
- Luo (Kenya and Tanzania)
- Luxembourgish
- Macedo-Romanian
- Makhuwa
- Makhuwa-Meetto
- Makonde
- Makwe
- Malagasy
- Malaysian
- Maltese
- Mandinka
- Manx
- Maore Comorian
- Maori
- Mapudungun
- Marshallese
- Matsés
- Mauritian Creole
- Meriam Mir
- Meru
- Minangkabau
- Mirandese
- Mohawk
- Montenegrin
- Munsee
- Murrinh-Patha
- Mwani
- Mískito
- Naga Pidgin
- Ndonga
- Neapolitan
- Ngazidja Comorian
- Niuean
- Nobiin
- Nomatsiguenga
- North Marquesan
- North Ndebele
- Northern Kurdish
- Northern Qiandong Miao
- Northern Uzbek
- Norwegian
- Nyanja
- Nyankole
- Occitan
- Ojitlán Chinantec
- Orma
- Oroqen
- Palauan
- Paluan
- Pampanga
- Papantla Totonac
- Papiamento
- Pedi
- Picard
- Pichis Ashéninka
- Piemontese
- Pijin
- Pintupi-Luritja
- Pipil
- Pohnpeian
- Polish
- Portuguese
- Potawatomi
- Purepecha
- Quechua
- Romanian
- Romansh
- Rotokas
- Rundi
- Rwa
- Samburu
- Samoan
- Sango
- Sangu (Tanzania)
- Saramaccan
- Sardinian
- Scottish Gaelic
- Sena
- Seri
- Seselwa Creole French
- Shambala
- Shawnee
- Shipibo-Conibo
- Shona
- Sicilian
- Silesian
- Slovak
- Slovenian
- Soga
- Somali
- Soninke
- South Marquesan
- South Ndebele
- Southern Aymara
- Southern Qiandong Miao
- Southern Sami
- Southern Sotho
- Spanish
- Sranan Tongo
- Standard Estonian
- Standard Latvian
- Standard Malay
- Sundanese
- Swahili
- Swati
- Swedish
- Swiss German
- Tagalog
- Tahitian
- Taita
- Tedim Chin
- Tetum
- Tetun Dili
- Tiv
- Tok Pisin
- Tokelau
- Tonga (Tonga Islands)
- Tonga (Zambia)
- Tosk Albanian
- Tsonga
- Tswana
- Tumbuka
- Turkish
- Turkmen
- Tzeltal
- Tzotzil
- Uab Meto
- Upper Guinea Crioulo
- Upper Sorbian
- Venetian
- Veps
- Võro
- Wallisian
- Walloon
- Walser
- Wangaaybuwan-Ngiyambaa
- Waray (Philippines)
- Warlpiri
- Wayuu
- Welsh
- West Central Oromo
- Western Abnaki
- Western Frisian
- Wik-Mungkan
- Wiradjuri
- Wolof
- Xhosa
- Yanesha'
- Yao
- Yapese
- Yindjibarndi
- Yucateco
- Zapotec
- Zulu
- Záparo
See FONTLOG.md for details on contributions.
See CONTRIBUTING.md for policies around contributing to the project.
This Font Software is licensed under the SIL Open Font License, Version 1.1. This license is available with a FAQ at: https://openfontlicense.org