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

@happydesigns/ui

v0.20.0

Published

A reusable Nuxt foundation for content-driven happydesigns websites and applications.

Readme

@happydesigns/ui

npm version npm downloads CI

Reusable Nuxt layer for happydesigns websites, docs sites, and product apps.

The package provides shared Nuxt setup, Nuxt UI conventions, content collection schemas, public H* components, composables, variants, and app config conventions. Projects extend the layer and keep project-specific routes, content, branding, and deployment settings in the project that owns them.

npm · npmx · GitHub

Installation

pnpm add @happydesigns/ui @nuxt/ui tailwindcss
export default defineNuxtConfig({
  extends: ['@happydesigns/ui'],
  css: ['~/assets/css/main.css'],
})

Create the application's single Tailwind entry point:

@import "tailwindcss";
@import "@nuxt/ui";
@import "@happydesigns/ui/styles.css";

Do not register another stylesheet that imports Tailwind or Nuxt UI. Keeping one compilation context ensures that Nuxt UI's generated responsive and color-mode variants share the application's theme and source graph.

Run Nuxt preparation after changing dependencies or layer configuration:

pnpm exec nuxt prepare

Content collections

Applications using Nuxt Content extend @happydesigns/ui/content instead of @happydesigns/ui. This optional layer includes article/content layouts, HContentPage, HSnippet, content search, author lookup, navigation endpoints, and Nuxt Studio (disabled unless configured by the application).

export default defineNuxtConfig({
  extends: ['@happydesigns/ui/content'],
})

Migration from 0.19.x: change the layer entry point above if your application uses these features. The base entry point now registers only Nuxt UI and variants; Comark applications can keep it without initializing Nuxt Content or Studio. The dependencies remain installed for the optional layer, but are not activated by the base layer.

The layer exports reusable schema profiles, but it does not register collection names, sources, or route prefixes for an application. Define those locally in the consumer's content.config.ts:

import { collectionSchemas } from '@happydesigns/ui/schemas'
import { defineCollection, defineContentConfig } from '@nuxt/content'

export default defineContentConfig({
  collections: {
    news: defineCollection({
      type: 'page',
      source: 'news/**/*.md',
      schema: collectionSchemas.article,
    }),
    legal: defineCollection({
      type: 'page',
      source: 'legal/**/*.md',
      schema: collectionSchemas.content,
    }),
  },
})

This keeps the shared field model convenient while leaving collection names, file structure, routing, indexes, and additional project schemas under application control.

Development

pnpm install
pnpm prepare
pnpm dev
pnpm build

pnpm dev starts the playground app. pnpm build builds the playground.

Product Docs

The product docs live in docs/ and are built with Docus.

pnpm docs
pnpm docs:build

pnpm docs:build generates a static Docus build in docs/.output/public. Use pnpm docs:build:server only when the deployment target needs a server-capable Docus build for live MCP support.

The docs explain how to use the layer, content model, components, composables, variants, and configuration. Component props, slots, examples, variants, and collection tables are generated from the package source where possible.

Package Scope

This package owns reusable interface and content foundations. It does not own project copy, customer-specific routes, final brand assets, deployment settings, or product-specific domain behavior.

Use the product docs for usage guidance. Use the source files for implementation facts.