lacspace-icon
One image → favicon, PWA, Apple-touch, .ico, OG image and manifest.
npx lacspace-icon logo.pngEverything, in one command
lacspace-icon ships its own zero-dependency image codecs (PNG decode/encode plus a baseline-JPEG decoder), area-average resize and an .ico assembler, so it generates a full favicon/PWA/Apple-touch set, Apple splash screens, dark/light variants, a manifest and an OG image entirely on your machine — nothing is uploaded to a third-party generator. Point it at a square PNG or JPEG and it writes every size, the .ico, the manifest and the HTML to paste into <head>, with shape controls (--radius / --circle / --padding / --scale), a dominant-color theme, palette-optimized favicons and a richer manifest (--shortcut / --categories / --display…). The new check command audits a live site's icon/manifest setup. SVG (and emoji) sources need an installed browser to rasterize; without one it falls back to copying the SVG through with a clear note. Square in, square out.
What's inside
Full set from one file
favicon-16/32/48, .ico, apple-touch-180, icon-192/512, maskable and an OG image.
Zero-dep PNG codec
Own decode/encode + area-average resize — no sharp, no native deps, no cloud.
Manifest + snippet
Writes manifest.webmanifest and the exact <link>/<meta> tags to paste into <head>.
OG image
--og composites your icon onto a 1200×630 card on your background colour.
Maskable
--maskable renders a safe-zone-padded 512 icon for Android.
Typed library
decodePng, encodePng, resizeRgba, makeIco and generateIcons are all exported.
JPEG or PNG in
A zero-dep baseline-JPEG decoder means a photo works as a source, not just a PNG.
Shape & padding
--radius, --circle, --padding and --scale shape the icon; a dominant-color theme is picked for you.
Apple splash + dark mode
--splash writes iOS launch screens; --auto-dark / --dark generate light and dark variants.
Setup auditor
check <url> reports what a live site is missing — favicon, apple-touch, manifest, sizes.
Copy, paste, done
Real commands and snippets — from a one-liner to the typed library.
lacspace-icon photo.jpg --name "Lacspace" --og --splashA photo becomes the whole icon set plus Apple splash screens.
lacspace-icon logo.png --radius 22 --padding 10 --maskableRounded corners with safe-zone padding for Android.
lacspace-icon logo.png --circle --auto-darkCircular icons plus automatic light/dark variants.
lacspace-icon check https://example.com --jsonReports missing favicons, apple-touch, manifest and sizes.
import { generateIcons } from "lacspace-icon";
const { files, snippet, manifest } =
generateIcons(pngBytes, { name: "My App", maskable: true, og: true });What people build with it
✓ Ship a full favicon/PWA set in one command
✓ Generate icons in CI from a source logo
✓ Make an OG card without a design tool
✓ Avoid uploading your brand to an online generator
Run lacspace-icon today
Free, open-source, no API keys. It's a CLI and a typed library.
npx lacspace-icon logo.png