classico

A tiny (242B) shim when Element.classList cannot be used~!

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
classico
6202.0.05 years ago5 years agoMinified + gzip package size for classico in KB

Readme

classico Build Status
A tiny (242B) shim for when Element.classList cannot be used~!

This module exposes three module definitions:
  • ES Module: dist/classico.mjs
  • CommonJS: dist/classico.js
  • UMD: dist/classico.min.js

Install

$ npm install --save classico

Usage

import { remove, toggle } from 'classico';

const $ = document.querySelector.bind(document);

const isOpen = 'menu__open';

$('.menu-nav').onclick = () => {
  toggle(document.body, isOpen);
};

$('.menu-overlay').onclick = () => {
  remove(document.body, isOpen);
};

API

has(node, str)

Returns: Boolean
Checks if the Element's className contains the class value – akin to Element.classList.contains().

add(node, ...str)

Returns: undefined
Add the class value(s) to the Element's className – akin to Element.classList.add().
Note: Classico will not append a className if the Element already contains it.

let elem = document.body;

// add one class
classico.add(elem, 'foo');

// add multiple classes
classico.add(elem, 'foo', 'bar', 'baz');
//=> Only 'bar' & 'baz' were added this time!

remove(node, ...str)

Returns: undefined
Remove the class value(s) to the Element's className – akin to Element.classList.remove().
let elem = document.body;

// remove one class
classico.remove(elem, 'foo');

// remove multiple classes
classico.remove(elem, 'bar', 'baz');

toggle(node, str, force)

Returns: Boolean
Toggles the existence of a class for an Element – akin to Element.classList.toggle().
When force is not defined, the str value will be added if not already and removed if it existed.
If force is defined and truthy, the str value will be added.
If force is defined and falsey, the str value will be removed.
Returns true if the class was successfully added to the Element.
Returns false if the class was removed from the Element's className value.

License

MIT © Luke Edwards