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

@brona22/superwaddle

v1.0.0

Published

A collection of reusable React components

Readme

Super Waddle Components

npm version Storybook

A production-ready React component library built with TypeScript, featuring accessible, themeable components with comprehensive documentation and testing.

✅ READY TO PUBLISH: PUBLICATION_READY.md - All quality gates passed, all tests passing, verified ready for npm publish

✨ Features

  • 🎯 TypeScript - Full type safety with TypeScript support
  • 🎨 Themeable - CSS custom properties (design tokens) for easy theming
  • Accessible - WCAG compliant components tested with jest-axe
  • 📦 Tree-shakeable - Optimized bundle with ESM and CJS support
  • 📚 Documented - Interactive documentation with Storybook
  • 🧪 Tested - Comprehensive test coverage with Vitest + React Testing Library
  • 🔧 Developer Experience - ESLint, Prettier, and Husky for code quality

📦 Installation

npm install superwaddle

🚀 Quick Start

import { Button, Card, Header, ThemeProvider } from 'superwaddle';

function App() {
  return (
    <ThemeProvider>
      <Header 
        title="My App" 
        subtitle="Built with Super Waddle"
      />
      <Card
        title="Welcome"
        content="Get started with our component library"
        footer={
          <Button variant="primary" onClick={() => console.log('Clicked!')}>
            Get Started
          </Button>
        }
      />
    </ThemeProvider>
  );
}

🧩 Components

Button

A customizable button component with multiple variants.

Props:

  • children: ReactNode - Button content
  • variant?: 'primary' | 'secondary' - Visual style (default: 'primary')
  • disabled?: boolean - Disable the button
  • className?: string - Additional CSS classes
  • Extends all standard HTML button attributes

Example:

import { Button } from 'superwaddle';

<Button variant="primary" onClick={handleClick}>
  Click Me
</Button>

<Button variant="secondary" disabled>
  Disabled Button
</Button>

Card

A versatile card component for displaying content.

Props:

  • title?: string - Card title
  • content?: string - Main content text
  • footer?: ReactNode - Footer content (often used for actions)
  • className?: string - Additional CSS classes

Example:

import { Card, Button } from 'superwaddle';

<Card
  title="Card Title"
  content="This is the card content."
  footer={
    <Button variant="primary">Action</Button>
  }
/>

Header

A header component with title and optional subtitle.

Props:

  • title: string - Main header title (required)
  • subtitle?: string - Optional subtitle text
  • className?: string - Additional CSS classes

Example:

import { Header } from 'superwaddle';

<Header 
  title="Super Waddle" 
  subtitle="A React Component Library"
/>

ThemeProvider

A wrapper component that provides theme context.

Props:

  • children: ReactNode - Child components

Example:

import { ThemeProvider } from 'superwaddle/theme';

<ThemeProvider>
  <YourApp />
</ThemeProvider>

🎨 Theming

The library uses CSS custom properties for theming. All design tokens use the --sw-* prefix.

Available Design Tokens

/* Colors */
--sw-color-primary: #007bff;
--sw-color-secondary: #6c757d;
--sw-color-background: #ffffff;
--sw-color-text-primary: #333333;

/* Spacing */
--sw-spacing-sm: 8px;
--sw-spacing-md: 16px;
--sw-spacing-lg: 20px;

/* Typography */
--sw-font-size-base: 16px;
--sw-font-size-lg: 18px;

/* Border Radius */
--sw-radius-sm: 4px;
--sw-radius-md: 8px;

/* Shadows */
--sw-shadow-sm: 0 1px 2px rgba(0, 0, 0, 0.1);
--sw-shadow-md: 0 2px 4px rgba(0, 0, 0, 0.1);

/* Transitions */
--sw-transition-fast: 150ms ease-in-out;
--sw-transition-base: 250ms ease-in-out;

Customizing Theme

Override CSS variables in your own stylesheet:

:root {
  --sw-color-primary: #ff6b6b;
  --sw-color-secondary: #4ecdc4;
  --sw-spacing-md: 20px;
}

🛠️ Development

Prerequisites

  • Node.js >= 18
  • npm >= 9

Setup

# Install dependencies
npm install

# Start development server
npm run dev

# Run Storybook
npm run storybook

Available Scripts

# Development
npm run dev              # Start Vite dev server
npm run storybook        # Start Storybook

# Building
npm run build            # Build the library
npm run build-storybook  # Build Storybook

# Testing
npm run test             # Run tests
npm run test:watch       # Run tests in watch mode
npm run test:ui          # Open Vitest UI
npm run test:coverage    # Generate coverage report

# Code Quality
npm run lint             # Run ESLint
npm run lint:fix         # Fix ESLint errors
npm run format           # Format code with Prettier
npm run format:check     # Check formatting
npm run typecheck        # Run TypeScript type checking

🎯 Start Here: Execution Resources

Ready to ship SuperWaddle? Use these resources to execute the complete 50-step launch plan:

Weekly execution plan: Publish to npm → Announce launch → Get first customers → Build partnerships → Scale to $100k+ ARR


📚 Complete Documentation Hub

Interactive Component Docs

  • Storybook (Public): https://bronero-ai.github.io/super-waddle/ - Interactive component explorer with code examples
  • Storybook (Local): npm run storybook then open http://localhost:6006

Core Reference

