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 🙏

© 2026 – Pkg Stats / Ryan Hefner

@masumdev/rn-qr-code

v0.2.0

Published

A modern, customizable QR code generator for React Native and Expo with SVG support and beautiful presets.

Readme

@masumdev/rn-qr-code

A high-performance, single-path SVG QR code generator library for React Native and Expo applications, built with react-native-svg.

Features

  • ⚡ Optimized Single-Path SVG: 50x–100x faster native rendering by merging QR modules into one native path node.
  • 🚀 Non-Blocking Asynchronous Mode: Generate complex QR codes asynchronously without dropping UI frames (isAsync).
  • 🎨 Rich QR Code Styling:
    • Linear and Radial Gradients
    • Modular shapes: square, dot, triangle, heart, rain, rounded, star, etc.
    • Granular eye corner styling (independent outer, inner, and center radii)
    • Logo embedding with background padding & border radius
  • 🌈 16+ Built-in Presets (BASIC, HEART, RAIN, LINEAR_GRADIENT, RADIAL_GRADIENT, WITH_LOGO, etc.)
  • 🎯 Dynamic Auto-Fit Versioning: Automatically expands QR matrix size to fit any text or URL length without overflow errors.
  • 📦 Expo & Bare React Native Ready.

Installation

bun add @masumdev/rn-qr-code react-native-svg
# or
npm install @masumdev/rn-qr-code react-native-svg

Expo Projects

npx expo install react-native-svg
bun add @masumdev/rn-qr-code

Usage

Basic Usage

import { QRCode } from "@masumdev/rn-qr-code";

export function MyComponent() {
  return (
    <QRCode
      variant="BASIC"
      value="https://react-native-library-docs.netlify.app/rn-qr-code/"
      size={240}
    />
  );
}

Using Built-in Presets

import { QRCode, QR_CODE_CONFIGS } from "@masumdev/rn-qr-code";

// Using predefined variant name
<QRCode variant="HEART" value="https://masum.dev" size={200} />
<QRCode variant="RAIN" value="https://masum.dev" size={200} />
<QRCode variant="LINEAR_GRADIENT" value="https://masum.dev" size={200} />

Non-blocking Async Rendering

import { QRCode } from "@masumdev/rn-qr-code";
import { Skeleton } from "@masumdev/rn-ui";

<QRCode
  value="https://react-native-library-docs.netlify.app/rn-qr-code/"
  size={200}
  isAsync
  renderLoading={() => <Skeleton style={{ width: 200, height: 200 }} radius="md" />}
/>

API Reference

QRCodeProps

| Prop | Type | Default | Description | | :--- | :--- | :--- | :--- | | value | string | required | The payload or URL to encode. | | variant | keyof typeof QR_CODE_CONFIGS | 'BASIC' | Predefined preset configuration. | | size | number | 256 | Width and height in pixels. | | color | string | '#000' | Module color (if gradient not set). | | backgroundColor | string | 'transparent' | Background color. | | logo | LogoOptions | - | Center logo options (source, size, padding, borderRadius). | | gradient | QRCodeGradientConfig | - | Linear or radial gradient options. | | piece | PieceOptions | - | Module piece shape and sizing. | | eye | EyeOptions | - | Corner position detection pattern styling. | | isAsync | boolean | false | Asynchronous non-blocking calculation. | | isLoading | boolean | false | Force loading state. | | renderLoading | () => ReactNode | - | Custom loading / shimmer component. |


License

MIT © Ma'sum