New Case Study:See how Anthropic automated 95% of dependency reviews with Socket.Learn More
Socket
Sign inDemoInstall
Socket

vue-pattern-placeholder

Package Overview
Dependencies
Maintainers
1
Versions
8
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

vue-pattern-placeholder

Adds canvas patterns as placeholder images

  • 1.0.34
  • latest
  • npm
  • Socket score

Version published
Weekly downloads
7
decreased by-46.15%
Maintainers
1
Weekly downloads
 
Created
Source

Vue-pattern-placeholder

This plugin provides a placeholder component for Vue.js. It uses canvas to render patterns from input string like URL.

NPM version Dependencies Maintenance PRs Welcome MIT license

Table of contents

Demo

Sample images

Recent updates

  • 2019-05-04 Import format changed, refer to usage section.

Installation

To install this plugin, open terminal in your Vue project directory and type:

npm i --save-dev vue-pattern-placeholder

This command will install the plugin in your project node_modules dir and add it as a project development dependency in project's package.json file.

If you need this plugin as a generic dependency, type this command instead:

npm i --save-dev vue-pattern-placeholder

Usage

To import a component, write:

import patternPlaceholder from 'vue-pattern-placeholder'

Add it to the components property

components: {
    patternPlaceholder
},

Now you can use it in your template:

<patternPlaceholder
  :width="150" :height="150"
  :input="''+item_data.media_id"
  label="150x150"
  label_style="900 30px Arial" label_color="#000"
  :hue_range="[70, 170]"
  :lightness_range="[0, 100]"
/>

I recommend to start playing with hue_range and lightness_range properties to reach the best look.

API

For now, none of the parameters are required.

OptionData-type(s)DescriptionDefault
widthNumberwidth of an image250
heightNumberheight of an image250
inputStringthis text will be converted to a patternHi there! :-)
labelStringtext label to showNo label
label_styleStringcanvas font style. Example: 900 30px Arial20px Helvetica bold
label_colorStringcolor of a label. Example: #777#777
metricStringmetric, used to create a pattern. Examples: Euclidean, Manhattan, MinkovskiManhattan
debugBooleanallows to show center points for a Voronoi patternfalse
hue_rangeArraysets a color range in degrees. Example: [0, 359][0, 359]
lightness_rangeArraylightness range for pattern pieces in percents. Example: [0, 100][0, 100]

Warning

Please be aware that this project is still in a testing stage. Use at your own risk. Ideas and bug reports are welcome.

Inspiration

I thought about converting text to an image and I remembered Voronoi patterns: these are easy to implement and look very nice.

Voronoi pattern animation

Then I had an idea:

  • take a string, process it using a SHA-256 hash function
  • extract hash bytes
  • use pairs of bytes, converting each to a float value between 0 and 1 to place X and Y points
  • count pattern segments, use numbers to set each one's hue in HSV color palette
  • calculate pattern areas
  • use areas to determine lightness of a pattern segment in HSV

TODO

  • Overlay text
  • Fix wrong color representation in overlay text
  • Autoreload fix (probably needs a destructor)
  • Fix empty canvas on width / height change
  • Fixed beforeDestroy bug
  • Added demo
  • Consider integrating label style and color into one parameter
  • Label style settings in key-value format
  • Extend hue setting to a list of several possible hues

Acknowledgements

Thanks to AnatolV from RosettaCode for a nice Voronoi diagram implementation.

Thanks to emn178 for js-sha256 library. It is easy to use and helps a lot.

Keywords

FAQs

Package last updated on 05 May 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc