• Stars
    star
    385
  • Rank 111,464 (Top 3 %)
  • Language
    JavaScript
  • License
    MIT License
  • Created over 7 years ago
  • Updated over 1 year ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Generates a cloud out of the words.

VueWordCloud

Generates a cloud out of the words.

Vue 3

For Vue 3 use the version >18.

demo

Try it out!

setup

npm

npm i vuewordcloud

ES module

Register the component globally.

import Vue from 'vue';
import VueWordCloud from 'vuewordcloud';

Vue.component(VueWordCloud.name, VueWordCloud);

or

Register the component in the scope of another component.

import VueWordCloud from 'vuewordcloud';

export default {
  components: {
    [VueWordCloud.name]: VueWordCloud,
  },
};

browser

<script src="https://unpkg.com/vue"></script>
<script src="https://unpkg.com/vuewordcloud"></script>

The component is globally available as VueWordCloud. If Vue is detected, the component will be registered automatically.

usage

<vue-word-cloud
  style="
    height: 480px;
    width: 640px;
  "
  :words="[['romance', 19], ['horror', 3], ['fantasy', 7], ['adventure', 3]]"
  :color="([, weight]) => weight > 10 ? 'DeepPink' : weight > 5 ? 'RoyalBlue' : 'Indigo'"
  font-family="Roboto"
/>

Pass custom renderer for the words.

<vue-word-cloud :words="words">
  <template slot-scope="{text, weight, word}">
    <div :title="weight" style="cursor: pointer;" @click="onWordClick(word)">
      {{ text }}
    </div>
  </template>
</vue-word-cloud>

properties

property type default description
animation-duration Number 1000 The duration of the animation.
animation-easing String 'ease' The easing of the animation.
animation-overlap Number 1 The overlap of the animation. Set the value to 1 to animate words all at once. Set the value to 0 to animate words one by one. The value 5 has the same effect as the value 1/5.
color [String, Function] 'Black' The default color for each word.
create-canvas Function * Creates a new Canvas instance.
create-worker Function * Creates a new Worker instance.
enter-animation [Object, String] * The enter animation.
font-family [String, Function] 'serif' The default font family for each word.
font-size-ratio Number 0 The font size ratio between the words. For example, if the value is 5, then the largest word will be 5 times larger than the smallest one. The value 5 has the same effect as the value 1/5.
font-style [String, Function] 'normal' The default font style for each word.
font-variant [String, Function] 'normal' The default font variant for each word.
font-weight [String, Function] 'normal' The default font weight for each word.
leave-animation [Object, String] * The leave animation.
load-font Function * Loads the font.
rotation-unit [String, Function] 'turn' The default rotation unit for each word. Possible values are 'turn', 'deg' and 'rad'.
rotation [Number, Function] 0 The default rotation for each word.
spacing Number 0 The spacing between the words. The value is relative to the font size.
text [String, Function] '' The default text for each word.
weight [Number, Function] 1 The default weight for each word.
words Array [] The words to place into the cloud. A value of the array could be either an object, an array or a string.
If the value is an object, it will be resolved to {text, weight, rotation, rotationUnit, fontFamily, fontStyle, fontVariant, fontWeight, color}.
If the value is an array, it will be resolved to [text, weight].
If the value is a string, it will be resolved to text.

let enterAnimation = {opacity: 0};
let leaveAnimation = {opacity: 0};

Make more complex animations.

let enterAnimation = {
  opacity: 0,
  transform: 'scale3d(0.3,0.3,0.3)'
};

Use classes for CSS animations.

let enterAnimation = 'animated bounceIn';
let leaveAnimation = 'animated hinge';

let createCanvas = function() {
  return document.createElement('canvas');
};

let loadFont = function(fontFamily, fontStyle, fontWeight, text) {
  return document.fonts.load([fontStyle, fontWeight, '1px', fontFamily].join(' '), text);
};

Provide custom loadFont function to support older browsers.

import FontFaceObserver from 'fontfaceobserver';

let loadFont = function(family, style, weight, text) {
  return (new FontFaceObserver(family, {style, weight})).load(text);
};

let createWorker = function(code) {
  return new Worker(URL.createObjectURL(new Blob([code])));
};

events

event description
update:progress The current progress of the cloud words computation.

More Repositories

1

THREE.TextSprite

Optimally displays the text as a sprite.
JavaScript
159
star
2

VuetifyImageInput

Provides basic image editing tools.
JavaScript
131
star
3

THREE.TextTexture

A texture with the drawn text.
JavaScript
72
star
4

VueStorage

Allows the components to save and load their data across the browser sessions.
JavaScript
52
star
5

VueChart

