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

toglit

v1.0.3

Published

Pure JS class toggler utility

Downloads

5

Readme

Toglit!

A pure javascript utility to easily toggle classes on elements targeted by data attributes

Usage

import Toglit from 'toglit'
const toglit = new Toglit();

window.addEventListener('toglitchange', (e) => {
    const { change, class } = e.detail;
    const { currentTarget } = e;
    console.log(`${change}ed ".${class}" "${from}" to "#${currentTarget.id}!"`);
    // Added ".in" to "#toggleMe!"
});

<style>
    #toggleme {
        display:none;
    }   
    #toggleme.in {
        display:block;
    }
</style>

<button type="button" data-toglit="#toggleme">Toglit!</button>
<div id="toggleme">Lookit me!</div>

Data attributes

These should be set on the firing element (e.g. a button) and will be activated on click. Note that their keys can be changed using the options object (see below) toglit string|element required The target element

toglit-class string The class(es) to be toggled on the target element

toglit-triggers string The trigger(s) to be toggled on the target element

Arguments

selector string|element The container for toglit to work within. default: body

options object Options object (see below)

Options

enabled boolean If false the will disable all Toglit functionality. default: true

defaultToggleClass string The class(es) to be toggled on the target element if no data-togglit-class is provided. default: in

defaultTriggers string The trigger(s) to be toggled on the target element if no data-toglit-triggers is provided. default: in

dataToggleKey string The data attribute on the firing element that holds the query selector. default: toglit

dataClassKey string The data attribute on the firing element that holds the classes to toggle. default: toglit-class

dataTriggersKey string The data attribute on the firing element that holds the triggers on which to toggle. default: toglit-triggers

Methods

enable () Toglit Enables the toglit

disable () Toglit Disables the toglit

enabled () boolean returns true if the toglit is enabled

Events

toglitchange Fires when the class is added or removed from the target element. event.detail carries an object containing change (either add or remove) and class, the class which was changed.

toglitadd Fires when the class is added to the target element. event.detail carries an object containing class, the class which was added.

toglitadd Fires when the class is removed from the target element. event.detail carries an object containing class, the class which was removed.

NB: If using jQuery you may need to look at event.originalEvent.detail

Notes

  • The data-toggle attribute can be any valid CSS selector. Internally Toglit uses querySelectorAll to find and iterate through targets. If more than one target is found, the class will be toggled on each item individually.
  • data-class and defaultToggleClass can contain mutiple, space separated classes. Each will be toggled individually.
  • Specifiying an element in the constructor of Toglit will limit all behaviour to elements within that element.
  • This package is designed to be used with webpack and babel. The main entry in package json points to the ES6 module in /src. If this causes problems with your build process you can find the transpiled and bundled code in the /dist folder.