This repository contains the latest release of three Balinese Unicode fonts: Vimala, Pustaka Bali, and Kadiri. These fonts are copyright Aditya Bayu Perdana, all rights reserved. The fonts are available under the SIL OFL 1.1 license. Aditya Bayu Perdana designed the glyphs. PanLex assisted in developing the OpenType rules. Compiled fonts are in the release directory.
Vimala has a style similar to Bali Simbar, a non-Unicode font designed by I Made Suatjana that is popular in Bali. Pustaka Bali has a monoline (“sans-serif”) style that is optimized for screens. Kadiri is based on the handwriting of a lontar in the collection of Sugi Lanus, written by Pranda Madhe Kadiri. Below is a sample showing the Balinese greeting ᬒᬁᬲ᭄ᬯᬲ᭄ᬢ᭄ᬬᬲ᭄ᬢᬸ (om swastyastu), from top to bottom: Vimala, Pustaka Bali, Kadiri.
PanLex has designed a Keyman keyboard that can be used with these fonts or other Balinese Unicode fonts.
- 2.05 (June 24, 2020)
- fixed alignment of bisah after centered conjuncts below
- 2.04 (March 6, 2020)
- changed license to SIL OFL 1.1
- changed shape of second-stack ra ligatures (wraps around left)
- shapes such as gantungan wa and suku are completely enclosed
- nail-like serifs in diagonal strokes (e.g. in cecek) are removed
- made gantungan ta latik and ta murda mahaprana more compact
- changed shape of ta, gantungan ta, and associated glyphs
- changed shape of gantungan na, ca, wa
- changed shape of pamada
- added glyph for gantungan wa + gantungan wa
- added long panti/pamada glyphs
- 2.03 (September 4, 2019)
- allow combining marks above digits (for modre)
- fix positioning of surang
- fix positioning of combining marks above after second- and third-stack ra
- correctly choose second-stack ra ligature after rerekan
- 2.02 (August 22, 2019)
- fix rendering of independent vowels containing tedong when text is in NFD
- fix spacing of gantungan nya + gantungan ya
- 2.01 (August 21, 2019)
- rebalance bowl on ra repa (U+1B3A)
- 2.00 (August 16, 2019)
- initial public release
- 2.05 (June 24, 2020)
- fixed alignment of bisah after centered conjuncts below
- 2.04 (March 14, 2020)
- fix several spacing issues in previous release
- 2.03 (March 6, 2020)
- changed license to SIL OFL 1.1
- changed shape of second-stack ra ligatures (wraps around left)
- shapes such as gantungan wa and suku are completely enclosed
- added glyph for gantungan wa + gantungan wa
- added long panti/pamada glyphs
- 2.02 (September 4, 2019)
- allow combining marks above digits (for modre)
- fix positioning of surang
- fix positioning of combining marks above after second- and third-stack ra
- correctly choose second-stack ra ligature after rerekan
- 2.01 (August 22, 2019)
- fix rendering of independent vowels containing tedong when text is in NFD
- fix spacing of gantungan nya + gantungan ya
- 2.00 (August 16, 2019)
- initial public release
- 1.01 (June 24, 2020)
- fixed alignment of bisah after centered conjuncts below
- 1.00 (March 14, 2020)
- initial public release
To compile the fonts, you need FontForge Python bindings and yasha. To compile, run script/compile
, which does the following:
- Runs
script/dist_calc.py
, which reads glyph metrics from thesrc/<font>.sfd
and uses them to generate various feature file portions insrc/feature/include/
which perform spacing adjustments. - Runs
yasha
to generate each font's final feature file assrc/<font>.ufo/features.fea
. - Runs
script/compile.py
to compile each.ufo
intorelease/<font>.ttf
.
If you are on macOS, you can also run script/preview
, which runs script/compile
, installs the compiled fonts for the current user, and relaunches TextEdit. This lets you test that the compiled fonts are working correctly.
If you modify, add, or remove glyphs, you should do so in the .ufo
file located in src/
. Once you have done so, be sure to save a copy of the new version as src/<font>.sfd
. You can do this in FontForge by opening the .ufo
file and choosing Save As…. The .sfd
file must be kept up to date for glyph metrics because it is used in script/dist_calc.py
. (It would be better to read metrics directly from .ufo
, but we have encountered problems doing this consistently.)