Coder Social home page Coder Social logo

exiguus / js.randrix Goto Github PK

View Code? Open in Web Editor NEW
1.0 3.0 0.0 2.35 MB

A programable, random matrix panel.

Home Page: https://exiguus.github.io/js.randrix/

License: MIT License

JavaScript 18.39% CSS 5.70% HTML 75.90%
random matrix panel text letter char display blackboard es-module umd-module

js.randrix's Introduction

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(6, 4vw);
  grid-template-rows: repeat(5, 8vw);
  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 = (i === 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

js.randrix's People

Contributors

dependabot[bot] avatar exiguus avatar

Watchers

 avatar  avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.