Safesprite Icons

Description

Safesprite Icons lets you manage brand icons in a dedicated plugin library (collections/folders), sanitize every upload, and render icons with a lightweight <use> reference plus a single footer spritesheet.

Security first

  • SVG uploads are accepted only through the plugin Icon Library
  • This plugin does not enable SVG uploads in the WordPress Media Library
  • Uploads are sanitized with the vendored enshrined/svg-sanitize library (GPL-2.0-or-later), shipped inside the plugin
  • Front-end output uses sanitized <symbol> sprites + <use> — not raw uploaded files as <img src>

Features

  • Collections (one collection per icon)
  • Rename icon titles and collection names (slugs stay stable)
  • Trash / restore / permanent delete
  • Shortcode: [sfsi_icon slug="my-icon"]
  • PHP helper: sfsi_icon( 'my-icon' )
  • Gutenberg block
  • TinyMCE button
  • Elementor widget (loads only when Elementor is active)
  • Nav menu item icons

Blocks

This plugin provides 1 block.

  • SVG Icon

Installation

  1. Upload the safesprite-icons folder to /wp-content/plugins/
  2. Activate the plugin through the Plugins menu
  3. Open Safesprite in wp-admin, create a collection, upload SVGs
  4. Insert icons via block, shortcode, TinyMCE, menus, or Elementor

FAQ

Does this allow SVG in the Media Library?

No. Icons are managed only in the plugin library.

Where are files stored?

Sanitized SVG files live under wp-content/uploads/safesprite-icons/ with opaque filenames. Metadata is stored in plugin custom tables (not as custom post types).

What happens on uninstall?

By default, data is kept. Enable “Delete all plugin data on uninstall” under Safesprite -> Settings if you want tables and files removed.

What PHP extensions are required?

PHP 7.4+ with the dom and libxml extensions (used by the SVG sanitizer).

Reviews

There are no reviews for this plugin.

Contributors & Developers

“Safesprite Icons” is open source software. The following people have contributed to this plugin.

Contributors

Translate “Safesprite Icons” into your language.

Interested in development?

Browse the code, check out the SVN repository, or subscribe to the development log by RSS.

Changelog

1.0.0

  • First wordpress.org release candidate
  • Secure Icon Library with sanitized uploads and footer spritesheets
  • Gutenberg, Elementor, TinyMCE, Nav Menus, shortcode, and PHP helper
  • Hardened SVG sanitization (no Media Library SVG enablement)

0.2.15

  • Security: strip SVG <style> / style= and remote hrefs after sanitize
  • Performance: skip upload-dir ensure on front requests; memoize icon lookups
  • Fix: nav menu icon meta no longer wiped on unrelated saves
  • Packaging: exclude list moved to docs (no .distignore in plugin — Plugin Check)

0.2.14

  • Plugins list: Settings action link to Safesprite -> Settings

0.2.13

  • Rename icon titles and collection names (slugs unchanged)
  • Icon picker: search by title or slug
  • Nav menus: icon preview and Clear control

0.2.12

  • Gutenberg editor: size and color preview match Elementor (no fixed admin tile CSS)

0.2.11

  • Elementor canvas: fix size slider and custom color live preview

0.2.10

  • Elementor editor: show inline icon preview (canvas has no footer spritesheet)

0.2.9

  • Elementor & Gutenberg: visual icon picker, size slider (16–256px), inherit or custom color

0.2.8

  • Trash: bulk select, restore, and permanently delete icons and collections

0.1.0

  • Initial release candidate build