
Security News
PHP Foundation Says Chainguard Broke Security Embargo Ahead of Emergency Patches
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.
@ilo-org/icons
Advanced tools
This package only ships raw icon assets. The recommended way to use ILO icons in production is through the Icon components that already ship with our component libraries.
Those component packages (@ilo-org/react and @ilo-org/twig) already depend on the correct asset pipeline, handle accessibility, and stay up to date automatically. Install this package directly only when you need to consume the underlying files (for example, during a custom build or CMS integration).
The ILO Design System includes over 70 icons for a wide variety of use cases. See the complete list.
npm install @ilo-org/icons
All icons share the same naming convention (arrow_down, social_linkedin, etc.). You can explore the catalog in Storybook (links above) or by browsing the svg/ folder inside this package. We expose the assets in three formats to cover different build pipelines.
@ilo-org/icons/build/scss/icons.scss exports a Sass map named $icons, where every entry is a data: URL string. This is the easiest way to inject icons via CSS pseudo-elements.
@use "@ilo-org/icons/build/scss/icons" as ilo-icons;
.ilo-link::after {
content: "";
width: 1.25rem;
height: 1.25rem;
background: no-repeat center/contain map-get(ilo-icons.$icons, "arrow_right");
}
Every icon/size combination is available as a plain JavaScript object that describes the SVG tree. ES modules live under @ilo-org/icons/es/<icon>/<size>.js and CommonJS copies are under lib/. These objects are useful when you need to render icons in a framework-agnostic way.
import ArrowDown24 from "@ilo-org/icons/es/arrow_down/24";
function renderIcon(icon) {
const svgNS = "http://www.w3.org/2000/svg";
const svg = document.createElementNS(svgNS, icon.elem);
Object.entries(icon.attrs).forEach(([attr, value]) => {
svg.setAttribute(attr, value);
});
icon.content?.forEach((child) => {
const node = document.createElementNS(svgNS, child.elem);
Object.entries(child.attrs || {}).forEach(([attr, value]) => {
node.setAttribute(attr, value);
});
svg.appendChild(node);
});
return svg;
}
document.querySelector("#cta").append(renderIcon(ArrowDown24));
The actual SVG source files are published under @ilo-org/icons/svg/<icon>.svg. Load them however your toolchain prefers:
bundlers that support the ?raw convention:
import arrowDownSvg from "@ilo-org/icons/svg/arrow_down.svg?raw";
element.innerHTML = arrowDownSvg;
build scripts, CMS pipelines, or Drupal themes can read the file directly from node_modules/@ilo-org/icons/svg.
Because these are static files, you can also copy them into a CDN or asset pipeline if you need to reference them outside of a bundler.
We're always looking for contributors to help us fix bugs, build new features, or help us improve the project documentation. If you're interested, definitely check out our Contributing Guide! 👀
This package is heavily inspired by @carbon/icons
Licensed under the Apache 2.0.
FAQs
Icons for digital and software products using ILO's Design System
The npm package @ilo-org/icons receives a total of 22 weekly downloads. As such, @ilo-org/icons popularity was classified as not popular.
We found that @ilo-org/icons demonstrated a healthy version release cadence and project activity because the last version was released less than a year ago. It has 2 open source maintainers collaborating on the project.

Security News
The PHP Foundation says Chainguard broke a security embargo ahead of critical RCE patches, as leaks disrupted the coordinated release.

Security News
PHP releases emergency patches for two critical RCE vulnerabilities as agencies urge organizations to take unpatched sites offline.

Threat Research
/Security News
A supply chain attack compromised LiteLLM 1.107.0 on PyPI and Docker, spreading malware that steals cloud credentials, developer secrets, and AI provider keys.