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 🙏

© 2026 – Pkg Stats / Ryan Hefner

ui-btn

v1.2.0

Published

Universal button for web UI

Readme

ui-btn

Universal button for web UI

js-semistandard-style

Installation

$ npm install ui-btn --save-dev

Usage

const Button = require('ui-btn');
const options = {
  // Set up options here (see below)
};

const saveBtn = new Button(options);
someContainerElement.appendChild(saveBtn.element);
firstNameField.disable();

Options

Type: {Object}

type

Type: {String}

Type of the button: primary, secondary.

Default: primary.

titles

Type: {Array<String>}

A set of button titles. The first title in the array is initially displayed.

icon

Type: {String}

A name of the icon to be displayed on the button. If omitted, no icon is displayed.

Icon names:

  • save
  • delete
  • forward
  • back

iconPosition

Type: {String}

  • left - the icon is displayed on the left;
  • right - the icon is displayed on the right.

Default: left.

containsProgress

Type: {Boolean}

If set to true, the button will display progress state when clicked. Default: false.

isInitiallyEnabled

Type: {Boolean}

If set to false, the button is initially displayed in its disabled mode. Default: true.

isInitiallyShown

Type: {Boolean}

If set to false, the button is not initially displayed. Default: true.

tabindex

Type: {Integer}

If this property is provided and holds a positive integer, the button DOM node requires tabindex attribute.

onClick

Type: {Function | Array<Function>}

A function(s) to be invoked when the button is clicked.

onClick() - no parameters passed.

API

Properties

element

Type: {HTMLElement}

Returns reference to the DOM node created by the constructor.

titles

Type: {Array<String>}

Returns an array of available button titles.

Methods

enable()

Return: {undefined}

disable()

Return: {undefined}

show()

Return: {undefined}

hide()

Return: {undefined}

hideProgress()

Return: {undefined}

setTitle(val)

Sets the current title of the button.

Parameters:

  • {Int|String} val - index in the title array returned by the titles property or a new or existing title. If a new title is provided, it is displayed and added to the titles property.

Return: {undefined}