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

@_linked/icons

v1.1.2

Published

The Linked icon set: a named, aliased re-export of lucide-react plus a few hand-drawn icons, so every Linked package and app names an icon the same way.

Readme

@_linked/icons

The Linked icon set: one place where an icon gets its name.

import {Icons} from '@_linked/icons';

<Icons.Trash width={16} height={16} />

Most of the set is a re-export of lucide under stable, intention-revealing names. The rest are hand-drawn, for concepts lucide has no icon for.

Why a package, and why this one

Applications and component packages reach for Icons.Trash rather than each choosing its own alias for the same glyph — which is how a codebase ends up with Trash2, TrashIcon and Delete all rendering the same thing. Swapping the underlying set, or overriding a single glyph, then becomes a change here rather than a change everywhere.

It is its own package rather than part of @_linked/primitives for two reasons. Icons churn on a different cadence — a designer adding a glyph should not cut a component-library release — and primitives has a stated contract (a headless behaviour source plus a CSS module reading theme tokens) that a re-export barrel does not fit. Keeping them apart also keeps lucide-react out of the dependency tree of everything that renders a button.

Installing

npm install @_linked/icons lucide-react

lucide-react is a peer dependency. The icons are re-exported, not wrapped, so a single copy has to be shared with the consuming app — two copies means the same glyph exists twice in the bundle.

Where it sits

| Layer | Package | Knows about | |---|---|---| | Design tokens | @_linked/css | nothing | | Icons | @_linked/icons | nothing — a named glyph set | | Headless components | @_linked/primitives | the DOM and the tokens | | Data binding | @_linked/react | shapes and queries | | Shape-driven UI | @_linked/shape-ui | how to render an arbitrary shape |

See arch-03 §UI package layering.

Releasing

Add a changeset (npx changeset) with your change. On merge to main, CI opens a version PR; merging that stages the release for a maintainer to approve with 2FA.