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

@awar.dev/ui

v2.1.1

Published

Terminal-inspired React component library — Algorithmic Warfare design system

Readme

@awar.dev/ui

Terminal-inspired React component library built on shadcn/ui + Tailwind v4. Monospace everything. Zero border-radius. No shadows.

AWAR Design System — Dark Mode

Component Explorer — Buttons

Design Principles

| Principle | Detail | |-----------|--------| | Typography | Monospace-only (JetBrains Mono) | | Shape | Zero border-radius everywhere | | Elevation | Tone-based surface shifts — no box-shadow | | Density | Compact h-7 (28px) default, 4px spacing scale | | Palette | Warm CRT: maroon #773333 x amber #FF9944 x warm neutrals | | Modes | Dark-first, light mode supported |


Installation

npm install @awar.dev/ui

Peer Dependencies

npm install react react-dom

Works with React 18 and 19.


Quick Start

import { AWARProvider, Button, Input } from '@awar.dev/ui'
import '@awar.dev/ui/styles'

function App() {
  return (
    <AWARProvider defaultTheme="dark">
      <Button>Execute</Button>
      <Input placeholder="Enter command..." />
    </AWARProvider>
  )
}

Components

Component Explorer

The repo includes an interactive showcase app with 40+ demo pages.

npm run dev

Command Palette

Inputs

| Component | Description | |-----------|-------------| | Button | 6 variants (primary, secondary, destructive, outline, ghost, link) x 4 sizes | | Input | Text, password, number, search with styled native controls | | NumberInput | [-] VALUE [+] stepper with unit prop (SUI, $, %, ETH) | | Textarea | Auto-height text area | | Select | Single-value dropdown | | Checkbox | Square checkbox (no rounded corners) | | RadioGroup | Square radio indicators | | Switch | Toggle switch | | Slider | Range slider with amber thumb | | Toggle / ToggleGroup | Pressable toggle buttons | | Calendar | Date picker (single, range, popover) | | InputOTP | One-time password verification input | | Form | react-hook-form + zod validation integration |

Display

Cards and Stat Cards

| Component | Description | |-----------|-------------| | Card | Container with Header, Content, Footer sub-components | | Table | Sortable columns with TableSortHead, auto-detect numeric sort | | Badge | Status labels (default, secondary, destructive, outline) | | Avatar | User avatar with image and fallback | | Separator | Horizontal/vertical divider | | Skeleton | Loading placeholder | | AspectRatio | Constrained aspect ratio container |

Feedback

| Component | Description | |-----------|-------------| | Alert | Informational banner with icon | | Progress | Determinate progress bar | | Sonner | Toast notifications |

Overlays

Dialog with Form

| Component | Description | |-----------|-------------| | Dialog | Modal dialog with header, content, footer | | AlertDialog | Confirmation dialog with cancel/action | | DropdownMenu | Context menu with groups, separators, shortcuts | | HoverCard | Preview card on hover | | Popover | Anchored overlay panel | | Sheet | Slide-in panel (top, right, bottom, left) | | Tooltip | Hover tooltip |

Navigation

| Component | Description | |-----------|-------------| | Breadcrumb | Path-based navigation with ellipsis overflow | | NavigationMenu | Horizontal nav with mega-menu content | | Tabs | Tab panels with underline and pill variants |

Layout

| Component | Description | |-----------|-------------| | Accordion | Collapsible content sections | | Collapsible | Single expandable region | | Resizable | Draggable panel splitter | | ScrollArea | Custom scrollbar container | | Command | Command palette (cmdk) |

Visualization

| Component | Description | |-----------|-------------| | GraphCanvas | React Flow wrapper with AWAR theme (pan/zoom/select) | | GraphEdge | Custom bezier edge with configurable stroke/dash | | GraphLegend | Legend overlay for graph node/edge types | | ChartContainer | Recharts wrapper with AWAR color integration |

Branding

FigletText, Logo, LogoLockup

| Component | Description | |-----------|-------------| | FigletText | ASCII art text with gradient support (ANSI Shadow, Calvin S) | | Logo | Monogram mark at multiple sizes | | LogoLockup | Logo + wordmark (horizontal, stacked) |


Theme

Palette — Light Mode

Dark mode is the default. Light mode activates via the .light class on <html>.

import { useAWARTheme } from '@awar.dev/ui'

function ThemeToggle() {
  const { theme, toggleTheme } = useAWARTheme()
  return <button onClick={toggleTheme}>{theme}</button>
}

Surface Elevation

No shadows. Depth is expressed through background tone:

background → card → secondary → popover
(darkest)                      (lightest)

Palette

| Token | Dark | Light | Role | |-------|------|-------|------| | --background | #0D0B0A | #FAF7F5 | Root surface | | --card | #171312 | #FFFFFF | Card surface | | --primary | #FF9944 | #B85E10 | Interactive / amber | | --accent | #773333 | #773333 | Brand / maroon | | --destructive | #CC3333 | #CC3333 | Error / red | | --border | #3A3230 | #DBD4D0 | Borders |


Development

| Command | Description | |---------|-------------| | npm run dev | Start showcase dev server | | npm run build:lib | Build library (dist/index.js + dist/index.css) | | npm run typecheck | TypeScript check (tsc -b) |

Project Structure

src/
  components/
    awar/              AWAR-specific (FigletText, Logo, Graph)
    ui/                shadcn/ui components (customized)
  app/                 Dev showcase (not shipped)
  provider.tsx         AWARProvider + useAWARTheme
  index.ts             Library public API
  styles/globals.css   Theme layer + global overrides

Tech Stack

React 19 · TypeScript · Vite · Tailwind CSS v4 · Radix UI · Recharts · React Flow


License

MIT. Copyright Algorithmic Warfare.