Get unlimited public & private packages + team-based management with npm Teams.Learn more »

randrix

1.0.2 • Public • Published

tests coverage maintainability

randrix

A programable, random matrix panel.

Usage

npm

npm install --save randrix

ES Module

import Randrix from 'randrix';
 
const randrix = new Randrix({
  message: 'RandomMatrix',
});
randrix.start();
 

UMD Module

<script type="text/javascript" src="node_modules/randix/dist/randrix.min.js"></script>
<script type="text/javascript">
  var randrix = new window.Randrix.default({
    message: 'randrix.js',
    possible: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.'
  });
  randrix.start();
</script>

CSS

[data-randrix] {
  display: grid;
  grid-gap: 0;
  grid-template-columns: repeat(64vw);
  grid-template-rows: repeat(58vw);
  align-content: space-around;
  justify-content: space-between;
}
 
[data-randrix-char] {
  font-size: 2.4vw;
  line-height: 6vw;
  opacity: .6;
  text-align: center;
}
 
[data-randrix-char-active="true"] {
  font-weight: bold;
  opacity: 1;
}
 
[data-randrix-style="monospace"] {
  font-family: monospace;
}
 
[data-randrix-style="sans-serif"] {
  font-family: sans-serif;
}
 
[data-randrix-style="serif"] {
  font-family: serif;
}
 
[data-randrix-style="cursive"] {
  font-family: cursive;
}

Example

Custom

import Randrix from 'randrix';
 
const randrix = new Randrix( {
      message: 'RandomMatrix',
      selector: '[data-randrix]',
      width: 6,
      height: 8,
      interval: 100,
      possible: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz',
      style: ['serif', 'sans-serif', 'monospace'],
      callback: () => { document.body.style.backgroundColor = '#abcdef'; },
    });
randrix.start();

Multiple

Promise

Async, await example. Resolve the promise with the Randrix callback option.

import Randrix from 'randrix';
 
async function f() {
  const promise = new Promise((resolve, reject) => {
    const randrix = new Randrix({
      message: 'RandomMatrix',
      selector: '[data-randrix]',
      callback: () => resolve(true),
    });
    randrix.start();
  });
 
  const result = await promise;
  if (result) second();
}
 
function second() {
  document.querySelector('[data-randrix]').innerHTML = '';
  const randrix = new Randrix({
    message: 'randrix.js',
    selector: '[data-randrix]',
    possible: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.',
  });
  randrix.start();
}
 
f();
 

Generator

Generator, yield example. Go to next() with the Randrix callback option.

import Randrix from 'randrix';
 
function* panels(configs) {
  for (let i = 0; i < configs.length; i++) {
    yield panel(configs[i], i);
  }
}
 
function panel(config, i) {
  const wait = (=== 0) ? i : 3000;
  setTimeout( () => {
    document.querySelector('[data-randrix]').innerHTML = '';
    const matrix = new Randrix(config);
    matrix.start();
  }, wait);
}
 
const configs = [{
    message: 'Random',
    width: 4,
    height: 5,
    callback: () => matrix.next(),
  },
  {
    message: 'Matrix',
    width: 4,
    height: 5,
    callback: () => matrix.next(),
  },
  {
    message: 'Panel',
    width: 4,
    height: 5,
    callback: () => matrix.next(),
  },
  {
    message: 'randrix.js',
    width: 4,
    height: 5,
    possible: 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz.',
  },
];
const matrix = panels(configs);
matrix.next();

Documentation

Install

npm i randrix

DownloadsWeekly Downloads

1

Version

1.0.2

License

MIT

Unpacked Size

1.25 MB

Total Files

65

Last publish

Collaborators

  • avatar