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
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
| Package | Use | Recommended icons |
|---|---|---|
@operator-ds/icons | Navigation, actions, files, access, and general interface controls | 136 |
@operator-ds/icons-c2 | Operational states, sensor disciplines, platforms, and command workflows | 76 |
@operator-ds/icons-industrial | Equipment, facility, and maintenance identity | 11 |
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 useMinus. Import the components from@operator-ds/iconsso the artwork and optical stroke stay in sync. - General severity uses
AlertCirclefor critical conditions,AlertTrianglefor warnings, andInfofor advisories.CheckCircleindicates a current or nominal state;Checkrecords acknowledgment. Keep the visible status text. - Operational freshness uses
DataStale; a disconnected source usesOffline. ReserveMissionReadyfor mission readiness andThreatIndicatorfor threats. - Pass the rendered size through
sizerather than resizing icons with CSS.widthandheightare accepted and give the same optical stroke, butsizeis 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.
Distinguish related concepts
Homeuses a roof with an open courtyard entrance and a small center square.HomeBaseis the abstract square courtyard variant; pair it with a visible “Home” or “Base” label.Shield,ShieldCheck, andElectronicProtectshare an angular contour.AlertTriangle,AlertCircle, andCaveatshare square warning punctuation.- Pair
Video/VideoOff,Link/LinkOff,Bell/BellOff,Mic/MicOff,Volume/VolumeOff, andPin/PinOffconsistently. A slash means off; label the next action, such as “Unmute microphone.” Resetrestores the starting state;Refreshreloads data;Undoreverses an edit;Historyopens previous activity.Syncuses opposing arrows for transfer.PanelLeft,PanelRight, andPanelBottomidentify position; label the action, such as “Open left panel.”MapPinmarks a place,Locatecenters the current location, andLayersopens the layer picker.EngagementActiveuses a targeting cross within open brackets for engagement status.SecureCommsandUnsecureCommsshare a chat bubble and lock body; only the shackle changes. UseLockandUnlockfor general access controls.Releasabilityconnects a document to recipients. UseExternalLinkfor external navigation.Degradeduses an interrupted waveform. UseTrendingDownfor a declining value;Routeconnects endpoints with symmetric right-angle turns.NeedToKnowplaces a person within access brackets for eligibility. UseEyeOfffor hidden content.DataStaleshows a record with an age indicator. UseHistoryfor previous activity.Radioidentifies a handheld radio;Radaropens a radar scan view or function;RadarSystemidentifies physical radar equipment with a panel array. Visible text carries equipment state.Wifiuses faceted signal bands; connection state and signal strength belong in accompanying text.ZuluTimeuses a Z dial; pair it with a visible UTC label. UseClockfor 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:
NewContactis 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.IffInterrogateis retired. Use a visible Interrogate IFF action and explicit progress or result text. The IFF explorations are archived; no candidate was approved.Uavis consolidated intoFixedWing. The deprecated forwarding component and existinguav.svgpaths render the selected fixed-wing artwork.
Standalone SVGs
The packages include 452 SVGs in total:
| Package | 24px assets | Strengthened 16px assets | Total |
|---|---|---|---|
@operator-ds/icons | 136 in svg/ | 136 in svg/16/ | 272 |
@operator-ds/icons-c2 | 79 in svg/ | 79 in svg/16/ | 158 |
@operator-ds/icons-industrial | 11 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.