OPERATOR

Icons

Browse 223 recommended icons: 136 UI icons for common controls, 76 C2 icons for defense operations, and 11 industrial icons for equipment and maintenance identity. Search the packages together or filter by package and category. Previews show 16 / 24 / 32px; downloads include the selected 16px or 24px optical size.

Catalog

Download size
223 of 223 icons

Previews: 16 / 24 / 32px. Each icon shows its import package.

UI · Navigation

  • Home@operator-ds/icons
  • HomeBase@operator-ds/icons
  • Menu@operator-ds/icons
  • X@operator-ds/icons
  • ArrowUp@operator-ds/icons
  • ArrowDown@operator-ds/icons
  • ArrowLeft@operator-ds/icons
  • ArrowRight@operator-ds/icons
  • ChevronUp@operator-ds/icons
  • ChevronDown@operator-ds/icons
  • ChevronLeft@operator-ds/icons
  • ChevronRight@operator-ds/icons
  • ChevronsLeft@operator-ds/icons
  • ChevronsRight@operator-ds/icons
  • MoreHorizontal@operator-ds/icons
  • MoreVertical@operator-ds/icons

UI · Actions

  • Search@operator-ds/icons
  • Plus@operator-ds/icons
  • Minus@operator-ds/icons
  • Check@operator-ds/icons
  • Copy@operator-ds/icons
  • Edit@operator-ds/icons
  • Trash@operator-ds/icons
  • Download@operator-ds/icons
  • Upload@operator-ds/icons
  • Save@operator-ds/icons
  • Refresh@operator-ds/icons
  • Undo@operator-ds/icons
  • Redo@operator-ds/icons
  • ExternalLink@operator-ds/icons
  • Link@operator-ds/icons
  • LinkOff@operator-ds/icons
  • Share@operator-ds/icons
  • ScanCode@operator-ds/icons

UI · Layout & data

  • Filter@operator-ds/icons
  • SortAscending@operator-ds/icons
  • SortDescending@operator-ds/icons
  • Sliders@operator-ds/icons
  • Settings@operator-ds/icons
  • Grid@operator-ds/icons
  • List@operator-ds/icons
  • Table@operator-ds/icons
  • Columns@operator-ds/icons
  • GripVertical@operator-ds/icons
  • GripHorizontal@operator-ds/icons
  • ChartBar@operator-ds/icons
  • ChartLine@operator-ds/icons
  • ChartPie@operator-ds/icons
  • Database@operator-ds/icons
  • Server@operator-ds/icons
  • Activity@operator-ds/icons

UI · Status

  • Info@operator-ds/icons
  • HelpCircle@operator-ds/icons
  • AlertTriangle@operator-ds/icons
  • AlertCircle@operator-ds/icons
  • CheckCircle@operator-ds/icons
  • XCircle@operator-ds/icons
  • Loader@operator-ds/icons
  • Clock@operator-ds/icons

UI · Files

  • File@operator-ds/icons
  • FileText@operator-ds/icons
  • Folder@operator-ds/icons
  • FolderOpen@operator-ds/icons
  • Clipboard@operator-ds/icons
  • ClipboardCheck@operator-ds/icons
  • Paperclip@operator-ds/icons
  • Archive@operator-ds/icons
  • FilePlus@operator-ds/icons
  • FolderPlus@operator-ds/icons
  • Print@operator-ds/icons

UI · Access

  • User@operator-ds/icons
  • Users@operator-ds/icons
  • Lock@operator-ds/icons
  • Unlock@operator-ds/icons
  • Eye@operator-ds/icons
  • EyeOff@operator-ds/icons
  • LogIn@operator-ds/icons
  • LogOut@operator-ds/icons
  • UserPlus@operator-ds/icons
  • UserMinus@operator-ds/icons
  • Shield@operator-ds/icons
  • ShieldCheck@operator-ds/icons
  • Accessibility@operator-ds/icons

UI · Communication

  • Bell@operator-ds/icons
  • BellOff@operator-ds/icons
  • Mail@operator-ds/icons
  • MessageSquare@operator-ds/icons
  • Send@operator-ds/icons
  • Calendar@operator-ds/icons
  • Inbox@operator-ds/icons
  • Network@operator-ds/icons
  • Wifi@operator-ds/icons

