npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

qrcode-styled

v0.0.3

Published

Style qrcodes based on node-qrcode.

Downloads

18

Readme

Installation

    npm i qrcode-styled

General Description

This library is based on node-qrcode with different options aiming to modify the QR codes's style.

Please see the docs of node-qrcode for QR code related options (like mask pattern, QR code version etc.). The options described here only reference styling paremeters.

Usage

toDataURL(payload, [options], [cb(error, url)]

toDataURL(): <Promise> payload: <string>. options: {}. See Styling. cb(): Callback function.

Styling

Modules

There are two styling dimensions for modules:

  • type: Modifies shape of modules
  • colordark and colorlight: Modify color of modules. colordark refers to the module color colorlight to the background.
    const opts = {
        moduleStyle: {
            type: 'square',
            colordark: '#0D406C', 
            colorlight: '#ffffff'
        },
    }
  • type: <string>. Possible values: 'square', 'rounded'. Default: 'square'
  • colordark: <string>. Possible values: Hexadecimal color codes. Default: '#000000' Module color
  • colorlight: <string>. Possible values: Hexadecimal color codes. Default: '#ffffff' Background color

Note: If you don't choose white as background, or background and module color only differ slightly, please test the QR code for usability.

Position markers

    const opts = {
        moduleStyle: {},
        positionMarker: {
            squareType: 'none',
            squareColor: '#7826E1',
            innerType: 'square',
            innerColor: '#19DE7F'
          },
    }
  • squareType: <string>. Possible values: 'none', 'square'. Default: 'none' Type of the outer position marker frame
  • innerType: <string>. Possible values: 'none', 'square'. Default: 'none' Type of the inner area of the position marker
  • squareColor, innerColor: <string>. Possible values: 'none', 'square'. Default: 'none'

Note: If moduleStyle.type = 'square' there will be no difference between positionMarker.squareType = 'none' and positionMarker.squareType = 'square'. The same holds for positionMarker.innerType option.

Add an image

    const opts = {
        moduleStyle: {},
        positionMarker: {},
        image: 'src/assets/image.svg',
    }
  • With the image key, provide a path starting with the directory on the nodes_modules level where you placed the image you want to insert into the QR code's center.

  • You have to provide the file format suffix. You can provide the file in the following formats: | Image format | | ------------ | | .svg |

Global options

See node-qrcode. All options are supported except the color option, because this parameter refers to styling. You can style color of modules and position markers separately (see Modules)

Examples

Node express example:

NestJS expample:

    import { toDataURL } from 'qrcode-styled';

    export class AppController {
  
        @Get()
        createQRCode(@Res() res: any): any {

            const payload = 'text_hidden_behind_fuzzy_colored_schema'
            const opts = {
                moduleStyle: {
                    type: 'square',
                    colordark: '#0D406C', 
                    colorlight: '#ffffff'
                },
                positionMarker: {
                    squareType: 'none',
                    squareColor: '#7826E1',
                    innerType: 'square',
                    innerColor: '#19DE7F'
                },
            }
            toDataURL(payload, opts).then((resp) => {

                res.send(`<html lang="en">
                                <head>
                                    <style type="text/css">
                                        .container {
                                            background-color: aqua;
                                        }
                            
                                    </style>
                                </head>
                                <body class="container">
                                    <style>
                                        .qr-code {
                                            background-color: white;
                                            height: 40rem;
                                            width: 40rem;
                                            text-align: center;
                                            background-image: url('${resp}');
                                            background-repeat: no-repeat;
                                        }
                                    </style>
                                    <div class="qr-code"> </div>
                                </body>
                            </html>`)
            })
            
        }
    }

License

MIT

Project Status

Upcoming features:

  • provide more image formats
  • positionMarker.squareType = 'rounded'
  • positionMarker.innerType = 'dot'
  • moduleStyle.type = 'star'
  • Add output types as provided in node-qrcode

This project is not yet suitable for integration. Not typed.