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

@sanbira/binder-paper-css

v0.1.1

Published

A simple binder paper-like stylesheet that can be used via npm or jsDelivr CDN.

Readme

binder-paper-css

GitHub npm

A simple binder paper–like stylesheet you can use in any project.

Works both as an npm package and via CDN (jsDelivr).

Install (npm)

npm install @sanbira/binder-paper-css

Then import the CSS in your app entry:

// ESM
import '@sanbira/binder-paper-css';

// or import the CSS file directly (works in Vite, Next, CRA, etc.)
import '@sanbira/binder-paper-css/style.css';

Use the class in your markup:

<div class="BPCSS-page">
  <h1>Notebook vibes ✏️</h1>
  <h2>Lines, margin and punch holes</h2>
  <p>
    This page has repeating horizontal lines, a red margin guide, and punch-hole
    effects. Typography scales by line-height to align to the grid.
  </p>
  
  <h3>Supported Elements</h3>
  <p>All text elements align to the line grid:</p>
  <ul>
    <li>Headings (h1, h2, h3) with different sizes</li>
    <li>Paragraphs with proper line spacing</li>
    <li>Ordered lists (ol) and unordered lists (ul)</li>
  </ul>
  
  <h3>RTL Support</h3>
  <p>
    When the document direction is RTL, the red margin line and holes flip
    automatically to the appropriate side.
  </p>
</div>

CDN (jsDelivr)

No build step? Use the CDN:

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@sanbira/binder-paper-css/style.css">

To lock a specific version, include it in the URL (recommended for production):

<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@sanbira/[email protected]/style.css">

Customize

Override the provided CSS variables to tweak the look. The stylesheet defines some global sizing variables and component-specific variables:

:root {
  /* Global scale (min 12px). Changing this scales the whole sheet. */
  --BPCSS-global-font-size: max(2vmin, 12px);
  
  /* Line spacing system derived from the global scale */
  --BPCSS-line-height-num: 0.5;  /* multiplier for line spacing */
  --BPCSS-line-height-space: calc(var(--BPCSS-line-height-num) * var(--BPCSS-global-font-size));
  --BPCSS-line-height: calc(var(--BPCSS-line-height-space) + 1 * var(--BPCSS-global-font-size));
  
  /* Font family for the notebook content */
  --BPCSS-font-family: cursive;
}

.BPCSS-page {
  /* Visual appearance */
  --page-line-height: calc(0.1 * var(--BPCSS-global-font-size));   /* thickness of blue lines */
  --padding-block: calc(var(--BPCSS-line-height) * 2);
  --max-width: 50em;
  --whitespace-height: calc(var(--BPCSS-line-height) - var(--page-line-height));
  --holes-position: calc(2 * var(--BPCSS-global-font-size));       /* x-position of punch holes */
  --red-line-position: 90deg;                                      /* orientation of red margin line */
}

Files

  • style.css — the stylesheet (also the default jsDelivr entry)
  • index.js — JS entry that imports style.css for bundlers
  • demo.html — interactive demo with live controls for testing

Supported Elements

The stylesheet provides proper line-grid alignment for:

  • Headings: h1, h2, h3 with different row sizes (3, 2, 1 respectively)
  • Paragraphs: p elements with baseline alignment
  • Lists: ol and ul with proper indentation and item spacing
  • List items: li elements that inherit proper typography

Notes

  • Direction-aware: Uses the :dir(rtl) selector. If your document or a parent element uses dir="rtl", the red margin line and punch holes will flip to the appropriate side.
  • Scalable design: All measurements are derived from --BPCSS-global-font-size, so you can scale the entire design by changing a single variable.
  • Typography alignment: All text elements align to the ruled line background for a realistic notebook appearance.
  • List support: Both ordered and unordered lists maintain proper spacing and indentation that scales with the global font size.

License

MIT © Matan Sanbira