UI · Playback

  • Play@operator-ds/icons
  • Pause@operator-ds/icons
  • Stop@operator-ds/icons
  • SkipBack@operator-ds/icons
  • SkipForward@operator-ds/icons
  • Reset@operator-ds/icons

UI · Workspace

  • PanelLeft@operator-ds/icons
  • PanelRight@operator-ds/icons
  • PanelBottom@operator-ds/icons
  • Maximize@operator-ds/icons
  • Minimize@operator-ds/icons
  • Move@operator-ds/icons
  • Cursor@operator-ds/icons
  • HandPan@operator-ds/icons
  • Ruler@operator-ds/icons
  • FitToView@operator-ds/icons
  • Keyboard@operator-ds/icons
  • Terminal@operator-ds/icons
  • Code@operator-ds/icons

UI · Maps

  • Map@operator-ds/icons
  • MapPin@operator-ds/icons
  • Layers@operator-ds/icons
  • ZoomIn@operator-ds/icons
  • ZoomOut@operator-ds/icons
  • Locate@operator-ds/icons

UI · Media

  • Volume@operator-ds/icons
  • VolumeOff@operator-ds/icons
  • Mic@operator-ds/icons
  • MicOff@operator-ds/icons
  • Phone@operator-ds/icons
  • Video@operator-ds/icons
  • VideoOff@operator-ds/icons
  • Camera@operator-ds/icons
  • Image@operator-ds/icons

UI · Organization

  • Pin@operator-ds/icons
  • PinOff@operator-ds/icons
  • Bookmark@operator-ds/icons
  • Star@operator-ds/icons
  • Tag@operator-ds/icons
  • History@operator-ds/icons
  • Checklist@operator-ds/icons

UI · Trends

  • TrendingUp@operator-ds/icons
  • TrendingDown@operator-ds/icons
  • TrendFlat@operator-ds/icons

C2 · Comms

  • SecureComms@operator-ds/icons-c2
  • UnsecureComms@operator-ds/icons-c2
  • CommsLost@operator-ds/icons-c2
  • RelayActive@operator-ds/icons-c2
  • Satcom@operator-ds/icons-c2
  • Datalink@operator-ds/icons-c2
  • Crypto@operator-ds/icons-c2
  • Beacon@operator-ds/icons-c2
  • Radio@operator-ds/icons-c2

C2 · Asset Status

  • Fuel@operator-ds/icons-c2
  • Ammo@operator-ds/icons-c2
  • LinkHealth@operator-ds/icons-c2
  • Power@operator-ds/icons-c2
  • DataStale@operator-ds/icons-c2
  • Degraded@operator-ds/icons-c2
  • Offline@operator-ds/icons-c2
  • Autonomous@operator-ds/icons-c2

C2 · Threat / Track / Engagement

  • ThreatIndicator@operator-ds/icons-c2
  • Track@operator-ds/icons-c2
  • ClassifyPending@operator-ds/icons-c2
  • EngagementActive@operator-ds/icons-c2
  • MissileWarning@operator-ds/icons-c2
  • FiresStrike@operator-ds/icons-c2
  • Bda@operator-ds/icons-c2
  • Neutralized@operator-ds/icons-c2
  • LostTrack@operator-ds/icons-c2

C2 · Operational Status

  • MissionReady@operator-ds/icons-c2
  • MissionCapable@operator-ds/icons-c2
  • NonMissionCapable@operator-ds/icons-c2

C2 · Sensor / ISR Modes

  • EoIr@operator-ds/icons-c2
  • Sar@operator-ds/icons-c2
  • Sigint@operator-ds/icons-c2
  • Elint@operator-ds/icons-c2
  • Comint@operator-ds/icons-c2
  • Masint@operator-ds/icons-c2
  • Humint@operator-ds/icons-c2
  • Radar@operator-ds/icons-c2
  • RadarSystem@operator-ds/icons-c2

