@blinkk/degu

A general utility library for interactive websites, with a focus on performance.

Usage no npm install needed!

<script type="module">
  import blinkkDegu from 'https://cdn.skypack.dev/@blinkk/degu';
</script>

README

Degu

NPM Version GitHub Actions Dependency Status Known Vulnerabilities codecov

A general utility library for interactive websites, with a focus on performance.

Motivation

degu is an interactive developer toolbox. It is not the next buzzword-filled, huge component library with ready-made UI solutions (such as modals, carousels, etc.) but it aims to provide the "hammer and nails" needed to build highly-interactive, performant, kickass websites.

Installation

npm install resize-observer-polyfill --save-dev
npm install intersection-observer --save-dev
npm install degu@latest --save-dev

Include resize-observer-polyfill and intersection-observer polyfill:

import '../../node_modules/intersection-observer/intersection-observer.js';
import ResizeObserver from 'resize-observer-polyfill';
window['ResizeObserver'] = ResizeObserver;

/* ... insert code that depends on degu ... */

Getting started

Import the library:

import {WebWorker} from '@blinkk/degu';

const worker = new WebWorker((params)=> {
    return params.a * params.b;
})

worker.run({a: 5, b: 2}).then((result)=> {
   console.log(result); // 10
})

Import specific files:

import * as mathf from 'degu/lib/mathf/mathf/'
import * as is from 'degu/lib/is/is/'
import * as dom from './dom';

ThreeJS deps

Classes under threef require three.js deps. Currently supports r110.

npm install --save-dev three@0.110.0
npm install --save-dev @types/three@0.103.2

Browser compatibility

degu supports only "evergreen" browsers back to the latest two versions:

  • Chrome
  • Edge (Chromium version)
  • Firefox
  • Safari

Contributing

Please read CONTRIBUTING.md on how to develop for degu.

License

Please read LICENSE.md