UNPKG

fitfont

Version:

This library allows you to easily display text with custom fonts.

129 lines (96 loc) 3.91 kB
# FitFont for Fitbit This library allows you to easily display text with custom fonts. [![Support via PayPal](https://cdn.rawgit.com/twolfson/paypal-github-button/1.0.0/dist/button.svg)](https://www.paypal.me/gsage/) ![alt text](screenshot.png "Sorry for the colors") ## With the Fitbit CLI ### Installation Install the library with `npm i fitfont` The installer will ask you if it can copy the library gui files in your `resources` folder: Press `Y` and the `fitfont.gui` file will be created automatically. Press `N` if you prefer to copy the file manually afterwards (default choice is Yes) You still need to modify the `resources/widgets.gui` file to add the link to `fitfont.gui`: ``` xml <svg> <defs> <link rel="stylesheet" href="styles.css" /> <link rel="import" href="/mnt/sysassets/widgets_common.gui" /> <!-- import FitFont ui file --> <link rel="import" href="fitfont.gui" /> </defs> </svg> ``` ### Assets generation Download your favourite ttf font and generate the library needed files with: ``` npx fitfont-generate [path/to_the_font_file] [font_size] [list_of_characters_to_generate] ``` e.g. ``` npx fitfont-generate /path/to/my_cool_font.ttf 200 0123456789:. ``` The generated folder (named [font_name]_[font_size]) will be automatically copied in your `resources` folder. Repeat this for every font/size you need. ## Without the Fitbit CLI (shame on you) ### Library integration Copy the `fitfont.js` file in your `app` folder. Copy the `fitfont.gui` file in your `resources` folder. Modify the `resources/widgets.gui` file to add the link to `fitfont.gui`: ``` xml <svg> <defs> <link rel="stylesheet" href="styles.css" /> <link rel="import" href="/mnt/sysassets/widgets_common.gui" /> <!-- import FitFont ui file --> <link rel="import" href="fitfont.gui" /> </defs> </svg> ``` ### Assets generation Install the python dependencies: ``` pip install Pillow ``` Download your favourite font file and call the python `generator.py` script of this repo. ``` python generate.py [path/to_the_font_file] [font_size] [list_of_characters_to_generate] ``` e.g. ``` python generate.py /path/to/my_cool_font.ttf 200 0123456789:. ``` Copy the generated folder (named [font_name]_[font_size]) in your project's `resources` folder. Repeat this for every font/size you need. # Usage Use a `fitfont` symbol in your `index.gui` file: ``` xml <use href="#fitfont" id="myLabel"> <use href="#fitfont-char"/> <use href="#fitfont-char"/> <use href="#fitfont-char"/> <use href="#fitfont-char"/> <use href="#fitfont-char"/> <use href="#fitfont-char"/> <!-- add as many characters as needed --> </use> ``` Import and use the library in your `app/index.js`: ``` javascript import { FitFont } from 'fitfont' // or if you are not using the CLI : import { FitFont } from './fitfont.js' const myLabel = new FitFont({ id:'myLabel', // id of your symbol in the index.gui, you can also give an element object e.g. id: document.getElementById('foo') font:'Market_Saturday_200' // name of the generated font folder // Optional halign: 'start', // horizontal alignment : start / middle / end valign: 'baseline', // vertical alignment : baseline / top / middle / bottom letterspacing: 0 // letterspacing... }) myLabel.text = '12:55' // only the characters generated with the python script will be displayed // It is also possible to change the halign/valign/letterspacing dynamically myLabel.halign = 'middle' myLabel.valign = 'top' myLabel.letterspacing = -3 ``` Launch your app and enjoy. # Demo A demo is available [here](https://github.com/gregoiresage/fitfont-demo)