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

@roger-hub/package-01

v1.0.9

Published

A modern UI component library for React applications, built with TailwindCSS and React.

Readme

@roger-hub/package-01

A modern UI component library for React applications, built with TailwindCSS and React.

Features

  • 🎨 Beautiful UI components with a consistent design language
  • 🧩 Modular approach, use only what you need
  • ✨ Based on TailwindCSS for easy customization
  • 📦 Tree-shakable for optimized production bundles
  • 💻 TypeScript support with full type definitions

Installation

npm install @roger-hub/package-01

Quick Start

  1. Install the package:
npm install @roger-hub/package-01
  1. Configure Tailwind CSS in your project:
npm install -D tailwindcss postcss autoprefixer
npx tailwindcss init -p
  1. Update your tailwind.config.js:
/** @type {import('tailwindcss').Config} */
module.exports = {
  content: [
    // Your project files
    "./src/**/*.{js,jsx,ts,tsx}",
    
    // Include our component library
    "./node_modules/@roger-hub/package-01/**/*.{js,ts,jsx,tsx}"
  ],
  theme: {
    extend: {
      // Theme extensions needed by our components (see INTEGRATION-GUIDE.md)
    }
  }
}
  1. Import styles in your main CSS file (before Tailwind directives):
/* main.css */
@import '@roger-hub/package-01/styles.css';
@tailwind base;
@tailwind components;
@tailwind utilities;

Troubleshooting

CSS Import Issues

As of version 1.0.9, we've improved how CSS is handled to prevent the common error:

[postcss] Missing "./base" specifier in "tailwindcss" package

Our solution uses a precompiled CSS file that doesn't rely on Tailwind's direct imports. To use it:

/* Import our styles BEFORE your Tailwind directives */
@import '@roger-hub/package-01/styles.css';

@tailwind base;
@tailwind components;
@tailwind utilities;

For more detailed solutions, see our Tailwind Troubleshooting Guide.

  1. Configure Tailwind to include the component styles:
// tailwind.config.js
/** @type {import('tailwindcss').Config} */
export default {
  content: [
    // ...
    "./node_modules/@roger-hub/package-01/dist/**/*.js"
  ],
  // See USAGE.md for complete theme configuration
}
  1. Use components in your application:
import { Button } from '@roger-hub/package-01';

function App() {
  return (
    <div className="p-4">
      <h1 className="text-2xl mb-4">My App</h1>
      <Button>Click Me</Button>
    </div>
  );
}

TypeScript Support

All components and utilities are fully typed with TypeScript. You can import types directly:

import { Button, ButtonProps } from '@roger-hub/package-01';

// Create a custom button component
const CustomButton = (props: ButtonProps) => {
  return <Button {...props} className="custom-class" />;
};

The package includes TypeScript declarations that provide intellisense and type checking in your IDE.

Components

Button

A versatile button component with various styles and sizes.

import { Button } from '@roger-hub/package-01';

<Button variant="default" size="default">Default Button</Button>
<Button variant="destructive" size="sm">Destructive Button</Button>
<Button variant="outline" size="lg">Outline Button</Button>
<Button variant="secondary">Secondary Button</Button>
<Button variant="ghost">Ghost Button</Button>
<Button variant="link">Link Button</Button>

Utilities

cn function

Utility for conditionally joining class names:

import { cn } from '@roger-hub/package-01';

<div className={cn("base-class", isActive && "active-class")}>
  Content
</div>

Documentation

Troubleshooting

CSS Import Issues

If you encounter an error like:

[vite] Internal server error: [postcss] Missing "./dist/style.css" specifier in "@roger-hub/package-01" package

or

Error: Failed to scan for dependencies from entries:
  Missing "./dist/styles.css" specifier in "@roger-hub/package-01" package [plugin vite:dep-scan]

Make sure you're importing the CSS correctly:

/* Recommended way */
@import '@roger-hub/package-01/styles.css';

/* These also work with version 1.0.7+ */
@import '@roger-hub/package-01/dist/style.css';
@import '@roger-hub/package-01/dist/styles.css';

If you're using a bundler other than Vite or have specific CSS import requirements, you can also try:

@import '~@roger-hub/package-01/styles.css';

Make sure you're using version 1.0.7 or later to avoid CSS import issues.

License

MIT+ TypeScript + Vite

This template provides a minimal setup to get React working in Vite with HMR and some ESLint rules.

Currently, two official plugins are available:

Expanding the ESLint configuration

If you are developing a production application, we recommend updating the configuration to enable type-aware lint rules:

export default tseslint.config({
  extends: [
    // Remove ...tseslint.configs.recommended and replace with this
    ...tseslint.configs.recommendedTypeChecked,
    // Alternatively, use this for stricter rules
    ...tseslint.configs.strictTypeChecked,
    // Optionally, add this for stylistic rules
    ...tseslint.configs.stylisticTypeChecked,
  ],
  languageOptions: {
    // other options...
    parserOptions: {
      project: ['./tsconfig.node.json', './tsconfig.app.json'],
      tsconfigRootDir: import.meta.dirname,
    },
  },
})

You can also install eslint-plugin-react-x and eslint-plugin-react-dom for React-specific lint rules:

// eslint.config.js
import reactX from 'eslint-plugin-react-x'
import reactDom from 'eslint-plugin-react-dom'

export default tseslint.config({
  plugins: {
    // Add the react-x and react-dom plugins
    'react-x': reactX,
    'react-dom': reactDom,
  },
  rules: {
    // other rules...
    // Enable its recommended typescript rules
    ...reactX.configs['recommended-typescript'].rules,
    ...reactDom.configs.recommended.rules,
  },
})