Author: | bryanbraun |
---|---|
Views Total: | 54 views |
Official Page: | Go to website |
Last Update: | February 16, 2022 |
License: | MIT |
Preview:

Description:
Checkboxland is a fancy JavaScript library to render any shapes, grids, elements, animations on a grid using HTML checkboxes.
Advanced Examples:
Install & Download:
# NPM $ npm install checkboxland --save
How to use it:
1. Import the Checkboxland as an ES module.
import { Checkboxland } from 'checkboxland'; // or from a CDN import { Checkboxland } from 'https://unpkg.com/checkboxland?module';
2. Import plugins if needed. All possible plugins:
- print: prints text to the checkbox grid
- marquee: animates a block of data
- transitionWipe: transitions between the current checkbox grid state and a future state by wiping across the screen
- dataUtils: performs a variety of transformations (or actions) on a matrix of data, and return the result.
import print from './plugins/print/print.js'; import marquee from './plugins/marquee.js'; import transitionWipe from './plugins/transitionWipe.js'; import dataUtils from './plugins/dataUtils.js'; // Add built-in plugins Checkboxland.extend(print); Checkboxland.extend(marquee); Checkboxland.extend(transitionWipe); Checkboxland.extend(dataUtils);
3. Create a container in which you want to render the checkbox grid.
<div id="example"></div>
4. Create a new Checkboxland instance and determine the dimension of the checkbox grid.
const example = new Checkboxland({ dimensions: '8x8', selector: '#example' });
5. Prepare your data in a JS array that consists of 0 (unchecked) and 1 (checked).
const myData = [ [0,1,1,0,0,1,1,0], [1,0,0,1,1,0,0,1], [1,0,0,0,0,0,0,1], [1,0,0,0,0,0,0,1], [0,1,0,0,0,0,1,0], [0,0,1,0,0,1,0,0], [0,0,0,1,1,0,0,0] ];
6. Render a checkbox grid with the data you provide.
example.setData(myData,{ // the x-coordinate where the text should start on the checkbox grid. Default: x: 0, // The y-coordinate where the text should start on the checkbox grid. Default: 0. y: 0, // if the text data won't fill the whole checkbox grid, you can (0, 1, or 2) which will then be used to fill the leftover areas. fillValue: undefined });
7. Get the value of a checkbox in the grid. Returns 0 or 1.
example.getCheckboxValue(x, y);
8. Set the checkbox value.
example.setCheckboxValue(x, y, 0 or 1);
9. Get the data.
example.getData();
10. Clear all data.
example.clearData();
11. Use the print plugin.
example.print(text,{ // character data for a custom font font: {}, // returns a data matrix for the text instead of updating the checkbox grid dataOnly: false, // the x-coordinate where the text should start on the checkbox grid. Default: x: 0, // The y-coordinate where the text should start on the checkbox grid. Default: 0. y: 0, // if the text data won't fill the whole checkbox grid, you can (0, 1, or 2) which will then be used to fill the leftover areas. fillValue: undefined })
12. Use the marquee plugin.
example.marquee(data, { // repeat the animation repeat: false, // interval in ms interval: 200 // fill the leftover areas if the scrolling data doesn't fill the whole checkbox grid fillValue: 0, // callback callback: function(){} })
13. Use the transitionWipe plugin.
example.transitionWipe(newData, { // ltr (left-to-right) and rtl (right-to-left) direction: 'ltr', // interval in ms interval: 200 // fill the leftover areas if the scrolling data doesn't fill the whole checkbox grid fillValue: 0, // callback callback: function(){} })
14. Use the dataUtils plugin.
// actionName: // invert: inverts the provided matrix // pad: adds padding around the provided matrix example.dataUtils(actionName, matrix, { top: 0 bottom: 0 left: 0 right: 0 all: 0 })
15. Render the provided image as checkboxes.
// dataSource: string | HTMLImageElement example.renderImage(dataSource, { threshold: 50, dithering: none, // ordered, atkinson, errorDiffusion x: 0, y: 0, fillValue: undefined, // used to fill the leftover areas })
16. Render the provided video as checkboxes.
// dataSource: string | HTMLImageElement example.renderVideo(dataSource, { threshold: 50, dithering: none, // ordered, atkinson, errorDiffusion x: 0, y: 0, fillValue: undefined, // used to fill the leftover areas })
17. Get an empty matrix with the dimensions of the existing checkbox grid.
example.getEmptyMatrix({ // the width & height of the returned matrix width: 0, height: 0, // the value you want to pre-populate the returned matrix with. fillValue: 0 });
Changelog:
v1.5.0 (02/16/2022)
- feat: support passing an HTMLElement to use as the checkboxland container
v1.4.0 (11/17/2020)
- Add the dithering option to the renderImage and renderVideo plugins.
v1.3.0 (09/09/2020)
- feat: add the image and video plugins
v1.2.0 (07/31/2020)
- Add on click plugin
v1.1.0 (06/06/2020)
- feat: update the print plugin with options for x, y, and fillValue
- feat: expose the getEmptyMatrix method and add a new fillValue option
- refactor: simplify the API of the new getEmptyMatrix method
- feat: add more options to setData to simplify some use-cases