C2 · Platform / Entity (UI chrome — not map symbology)

  • GroundVehicle@operator-ds/icons-c2
  • RotaryWing@operator-ds/icons-c2
  • FixedWing@operator-ds/icons-c2
  • Jet@operator-ds/icons-c2
  • NavalSurface@operator-ds/icons-c2
  • Submarine@operator-ds/icons-c2
  • Satellite@operator-ds/icons-c2
  • DismountedPersonnel@operator-ds/icons-c2

C2 · Geospatial / Nav

  • Coordinates@operator-ds/icons-c2
  • Grid@operator-ds/icons-c2
  • Bearing@operator-ds/icons-c2
  • Range@operator-ds/icons-c2
  • Altitude@operator-ds/icons-c2
  • Waypoint@operator-ds/icons-c2
  • Route@operator-ds/icons-c2
  • Geofence@operator-ds/icons-c2

C2 · Time / Tempo

  • ZuluTime@operator-ds/icons-c2
  • MissionElapsedTime@operator-ds/icons-c2
  • Countdown@operator-ds/icons-c2
  • Sync@operator-ds/icons-c2

C2 · EW / Cyber / Spectrum

  • Jamming@operator-ds/icons-c2
  • Emcon@operator-ds/icons-c2
  • Spoofing@operator-ds/icons-c2
  • Cyber@operator-ds/icons-c2
  • ElectronicProtect@operator-ds/icons-c2
  • SpectrumMonitor@operator-ds/icons-c2

C2 · Classification / Handling

  • ClassificationLevel@operator-ds/icons-c2
  • Releasability@operator-ds/icons-c2
  • Caveat@operator-ds/icons-c2
  • NeedToKnow@operator-ds/icons-c2
  • Redact@operator-ds/icons-c2

C2 · Command / Reporting

  • CommandNode@operator-ds/icons-c2
  • ChainOfCommand@operator-ds/icons-c2
  • Opord@operator-ds/icons-c2
  • Sitrep@operator-ds/icons-c2
  • CommandersIntent@operator-ds/icons-c2
  • Roe@operator-ds/icons-c2
  • Cop@operator-ds/icons-c2

Industrial · Equipment

  • Pump@operator-ds/icons-industrial
  • Valve@operator-ds/icons-industrial
  • Motor@operator-ds/icons-industrial
  • Fan@operator-ds/icons-industrial
  • Tank@operator-ds/icons-industrial
  • Pipe@operator-ds/icons-industrial
  • Gauge@operator-ds/icons-industrial

Industrial · Maintenance and facility

  • Maintenance@operator-ds/icons-industrial
  • Facility@operator-ds/icons-industrial
  • Toolbox@operator-ds/icons-industrial
  • SafetyHelmet@operator-ds/icons-industrial

Choose the package

PackageUseRecommended icons
@operator-ds/iconsNavigation, actions, files, access, and general interface controls136
@operator-ds/icons-c2Operational states, sensor disciplines, platforms, and command workflows76
@operator-ds/icons-industrialEquipment, facility, and maintenance identity11

The packages remain separate. Each catalog entry shows its import package; downloaded filenames include ui-, c2-, or industrial- and the selected size so similarly named assets remain distinct.

Names that collide

Both UI and C2 export Grid: alias the UI layout grid as LayoutGrid and the C2 coordinate grid as CoordinateGrid. Calendar, Link, and C2’s Radio share a name with @operator-ds/react components, and Map, File, Image, History, and C2's Range shadow platform globals. The exports keep their names, so alias them where you import them:

import { Calendar as CalendarIcon, Map as MapIcon } from "@operator-ds/icons";
import { Radio as RadioIcon } from "@operator-ds/icons-c2";
import { Calendar, Radio } from "@operator-ds/react";

C2 icons belong in tables, panels, filters, legends, and feeds. They do not render tactical map symbology, including Platform / Entity glyphs on a COP. Use a MIL-STD-2525 symbology engine for affiliation frames and echelon modifiers; OPERATOR provides affiliation colors.

Doctrinal words — weapons FREE / HOLD / TIGHT and command OPCON / TACON / ADCON — belong in a Badge.

React usage

Install the packages you need:

pnpm add @operator-ds/icons @operator-ds/icons-c2 @operator-ds/icons-industrial
import {
  Search,
  Download,
  Grid as LayoutGrid,
} from "@operator-ds/icons";
import {
  LinkHealth,
  Emcon,
  Grid as CoordinateGrid,
} from "@operator-ds/icons-c2";
import { Pump } from "@operator-ds/icons-industrial";
import { Button } from "@operator-ds/react";
 
