Security News
Weekly Downloads Now Available in npm Package Search Results
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
A way to make styling canvas elements like text and images nicer. This lib uses node-canvas, please see instructions on how to get this working on your computer.
The idea is to create a somewhat familiar way to style a canvas element to leverage the ability to turn the canvas drawing into an image. Images are more sharable and if done correctly more printable as well :D. This lib leverages node-canvas to be able to do this server side currently, but its goal is to eventually be universal for client and server technologies. That way you could render some awesome interactive charts and then potentially render them also into something like a Github README. Not quite there yet tho.
This is currently in some flux, and currently only works on a node server.
npm i drawable --save
Drawable is really just a canvas that is meant to use some CSS like syntax to be able to add text and images to a canvas.
import Drawable from 'drawable'
const drawable = new Drawable({ width: 200, height: 200, backgroundColor: 'white' });
There are a few styles that are passed here: width
, height
, and backgroundColor
. This does exactly what you would think it would do. It makes a canvas with the width of 200px height of 200px and the backgroundColor of white. If you have used canvas before you would notice that backgroundColor is not a thing. All this is really doing is creating a rectangle that fills the background of the canvas with a fill of the color passed. By default this is transparent
.
Styles key | description | default |
---|---|---|
width | The width of the canvas | 0 |
height | The height of the canvas | 0 |
backgroundColor | The background color of the canvas | transparent |
const text = Drawable.text('Here is some text', {
fontSize: 12,
top: 20,
left: 20,
right: 20,
textAlign: 'center'
});
// append text to drawable instance
drawable.append(text);
This is where the magic of drawable
starts to shine. With drawable text we automatically will wrap text based on the size of the canvas and the values passed in for the right
and left
options. Then we calculate the alignment of the text using textAlign
option.
Styles key | Description | Default |
---|---|---|
top | The top alignment of the text container | 0 |
left | The left alignment of the text container | 0 |
right | The right alignment of the text container | 0 |
color | The color of the text | #222 |
textAlign | Can be: 'center', 'left', or 'right' | left |
lineHeight | The line height of the text | 0 |
fontSize | The size of the text in pixels | 0 |
fontFamily | The font used in the canvas | sans-serif |
const image = Drawable.image('./path/to/image.jpg', {
top: 20,
left: 20,
});
// append text to drawable instance
drawable.append(image);
Images are pretty basic, you give the image a left and top coordinate and it should render. If you are trying to emulate something like a background image you could also use the objectFit
style which should allow you to cover
or contain
the image in the canvas.
Styles key | Description | Default |
---|---|---|
top | The top alignment of the image | 0 |
left | The left alignment of the image | 0 |
width | The width of the image | images.width |
height | The height of the image | images.height |
objectFit | object-fit css current values supported are "cover" and "contain" | none |
Note: when using object fit it will override the left, top, width, and height values.
toBuffer
and toDataURI
FAQs
A way to make styling canvas elements like text and images nicer
The npm package drawable receives a total of 0 weekly downloads. As such, drawable popularity was classified as not popular.
We found that drawable demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
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.
Security News
Socket's package search now displays weekly downloads for npm packages, helping developers quickly assess popularity and make more informed decisions.
Security News
A Stanford study reveals 9.5% of engineers contribute almost nothing, costing tech $90B annually, with remote work fueling the rise of "ghost engineers."
Research
Security News
Socket’s threat research team has detected six malicious npm packages typosquatting popular libraries to insert SSH backdoors.