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

appn

v0.1.1

Published

A simple web component

Readme

Appn

Appn 是一个专注于构建 WebApp 的框架,基于 WebComponent 技术与一些先进的、面向未来的 Web 标准,目的构建出高性能的 WebApp 体验。

Appn 由以下这三个部分组成:

  1. <appn-*> 这是该项目的核心,围绕“导航”展开。
    1. <appn-navigation> 参考 NavigationAPI 的接口设计,提供了一套 WebComponent,将 NavigationAPI 与 DOM 进行双向关联的路由框架。
      1. <appn-link> 提供 navigation.navigate()/.back()/.forward()/.traverseTo() 的能力
      2. <appn-navigation-history-entry> 提供了 NavigationHistoryEntry 的能力
      3. etc.
    2. <appn-page> 提供了应用页面的 生命周期、主题管理 等能力
  2. <css-*> 提供了现代高级 CSS 的兼容性支持。

    不同于传统的兼容性思路(使用css兼容css,或者用js兼容css),<css-*>使用 html 兼容 css,目的是使用 WebComponent 的生命周期与层级结构来做 CSS 绑定,优先使用原生CSS来做实现,融合使用 JS 和 CSS 来做适配性支持。因此可以与所有的框架进行兼容(React、Vue、Angular等等)。这个方案具有高性能、高可靠的特性。

    注意:这些垫片的目的并不是100%的兼容(但是会往这个方向去努力,但这是一个平衡,因为这会导致垫片文件的体积变大)。主要目的是满足大部分需求场景,或者一些主流功能的需求。

  3. <fuse-* 提供了高级UX 的开发支持。

    使用html的声明式绑定能力,将一些动画交互通过声明式的方式来实现(以往需要你使用专门的js代码配合css代码来实现)。

    有一些 <css-*> 难以完成的复合型垫片,通常会在 <fuse-*> 这里开发一些专项型的垫片,以满足特定的交互需求。(比如一些关于滚动动画的交互)

Dev & Build

To watch the site files, and re-build automatically, run:

pnpm dist:watch # gen /dist/
pnpm analyze:watch # gen /custom-elements.json
pnpm bundle:watch # gen /bundle/ (depends on /dist/)
pnpm 11ty:watch # gen /docs/ (depends on /bundle/ and /custom-elements.json)

The site will usually be served at http://localhost:8000.

Linting

To lint the project run:

pnpm lint

Test

To test the project run:

pnpm test:dev

TODO

  • [ ] 对架构进行拆分成monorepo项目
    • appn
    • @gaubee/lib
    • @gaubee/web
      • @gaubee/css
    • @gaubee/fuse