Skip to content
PluginStats

@denkwerk/unplugin-favicon-generator weekly downloads statistics

By denkwerk (3 listings) · npm · Webpack plugins

Vite, Rollup, Rolldown, webpack and Rspack plugin that generates favicons, touch icons and a web app manifest from an SVG or a Figma node, and adds the head tags

View on npm Stale · Oct 18, 2026

@denkwerk/unplugin-favicon-generator has 13 recorded weekly downloads on npm, a change of -7.1% over the past 7 days.

Weekly downloads
13
Official API · Oct 18, 2026
7-day growth
-7.1%
-1 weekly downloads
30-day growth
—
Insufficient history
90-day growth
—
Insufficient history
Rank
—
Among tracked npm listings

About @denkwerk/unplugin-favicon-generator

<p align="center"> <img src="https://raw.githubusercontent.com/denkwerk/favicon-generator/main/.github/assets/logo.svg" width="80" height="80" alt=""> </p> <h1 align="center">@denkwerk/unplugin-favicon-generator</h1> <p align="center"> A complete favicon set for your Vite, Rollup, Rolldown, webpack or Rspack build,<br>generated from one SVG or a Figma component, emitted with your assets and linked for you. </p> <p align="center"> <a href="https://www.npmjs.com/package/@denkwerk/unplugin-favicon-generator"><img src="https://img.shields.io/npm/v/@denkwerk/unplugin-favicon-generator?color=02969c" alt="npm version"></a> <a href="https://www.npmjs.com/package/@denkwerk/unplugin-favicon-generator"><img src="https://img.shields.io/npm/dm/@denkwerk/unplugin-favicon-generator?color=02969c" alt="npm downloads"></a> <a href="https://github.com/denkwerk/favicon-generator/blob/main/LICENSE"><img src="https://img.shields.io/github/license/denkwerk/favicon-generator?color=02969c" alt="MIT license"></a> </p> <p align="center"> <a href="#setup">Setup</a> · <a href="#the-tags-in-your-own-html">Tags in your own HTML</a> · <a href="#config-file">Config file</a> · <a href="#options">Options</a> · <a href="https://github.com/denkwerk/favicon-generator">Overview</a> </p>

A bundler plugin, written once with unplugin, that generates favicons and an Apple touch icon from one SVG, a raster image or a Figma component and writes them into your build output. Additionally, it can add a web app manifest, a theme color and Windows tiles. It is built on @denkwerk/favicon-generator.

  • Nothing is written to public/: the files are generated into node_modules/.cache/favicon-generator and emitted as build assets.
  • Output is cached until the options or the source image change. A Figma export is reused while the Figma file is unchanged, which one small API request checks.
  • Vite: the tags are injected into every HTML page and follow base; the dev server serves the files and reloads the page when the image or the config file changes. Server (SSR) builds get no copies of the files.

Setup

pnpm add -D @denkwerk/unplugin-favicon-generator
<details open> <summary><b>Vite</b></summary>
// vite.config.ts
import favicons from '@denkwerk/unplugin-favicon-generator/vite'

export default defineConfig({
  plugins: [favicons({ input: './assets/favicon.svg' })],
})
</details> <details> <summary><b>Rollup</b></summary>
// rollup.config.js
import favicons from '@denkwerk/unplugin-favicon-generator/rollup'

export default {
  plugins: [favicons({ input: './assets/favicon.svg' })],
}
</details> <details> <summary><b>Rolldown, tsdown</b></summary>
// rolldown.config.js
import favicons from '@denkwerk/unplugin-favicon-generator/rolldown'

export default {
  plugins: [favicons({ input: './assets/favicon.svg' })],
}

tsdown builds with Rolldown, so it takes the same plugin in plugins of tsdown.config.ts.

</details> <details> <summary><b>webpack</b></summary>
// webpack.config.js
import favicons from '@denkwerk/unplugin-favicon-generator/webpack'

export default {
  plugins: [favicons({ input: './assets/favicon.svg' })],
}
</details> <details> <summary><b>Rspack</b></summary>
// rspack.config.js
import favicons from '@denkwerk/unplugin-favicon-generator/rspack'

export default {
  plugins: [favicons({ input: './assets/favicon.svg' })],
}
</details>

That's it for Vite. Other bundlers have no HTML to add the tags to, so render them yourself (see below). Remove any favicon.ico or other icons from public/, because they would conflict with the generated ones. The Vite plugin warns about this.

The tags in your own HTML

The tags are also available as a module, e.g. for an SSR template or a page that is not processed by Vite:

import { html, link, meta } from 'virtual:favicons' // `~favicons` in webpack and Rspack

html // '<link rel="icon" href="/favicon.ico" sizes="32x32">\n…'
link // [{ rel: 'icon', href: '/favicon.ico', sizes: '32x32' }, …]
meta // [{ name: 'theme-color', content: '#02969c' }, …]

