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

@whytea/lemongrass

v0.2.10

Published

A collection of beautiful, reusable React components built with TypeScript, React, Next.js, and Tailwind CSS.

Downloads

5

Readme

@whytea/lemongrass

A collection of beautiful, reusable React components built with TypeScript, React, Next.js, and Tailwind CSS.

Installation

npm install @whytea/lemongrass
# or
yarn add @whytea/lemongrass

Requirements

This library is designed to be used with Next.js applications and requires:

  • Next.js 15.x or later
  • React 18.x or later
  • React DOM 18.x or later

Usage

You can import components directly:

import { AvatarCircularAvatars } from '@whytea/lemongrass';

function MyComponent() {
  return (
    <AvatarCircularAvatars 
      avatars={[
        { src: '/images/avatar1.jpg', alt: 'User 1', sizeClass: 'size-8' },
        { src: '/images/avatar2.jpg', alt: 'User 2', sizeClass: 'size-10' }
      ]} 
    />
  );
}

Or you can import specific components by path:

import { default as AvatarCircularAvatars } from '@whytea/lemongrass/application/elements/avatar/circular-avatars';

Component Categories

The library includes various components organized by category:

Application Elements

  • Avatar components (circular avatars, rounded avatars, with notifications, etc.)
  • Badges, buttons, cards, dropdowns, and more UI elements

Application Forms

  • Input components, checkboxes, radio buttons, toggles, etc.
  • Form layouts and validation

Application Feedback

  • Alerts, notifications, and other feedback elements

Application Navigation

  • Breadcrumbs, menus, tabs, navigation bars, etc.

Application Overlays

  • Modals, drawers, notifications, and other overlay components

Marketing Components

  • Hero sections, feature sections, headers, and other marketing elements

Next.js Integration

This library includes components that use Next.js features like next/link and next/image. These are kept as external dependencies and not bundled with the library to avoid conflicts with your application's Next.js instance. This approach ensures proper compatibility with Next.js routing, SSR, and image optimization.


Build & Architecture

Overview

This library uses Rollup as a bundler, with rollup-plugin-esbuild for fast TypeScript and JSX compilation, and rollup-plugin-dts for generating type definitions.

We use preserveModules: true to keep modules tree-shakable and readable, and a secondary copy of .tsx source files is preserved for Tailwind CSS compatibility during content scanning.

Build Output

After running yarn build, the following structure is generated:

dist/         # Compiled .js files (ESM)
dist/*.d.ts   # TypeScript definitions
dist/components.json   # Metadata describing components
dist-tw/      # Raw .tsx files (for Tailwind content scanning only)

Tailwind Compatibility

Tailwind's JIT mode doesn't reliably detect class names in minified or compiled React.createElement output. To solve this:

  • We copy all .tsx files into dist-tw/
  • Consuming apps must include dist-tw/**/*.tsx in their tailwind.config.ts:
content: [
  './src/**/*.{ts,tsx}',
  './node_modules/@whytea/lemongrass/dist-tw/**/*.{tsx}'
]

This ensures Tailwind sees all literal class strings and builds the correct CSS.

Build Features

  • "use client" directives are preserved with a custom plugin to support RSC
  • components.json is copied from src/components/components.json to dist/
  • .tsx files are copied for dev/scan purposes (not executed at runtime)

How to Build

yarn build

This will:

  1. Clean output folders
  2. Compile TypeScript to ESM in dist/
  3. Emit .d.ts files
  4. Copy components.json
  5. Copy .tsx files to dist-tw/

Publishing

Only the necessary files are published:

"files": [
  "dist",
  "dist-tw"
]

Apps consume dist/index.js + dist/index.d.ts, and Tailwind scans dist-tw/**/*.tsx.


Contributing

See CONTRIBUTING.md for details on how to contribute to this project.


License

MIT