April 28, 2019

299 words 2 mins read

pshihn/lumin

pshihn/lumin

A JavaScript library to progressively highlight any text on a page.

repo name pshihn/lumin
repo link https://github.com/pshihn/lumin
homepage https://lumin.rocks
language JavaScript
size (curr.) 301 kB
stars (curr.) 528
created 2018-06-01
license MIT License

LuminJS

A JavaScript library to progressively highlight any text on a page.

Great for when you want users to pay attention to some important text. It can also be used to show progress of a task − Read something while tasks are being completed.

Related buzz words: Tiny (~1kB gzipped), No-dependency

Visit lumin.rocks to see it in action.

Demo gif

Note: This does NOT modify the user selection.

Install

Download the latest from dist folder

or from npm:

npm install --save lumin

Usage

Instantiate lumin with a node. All text under that node, including child nodes, will be highlighted. Then call start to start highlighting.

const luminator = lumin(domNode);
luminator.start(5000); // 5000ms to highlight

Or you can manually control the progress

// Set progress to 50%
luminator.progress = 50;

Note: The node being instantiated with has to be a positioned node. i.e. position is not static for this to work. In most cases, position:relative will do the trick.

Full API

progress

Numeric property one can set to indicate the progress of the highlight. The value is in percentage (0 to 100). This is useful when showing a progress of a task, e.g., a file upload.

start(duration)

Start the highlight.

duration is the approximate time in milliseconds the highlighting should take.

returns a Promise which is resolved when the highlight ends. The resolved value is true if the animation ends without interruption; false if stop was called.

stop()

Stops highlighting if it’s in progress.

clear()

Clears the highlighting.

Examples

See it live in action on lumin.rocks or view sample code in the Examples folder.

License

MIT License (c) Preet Shihn

comments powered by Disqus