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

@awc-ui/core

v1.0.1

Published

Accessible Material Design 3 Web Components for React, Angular, Vue, and Svelte, with SSR, theming, RTL, forms, and custom elements

Readme

@awc-ui/core

npm version npm downloads Material Design 3 Web Components StencilJS TypeScript WCAG Zero dependencies

React components Angular components Vue components Svelte components SSR License

Material Design 3 Web Components, built with Stencil. 56 components that ship as standard custom elements, so they work in React, Angular, Vue, Svelte, or plain HTML, with SSR for Next.js, Nuxt, SvelteKit, Astro, and Angular.

For AI assistants

This package ships its own documentation. To point your project's assistants at it — Claude Code, Cursor, Copilot, Codex — run once, after installing:

npx awc-ui ai-setup

That writes a small block into the files those tools already read (AGENTS.md, CLAUDE.md, .cursor/rules/, .github/copilot-instructions.md), leaving your own instructions in them untouched. Nothing is fetched from the network.

The documentation itself:

| File | What it gives you | | -------------------------------- | ----------------------------------------------------------------------------------------- | | main-llm.md | Start here. Interview, decision matrix, token reference, page recipes, ship checklist | | src/components/<tag>/readme.md | Full manual for one component — API, accessibility contract, anti-patterns |

Each component's manual has a When NOT to use and an Anti-patterns section. Read them: they describe the mistakes assistants actually make with this library.

Install

npm install @awc-ui/core

Start a project or check setup

npx --package @awc-ui/core awc-ui init my-app --framework next --dry-run
npx --package @awc-ui/core awc-ui init my-app --framework next

Bundled starters: html, next, nuxt, sveltekit, and astro. The command copies files into an empty directory and prints the install/run commands. It does not overwrite an existing project or install dependencies. Remove --dry-run to create the files. React, Angular, Vue and Svelte integration guides cover adding AWC UI to existing applications.

From an existing project:

npx awc-ui doctor
npx awc-ui doctor --json

The doctor checks local package resolution, coordinated package versions and source-level setup signals. It reports checks that still require a browser, such as SSR adoption. --framework overrides automatic framework detection.

Use

One import registers every element and loads the design tokens:

import "@awc-ui/core/define";
<md-button variant="filled" icon="add">Add item</md-button>

define imports tokens.css, so it is a bundler-only entry. Two cases need something else:

| Situation | Entry | | ------------------------------------ | --------------------------------------------------------------------------------------------------------------------------- | | Bundler (Vite, webpack, Next, Nuxt…) | import '@awc-ui/core/define' | | CDN / no bundler | load the loader, plus <link rel="stylesheet" href="…/@awc-ui/tokens/src/tokens.css"> | | Server-side rendering | @awc-ui/core/hydrate — reference apps for Next.js, Nuxt, SvelteKit, Astro, and Angular SSR live under apps/ in the repo |

Smallest bundles: per-component imports

define registers the elements for all 56 components, including their nested sub-components. Apps that want to ship only what they use import per component instead (the tokens then need one explicit CSS import):

import "@awc-ui/core/css/tokens.css";
import { defineCustomElement } from "@awc-ui/core/components/md-button";
defineCustomElement();

Client-only apps (no SSR) can go one step further: every components/* module also exists under components-csr/* — the same element with the Declarative-Shadow-DOM hydration support compiled out (≈3 kB gz smaller runtime). Import from there directly, or alias @awc-ui/core/dist/components → @awc-ui/core/dist/components-csr in the bundler to switch a whole app (framework wrappers included) in one line.

Framework wrappers

The elements work untouched anywhere, but typed wrappers give you props, events and JSX types:

| Framework | Package | | --------- | ------------------------------------------------------------------ | | React | @awc-ui/react | | Angular | @awc-ui/angular | | Vue | @awc-ui/vue | | Svelte | @awc-ui/svelte |

What's in the box

  • 56 components across actions, selection, text inputs, navigation, containment, communication and data display.
  • Design tokens — 200+ --md-sys-* custom properties, light and dark, plus per-component hooks and ::part() for anything the props don't cover.
  • Accessibility — WAI-ARIA roles, keyboard support and focus management, verified with axe in CI. See https://awc-ui.dev/guides/accessibility/.
  • Form participation — inputs are form-associated via ElementInternals, so they land in FormData and take part in constraint validation.
  • RTL — logical properties throughout; directional icons mirror.
  • Density — a global data-density signal, or a per-component density prop, from 0 down to -4.

Documentation

  • Docs and live demos — https://awc-ui.dev
  • Component reference — every component ships a readme.md next to its source with API, do/don't, patterns and anti-patterns.

License

MIT © AWC UI