For Development Teams

Troubleshooting & Help

  • TROUBLESHOOTING.md - Common issues and solutions (setup, styling, performance, accessibility)
  • FAQ.md - Frequently asked questions (installation, usage, licensing, support)

Brand & Operations

🧪 Testing

The library uses Vitest with React Testing Library and jest-axe for comprehensive testing:

# Run all tests
npm run test

# Watch mode
npm run test:watch

# Coverage report
npm run test:coverage

All components include:

  • Unit tests for functionality
  • Accessibility tests with jest-axe
  • User interaction tests

🏗️ Project Structure

superwaddle/
├── src/
│   ├── components/           # Component source files
│   │   ├── Button.tsx
│   │   ├── Button.css
│   │   ├── Button.test.tsx
│   │   ├── Button.stories.tsx
│   │   ├── Card.tsx
│   │   ├── Card.css
│   │   ├── Card.test.tsx
│   │   ├── Card.stories.tsx
│   │   ├── Header.tsx
│   │   ├── Header.css
│   │   ├── Header.test.tsx
│   │   ├── Header.stories.tsx
│   │   └── index.ts
│   ├── theme/                # Theme and styling
│   │   ├── ThemeProvider.tsx
│   │   ├── tokens.css
│   │   └── index.ts
│   ├── tests/                # Test utilities
│   │   └── setup.ts
│   ├── App.tsx               # Demo app
│   └── main.tsx              # Demo entry point
├── .storybook/               # Storybook config
├── dist/                     # Build output
├── tsconfig.json             # TypeScript config
├── tsup.config.ts            # Build config
├── vitest.config.ts          # Test config
├── eslint.config.js          # ESLint config
├── .prettierrc               # Prettier config
└── package.json

💳 Pricing & Commercial

Superwaddle is dual-licensed: MIT for open-source use and a paid commercial license for production or proprietary use.

Pricing Options

  • PRICING.md - Tier overview (Team $999/year, Enterprise $4,999+/year, custom per-project pricing)
  • ENTERPRISE_FEATURES.md - Enterprise SLA, custom development, white-label options

Commercial Terms & Licensing

For Organizations

🚀 Publication & Sales

Publish & Launch

Sales & Customer Acquisition

Internal Validation (Steps 31-35)

Growth & Expansion (Steps 36-40)

  • GROWTH_AND_EXPANSION.md - Partner recruitment campaigns, v1.1 component roadmap, release cadence, community engagement, KPIs

Revenue Optimization (Steps 41-45)

  • REVENUE_OPTIMIZATION.md - Stripe integration, subscription management, pricing optimization, customer financial operations, churn prevention

Scale & Sustainability (Steps 46-50)

  • SCALE_AND_SUSTAINABILITY.md - Year 1-2 revenue targets (to $250k+ ARR), team scaling, product roadmap, industry recognition, long-term vision

Revenue Optimization (Steps 41-45)

  • REVENUE_OPTIMIZATION.md - Stripe integration, subscription management, pricing optimization, customer financial operations, churn prevention

Scale & Sustainability (Steps 46-50)

  • SCALE_AND_SUSTAINABILITY.md - Year 1-2 revenue targets (to $250k+ ARR), team scaling, product roadmap, industry recognition, long-term vision

🤝 Contributing

Contributions are welcome! The project includes:

  • Pre-commit hooks with Husky and lint-staged
  • Automated linting and formatting
  • Type checking with TypeScript
  • Comprehensive test coverage requirements

Make sure all tests pass and code is properly formatted before submitting PRs.

💬 Support & Community

Get Help

See Also

📋 Quick Links

| Resource | Purpose | Audience | |----------|---------|----------| | Storybook | Interactive component docs | Everyone | | API_REFERENCE.md | Complete API reference | Developers | | STARTER_TEMPLATE.md | 10-minute setup | New users | | ADVANCED_THEMING.md | Custom theming patterns | Advanced users | | DEPLOYMENT_GUIDE.md | Deployment instructions | DevOps/Deployment engineers | | TROUBLESHOOTING.md | Common issues & fixes | Anyone with issues | | FAQ.md | Frequently asked questions | Everyone | | PARTNERSHIPS.md | Reseller/partner program | Agencies & Partners | | CUSTOMER_SUCCESS.md | Support & onboarding | Customers | | COMPONENT_ROADMAP.md | Upcoming components | Product planning | | NPM_PUBLICATION_GUIDE.md | Publish to npm | DevOps/Release engineers | | LAUNCH_ANNOUNCEMENT.md | Launch templates | Marketing/Communications | | CUSTOMER_TRACKING.md | Revenue dashboard | Finance/Operations | | CUSTOMER_ONBOARDING.md | Onboarding checklist | Customer success/Sales | | PARTNER_RECRUITMENT.md | Partner recruitment | Business development |

🚀 Getting Started

Fastest path to production:

  1. Read STARTER_TEMPLATE.md (10 minutes)
  2. Install: npm install superwaddle
  3. Wrap app with ThemeProvider
  4. Import components: import { Button, Card } from 'superwaddle'
  5. See DEPLOYMENT_GUIDE.md for your platform

Already have a project?

  1. Read MIGRATION_CHECKLIST.md (6-step integration)
  2. Replace components one by one
  3. Test in your build pipeline
  4. Deploy when ready

Questions?