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

@omnifyjp/ui-components

v0.5.3

Published

A comprehensive React UI component library built on [Shadcn UI](https://ui.shadcn.com/) + [Radix UI](https://www.radix-ui.com/) + [Tailwind CSS v4](https://tailwindcss.com/). Provides 53 accessible primitives and 14 domain-specific components — all tree-s

Readme

@omnifyjp/ui-components

A comprehensive React UI component library built on Shadcn UI + Radix UI + Tailwind CSS v4. Provides 53 accessible primitives and 14 domain-specific components — all tree-shakeable with per-component entry points.

Installation

npm install @omnifyjp/ui-components
# or
pnpm add @omnifyjp/ui-components

Peer Dependencies

npm install react react-dom

Optional peers (only needed if you use specific components):

| Peer | Required By | |------|-------------| | date-fns (>=3) | calendar, date-picker | | recharts (>=2) | chart | | react-hook-form (>=7) | form |


Usage

Import individual components (recommended)

import { Button } from '@omnifyjp/ui-components/components/button';
import { Card, CardContent, CardHeader, CardTitle } from '@omnifyjp/ui-components/components/card';
import { Input } from '@omnifyjp/ui-components/components/input';

Import from barrel (convenience)

import { Button, Card, Input } from '@omnifyjp/ui-components';

Import utilities

import { cn } from '@omnifyjp/ui-components/lib/utils';

Import hooks

import { useIsMobile } from '@omnifyjp/ui-components/hooks/use-mobile';

Import theme CSS

@import '@omnifyjp/ui-components/styles';

Components

Shadcn UI Primitives (53)

All Shadcn primitives are included, fully accessible via Radix UI, with dark mode support.

| Category | Components | |----------|-----------| | Layout | aspect-ratio, card, resizable, scroll-area, separator, skeleton | | Navigation | breadcrumb, menubar, navigation-menu, pagination, tabs | | Data Display | avatar, badge, calendar, carousel, chart, hover-card, progress, table, tooltip | | Data Entry | button, checkbox, color-picker, combobox, date-picker, file-upload, form, input, input-otp, label, radio-group, rating, select, slider, switch, tag-input, textarea, time-picker, toggle, toggle-group | | Feedback | alert, alert-dialog, sonner (toast) | | Overlay | command, context-menu, dialog, drawer, dropdown-menu, popover, sheet | | Composition | accordion, collapsible, sidebar |

Domain Components (14)

Shared business-logic components, locale-agnostic (accept labels prop with English defaults).

Calendar

| Component | Description | |-----------|-------------| | CalendarMini | Compact month calendar with event dots | | CalendarEventChip | Colored event bar for calendar grids | | CalendarEventSheet | Side panel for event details | | CalendarToolbar | Date navigation with view switcher (month/week/day) | | CalendarCategoryBadge | Colored category label |

Workflow

| Component | Description | |-----------|-------------| | WorkflowStepper | Multi-step progress indicator | | WorkflowDiagram | Visual flow diagram with stages | | WorkflowStatusBadge | Status indicator (active/draft/archived) | | WorkflowCategoryBadge | Category badge for workflows | | StageTypeBadge | Stage type indicator (approval/action/notification) |

RBAC

| Component | Description | |-----------|-------------| | PermissionGrid | Module x Action permission matrix with checkboxes | | ScopeTree | Hierarchical scope selector with inheritance | | ScopeTypeBadge | Scope level indicator (global/org/branch/team) |

Forms

| Component | Description | |-----------|-------------| | SlugInput | URL-friendly slug input with auto-generation |


Theme & Styling

CSS Design Tokens

The package ships a theme.css with a complete token system. Import it in your app:

/* In your global CSS */
@import '@omnifyjp/ui-components/styles';

Density Tokens

All spacing and sizing is controlled via CSS custom properties:

| Token | Value | Tailwind Class | Use For | |-------|-------|----------------|---------| | --density-page | 16px | p-page | Page padding | | --density-section | 16px | gap-section | Section gaps | | --density-element | 32px | h-element | Button/Input height | | --density-element-sm | 28px | h-element-sm | Small inputs | | --density-element-lg | 36px | h-element-lg | Large buttons | | --density-card | 16px | px-card, pt-card | Card padding | | --density-dialog | 20px | p-dialog | Dialog padding | | --header-height | 48px | h-header | App header height | | --density-page-title | 20px | text-page-title | Page title font size |

Dark Mode

All components support dark mode via the dark class on <html>. Color tokens auto-switch:

// Semantic tokens (auto dark mode)
<div className="bg-background text-foreground border-border">
  <p className="text-muted-foreground">Secondary text</p>
</div>

// Accent colors with dark variants
<Badge className="bg-red-50 dark:bg-red-500/15 text-red-600 dark:text-red-400">
  Urgent
</Badge>

Utility: cn()

Class merging utility combining clsx + tailwind-merge:

import { cn } from '@omnifyjp/ui-components/lib/utils';

<div className={cn('p-4 bg-card', isActive && 'ring-2 ring-primary', className)} />

Tree Shaking

The package is fully tree-shakeable:

  • Per-component entry points: @omnifyjp/ui-components/components/button only loads button.js
  • sideEffects: false: Bundlers can safely eliminate unused code
  • ESM only: Modern import/export for optimal bundling

Package Exports

@omnifyjp/ui                    → all components (barrel)
@omnifyjp/ui-components/components/button  → Button, buttonVariants
@omnifyjp/ui-components/components/card    → Card, CardHeader, CardContent, ...
@omnifyjp/ui-components/components/*       → any component by name
@omnifyjp/ui-components/lib/utils          → cn()
@omnifyjp/ui-components/hooks/use-mobile   → useIsMobile()
@omnifyjp/ui-components/styles             → theme.css

Tech Stack

  • React 18+ with new JSX transform
  • TypeScript (strict mode, full type definitions)
  • Tailwind CSS v4 with design tokens
  • Radix UI for accessible primitives
  • class-variance-authority for component variants
  • cmdk for command palette
  • embla-carousel-react for carousel
  • react-day-picker for calendar/date-picker
  • react-resizable-panels for resizable layouts
  • vaul for drawer component
  • sonner for toast notifications
  • lucide-react for icons

Related Packages

| Package | Description | |---------|-------------| | @omnifyjp/ui | App shell framework (sidebar, header, i18n, theming) — depends on this package | | @omnifyjp/editor | Rich text editors (Tiptap + BlockNote) |


License

MIT