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

pinkyacces-toolkit

v0.1.0

Published

Librería de accesibilidad web embebible con tours interactivos para aplicaciones web

Readme

pinkyacces-toolkit

🌸 Librería TypeScript de accesibilidad web con tours interactivos para aplicaciones web

CI npm version License: MIT

Features

  • Accessibility profiles – one-call presets for low-vision, dyslexia, senior, and color-blind users
  • 🔤 Font scaling – smooth 0.5×–3× scaling
  • 🎨 Reading themes – default, high-contrast, sepia, dark
  • 📏 Reading ruler – floating guide line that follows the cursor
  • 🧠 Dyslexia font – OpenDyslexic font injection
  • 🔊 Speech synthesis – read any element aloud via Web Speech API
  • 🎯 Interactive tours – step-by-step onboarding with overlay, tooltip, and keyboard navigation
  • 💾 Persistence – saves preferences to localStorage
  • 🖥 CLIpinky init, pinky tour:init, pinky doctor, pinky demo
  • 📦 Dual ESM/CJS – works in any bundler or vanilla JS
  • 🏷 Full TypeScript – complete type declarations

Installation

npm install pinkyacces-toolkit

Quick Start

Accessibility

import { applyProfile, setFontScale, setReadingTheme, injectContrastStyles } from 'pinkyacces-toolkit';

// Inject CSS (call once on app init)
injectContrastStyles();

// Apply a profile
applyProfile('low-vision');       // font 1.5×, dark theme, high contrast
applyProfile('dyslexia');         // OpenDyslexic font, wider spacing
applyProfile('senior');           // font 1.4×, sepia theme
applyProfile('color-blind');      // high-contrast theme
applyProfile('default');          // reset to defaults

// Or configure manually
setFontScale(1.3);
setReadingTheme('dark');

Reading Ruler

import { enableReadingRuler, disableReadingRuler } from 'pinkyacces-toolkit';

enableReadingRuler();   // shows a horizontal line that follows the mouse
disableReadingRuler();

Speech Synthesis

import { speak, stopSpeech } from 'pinkyacces-toolkit';

speak('Hello, welcome to our app!', 'en-US');
stopSpeech();

Interactive Tours

import { TourEngine } from 'pinkyacces-toolkit';

const tour = new TourEngine({
  steps: [
    {
      target: '#navbar',
      title: 'Navigation',
      description: 'Use the nav bar to move between sections.',
      position: 'bottom',
    },
    {
      target: null,
      title: 'All done!',
      description: 'You completed the tour.',
      position: 'center',
    },
  ],
  callbacks: {
    onComplete: () => console.log('Tour finished'),
  },
});

tour.start();

Persistence

import { savePreferences, loadPreferences, clearPreferences } from 'pinkyacces-toolkit';

const prefs = loadPreferences();   // restore saved settings
savePreferences({ fontScale: 1.4, readingTheme: 'sepia' });
clearPreferences();

CLI

npx pinkyacces-toolkit init        # create pinky.config.js
npx pinkyacces-toolkit tour:init   # create pinky-tour.config.js
npx pinkyacces-toolkit doctor      # validate setup
npx pinkyacces-toolkit demo        # show examples

API Reference

Accessibility

| Function | Description | |---|---| | applyProfile(name, root?) | Apply a predefined accessibility profile | | resetProfile(root?) | Reset to defaults | | setFontScale(scale, root?) | Set font scale (0.5–3) | | getFontScale(root?) | Get current font scale | | resetFontScale(root?) | Reset font scale | | setReadingTheme(theme, root?) | Set reading theme | | getReadingTheme(root?) | Get current theme | | injectContrastStyles() | Inject contrast CSS | | setLineHeight(value, root?) | Set line height (1–3) | | setLetterSpacing(value, root?) | Set letter spacing (0–10px) | | enableDyslexiaFont(root?) | Enable OpenDyslexic font | | disableDyslexiaFont(root?) | Disable dyslexia font | | enableReadingRuler() | Show reading ruler | | disableReadingRuler() | Hide reading ruler | | speak(text, lang?, rate?, pitch?) | Read text aloud | | stopSpeech() | Stop speech synthesis | | savePreferences(prefs) | Persist preferences | | loadPreferences() | Load persisted preferences |

Tour Engine

| Method | Description | |---|---| | new TourEngine(options) | Create a tour instance | | tour.start() | Start the tour | | tour.next() | Go to next step | | tour.prev() | Go to previous step | | tour.cancel() | Cancel the tour | | tour.stepIndex | Current step index | | tour.running | Whether tour is active |

Keyboard Navigation (Tour)

| Key | Action | |---|---| | Escape | Cancel tour | | ArrowRight | Next step | | ArrowLeft | Previous step | | Tab | Focus trap within tooltip |

License

MIT © DmindGames