webpack and Rspack read virtual: as a URL scheme, so import ~favicons there; it works in the other bundlers too. For the types, add @denkwerk/unplugin-favicon-generator/client to compilerOptions.types in your tsconfig.json.

Config file

Instead of (or in addition to) plugin options, the plugin reads a favicon.config.ts, the same file the CLI uses:

// favicon.config.ts
import { defineConfig } from '@denkwerk/favicon-generator'

export default defineConfig({
  input: './assets/favicon.svg',
  themeColor: '#02969c',
})

It is looked up with the CLI's rules, starting in Vite's root (or root, see below): the first of favicon.config.{js,ts,mjs,mts,cjs,cts,json}, then parent directories up to the nearest one with a package.json or .git. Plugin options take precedence over the file, and the options of a group (manifest, …) are merged key by key. The file's output, overwrite and snippets are ignored because the plugin decides where files go. Add @denkwerk/favicon-generator to your dependencies so the file can import defineConfig.

Options

Besides these plugin options, every @denkwerk/favicon-generator option except output, overwrite and snippets is supported (themeColor, manifest, windows, legacy, figmaToken, …). Relative paths are resolved against root.…

Description from the npm listing.

  • favicon
  • favicon-generator
  • favicons
  • favicon.ico
  • apple-touch-icon
  • web-app-manifest
  • manifest
  • pwa
  • svg
  • figma
  • icons
  • unplugin
  • vite
  • vite-plugin
  • rollup
  • rollup-plugin
  • rolldown
  • rolldown-plugin
  • tsdown
  • webpack

README badge

Show your rank in a README or on your website. The badge updates automatically.

Charts

Images: 30d · 1y · all time · 1600×900 dark

Adoption over time

@denkwerk/unplugin-favicon-generator weekly downloads on npm, last 90 days: 13 weekly downloads as of Oct 18, 2026.@denkwerk/unplugin-favicon-generatorWeekly downloads on npm · Last 90 days13downloads / week02004006008001KJul 20Aug 4Aug 19Sep 3Sep 18Oct 3Oct 18downloads / weekobservedarchived (Internet Archive)no observationsJul 24, 2026 – Oct 18, 2026 · 87 observations · Updated Oc…pluginstats.com
@denkwerk/unplugin-favicon-generator weekly downloads on npm, last 90 days: 13 weekly downloads as of Oct 18, 2026.

7/30/90-day growth

@denkwerk/unplugin-favicon-generator weekly downloads growth on npm: -7.1% over 7 days, 30-day growth unavailable, 90-day growth unavailable.@denkwerk/unplugin-favicon-generatorWeekly downloads growth on npm13downloads / week now7-day growth-1 weekly downloads-7.1%30-day growth+13 weekly downloadsInsufficient history90-day growth+13 weekly downloadsInsufficient historyGrowth vs. nearest observation to each baseline date · Updated Oct 18, 2026pluginstats.com
@denkwerk/unplugin-favicon-generator weekly downloads growth on npm: -7.1% over 7 days, 30-day growth unavailable, 90-day growth unavailable.

Ranking history

@denkwerk/unplugin-favicon-generator npm ranking history: currently #2032 (by weekly downloads).@denkwerk/unplugin-favicon-generatornpm ranking · by weekly downloads · Last 90 days#2032current rank#600#800#1000#1200#1400#1600#1800#2000#2200Jul 23Aug 7Aug 22Sep 6Sep 21Oct 6Oct 21rankOct 17, 2026 – Oct 21, 2026 · 5 observations · Updated Oct 18, 2026pluginstats.com
@denkwerk/unplugin-favicon-generator npm ranking history: currently #2032 (by weekly downloads).

Listing placement

All npm2,422 listings · 122 pages · 1,212 shown · page 105, #17 (overall #2,097)
All npm: every listing in weekly downloads order

Listing placement

Webpack plugins258 listings · 13 pages · page 11, #4 (overall #204)
Webpack plugins: every listing in weekly downloads order

Filled points are observed values; hollow points come from Internet Archive snapshots of the listing page. Dashed segments span periods with no observations — values between points are not interpolated.

Each band is one page of 20. Weekly downloads on a linear scale. Placement is projected from weekly downloads, so it can differ from the marketplace's own sort order. Hover a dot to see the listing.

Recent observations

Full history (544)
Recent weekly downloads observations for @denkwerk/unplugin-favicon-generator
Date (UTC)Weekly downloadsChange vs. previous
13+1
12-1
13+2
11-1
12-4
160
16+2
14-7
21-3
24-5
29-6
35-1
36-14
50—

Data source

Weekly downloads (trailing 7 complete days) come from the official npm downloads API. Downloads include CI and mirrors and are not equivalent to installs or users. npm publishes no ratings.

Listing: https://www.npmjs.com/package/@denkwerk/unplugin-favicon-generator. First seen Oct 16, 2026; last successful collection Oct 22, 2026. See the methodology.