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

@storkly/icons

v0.4.0

Published

Framework-neutral TypeScript icon data for the Storkly baby and family app — a soft, rounded 24×24 icon set with no React, Vue, Svelte, or Flutter dependency.

Readme

@storkly/icons

Framework-neutral TypeScript icon data for the Storkly baby and family app — a soft, rounded 24×24 icon set with no React, Vue, Svelte, or Flutter dependency.

npm License Icons Styles Types

Install

npm install @storkly/icons

Usage

import {
    sleepIcon,
    sleepFilledIcon,
    icons,
    iconList,
    getIcon,
    type StorklyIcon,
    type StorklyIconName,
} from '@storkly/icons'

sleepIcon.svg // full <svg>…</svg> string (outline)
sleepFilledIcon.svg // filled variant
sleepIcon.body // inner markup only
sleepIcon.viewBox // "0 0 24 24"
sleepIcon.strokeWidth // 2

icons['bottle'] // outline, lookup by kebab-case name
icons['bottle-filled'] // filled variant
getIcon('reminder') // typed lookup helper, accepts 'reminder' or 'reminder-filled'
iconList // readonly tuple of every icon record (outline + filled)

Each icon is exported as a named constant in <camelCase>Icon form — firstStepsIcon, headCircumferenceIcon, carSeatIcon. The filled variant of every icon is exported as <camelCase>FilledIconfirstStepsFilledIcon, headCircumferenceFilledIcon, carSeatFilledIcon — and keyed in the icons map as <name>-filled.

Variants

Every icon ships in two styles:

  • Outline — the default, referenced as <name> in maps (icons['bottle']) and as <camelCase>Icon as a named export (bottleIcon).
  • Filled — solid weight for selected/active states, referenced as <name>-filled (icons['bottle-filled']) and as <camelCase>FilledIcon (bottleFilledIcon).

A typical pattern is to render outline at rest and swap to filled on selection:

import { bottleIcon, bottleFilledIcon } from '@storkly/icons'

const icon = isActive ? bottleFilledIcon : bottleIcon

React

import { sleepIcon } from '@storkly/icons'

export function SleepIcon({ size = 24, color = 'currentColor' }) {
    return (
        <svg
            width={size}
            height={size}
            viewBox={sleepIcon.viewBox}
            fill="none"
            stroke={color}
            strokeWidth={sleepIcon.strokeWidth}
            strokeLinecap="round"
            strokeLinejoin="round"
            dangerouslySetInnerHTML={{ __html: sleepIcon.body }}
        />
    )
}

Vanilla DOM / SSR

import { getIcon } from '@storkly/icons'

document.querySelector('#icon')!.innerHTML = getIcon('sleep').svg

To tint inline-rendered SVGs via CSS, target the paths with fill: currentColor and set color on the parent:

.icon {
    color: var(--storkly-blue);
    width: 24px;
    height: 24px;
}
.icon svg path {
    fill: currentColor;
}

API

| Export | Type | Description | | ------------------ | ---------------------------------------- | -------------------------------------------------------------------------------------------- | | <name>Icon | StorklyIcon | Outline export per source SVG (e.g. sleepIcon, bottleIcon). | | <name>FilledIcon | StorklyIcon | Filled variant per source SVG (e.g. sleepFilledIcon, bottleFilledIcon). | | icons | Record<StorklyIconName, StorklyIcon> | Lookup map keyed by kebab-case name (outline <name>, filled <name>-filled). | | iconList | readonly StorklyIcon[] | Every icon record (outline + filled), alphabetically sorted. | | getIcon | (name: StorklyIconName) => StorklyIcon | Typed accessor; accepts both outline and filled names. | | StorklyIcon | type | { name, fileName, viewBox, strokeWidth, svg, body }. | | StorklyIconName | type | Union of every kebab-case icon name (outline + filled). |

The published package also ships the raw source SVGs under svg/ (both outline and filled) if you'd rather load them as static assets.

Design contract

| Attribute | Value | | ---------------- | ---------------------------------------------- | | viewBox | 0 0 24 24 | | Hardcoded colors | not allowed (only currentColor is permitted) |

Designed for legibility at 20–24 px. Stroke and fill on individual paths are unconstrained — apply your own fill / stroke via SVG attributes or CSS at render time.

Icon gallery

49 icons, each available in outline and filled styles (98 SVGs total).

License

CC BY-ND 4.0