Giter VIP home page Giter VIP logo

malini's Introduction

Malini Malayalam Typeface

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 64 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 weights

Variation axes

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

Axis Definitions

  • 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 an opsz value to the font-variation-settings

Using the fonts

  • 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.

Using Variable font in web pages

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 -15deg;
}

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.

Building the fonts

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.

Language support

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

Credits

See FONTLOG.md for details on contributions.

Contributing

See CONTRIBUTING.md for policies around contributing to the project.

License

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

malini's People

Contributors

santhoshtr avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.