An open API service indexing awesome lists of open source software.

https://github.com/microsoft/skeena-indigenous-typeface

Documentation and a model font released under the SIL Open Font License 1.1 to support revitalization and development of indigenous languages of North America, starting with those of the Pacific Northwest region.
https://github.com/microsoft/skeena-indigenous-typeface

fonts indigenous typography

Last synced: 2 months ago
JSON representation

Documentation and a model font released under the SIL Open Font License 1.1 to support revitalization and development of indigenous languages of North America, starting with those of the Pacific Northwest region.

Awesome Lists containing this project

README

        

# Skeena Indigenous

### Current status, March 2025: PUBLIC BETA

The Skeena Indigenous typeface project consists of sources, tools, documentation and releases for a family of fonts supporting indigenous language orthographies of North America. The set of languages targeted by the fonts builds outward from an initial focus on those of linguistic communities, tribes and nations in the Pacific Northwest (broadly, British Columbia, Washington, and Oregon), and as of January 2025 includes the following languages from across the continent:

Abáachi mizaa (Jicarrila Apache); Anicinâbemowin (Algonquin); Anihšināpēmowin (Western Ojibwe); Chahta' (Choctaw); Chinook Jargon (Grand Ronde); ciiqciiqasaʔi (Ehattesaht Nuchatlaht); C̕išaaʔatḥ; Coeur d’Alene (Nicodemus/Bitar); Coeur d’Alene (Salishan/LPO); Cowlitz (Lower); Dakȟótiyapi (Dakota); Dän kʼè (Southern Tutchone); Dän kʼí (Northern Tuchone); Dane-Ẕaa (Beaver); Dane-zaa Ẕáágéʔ; Dene Zágéʼ (Kaska); Dene Zhatıé (South Slavey); Denek’éh/Kaska; Dënësųłinë́ (Chipewyan); diitiidʔaaʔtx̣ (Ditidaht); DiiɁdiitidq; Diné Bizaad (Navajo); Ehattesaht Nuchatlaht; Éyɂáɂjuuthem (Comox); Gayogo̱hó꞉nǫˀ (Cayuga); Gitsenimx̱; Gitx̲sanimx̲ (Gitxsan); Haida; Haíłzaqvḷa; Haíɫzaqvḷa (Heiltsuk); Haisla; Halq'eméylem; Hän; Hən̓q̓əmin̓əm̓; Hinónoʼeitíít (Arapaho); Hiraaciré’ (Hidatsa); Ḥiškʷiiʔatḥ; Hlg̱aagilda X̱aayda Kil; Homalco; Hoocą́ k hoit’éra (Ho-Chunk); Hopilàvayi (Hopi); Hul'q'umi'num'; Huluníixsuwaakan (Munsee); Inuinnaqtun; Iñupiaqtun; Iyâxe (Nakoda, Stoney, Assiniboine); Kanien’kéha (Mohawk); Keres; Kikapú (Kickapoo); Klahoose; Ktunaxa; Ktunaxa (Kutenai); Kwadacha Tsek'ene; Kwak̓wala; Lakȟótiyapi (Lakota); Líl̓wat; Lushootseed; ɬəʔamɛn (Tla’amin); ƛaʔuukʷiʔatḥ ciqyakquukin; Maskwacis Cree; Menhti Kenaga; Miꞌkmawiꞌsimk (Mi’kmaq); Nadleh-Stella Whut’enne; Nak’azdli Dakelh; Ndee biyáti’ (Western Apache); Nehiromowin (Atikamekw); Nêhiyawêwin; Nisga'a; Nłeʔkepmxcín; Nłeʔkepmxcin (Thompson); Nooksack (Lhéchelesem); Northern St̓át̓imcets; Nsyilxcən (n̓səl̓xcin̓, Okanagan); Nunatuĸavummiutut (Inuttitut); Nuu-chah-nulth (Barkley); Nuxalk; Nuxalk; nʉmʉ tekwapʉ̱ (Comanche); Nxaʔamxčín; Nxaʔamxcín (Columbia-Moses); Oneida (Onʌyotaʔa:ka); Onǫda’géga’ (Onondaga); Onötowá’ka꞉ (Seneca, Onödowága); Oʼodham ha-ñeʼokĭ (Oʼodham); ɔ’ɔ́ɔ́ɔ́naakíit’ɔ (Aaniiih); paári (Pawnee); Quileute; Quinault; Qʷi·qʷi·diččaq (Makah); S’Klallam; Sahtúgot’įné Yatı̨́ (North Slavey); Saik'uz Dakelh; Saı́yısı́ dëne (Sayisi Dene); Samish; Saulteau Cree; Sawanwa (Shawnee); Secwepemc; Secwepemctsin (Eastern Dialect); SENĆOŦEN (Saanich); She Shashishalhem; Ska꞉rù꞉rę’ (Tuscarora, Skarù·rę’, Skarò˙rə̨ ˀ); skicinuwatuwewakon (Passamaquoddy); Sḵwx̱wú7mesh (Squamish); Sliammon; Sƛ̓aƛ̓imxǝc (Lillooet); Sm'algya̱x (Tsmksian, Tsimshian); Sosoni' da̱i̱gwape (Shoshoni); Southern Carrier; Southern Tutchone; Splatsin (Eastern dialect); Squamish; Stz’uminus; Syilx; Tā̀gish; Tāłtān; Tałtan ẕāke (Tahltan, Tāłtān, dah dẕāhge); Tewa; Tiwa; Tl'azt'en (Tache-Stuart Lake); Tłįchǫ Yatiì (Dogrib); Tse'Khene (McLeod Lake); Tsėhesenėstsestotse (Cheyenne); Tsilhqot'in (Tŝilhqot’in, Xeni Gwet'in); Tsuut’ina; tθek’ehne (Sekani, Tsek'ene); ’Uik̓ala; Witsuwit’en; Wyandot (Wendat); X̱aad Kíl (Massett Haida); Yekooche; Yupik.

[This list is not exhaustive and the mix of naming conventions employed is not systematic. Additional languages may be supported by the character and glyph sets of the fonts.]

The project has several goals:

* Serve as a focal point for engagement with indigenous communities, inviting feedback on all aspects of font support for individual languages (character encoding, glyph shape, text layout requirements).
* Provide a model implementation for a unified font approach to supporting indigenous language orthographies.
* Document the decision making in development of the Skeena Indigenous typeface design and font implementation.
* Publish test documents and other resources to help font makers support indigenous language orthographies in their typefaces.

### Getting the fonts

Release builds of the fonts are available via the [Releases](https://github.com/microsoft/Skeena-Indigenous-Typeface/releases) link on the repo homepage. This will always include the most current public release.

Compiled fonts are only available via the Releases page and are not included in the code base for the repo. See information below regarding building the fonts locally in a cloned repo.

### Documentation

A key aspect of the Skeena Indigenous project is [extensive documentation](https://microsoft.github.io/Skeena-Indigenous-Typeface/) about the design and technical decisions making in the development of the fonts. This documentation includes discussion of important issues in the encoding of indigenous orthographies, such as confusable characters, and how these are addressed in Skeena Indigenous.

### Feedback

Feature requests, bug reports, and other feedback is invited via the [Issues](https://github.com/microsoft/Skeena-Indigenous-Typeface/issues) tracker. Some initial labels are provided for reporting bugs, requesting new features, etc.

### Discussion

A [discussion forum](https://github.com/microsoft/Skeena-Indigenous-Typeface/discussions) is available for general questions and conversation about the Skeema Indigenous project and support for indigenous language typography.

### Sources

The Skeena Indigenous fonts are built from Unified Font Object (.ufo) files, with OpenType Layout data merged from input.ttf files compiled from Microsoft’s VOLT tool. The upstream design sources, also available, are FontLab .vfc files (also saved as .vfj plain text versions of the same in JSON syntax). Font makers wishing to fork the project in design tools other than FontLab should be able to open the .ufo sources.

The VOLT development path was used for Skeena Indigenous to facilitate some contextual positioning lookups. There are other methods to implement these within or externally to .ufo sources, which may be appropriate for forks of the project.

### Build process

*Note: the build process has been tested successfully to Python 3.12; there are known issues in gathering the requirements for the virtual environment with Python 3.13 and use of that version is not recommended.*

The Skeena Indigenous fonts can be built locally using the Tiro builder tool, which is included in the repo. The build is configured using a YAML format text file: [SI-MS.yml](https://github.com/microsoft/Skeena-Indigenous-Typeface/blob/main/SI-MS.yml). This file contains the input instructions used by the builder tool. [For more detailed information on the YAML configuration instruction set, consult the [TiroTools](https://github.com/TiroTypeworks/TiroTools/tree/master/Builder) repo.]

From the top-level folder:

```
# Create a new virtual environment
python3 -m venv venv

# Activate virtual environment
source venv/bin/activate

# Install dependencies
pip3 install -r requirements.txt
```

For subsequent use (presuming the requirements have not changed), only the second of those steps will be required.

Run the build script indicating the YAML configuration file:

```
$ python tools/tirobuild.py SI-MS.yml
```
The builder will create a new local /output folder, and will populate it with a set of 12 static TrueType fonts (weights from Regular to Black, in roman (upright) and italic) and a set of two variable TrueType fonts (roman and italic fonts with a weight variations axis). The builder will also output WOFF2 format webfonts. [Additional formats can be output by editing the YAML configuration file header.]