// Adjacent text labels the action or state.
<Button className="gap-1u">
  <Download size={16} /> Export
</Button>
<span><LinkHealth size={16} /> Link healthy</span>
<span><Pump size={16} /> Intake pump</span>
 
// Name icon-only controls on the button.
<Button aria-label="Search">
  <Search size={16} />
</Button>
 
// A meaningful image needs its own name.
<Emcon size={24} title="EMCON active" />

All three packages support size, color (default currentColor), title, SVG props, and forwarded refs. weight supports regular only. Icons are hidden from assistive technology unless named with title, aria-label, or aria-labelledby. Each package is tree-shakeable: importing one icon adds only that icon to a bundle.

Industrial icons identify equipment or a maintenance context. They do not encode running state, alarms, freshness, or command outcome. Pair them with visible state text and the appropriate status component. Pump, Valve, Motor, Fan, Tank, Pipe, Gauge, Maintenance, Facility, Toolbox, and SafetyHelmet form the industrial family. Sensor and ISR identity already use the C2 vocabulary (EoIr, Sar, Sigint, Elint, Comint, Masint, and Humint); process-diagram symbols and formal technical schematics have separate contracts.

View the approved second-pass industrial icons and their earlier drawings.

Keep visible labels for ambiguous actions, operational states, and sensor disciplines. MissionCapable and NonMissionCapable share an equipment cabinet with a check or X; MissionReady uses a checked flag. Visible “Capable” / “Ready” and EO/IR / SAR / MASINT labels carry the exact meaning.

Loader is static. Respect reduced motion when animating it; put the loading message on the owning control or status region.

Component and pattern usage

  • Selection controls use Check; indeterminate checkboxes use Minus. Import the components from @operator-ds/icons so the artwork and optical stroke stay in sync.
  • General severity uses AlertCircle for critical conditions, AlertTriangle for warnings, and Info for advisories. CheckCircle indicates a current or nominal state; Check records acknowledgment. Keep the visible status text.
  • Operational freshness uses DataStale; a disconnected source uses Offline. Reserve MissionReady for mission readiness and ThreatIndicator for threats.
  • Pass the rendered size through size rather than resizing icons with CSS. width and height are accepted and give the same optical stroke, but size is the one to use. Use the same size for icons serving the same role in a control or pattern.

Chart markers, line samples, status dots, and tooltip arrows are data or layout geometry. They retain their own shapes and do not substitute for interface icons.

One drawing system

All three packages use a 24 × 24 grid, 1px stroke at 24px, flat caps, miter joins, and currentColor. Below 24px, the wrapper strengthens strokes to a full screen pixel. Most silhouettes occupy the central 18 units, with optical balance for narrow and wide forms.

