0.1.2 • Published 7 years ago

dynamic-css-properties v0.1.2

Weekly downloads
2
License
MIT
Repository
github
Last release
7 years ago

dynamic-css-properties

This tiny library exposes a single function in order to dynamically set custom CSS properties (CSS variables).

Features

  • Simple API - takes an object of properties and values to update and automatically converts camelCased property names to --kebab-case for you.
  • Defaults to document.documentElement, i.e. the root node, but allows you to specify a subnode to update instead (custom CSS properties follow the standard cascading rules).
  • It doesn't do much, but it still feels like magic!

Install

yarn add dynamic-css-properties

Usage

Importing the library

ES6 modules:

import setCustomProperties from 'dynamic-css-properties';

CommonJS:

const setCustomProperties = require('dynamic-css-properties');

Script tag (adds a setCustomProperties global):

<script src="https://unpkg.com/dynamic-css-properties@0.1.1/dist/dynamic-css-properties.min.js"></script>

Using the library

A minimal example:

setCustomProperties({
  primaryTextColor: 'hotpink',
  backgroundColor: 'papayawhip',
});

Now simply use the variables:

body {
  color: var(--primary-text-color, #1e1e1e);
  background-color: var(--background-color, #fff);
}

As soon as the code is executed, the custom properties will be added to the document. Should you wish to only update part of the document you may specify a particular node as the second argument, and only it and its children will be affected.

Caveat

Using this for serious business is not a good idea, unless you know that all your users are running browsers or environments (such as Electron) that support custom CSS properties. See here.