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

@seclab-dev/icons

v0.1.0-alpha.1

Published

SecLab SVG Icon Assets

Readme

@seclab-dev/icons

SecLab 自有 SVG 图标包,包含通用界面图标和紧凑场景使用的应用语义图标。

安装

pnpm add @seclab-dev/icons

使用

按名称读取通用 SVG 字符串:

import { getIcon } from "@seclab-dev/icons";

const settingsIcon = getIcon("settings");

读取应用命名空间中的 SVG:

const appSettingsIcon = getIcon("settings", "apps");

也可以按命名空间读取完整图标映射:

import { iconMap } from "@seclab-dev/icons";

const commonNames = Object.keys(iconMap.common);
const appNames = Object.keys(iconMap.apps);

不存在的名称会回退到 common/fallback 图标。

Vue 项目通常应使用 @seclab-dev/vue 提供的 SecLabIcon

<SecLabIcon name="settings" />
<SecLabIcon name="settings" namespace="apps" />

命名与设计

  • 文件名使用小写字母、数字和连字符。
  • 通用图标名称表达动作或对象,例如 searchdownloadserver
  • 应用图标名称与应用 ID 保持一致。
  • SVG 使用 24x24 画布、currentColor 和统一的圆角描边。
  • 不使用 Emoji、字体图标、Base64 图片或外部图标资源。
  • common 用于按钮、菜单、状态和数据展示。
  • apps 用于窗口标题、通知来源、菜单和空状态等紧凑应用语义场景。
  • 应用库、桌面、任务栏和套件入口使用各项目维护的 PNG 资产。

新增图标

通用图标放入 src/svgs/common/,应用语义图标放入 src/svgs/apps/fallback.svg 只允许存在于 common/。新增后执行仓库图标校验和完整检查:

node .agents/skills/seclab-icon-system/scripts/validate-icons.mjs packages/icons/src/svgs/common
node .agents/skills/seclab-icon-system/scripts/validate-icons.mjs packages/icons/src/svgs/apps
pnpm check