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.