npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

fitfont

v1.3.3

Published

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

Downloads

324

Readme

FitFont for Fitbit

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

Support via PayPal

alt text

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:

<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:

<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:

    <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:

    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