A simple wrapper for Chart.js.
JavaScript
24
star
6

VueTween

Allows the components to tween their properties.
JavaScript
23
star
7

lodash.combinations

Calculates all possible combinations without repetition of a certain size.
JavaScript
20
star
8

lodash.product

Calculates the Cartesian product between multiple collections.
JavaScript
18
star
9

VueFlex

A flexbox grid system.
JavaScript
13
star
10

BronKerbosch

An implementation of the Bron-Kerbosch algorithm to find the maximal cliques in an undirected graph.
JavaScript
11
star
11

aframe-text-sprite

A wrapper for THREE.TextSprite.
JavaScript
11
star
12

DearImage

A class that represents a graphical image.
JavaScript
10
star
13

MaxDiff

An implementation of the MaxDiff technique to support the discrete ordering model.
JavaScript
9
star
14

THREE.TextPlane

Optimally displays the text as a plane.
JavaScript
8
star
15

VueInBrowserLoader

Loads a .vue file from the given URL and compiles it to a component directly in the browser.
JavaScript
7
star
16

VueResizeSensor

A Vue container that supports the resize event.
JavaScript
6
star
17

VueThree

A wrapper for THREE.
JavaScript
6
star
18

lodash.permutations

Calculates all possible permutations without repetition of a certain size.
JavaScript
6
star
19

lodash.multicombinations

Calculates all possible combinations with repetition of a certain size.
JavaScript
5
star
20

VueDragDrop

[WIP] A drag and drop solution.
JavaScript
4
star
21

ngx-advanced-forms

Everything to make your work with Angular forms easier.
TypeScript
4
star
22

aframe-text-plane

A wrapper for THREE.TextPlane.
JavaScript
4
star
23

lodash.multipermutations

Calculates all possible permutations with repetition of a certain size.
JavaScript
4
star
24

KMeans

Implementation of the k-means algorithm to partition the values into the clusters.
JavaScript
4
star
25

almete.WordCloud

Generates a cloud out of the words.
JavaScript
4
star
26

KMeansPlusPlus

Implementation of the k-means-plus-plus algorithm to partition the values into the clusters.
JavaScript
3
star
27

THREE.CameraFacingGroup

A group of objects that are always facing the camera.
JavaScript
3
star
28

aframe-drag-controls

A wrapper for THREE.DragControls.
JavaScript
3
star
29

VueFort

The state management for Vue.
JavaScript
3
star
30

NearestNeighborChain

Builds a hierarchy of the clusters.
JavaScript
3
star
31

DearImage.detectBackgroundColor

Detects the image background color.
JavaScript
3
star
32

VuetifyColorInput

A color input component for Vuetify.
JavaScript
3
star
33

VectorMath

A collection of mathematical functions for working with vectors.
JavaScript
2
star
34

ngx-craft

Everything to make your work with Angular easier.
TypeScript
2
star
35

VueSvg

Loads a SVG image as an inline SVG.
JavaScript
1
star
36

DearImage.detectColorScheme

Detects the image color scheme.
JavaScript
1
star
37

saveFile

Saves a file inside a browser.
JavaScript
1
star
38

EChartsVue

A simple Vue wrapper for ECharts.
JavaScript
1
star
39

aframe-grid-helper

A wrapper for THREE.GridHelper.
JavaScript
1
star
40

tag

Parses a template literal to a function.
JavaScript
1
star
41

KoaRoute

A simple route middleware.
JavaScript
1
star
42

XLSX.utils.sanitize_sheet_name

Sanitizes a string to be safe for the use as a sheet name by removing the invalid characters and limiting the length.
JavaScript
1
star
43

detectNearestBrowserLocale

Detects the nearest browser locale.
JavaScript
1
star
44

aframe-camera-facing-group

A wrapper for THREE.CameraFacingGroup.
JavaScript
1
star
45

detectNearestLocale

Detects the nearest preferred locale.
JavaScript
1
star
46

KoaSinglePage

A single page application middleware.
JavaScript
1
star
47

VueZingTouch

A wrapper for ZingTouch.
JavaScript
1
star
48

KoaBody

A simple body fetcher.
JavaScript
1
star
49

throttleAsync

Creates a throttled function.
JavaScript
1
star
50

debounceAsync

Creates a debounced function.
JavaScript
1
star
51

lodash.cloneJSON

Converts a JavaScript value to a JSON string and then parses it back to a JavaScript value.
JavaScript
1
star
52

XLSX.utils.cells_to_sheet

Converts an array of arrays of cell objects to a worksheet.
JavaScript
1
star
53

JustMyLuck

A collection of utility functions for working with randomness.
JavaScript
1
star