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

bezoerb-measure-text

v0.2.0

Published

My swell module

Downloads

9

Readme

measure-text

NPM version Build Status Dependency Status Download Coverage Status

In-memory text measurement using canvas

Features

  • Compute text width
  • Compute max font-size to fit into element

Installation

If you're using node, you can run npm install bezoerb-measure-text.

measure-text is also available via Bower (bower install measure-text)

Alternatively if you just want to grab the file yourself, you can download either the current stable production version or the development version directly.

Setting it up

measure-text supports AMD (e.g. RequireJS), CommonJS (e.g. Node.js) and direct usage (e.g. loading globally with a <script> tag) loading methods. You should be able to do nearly anything, and then skip to the next section anyway and have it work. Just in case though, here's some specific examples that definitely do the right thing:

CommonsJS (e.g. Node)

measure-text needs some browser environment to run.

import import * as measureText from 'bezoerb-measure-text';

measureText.width('unicorns',document.querySelector('h1'));

AMD (e.g. RequireJS)

define(['measure-text'], function(measureText) {
   measureText.width('unicorns',document.querySelector('h1'));
});

Directly in your web page:

<script src="measure-text.min.js"></script>
<script>
measureText.width('unicorns',document.querySelector('h1'));
</script>

API

measureText.width(text, [element | options])

Compute text width.

measureText.height(text, [element | options])

Compute text height.

measureText.maxFontSize(text, [element | options])

Compute max fontsize to fit element.

measureText.computeLinebreaks(text, [element | options])

Compute lines of text with automatic word wraparound

text

Type: string Default: ''

Some text to measure

options

element

Type: Element Default: undefined

The element used to fetch styles from.

font-weight

Type: string Default: 400 Allowed: normal, bold, bolder, lighter, 100, 200, 300, 400, 500, 600, 700, 800, 900

Takes precedence over computed element style. Default value is set when no element is available.

font-style

Type: string Default: normal Allowed: normal, italic, oblique

Takes precedence over computed element style. Default value is set when no element is available.

font-variant

Type: string Default: normal Allowed: normal, small-caps

Takes precedence over computed element style. Default value is set when no element is available.

font-size

Type: string Default: 16px

Takes precedence over computed element style. Default value is set when no element is available.

font-family

Type: string Default: Helvetica, Arial, sans-serif

Takes precedence over computed element style. Default value is set when no element is available.

width

Type: string Default: undefined

Used for getMaxFontSize, height, computeLinebreaks and width with multiline option. Takes precedence over element offsetWidth.

License

Copyright (c) 2016 Ben Zörb Licensed under the MIT license.

Usage

<h1></h1>
<script src="measure-text.js"></script>
<script>
var h1 = document.querySelector('h1');
measureText.width('unicorns',h1);
// -> 37.7978515625
</script>

License

MIT © Ben Zörb