lacspace-icon

One image → favicon, PWA, Apple-touch, .ico, OG image and manifest.

● Live · v0.2.0npmSource
terminal
npx lacspace-icon logo.png
What it does

Everything, 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.

Features

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.

How to use

Copy, paste, done

Real commands and snippets — from a one-liner to the typed library.

JPEG → full set + splash
terminal
lacspace-icon photo.jpg --name "Lacspace" --og --splash

A photo becomes the whole icon set plus Apple splash screens.

Rounded maskable
terminal
lacspace-icon logo.png --radius 22 --padding 10 --maskable

Rounded corners with safe-zone padding for Android.

Circle + dark mode
terminal
lacspace-icon logo.png --circle --auto-dark

Circular icons plus automatic light/dark variants.

Audit a live site
terminal
lacspace-icon check https://example.com --json

Reports missing favicons, apple-touch, manifest and sizes.

Use it as a library
typescript
import { generateIcons } from "lacspace-icon";
const { files, snippet, manifest } =
  generateIcons(pngBytes, { name: "My App", maskable: true, og: true });
Good for

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

Start now

Run lacspace-icon today

Free, open-source, no API keys. It's a CLI and a typed library.

terminal
npx lacspace-icon logo.png