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

@jflamb/keycaps-react

v0.4.0

Published

Owned React components for the Keycaps design system.

Downloads

183

Readme

@jflamb/keycaps-react

Application shell navigation

AppShellNavGroup owns labelled lists and the separator between ordered groups. AppShellNavLink accepts an optional icon slot without choosing an icon library:

<AppShellNavGroup label="Household">
  <AppShellNavLink href="/orders" icon={<PackageIcon />} isCurrent>
    Orders
  </AppShellNavLink>
</AppShellNavGroup>

Icons are decorative by default because the link text names the destination. Use iconLabel only when the icon communicates information not present in that text. isDisabled uses the existing React Aria disabled-link contract.

Owned Keycaps React components built on React Aria Components.

import "@jflamb/keycaps-tokens";
import "@jflamb/keycaps-react/styles.css";
import { Button, Field } from "@jflamb/keycaps-react";

export function Example() {
  return (
    <form>
      <Field label="Project name" />
      <Button type="submit">Save project</Button>
    </form>
  );
}

Install react and react-dom in the consuming application. Import the token layer once at the application root, then import the component styles.

Layered Plate is part of the shipping API: use Card surface="minimal|tonal|contrast", PageHeader surface="tonal|contrast", and treatment="selector" on AppShellNav or AppShellNavGroup. The defaults preserve the original raised Card, plain PageHeader, and directory navigation treatments.

Documentation: https://jflamb.github.io/keycaps-design-system/

Theme bootstrap for hydrated apps

ThemeToggle cycles system, light, and dark and persists the explicit choices. Hydrated consumers should also place the package-owned bootstrap in the document head so the same preference is applied before the first frame:

import { createThemeBootstrapScript } from "@jflamb/keycaps-react/theme";

const script = createThemeBootstrapScript({
  storageKey: "jflamb-theme",
  themeColorSelector: "#theme-color",
});

Render script as a blocking inline script after the selected theme-color meta and before stylesheets or deferred application modules. The helper reads a valid cookie first, falls back to localStorage, and keeps browser chrome correct after explicit choices and operating-system changes in system mode.

License

MIT — see LICENSE.

This package ships no font binaries; the faces come from @jflamb/keycaps-tokens, which carries its own SIL Open Font License 1.1 carve-out. React Aria Components is an Apache-2.0 dependency installed alongside this package, under its own terms.