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

@mahdava/ui

v0.3.8

Published

Eons UI design system

Readme

@mahdava/ui

A React-friendly design system package for building consistent interfaces with shared components, semantic tokens, and themeable styles.

Status: under active development
@mahdava/ui is not production-ready yet. Expect API changes, styling changes, incomplete coverage, and occasional breaking changes while the package is still being shaped.

What this package is for

@mahdava/ui is meant to provide:

  • reusable UI components
  • semantic design tokens
  • theme files for different visual directions
  • framework-aware provider hooks for things like custom link renderers
  • a package structure that can be consumed from external apps

The goal is to make it easier to build interfaces with a shared design language instead of restyling the same primitives over and over again.

What it currently includes

  • atoms, molecules, and higher-level UI building blocks
  • semantic CSS variable tokens
  • built-in theme files
  • package stylesheets for consumer apps
  • MahdavaUIProvider for integration points like custom link renderers

Install

npm install @mahdava/ui
npm install -D tailwindcss @tailwindcss/postcss

@mahdava/ui expects the consumer app to process its CSS through a Tailwind 4 compatible pipeline. It does not ship fully precompiled standalone CSS.

Basic usage

Import Tailwind in your app, then import the base package styles, then import a theme explicitly.

import { MahdavaUIProvider } from "@mahdava/ui";
import "tailwindcss";
import "@mahdava/ui/styles.css";
import "@mahdava/ui/themes/default.css";

export function App() {
  return (
    <MahdavaUIProvider>
      {/* your app */}
    </MahdavaUIProvider>
  );
}

What styles.css includes

@mahdava/ui/styles.css is the base package entrypoint. It includes:

  • the package token and component styles
  • the generated Tailwind inline source helper used by published components

It does not include Tailwind itself, and it does not include a theme. Both are imported separately on purpose.

Why themes are separate

Themes are treated as explicit overlays, not hidden defaults. That keeps the contract clearer:

  • @mahdava/ui/styles.css = base styles and package wiring
  • @mahdava/ui/themes/*.css = theme choice

This makes it easier to swap themes or provide your own without fighting an implicit built-in default.

Required PostCSS config in consumer apps

Consumer apps using @mahdava/ui/styles.css should include a PostCSS config with the Tailwind v4 PostCSS plugin:

const config = {
  plugins: {
    "@tailwindcss/postcss": {},
  },
};

export default config;

If your app is missing this, you may see warnings such as Unknown at rule: @theme, @source, or @tailwind, and package styling may render incorrectly even if the build succeeds.

Built-in themes

Themes can be imported separately when needed:

import "@mahdava/ui/themes/default.css";
import "@mahdava/ui/themes/forest.css";
import "@mahdava/ui/themes/pixel-galaxy.css";

In most apps, you should import exactly one theme at the app entrypoint.

Consumer setup summary

For most consumer apps, the intended setup is:

import "tailwindcss";
import "@mahdava/ui/styles.css";
import "@mahdava/ui/themes/default.css";

Integration notes

Use MahdavaUIProvider when your app needs custom framework-aware renderers, such as:

  • Next.js Link / Image
  • Remix Link
  • other router or image abstractions

Development warning

This package is still being actively designed.

That means:

  • component APIs may change
  • token names and theme contracts may evolve
  • examples and docs may move faster or slower than implementation
  • versions may introduce breaking changes before the package stabilizes

If you use it today, treat it as best suited for:

  • internal prototyping
  • package integration work
  • exploratory UI development
  • design-system iteration

Repository docs

Repository-specific contributor and maintainer guidance lives in: