{"id":313768,"date":"2026-05-29T04:47:25","date_gmt":"2026-05-29T04:47:25","guid":{"rendered":"https:\/\/en-ca.wordpress.org\/plugins\/subtle-icons\/"},"modified":"2026-05-30T05:14:50","modified_gmt":"2026-05-30T05:14:50","slug":"subtle-icons","status":"publish","type":"plugin","link":"https:\/\/mya.wordpress.org\/plugins\/subtle-icons\/","author":23444935,"comment_status":"closed","ping_status":"closed","template":"","meta":{"version":"1.0.8","stable_tag":"1.0.8","tested":"7.0","requires":"6.5","requires_php":"7.4","requires_plugins":null,"header_name":"Subtle Icons","header_author":"Subtle Blocks","header_description":"A versatile icon system for WordPress. Access thousands of icons to use across custom blocks and an integrated ACF field.","assets_banners_color":"dadbdb","last_updated":"2026-05-30 05:14:50","external_support_url":"","external_repository_url":"","donate_link":"","header_plugin_uri":"https:\/\/subtleblocks.com\/icons","header_author_uri":"https:\/\/subtleblocks.com","rating":0,"author_block_rating":0,"active_installs":0,"downloads":100,"num_ratings":0,"support_threads":0,"support_threads_resolved":0,"author_block_count":0,"sections":["description","installation","faq","changelog"],"tags":{"1.0.3":{"tag":"1.0.3","author":"evanworks","date":"2026-05-29 04:45:46"},"1.0.4":{"tag":"1.0.4","author":"evanworks","date":"2026-05-29 20:50:12"},"1.0.5":{"tag":"1.0.5","author":"evanworks","date":"2026-05-29 21:37:50"},"1.0.6":{"tag":"1.0.6","author":"evanworks","date":"2026-05-29 21:44:41"},"1.0.7":{"tag":"1.0.7","author":"evanworks","date":"2026-05-30 04:48:20"},"1.0.8":{"tag":"1.0.8","author":"evanworks","date":"2026-05-30 05:14:50"}},"upgrade_notice":[],"ratings":[],"assets_icons":{"icon-128x128.png":{"filename":"icon-128x128.png","revision":3554181,"resolution":"128x128","location":"assets","locale":"","width":128,"height":128},"icon-256x256.png":{"filename":"icon-256x256.png","revision":3554181,"resolution":"256x256","location":"assets","locale":"","width":256,"height":256},"icon.svg":{"filename":"icon.svg","revision":3552964,"resolution":false,"location":"assets","locale":false}},"assets_banners":{"banner-1544x500.png":{"filename":"banner-1544x500.png","revision":3554181,"resolution":"1544x500","location":"assets","locale":"","width":1544,"height":500},"banner-772x250.png":{"filename":"banner-772x250.png","revision":3554181,"resolution":"772x250","location":"assets","locale":"","width":772,"height":250}},"assets_blueprints":{},"all_blocks":{"sbtl\/icon":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sbtl\/icon","version":"0.1.0","title":"Icon","category":"sbtl","icon":"grid-view","description":"Choose and display an icon.","supports":{"html":false,"color":{"background":true,"text":true},"spacing":{"margin":true,"padding":true},"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true},"shadow":true,"align":["center","left","right"]},"styles":[{"name":"default","label":"Default","isDefault":true},{"name":"rounded","label":"Rounded"}],"textdomain":"sbtl","attributes":{"iconMarkup":{"type":"string","default":""},"iconSlug":{"type":"string","default":""},"size":{"type":"string"},"stroke":{"type":"number"}},"editorScript":"file:.\/index.js","editorStyle":"file:.\/index.css","style":"file:.\/style-index.css"},"sbtl\/icon-list":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sbtl\/icon-list","title":"Icon List","icon":"editor-ul","category":"sbtl","allowedBlocks":["sbtl\/icon-list-item"],"description":"An organized collection of items displayed in a specific order.","keywords":["bullet list","ordered list","numbered list"],"textdomain":"sbtl","attributes":{"ordered":{"type":"boolean","default":false,"role":"content"},"values":{"type":"string","source":"html","selector":"ol,ul","multiline":"li","default":"","role":"content"},"type":{"type":"string"},"start":{"type":"number"},"reversed":{"type":"boolean"},"placeholder":{"type":"string"},"icon":{"type":"string","default":""},"iconSlug":{"type":"string","default":""},"iconOptions":{"type":"object","default":{}},"iconColor":{"type":"string","default":""},"iconLinkHoverColor":{"type":"string","default":""},"disabledDefaultIcon":{"type":"boolean","default":false}},"providesContext":{"sbtl\/icon-list\/icon":"icon"},"supports":{"anchor":true,"html":false,"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalLetterSpacing":true,"__experimentalDefaultControls":{"fontSize":true}},"color":{"gradients":true,"link":true,"__experimentalDefaultControls":{"background":true,"text":true}},"spacing":{"margin":true,"padding":true,"__experimentalDefaultControls":{"margin":false,"padding":false}},"__unstablePasteTextInline":true,"__experimentalOnMerge":true,"__experimentalSlashInserter":true,"interactivity":{"clientNavigation":true}},"selectors":{"border":".wp-block-sbtl-icon-list:not(.wp-block-sbtl-icon-list .wp-block-sbtl-icon-list)"},"editorScript":"file:.\/index.js","style":"file:.\/style-index.css"},"sbtl\/icon-button":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sbtl\/icon-button","version":"0.1.0","title":"Icon Button","icon":"button","category":"sbtl","description":"Prompt visitors to take action with a button-style link that can include an SVG icon.","keywords":["link","button","icon"],"textdomain":"sbtl","attributes":{"tagName":{"type":"string","enum":["a","button"],"default":"a"},"type":{"type":"string","default":"button"},"url":{"type":"string","source":"attribute","selector":"a","attribute":"href","role":"content"},"title":{"type":"string","source":"attribute","selector":"a,button","attribute":"title","role":"content"},"text":{"type":"rich-text","source":"rich-text","selector":".wp-block-button__link-text","role":"content"},"linkTarget":{"type":"string","source":"attribute","selector":"a","attribute":"target","role":"content"},"rel":{"type":"string","source":"attribute","selector":"a","attribute":"rel","role":"content"},"placeholder":{"type":"string"},"width":{"type":"number"},"leadingIcon":{"type":"string","default":""},"leadingIconSlug":{"type":"string","default":""},"trailingIcon":{"type":"string","default":""},"trailingIconSlug":{"type":"string","default":""},"disabledDefaultTrailingIcon":{"type":"boolean","default":false},"iconLayout":{"type":"string","enum":["horizontal","vertical"],"default":"horizontal"},"iconOptions":{"type":"object","default":{}},"stateAppearance":{"type":"object","default":{}}},"supports":{"anchor":true,"splitting":true,"align":false,"alignWide":false,"typography":{"__experimentalSkipSerialization":["fontSize","lineHeight","textAlign","fontFamily","fontWeight","fontStyle","textTransform","textDecoration","letterSpacing"],"fontSize":true,"lineHeight":true,"textAlign":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalLetterSpacing":true,"__experimentalWritingMode":true,"__experimentalDefaultControls":{"fontSize":true}},"reusable":false,"spacing":{"__experimentalSkipSerialization":true,"padding":["horizontal","vertical"],"__experimentalDefaultControls":{"padding":true}},"__experimentalBorder":{"color":false,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":false,"radius":true,"style":true,"width":true}},"interactivity":{"clientNavigation":true}},"styles":[{"name":"fill","label":"Fill","isDefault":true},{"name":"outline","label":"Outline"},{"name":"link","label":"Link"}],"selectors":{"root":".wp-block-sbtl-icon-button .wp-block-button__link","typography":{"writingMode":".wp-block-sbtl-icon-button"}},"editorScript":"file:.\/index.js","editorStyle":["file:.\/index.css","wp-block-button-editor"],"style":["file:.\/style-index.css","wp-block-button"]},"sbtl\/icon-text":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sbtl\/icon-text","title":"Icon + Text","category":"sbtl","description":"Pair an icon with a text label. Useful for notices, callouts and rich headings.","keywords":["icon","text","notice","callout","heading","rich"],"textdomain":"subtle-icons","icon":"info-outline","attributes":{"content":{"type":"rich-text","source":"rich-text","selector":".sbtl-icon-text__content","role":"content"},"level":{"type":"number","default":0},"icon":{"type":"string","default":""},"iconSlug":{"type":"string","default":""},"iconOptions":{"type":"object","default":{}},"iconPosition":{"type":"string","default":"left"},"iconColor":{"type":"string"},"url":{"type":"string"},"linkTarget":{"type":"string"},"rel":{"type":"string"},"placeholder":{"type":"string"},"shadow":{"type":"string"},"disabledDefaultIcon":{"type":"boolean","default":false}},"supports":{"anchor":true,"className":true,"splitting":true,"align":["wide","full"],"__unstablePasteTextInline":true,"color":{"gradients":true,"link":true,"__experimentalDefaultControls":{"background":true,"text":true,"link":false}},"spacing":{"margin":true,"padding":true,"__experimentalDefaultControls":{"margin":false,"padding":false}},"typography":{"fontSize":true,"lineHeight":true,"textAlign":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalLetterSpacing":true,"__experimentalTextDecoration":true,"__experimentalTextTransform":true,"__experimentalDefaultControls":{"fontSize":true}},"__experimentalBorder":{"color":false,"radius":true,"style":true,"width":true,"__experimentalSkipSerialization":true,"__experimentalDefaultControls":{"color":false,"radius":true,"style":true,"width":true}},"interactivity":{"clientNavigation":true}},"selectors":{"root":".wp-block-sbtl-icon-text"},"editorScript":"file:.\/index.js","style":"file:.\/style-index.css"},"sbtl\/icon-list-item":{"$schema":"https:\/\/schemas.wp.org\/trunk\/block.json","apiVersion":3,"name":"sbtl\/icon-list-item","title":"Icon List Item","category":"text","parent":["sbtl\/icon-list"],"allowedBlocks":["sbtl\/icon-list"],"description":"An individual item within a list.","textdomain":"sbtl","attributes":{"placeholder":{"type":"string"},"content":{"type":"rich-text","source":"rich-text","selector":".sbtl-icon-list-item__content","role":"content"},"icon":{"type":"string","default":""},"iconSlug":{"type":"string","default":""},"hasCustomIcon":{"type":"boolean","default":false},"iconColor":{"type":"string","default":""},"iconLinkHoverColor":{"type":"string","default":""},"iconAlign":{"type":"string","default":""},"url":{"type":"string"},"linkTarget":{"type":"string"},"rel":{"type":"string"}},"usesContext":["sbtl\/icon-list\/icon"],"supports":{"inserter":false,"anchor":true,"className":false,"splitting":true,"__experimentalBorder":{"color":true,"radius":true,"style":true,"width":true},"color":{"gradients":true,"link":true,"background":true,"__experimentalDefaultControls":{"text":true}},"spacing":{"margin":true,"padding":true,"__experimentalDefaultControls":{"margin":false,"padding":false}},"typography":{"fontSize":true,"lineHeight":true,"__experimentalFontFamily":true,"__experimentalFontWeight":true,"__experimentalFontStyle":true,"__experimentalTextTransform":true,"__experimentalTextDecoration":true,"__experimentalLetterSpacing":true,"__experimentalDefaultControls":{"fontSize":true}},"interactivity":{"clientNavigation":true}},"selectors":{"root":".wp-block-sbtl-icon-list > li","border":".wp-block-sbtl-icon-list:not(.wp-block-sbtl-icon-list .wp-block-sbtl-icon-list) > li"},"editorStyle":"file:.\/index.css","editorScript":"file:.\/index.js"}},"tagged_versions":["1.0.3","1.0.4","1.0.5","1.0.6","1.0.7","1.0.8"],"block_files":[],"assets_screenshots":{"screenshot-1.gif":{"filename":"screenshot-1.gif","revision":3552964,"resolution":"1","location":"assets","locale":"","width":840,"height":629}},"screenshots":{"1":"The Icon Picker interface natively integrated into the Icon Button block."}},"plugin_section":[],"plugin_tags":[2211,497,98289,178481,2904],"plugin_category":[50,59],"plugin_contributors":[264870],"plugin_business_model":[],"class_list":["post-313768","plugin","type-plugin","status-publish","hentry","plugin_tags-acf","plugin_tags-icon","plugin_tags-icon-picker","plugin_tags-icon-block","plugin_tags-svg","plugin_category-media","plugin_category-utilities-and-tools","plugin_contributors-evanworks","plugin_committers-evanworks"],"banners":{"banner":"https:\/\/ps.w.org\/subtle-icons\/assets\/banner-772x250.png?rev=3554181","banner_2x":"https:\/\/ps.w.org\/subtle-icons\/assets\/banner-1544x500.png?rev=3554181","banner_rtl":false,"banner_2x_rtl":false},"icons":{"svg":"https:\/\/ps.w.org\/subtle-icons\/assets\/icon.svg?rev=3552964","icon":"https:\/\/ps.w.org\/subtle-icons\/assets\/icon.svg?rev=3552964","icon_2x":false,"generated":false},"screenshots":[{"src":"https:\/\/ps.w.org\/subtle-icons\/assets\/screenshot-1.gif?rev=3552964","caption":"The Icon Picker interface natively integrated into the Icon Button block."}],"raw_content":"<!--section=description-->\n<p><a href=\"https:\/\/subtleblocks.com\/icons\">Subtle Icons<\/a> is a lightweight plugin that brings thousands of icons directly into the WordPress block editor and Advanced Custom Fields (ACF).<\/p>\n\n<p>Stop enqueuing heavy FontAwesome stylesheets. Subtle Icons generates clean, inline SVG code natively in the editor, keeping your frontend free of external scripts and font files.<\/p>\n\n<h3>The Ultimate WordPress Icon Picker<\/h3>\n\n<p>Powered by the massive <a href=\"https:\/\/icon-sets.iconify.design\/\">Iconify<\/a> ecosystem, easily search and insert icons from dozens of popular open-source libraries without leaving the WordPress editor. Supported libraries include:<\/p>\n\n<ul>\n<li>Lucide Icons<\/li>\n<li>Material Design Icons<\/li>\n<li>Heroicons<\/li>\n<li>FontAwesome<\/li>\n<li>Bootstrap Icons<\/li>\n<li>Phosphor Icons<\/li>\n<li>...and dozens more, or upload your own custom SVGs!<\/li>\n<\/ul>\n\n<h3>Four Native Gutenberg Icon Blocks<\/h3>\n\n<ul>\n<li><strong>Icon Button Block:<\/strong> Prompt visitors to take action with a native-feeling button block supporting leading and trailing icons.<\/li>\n<li><strong>Icon + Text Block:<\/strong> Pair an icon with text for notices, callouts, and feature highlights.<\/li>\n<li><strong>Icon Block:<\/strong> A standalone SVG icon block with sizing, thickness, and color controls.<\/li>\n<li><strong>Icon List Block:<\/strong> Build beautiful, responsive lists with custom leading icons.<\/li>\n<\/ul>\n\n<h3>Advanced Custom Fields (ACF) Integration<\/h3>\n\n<p>Bring icons to your structured content. Subtle Icons adds a fully integrated Icon Picker field to ACF. Add icons to taxonomies, repeaters, options pages, and custom blocks seamlessly.<\/p>\n\n<h3>Built for Developers &amp; Custom Integrations<\/h3>\n\n<p>Take full control of the icon workflow. Use our lightweight filters and actions to tailor the experience for your clients and custom builds.<\/p>\n\n<ul>\n<li>Filter or restrict available icon collections<\/li>\n<li>Configure default block icons globally<\/li>\n<li>Robust developer documentation and more extensibility coming soon!<\/li>\n<\/ul>\n\n<h3>Development<\/h3>\n\n<p>The complete source code for this plugin, including all uncompiled JavaScript and CSS, is publicly available at this <a href=\"https:\/\/github.com\/skysarwer\/subtle-icons\">public GitHub repo<\/a>.<\/p>\n\n<p>Build requirements: Node.js and npm.<\/p>\n\n<p>To build from source:<\/p>\n\n<ol>\n<li>Clone the repository: <code>git clone https:\/\/github.com\/skysarwer\/subtle-icons<\/code><\/li>\n<li>Install dependencies: <code>npm install<\/code><\/li>\n<li>Compile assets for production: <code>npm run build<\/code><\/li>\n<li>Or start a development watcher: <code>npm start<\/code><\/li>\n<\/ol>\n\n<h3>External Services<\/h3>\n\n<p>This plugin uses the <a href=\"https:\/\/iconify.design\/\">Iconify<\/a> API to power the Icon Picker. The API is never called on the public frontend; it only runs in the WordPress admin when actively used by a logged-in user with post-editing capabilities. No personally identifiable information (PII) is transmitted.<\/p>\n\n<h4>How Data is Sent<\/h4>\n\n<ul>\n<li><strong>Server-to-Server (Proxy):<\/strong> Search queries (keywords) and icon retrievals (set prefix and icon name) are routed through a REST endpoint on your WordPress server. Iconify only sees your server's IP address for these requests.<\/li>\n<li><strong>Direct from Browser:<\/strong> Icon preview thumbnails in the search grid are loaded directly from the editor's browser (via the @iconify\/react library). The editor's IP address and standard browser headers are visible to Iconify for these image requests.<\/li>\n<\/ul>\n\n<h4>API Endpoints (all operated by the Iconify project):<\/h4>\n\n<ul>\n<li><strong>Primary:<\/strong> <a href=\"https:\/\/api.iconify.design\">api.iconify.design<\/a><\/li>\n<li><strong>Fallbacks:<\/strong> <a href=\"https:\/\/api.simplesvg.com\">api.simplesvg.com<\/a>, <a href=\"https:\/\/api.unisvg.com\">api.unisvg.com<\/a><\/li>\n<\/ul>\n\n<h4>Iconify Policies &amp; Links:<\/h4>\n\n<ul>\n<li><a href=\"https:\/\/iconify.design\/docs\/api\/\">API documentation<\/a><\/li>\n<li><a href=\"https:\/\/iconify.design\/privacy\/\">Privacy policy<\/a><\/li>\n<\/ul>\n\n<!--section=installation-->\n<ol>\n<li>Upload the plugin files to the <code>\/wp-content\/plugins\/subtle-icons<\/code> directory, or install the plugin through the WordPress plugins screen directly.<\/li>\n<li>Activate the plugin through the 'Plugins' screen in WordPress.<\/li>\n<li>Open the Block Editor and search for \"Icon\" to start using the blocks.<\/li>\n<\/ol>\n\n<!--section=faq-->\n<dl>\n<dt id=\"does%20this%20require%20advanced%20custom%20fields%3F\"><h3>Does this require Advanced Custom Fields?<\/h3><\/dt>\n<dd><p>No! The custom blocks work perfectly out of the box. The ACF field is just a bonus for developers who want to integrate icons into custom meta boxes.<\/p><\/dd>\n<dt id=\"are%20the%20icons%20loaded%20locally%20or%20remotely%3F\"><h3>Are the icons loaded locally or remotely?<\/h3><\/dt>\n<dd><p>The Icon Picker connects to Iconify via a proxy API to search icons, but the SVG code is embedded directly into your content. No third-party frontend assets are loaded on your live site.<\/p><\/dd>\n<dt id=\"how%20are%20the%20svgs%20sanitized%20against%20malicious%20code%3F\"><h3>How are the SVGs sanitized against malicious code?<\/h3><\/dt>\n<dd><p>Every icon is cleaned up twice before it ever touches your database \u2014 once in the browser the moment an icon is chosen, and again on the server when the post is saved. Both passes use strict allowlists that permit only the elements a real icon needs. Anything that could execute code or load an external resource is removed automatically, regardless of where the SVG came from.<\/p>\n\n<p>The icon search itself only works for logged-in users who can already edit posts, so the feature is not exposed to the public.<\/p><\/dd>\n\n<\/dl>\n\n<!--section=changelog-->\n<h4>1.0.7<\/h4>\n\n<ul>\n<li>Test up to WP 7.0, update readme and plugin assets<\/li>\n<\/ul>\n\n<h4>1.0.2<\/h4>\n\n<ul>\n<li>Initial release of Subtle Icons.<\/li>\n<\/ul>","raw_excerpt":"Add 100k+ SVG icons (Lucide, Material, FontAwesome) directly to Gutenberg blocks and Advanced Custom Fields. A native, zero-bloat icon picker.","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin\/313768","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin"}],"about":[{"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/types\/plugin"}],"replies":[{"embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/comments?post=313768"}],"author":[{"embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wporg\/v1\/users\/evanworks"}],"wp:attachment":[{"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/media?parent=313768"}],"wp:term":[{"taxonomy":"plugin_section","embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_section?post=313768"},{"taxonomy":"plugin_tags","embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_tags?post=313768"},{"taxonomy":"plugin_category","embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_category?post=313768"},{"taxonomy":"plugin_contributors","embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_contributors?post=313768"},{"taxonomy":"plugin_business_model","embeddable":true,"href":"https:\/\/mya.wordpress.org\/plugins\/wp-json\/wp\/v2\/plugin_business_model?post=313768"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}