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

juno-ui-library

v0.4.3

Published

A React UI component library

Readme

juno-ui-library

A lightweight React component library with a token-based theme system, dark mode, and multiple color palettes.

Built originally for my own projects — sharing it in the hope it helps others save time and build beautiful UIs too.

If juno-ui saves you time, consider buying me a coffee ☕ — it's free and open source, built in spare time.

Installation

npm install juno-ui-library

Import the stylesheet once in your app entry:

import 'juno-ui-library/dist/juno-ui-library.css'

Usage

import { Button, Badge, Spinner } from 'juno-ui-library'

export default function App() {
  return (
    <>
      <Button intent="primary" variant="solid">Save changes</Button>
      <Badge intent="success">Live</Badge>
      <Spinner intent="primary" />
    </>
  )
}

Components

Inputs

| Component | Description | |-----------|-------------| | Button | Solid / outline / ghost × 5 intents × 3 sizes | | Input | Text input with intent states and sizes | | Select | Dropdown select with intent states | | Checkbox | Accessible checkbox with intent colors | | Switch | Toggle switch with intent colors | | Dropdown | Click-triggered menu with icons, shortcuts, dividers, labels | | DatePicker | Calendar popover for date or date+time selection | | Slider | Range input with intent colors, sizes, and value display |

Display

| Component | Description | |-----------|-------------| | Badge | Small status label | | Avatar | User avatar with image, initials, and status indicator | | Tag | Removable or static tag | | Card | Surface container with optional header/body/footer | | Tooltip | CSS hover tooltip on 4 sides with arrow | | Separator | Horizontal or vertical divider, optional label | | Spinner | Animated loading indicator | | Progress | Track+fill progress bar with intent colors | | Accordion | Animated collapsible sections, single or multi-open | | Collapsible | Single expandable section with a custom trigger |

Feedback

| Component | Description | |-----------|-------------| | Alert | Inline alert with intent colors | | Toast | Transient notification | | Modal | Portal dialog with backdrop, ESC, and scroll lock | | Drawer | Slide-in panel from left or right |

Navigation

| Component | Description | |-----------|-------------| | Tabs | Tab navigation with multiple variants | | Breadcrumb | Hierarchical path navigation | | Pagination | Page navigation controls | | Stepper | Step-by-step progress indicator |

Theming

All components use CSS custom properties. Light mode is the default; dark mode activates via OS preference or a data-theme attribute:

<html data-theme="light"> … </html>
<html data-theme="dark"> … </html>

Color palettes

Eight built-in palettes override the accent colors via data-palette:

<html data-palette="warm">   <!-- warm reds/oranges -->
<html data-palette="dim">    <!-- muted blues -->
<html data-palette="mono">   <!-- monochrome -->
<html data-palette="pastel"> <!-- soft pastels -->

Available values: default · warm · dim · mono · pastel · vibrant · muted · grayscale

Overriding tokens

:root {
  --color-primary:       #7c3aed;
  --color-primary-hover: #6d28d9;
}

Full token reference: src/styles/_tokens.scss

Development

npm install
npm run dev          # Vite dev sandbox  → localhost:5173
npm run storybook    # Storybook         → localhost:6006
npm run build        # Build library     → dist/
npm test             # Jest unit tests

Publishing

npm run build
npm publish