Lorp / samsa

Variable font inspector
https://lorp.github.io/samsa/
Apache License 2.0
243 stars 23 forks source link
axis-praxis fonts node parametric-fonts polyfill variable-fonts visualization

Samsa

Samsa web appclick to start

Samsa is a web app that visualizes how variable fonts (VF) work. Type designers, font developers, front end developers and others can use Samsa to open VFs, then inspect VF glyph outlines and other data as they explore the VF designspace using sliders and other UI controls.

Detailed video presentation May 2020 (90 mins)

Mutator

Samsa uses the Samsa-Core JavaScript library for processing variable fonts. The library implements much of the OpenType 1.8 Variations specification.

Samsa-Core can also output static TrueType (TTF) fonts, and the Samsa web app provides export of static TTFs from any designspace location. (Note: These are not production ready.)

Samsa is written in ES6 JavaScript with no dependencies. It is normally installed on web servers, but can also be run from any folder with no server setup by double-clicking samsa-gui.html.

Also provided are: a command-line utility, Samsa-CLI (samsa-cli.js, for execution via Node.js); and a simple browser VF polyfill, Samsa-Polyfill, samsa-polyfill.js. These are both very short scripts that depend on the Samsa-Core library.

Documentation

Try Samsa

There are several ways to try Samsa:

Try some fonts in Samsa

There are many open source variable fonts to try in Samsa, including:

Related apps & demps

Background

The Samsa project grew out of:

An early version of the VF polyfill was demo’d at TYPO Labs 2017 [video]. The visualization project took a separate development path from Axis-Praxis, and an early version of Samsa was demo’d at TGA Raabs 2017 and TYPO Labs 2018.

With support from Google Fonts in 2019, Samsa now has numerous fixes and other improvements including a new UI, and is released under the Apache-2.0 license.

The name Samsa comes from Gregor Samsa, the protagonist of Franz Kafka’s story, The Metamorphosis.

Contributing

Feedback and contributions (UI ideas, feature ideas, code) are welcome. Please use the GitHub issues system to report bugs and to suggest improvements.