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

@belalwaheed/octagon-mist

v1.0.0

Published

Framework-agnostic design system with Filter Octagon (dark) and Minimal Mist (light) themes — OKLCH color ramps, semantic tokens, and 8 output formats

Readme

Octagon Mist — Filter Octagon / Minimal Mist Design System

A framework-agnostic design system with two themes that share one identity:

  • Dark — Filter Octagon — warm, rich, built for long coding sessions, in the spirit of Monokai Pro's Filter Octagon.
  • Light — Minimal Mist — clean, soft-white, calm-gray, low visual noise.

Everything is generated from one source of truth, so CSS, Tailwind v3/v4, SCSS, Style Dictionary, and Figma Variables all stay in sync.

Install

npm install @belalwaheed/octagon-mist

Quick start

CSS / Vite / Webpack / Next.js

import '@belalwaheed/octagon-mist/css';

Tailwind v4

@import "@belalwaheed/octagon-mist/tailwind/v4";

Tailwind v3

// tailwind.config.js
const octagonMist = require('@belalwaheed/octagon-mist/tailwind/v3');
module.exports = { presets: [octagonMist] };

SCSS

@import "@belalwaheed/octagon-mist/scss";

HTML (no bundler)

<link rel="stylesheet" href="node_modules/@belalwaheed/octagon-mist/css/tokens.css">

Theme switching

<html data-theme="dark"><!-- or data-theme="light" --></html>

Toggle at runtime with one line of JavaScript:

document.documentElement.dataset.theme = 'light'; // or 'dark'

npx CLI

Copy tokens.css directly into any project:

npx @belalwaheed/octagon-mist init              # copies to ./src/styles/tokens.css
npx @belalwaheed/octagon-mist init ./public/css  # copies to a custom folder

File map

octagon-mist/
├── README.md
├── package.json
├── bin/
│   └── cli.mjs                    ← npx CLI tool
├── docs/                          ← full spec, read 00 → 11 in order
│   ├── 00-philosophy.md
│   ├── 01-color-system.md
│   ├── 02-typography.md
│   ├── 03-spacing-layout.md
│   ├── 04-radius-shadow-elevation.md
│   ├── 05-components.md
│   ├── 06-icons-motion.md
│   ├── 07-markdown-syntax-highlighting.md
│   ├── 08-accessibility.md
│   ├── 09-multi-format-tokens.md
│   ├── 10-app-examples.md
│   └── 11-extras.md
├── scripts/                       ← build pipeline
│   ├── generate-colors.mjs        ← edit seed colors here, then re-run
│   ├── build-outputs.mjs          ← generates all output formats
│   └── build-preview.mjs          ← generates preview gallery
├── tokens/
│   ├── primitives.json            ← every color ramp, hex/rgb/hsl/oklch × 50–950
│   └── semantic.json              ← light + dark mapping
├── css/
│   └── tokens.css                 ← CSS custom properties (drop-in, any framework)
├── tailwind/
│   ├── theme.v4.css               ← Tailwind v4 (@theme, CSS-first)
│   └── tailwind.config.js         ← Tailwind v3
├── scss/
│   └── _variables.scss
├── style-dictionary/
│   └── tokens.style-dictionary.json
├── figma/
│   └── figma-variables.json
└── preview/
    └── index.html                 ← interactive component gallery, both themes

Development

Rebuild everything from the seed colors:

npm run all        # generate → build → preview

Or run each step individually:

npm run generate   # regenerate tokens/primitives.json from OKLCH seeds
npm run build      # generate CSS, Tailwind, SCSS, Style Dictionary, Figma outputs
npm run preview    # generate preview/index.html

Where to start reading

Read docs/00-philosophy.md first — it explains the three-tier token architecture (primitive → semantic → component). Then docs/01-color-system.md and docs/05-components.md cover the two things you'll touch most often.

About the palette

The dark theme's seed colors were measured from a real Monokai Pro Filter Octagon export, not approximated. One color (Sapphire, used for info) is synthesized since Filter Octagon's native palette doesn't include a blue. Full reasoning is in docs/01-color-system.md.

Contrast for every text/background and button pairing was verified against the WCAG formula — see docs/08-accessibility.md for measured ratios.

License

MIT