The official set of 389 humanitarian icons used across OCHA products, publications, and digital platforms. All icons are single-color SVGs in OCHA blue (#009edb), designed to work at any size from 16px to print resolution.
Maintained by the OCHA Brand and Design Unit (BDU).
Browse the svg/ folder and download individual SVG files.
Load any icon directly via jsDelivr — no download needed:
<img src="https://cdn.jsdelivr.net/gh/UN-OCHA/humanitarian-icons-2026-BDU@main/svg/Shelter.svg" alt="Shelter" />Pattern:
https://cdn.jsdelivr.net/gh/UN-OCHA/humanitarian-icons-2026-BDU@main/svg/{Icon-name}.svg
All icons are also served from GitHub Pages:
https://un-ocha.github.io/humanitarian-icons-2026-BDU/svg/{Icon-name}.svg
Ready-to-use packages in the output/ folder:
| File | Format | Use case |
|---|---|---|
Humanitarian_icons.xlsx |
Excel | Reference sheets, internal catalogues |
Humanitarian_icons.pptx |
PowerPoint | Presentations, slide decks |
Humanitarian_icons.csv |
CSV | Data integrations, lookups |
Humanitarian_icons_complete_library.svg |
SVG grid | Visual overview of the full set |
font/ |
Icon font | Web and app interfaces |
metadata.json contains structured data for every icon — name, family, keywords, and wordmark eligibility:
{
"icons": {
"Agriculture": {
"name": "Agriculture",
"family": "Food security",
"keywords": ["farming", "crops"],
"wordmark": true,
"wordmark_valign": 0
}
}
}All SVGs use OCHA blue #009edb. To change colour, apply a CSS filter or edit the fill attribute.
389 icons across 19 categories.
IDP refugee camp |
Permanent camp |
Registration |
Spontaneous site |
Temporary camp |
Transition site |
Camp coordination and camp management |
Early recovery |
Education |
Emergency telecommunications |
Food security |
Health |
Logistics |
Nutrition |
Protection |
Shelter |
Water sanitation and hygiene |
Airport closed |
Border closed |
Bridge closed |
Building closed |
House lockdown |
Location lockdown |
Market closed |
Port closed |
Road closed |
School closed |
Airport |
Airport military |
Boat |
Bridge |
Bus |
Car |
Ferry |
Gas station |
Helicopter |
Helipad |
Port |
Road |
Ship |
Train |
Truck |
Tunnel |
UN vehicle |
Border crossing |
Checkpoint |
Earthmound |
Military gate |
Observation tower |
Physical closure |
Road barrier |
Roadblock |
API |
Calendar |
Chart |
Data |
Document |
Film |
Live geoservices |
Location |
Map |
P-code |
Photo |
Report |
Table |
Video |
Debris management |
Livelihood |
Livestock |
Population growth |
Reconstruction |
Rural |
Rural exodus |
Trade and market |
Urban |
Urban rural |
Cell tower |
Computer |
Fax |
Internet |
Laptop |
|
Mobile phone |
Monitor |
Radio |
Remote support |
Satellite dish |
Smartphone |
Walkie talkie |
Work from home |
Borehole |
Communal latrine |
Latrine cabin |
Potable water |
Potable water source |
Sanitation |
Shower |
Solid waste |
Spring water |
Submersible pump |
Toilet |
Water source |
Water trucking |
The OCHA Humanitarian Icons are licensed under CC BY 4.0. You are free to share and adapt them with appropriate credit to OCHA.
These tools are used by BDU to manage, generate, and distribute the icon collection. They are not intended for end users.
A browser-based tool that allows OCHA staff to create branded wordmarks using Humanitarian Icons. All wordmarks require BDU approval before final download.
Live tool: https://un-ocha.github.io/humanitarian-icons-2026-BDU/word-mark-generator/
105 of the 389 icons are approved for use in wordmarks. The approval workflow is automated: BDU changes a status in a Google Sheet, and the requester receives an email with a direct download link.
| File | Purpose |
|---|---|
word-mark-generator/index.html |
The generator (single-page app, no build step) |
word-mark-generator/google-apps-script.js |
Backend code deployed as a Google Apps Script web app |
word-mark-generator/APPROVAL_SETUP.md |
Setup and operations documentation |
A browser-based tool for adding new icons, editing tags, changing families, and managing wordmark approval. Open icon-manager/index.html in Chrome or Edge — drag-drop SVGs, edit tags as chips, save back to metadata.json.
| File | Purpose |
|---|---|
icon-manager/index.html |
The icon manager interface |
Python utilities for generating the distributable exports. Requires Python 3.9+ with dependencies in .venv/.
| Script | What it does |
|---|---|
scripts/populate_metadata.py |
Refreshes metadata.json from svg/: adds stubs for new icons, normalises display names, reassigns font codepoints alphabetically |
scripts/generate-excel.py |
Generates the Excel export |
scripts/generate-pptx.py |
Generates the PowerPoint export |
scripts/generate-font.py |
Generates the icon font |
scripts/generate-grid.py |
Generates the complete SVG grid |
scripts/generate-wordmark.py |
Batch generates wordmarks from metadata |
scripts/sync_to_frontify.py |
Syncs new SVGs + tag changes from metadata.json to the OCHA Frontify icon library |
The full pipeline runs automatically on push via .github/workflows/sync-and-build.yml. The contributor's job is just to drop the SVG and update metadata.json — the icon manager handles the second part visually.
- Open
icon-manager/index.htmlin Chrome or Edge. - Click + Add Icon, drag your SVG into the drop zone, pick a family, type a few tags.
- Click Add Icon → save the SVG into the repo's
svg/folder when prompted. - Click Export metadata.json → save it over the repo's
metadata.json. - Commit and push:
git add svg/ metadata.json git commit -m "add: <icon-name>" git push
If you'd rather edit JSON directly:
- Drop the SVG in
svg/using kebab-case-with-capital-first (e.g.Drone.svg). Single colour: OCHA blue#009edb. - Add an entry to
metadata.json["icons"]:("Drone": { "name": "Drone", "family": "Logistics", "tags": ["uav", "aerial vehicle", "quadcopter"], "wordmark": false, "wordmark_valign": 0, "font_codepoint": "", "date_added": "2026-05-19" }
font_codepointis reassigned by CI on the next push — leave blank or use any value.) - Commit and push.
- Runs
populate_metadata.pyto refreshmetadata.json(adds stubs for any new icons, normalises display names, reassigns font codepoints alphabetically). - Regenerates
output/Humanitarian_icons.xlsx,.csv,.pptx, the icon font, and the complete SVG grid. - Uploads any new SVGs to the OCHA Frontify icon library and applies their tags.
- Commits the refreshed
metadata.jsonandoutput/files back tomain.
If the Frontify step is ever skipped or fails, run it manually:
pip install -r requirements.txt
FRONTIFY_TOKEN="<your-token>" python scripts/sync_to_frontify.py --dry-run # preview
FRONTIFY_TOKEN="<your-token>" python scripts/sync_to_frontify.py # applyThe script is additive only — it never removes tags or deletes icons. Orphans (icons in Frontify but missing from svg/) are reported as warnings for manual investigation.
For the GitHub Action's Frontify sync step to work, the repo needs one secret:
- Go to Settings → Secrets and variables → Actions in this repo.
- Add a new repository secret named
FRONTIFY_TOKENcontaining a personal access token frombrand.unocha.orgwith the brand + asset scopes.
Optional repo variables (defaults are correct for OCHA): FRONTIFY_DOMAIN (default brand.unocha.org), FRONTIFY_LIBRARY_ID (default 251023).
Javier Cueto, Head of Brand and Design Unit
OCHA Brand and Design Unit (BDU)
- Team: ochavisual@un.org
- Focal point: Javier Cueto (cuetoj@un.org)