Profiles (User, Users, UserPlus, UserMinus, and C2's Humint) share circular heads and horizontal shoulders with 90° corners. Microphones, bells, menu dots, and the Refresh, Undo, Redo, Reset, and Link contours use straight segments and square corners. Info, HelpCircle, AlertCircle, CheckCircle, and XCircle use square frames; existing export names remain for compatibility.

Clock dials (Clock, History, ZuluTime, MissionElapsedTime, and the age indicator in DataStale) are circular with sharp hands and endpoints. Offline retains a sharp frame. Physical forms such as lenses and wheels, signal arcs, contact returns, and approved lock shackles retain their meaningful curves.

Lucide’s catalog and design principles informed the UI metaphors; Central’s catalog informed expansion coverage. OPERATOR authored the SVG geometry. All three packages share rendering and accessibility behavior.

  • Home uses a roof with an open courtyard entrance and a small center square. HomeBase is the abstract square courtyard variant; pair it with a visible “Home” or “Base” label.
  • Shield, ShieldCheck, and ElectronicProtect share an angular contour. AlertTriangle, AlertCircle, and Caveat share square warning punctuation.
  • Pair Video / VideoOff, Link / LinkOff, Bell / BellOff, Mic / MicOff, Volume / VolumeOff, and Pin / PinOff consistently. A slash means off; label the next action, such as “Unmute microphone.”
  • Reset restores the starting state; Refresh reloads data; Undo reverses an edit; History opens previous activity. Sync uses opposing arrows for transfer.
  • PanelLeft, PanelRight, and PanelBottom identify position; label the action, such as “Open left panel.”
  • MapPin marks a place, Locate centers the current location, and Layers opens the layer picker. EngagementActive uses a targeting cross within open brackets for engagement status.
  • SecureComms and UnsecureComms share a chat bubble and lock body; only the shackle changes. Use Lock and Unlock for general access controls.
  • Releasability connects a document to recipients. Use ExternalLink for external navigation.
  • Degraded uses an interrupted waveform. Use TrendingDown for a declining value; Route connects endpoints with symmetric right-angle turns.
  • NeedToKnow places a person within access brackets for eligibility. Use EyeOff for hidden content.
  • DataStale shows a record with an age indicator. Use History for previous activity.
  • Radio identifies a handheld radio; Radar opens a radar scan view or function; RadarSystem identifies physical radar equipment with a panel array. Visible text carries equipment state.
  • Wifi uses faceted signal bands; connection state and signal strength belong in accompanying text.
  • ZuluTime uses a Z dial; pair it with a visible UTC label. Use Clock for generic time.

Contact is a dot; history adds a trail; a live track adds a velocity vector; a lost track ends a broken trail at a hollow last position. Neutralized strikes through a contact ring. Opord points down the command chain; Sitrep points up.

Platform and collection families

Satellite and Satcom share the same diagonal body and wide, divided solar arrays. Satcom adds communication arcs in the lower-right corner. Sigint, Elint, Comint, Masint, and Humint share a collection shelf with the source above it.

FixedWing uses the selected MQ-9 contour without the rear propeller; Jet carries the swept-wing silhouette. GroundVehicle uses tracked armor. RotaryWing uses the unmanned rotorcraft silhouette. UAV is broader than fixed-wing; use the appropriate platform label in the interface.

Datalink uses paired send/receive ports. Autonomous uses a sparse AI controller. EoIr uses the selected sensor turret. Sar preserves its original dish, feed, and ground line, with the mast connected to the lower dish curve and one wave aligned with the feed.

Compatibility exports

Three C2 exports are outside the recommended catalog. Their React imports, ref/props behavior, and existing 16px and 24px SVG paths remain available:

  • NewContact is retired for now. No replacement candidate was approved. Use visible new-contact status text; the NewContact drawings and saved shortlists are archived, with no active selection request.
  • IffInterrogate is retired. Use a visible Interrogate IFF action and explicit progress or result text. The IFF explorations are archived; no candidate was approved.
  • Uav is consolidated into FixedWing. The deprecated forwarding component and existing uav.svg paths render the selected fixed-wing artwork.

Standalone SVGs

The packages include 452 SVGs in total:

Package24px assetsStrengthened 16px assetsTotal
@operator-ds/icons136 in svg/136 in svg/16/272
@operator-ds/icons-c279 in svg/79 in svg/16/158
@operator-ds/icons-industrial11 in svg/11 in svg/16/22

C2 assets include the 76 recommended icons and three compatibility exports. Package filenames remain kebab-case, with acronyms split (secure-comms.svg, eo-ir.svg, x-circle.svg). Catalog downloads include package and size (ui-grid-16.svg, c2-grid-24.svg).

Assets and downloads are decorative, like the components: aria-hidden="true" and no <title>. An inlined asset that conveys meaning needs its own name where you inline it. Add role="img" and an aria-label, and remove aria-hidden:

<svg role="img" aria-label="Pump" ...>...</svg>

Use the dedicated asset at 16px; externally resizing the 24px file does not select its optical stroke. Inline SVG inherits text color; <img> does not. Give meaningful images alt text and decorative images empty alt.

Regenerate and verify SVGs

Each package's src/icons.tsx is canonical. Run the package's build script for @operator-ds/icons, @operator-ds/icons-c2, or @operator-ds/icons-industrial to regenerate the assets. The package tests render every component and require the files to match exactly at both sizes, with none missing, stale, or extra; verify:svg runs the same check against the built package.

On this page