1.0.6 • Published 3 years ago

cubic-bezier-editor v1.0.6

Weekly downloads
62
License
MIT
Repository
github
Last release
3 years ago

Cubic Bezier

Cubic bezier curve editor based on cubic-bezier.com modified to be easily customizable for embeding into other webapps.

DEMO

Quickstart

HTML

<head>
    <meta charset="utf-8" />
    <title>cubic-bezier</title>
    <link href="https://unpkg.com/cubic-bezier-editor/dist/cubic-bezier-editor.min.css" rel="stylesheet">
    <script src="https://unpkg.com/cubic-bezier-editor"></script>
</head>
<body></body>

JS

const bezierEditor = cubicBezier({
    /* Your options */
});
bezierEditor.init();

CSS

* {
	margin: 0;
}

body {
	background: rgb(46, 42, 42);
	font-family: 'Helvetica Neue', sans-serif;
	line-height: 1.4;
}

Options

OptionDescriptionTypeDefault
appendToElement or selector to append the editorHTMLElement or string<body></body>
onUpdateCallback to run when canvas is updatedFunction() => {}
widthwidth of the canvas, height = width * 2number150
defaulteditor default valuesstring.25, .1, .25, 1
bezierThicknessbezier curve thicknessnumber.015
handleThicknesshandle thicknessnumber.01
bezierColorbezier curve colorstring#aaa4aa
handleColorhandle colorstringrgba(0,255,0,.6)
arrowKeysallow moving handle with arrow keysbooleantrue
onClickwhen canvas is clicked move the closest handle to mouse positionbooleantrue
predefinedpredefined curvesobject{'ease': '.25,.1,.25,1','linear': '0,0,1,1','ease-in': '.42,0,1,1','ease-out': '0,0,.58,1','ease-in-out': '.42,0,.58,1'}
paddingcanvas paddingarray or number[.25, 0]
bezierLibrarybezier library options width and height apply to each library itemobject{width:30,height:30,handleColor:'rgba(0,255,0,.6)',bezierColor:'#aaa4aa',handleThickness:.01,bezierThickness:.015}
inputshow inputbooleantrue
previewshow preview animationbooleantrue
durationpreview animation durationnumber1.5
transformPoscustom callback function for modifying position onupdateFunctionundefined

Reference

cubicBezier.getValueArrayNum();//[0.25, 0.1, 0.25, 1]
cubicBezier.getValueArray();//[".25", " .1", " .25", " 1"]
cubicBezier.getValueString();//'.42,0,.58,1'
cubicBezier.getValueCss();//'cubic-bezier(.42,0,.58,1)'
cubicBezier.getDuration();//1.5
cubicBezier.checkCoordinates([".25", " .1", " .25", " 1"]);//true

transformPos Callback

By default all position data is obtained by using getBoundingClientRect, the transformPos callback can be used if you want to tweek these positions;

const bezierEditor = cubicBezier({
    transformPos(l, t) {
        // transform
        return { left, top };
    },
});

Download

  • CDN
    • https://unpkg.com/cubic-bezier-editor
  • NPM
    • npm i cubic-bezier-editor
  • GIT
    • git clone https://github.com/Ju99ernaut/cubic-bezier.git

Usage

Browser

<link href="https://unpkg.com/cubic-bezier-editor/dist/cubic-bezier-editor.min.css" rel="stylesheet">
<script src="https://unpkg.com/cubic-bezier-editor"></script>

<script>
    const bezierEditor = cubicBezier({
        /* Your options */
    });
    bezierEditor.init();
</script>

Modern Javascript

import cubicBezier from 'cubic-bezier-editor';
import 'cubic-bezier-editor/dist/cubic-bezier-editor.min.css';

const bezierEditor = cubicBezier({
    /* Your options */
});
bezierEditor.init();

Development

Clone repository

$ git clone https://github.com/Ju99ernaut/cubic-bezier.git
$ cd cubic-bezier

Install dependencies

$ npm i

Start dev server

$ npm start

Build

$ npm run build

License

MIT

1.0.6

3 years ago

1.0.5

3 years ago

1.0.4

4 years ago

1.0.3

4 years ago

1.0.2

4 years ago

1.0.0

4 years ago