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

tacet-native

v0.4.1

Published

Tacet icons for React Native — the same set, drawn with react-native-svg

Readme

tacet-native

React Native component for the Tacet icon set — 454 outline glyphs where the cut is data, not geometry.

Gallery and docs: tacet.smurov.com

npm i tacet-native react-native-svg
import { Icon } from "tacet-native";

<Icon name="rocket" color="#18181b" />
<Icon name="bell" size={20} color="#18181b" />
<Icon name="saxophone" size={32} color="#18181b" variant="A" />
<Icon name="status-done" solid color="#16a34a" title="Done" />

On the web take tacet-react, tacet-element (a custom element) or tacet-core (the engine on its own).

Props

| Prop | What for | |---|---| | name | Glyph name, for example "rocket" | | size | Pixels. Defaults to 24 | | color | Colour of the glyph. Explicit — there is no cascade to inherit from | | accentColor | Colour of accent details. Defaults to color, making the icon monochrome | | variant | A one cut · B all · C one and accent · D all and accent. Defaults to D | | solid | Solid contour: cuts are not drawn | | strokeWidth | Stroke width on screen, in pixels. Once set, size does not affect it | | zoom | Optical zoom. On by default | | replayKey | Changing the value draws the glyph again | | title | Label for screen readers. Without it the icon is hidden as decorative |

How a phone differs

The package is a thin wrapper: it calls renderSpec() from tacet-core and knows nothing about geometry. But three things about the web do not exist in React Native, and each is resolved here rather than in the set.

pathLength is not supported. The set describes cuts as shares of the contour length, which on the web works through pathLength={100}. Here the real length is measured — by formula for a circle and a rectangle, with svg-path-properties for an arbitrary path — and the shares are turned into units. Measurements are cached per path.

currentColor has nothing to inherit from. The colour comes in as a prop.

overflow: visible may not survive. Optical zoom trims the viewBox, and the sharpest glyphs reach past it — a map pin by about a pixel and a half at 24px. iOS honours the style the component sets; Android clips by the view bounds regardless, so pass zoom={false} there if you see a shaved tip.

Animation

Changing replayKey draws the glyph again: the contour appears from start to end over 620 ms.

It is uncovered by a mask rather than by its own dash — otherwise the animation would fight the cuts over the same attribute, and the gaps would crawl along the path instead of holding their place. Fills and tiny rings have no length to draw along, so they are uncovered whole, together with the strokes.

The entrance is not played on mount on purpose: a list holds dozens of icons and they would all draw themselves at once, on the very scroll where the animation cannot be seen. On a button press it costs one icon and half a second.

Of the modes the set describes only draw is implemented here — spin, pop and fade, along with the per-glyph presets from ANIM and the stagger/seq timings, remain web-only for now.

The digits digit-0 … digit-9 are glyphs here as well, accent spans included. The animated number (Digits on the web) has no React Native counterpart yet.

MIT