Update README.md

This commit is contained in:
Preet
2020-05-27 00:41:56 -07:00
committed by GitHub
parent 39c69e29a6
commit 1aed19aee8

101
README.md
View File

@@ -1,9 +1,106 @@
# rough-notation # Rough Notation
A small JavaScript library to create and animate annotations on a web page A small JavaScript library to create and animate annotations on a web page
Rough Notation uses RoughJS to create a hand-drawn look and feel. Elements can be annotated in a number of different styles. Animation duration and delay can be configured, or just turned off. Rough Notation uses [RoughJS](https://roughjs.com) to create a hand-drawn look and feel. Elements can be annotated in a number of different styles. Animation duration and delay can be configured, or just turned off.
Rough Notation is about 3.2kb in size when gzipped. Rough Notation is about 3.2kb in size when gzipped.
[Visit website to see it in action](https://roughnotation.com/) [Visit website to see it in action](https://roughnotation.com/)
## Installation
You can add rough-notation to your project via npm
```
npm install --save rough-notation
```
Or load the ES module directly
```html
<script type="module" src="https://unpkg.com/rough-notation?module"></script>
```
Or load the IIFE version which created a `RoughNotation` object in your scope.
```html
<script type="module" src="https://unpkg.com/rough-notation"></script>
```
## Usage
Create an `annotation` object by passing the element to annotate, and a config to describe the annotation style.
Once you have the annotation object, you can call `show()` or `hide()` on it to show the annotation
```javascript
import { annotate } from 'rough-notation';
const e = document.quereySelector('#myElement');
const annotation = annotate(e, { type: 'underline' });
annotation.show();
```
## Annotation Group
rough-notation provides a way to order the animation of annotations by creating an annotation-group. Pass the list of annotations to create a group. When show is called on the group, the annotations are animated in order.
```javascript
import { annotate, annotationGroup } from 'rough-notation';
const a1 = annotate(document.quereySelector('#e1'), { type: 'underline' });
const a2 = annotate(document.quereySelector('#e3'), { type: 'box' });
const a3 = annotate(document.quereySelector('#e3'), { type: 'circle' });
const ag = annotationGroup([a3, a1, a2]);
ag.show();
```
## Configuring the Annotation
When you create an annotation object, you pass in a config. The config only has one mandatory field, which is the `type` of the annotation. But you can configure the annotation in many ways.
export interface RoughAnnotationConfig {
type: RoughAnnotationType;
animate?: boolean; // defaults to true
animationDuration?: number; // defaulst to 1000ms
animationDelay?: number; // default = 0
color?: string; // defaults to currentColor
strokeWidth?: number; // default based on type
padding?: number; // defaults to 5px
}
#### type
This is a mandatory field. It sets the annotation style. Following are the list of supported annotation types:
* __underline__: Create a sketchy underline below an element.
* __box__: This style draws a box around the element.
* __circle__: Draw a circle around the element.
* __highlight__: Creates a highlight effect as if maked by a highlighter.
* __strike-through__: This style draws a box around the element.
* __crossed-off__: This style draws a box around the element.
#### animate
Boolean property to turn on/off animation when annotating. Default value is `true`.
#### animationDuration
Duration of the animation in milliseconds. Default is `800ms`.
#### animationDelay
Delay in animation in milliseconds. Default is `0ms`.
#### color
String value representing the color of the annotation sketch. Default value is `currentColor`.
#### strokeWidth
Width of the annotation strokes. Default value is `1`.
#### padding
Padding between the element and roughly where the annotation is drawn. Default value is `5` (in pixels).