OPERATOR

Typefaces

Two related families for operational interfaces: OPERATOR Sans and OPERATOR Mono. Geist-derived, with OPERATOR's square returns.

Loading local font files…

The family

OPERATOR Sans

Ag 0123

Ready by design.

Proportional · Interface text and reading

OPERATOR Mono

Ag 0123

Ready by design.

Monospaced · Code, identifiers and data

Five weights, 300–700. Upright and italic. Shared square-tailed g and y.

Explore styles

Waiting for character coverage…

OPERATOR Sans

400 / 28 px · Upright

OPERATOR Mono

400 / 28 px · Upright

Compare with the Geist Sans source

Original Geist Sans

400 / 28 px · Upright

Select Regular 400 and Upright above for a like-for-like comparison.

Numerals

Sans uses a plain zero; Mono uses a slash. Tabular figures align Sans digits. Capital O stays unmarked.

OPERATOR Sans · 400 Upright

0123456789
O0 1Il 5S 8B

SYS-001 / OPR-010 / 14:32:08Z
Ty Vy Wy fy ly ry ty · gyjtl · ğ ǧ ĝ ģ ġ · ý ÿ ỳ ỵ

OPERATOR Mono · 400 Upright

0123456789
O0 1Il 5S 8B

SYS-001 / OPR-010 / 14:32:08Z
Ty Vy Wy fy ly ry ty · gyjtl · ğ ǧ ĝ ģ ġ · ý ÿ ỳ ỵ

In the interface

Sans carries headings, controls and prose. Mono aligns IDs, times and values. Headings and actions use capitals; descriptions keep natural case.

Sector 04

Training data · fixed snapshot

14:32:00Z
Total tracks
8
Hostile
2
Stale updates
2

Affiliation

8 of 8 tracks

Training tracks
PlatformAffiliationUpdate
Fixed wingHostile12Current
Rotary wingFriendly6Current
Naval surfaceNeutral37Current
UAVFriendly3Current
Ground vehicleHostile18Current
UAVUnknown124Stale
Ground vehicleNeutral9Current
Fixed wingUnknown72Stale

Select a track ID for details. Scroll the table horizontally on small screens.

Track details

Select a track to inspect its details.

Compare typography in a dense interface

Adjust size and width, or compare the pairing with all-Mono text. Fictional sample data.

Sans labels and descriptions · Mono IDs, times and values · 13 px body · 500 labels · 600 headings

Sensor feed registry

14:32:08Z
Illustrative sensor feeds
FeedSourceStateUpdatedDelay
North ridge telemetryNominal14:32:0818 ms
Valley relay monitoring stationDelayed14:31:42246 ms
Coastal visibility and weatherNominal14:32:0624 ms
Eastern perimeter environmental arrayNominal14:32:0731 ms
Primary communications gatewaySyncing14:32:0182 ms
Joint logistics yard weather feedNominal14:32:0816 ms

Network state

Connected feeds
06
Nominal
04
Delayed
01
Syncing
01
Queued updates
12

Valley relay is delayed. Primary gateway synchronization is in progress.

Selected feed SYS-012

North ridge telemetry

Weather observations are current. The next scheduled update is due in 30 seconds.

Downloads

Static: 20 styles. Variable: four fonts. Both include TTF, WOFF2, CSS and license notices. Install one set at a time.

Derived from Geist Sans and Geist Mono. License · Source and limitations. Retain copyright and license notices when redistributing.

Development candidate · v0.004. Review the validation status before production adoption.

Usage

Import the tokens once. The bundled fonts are available through font-sans and font-mono with the OPERATOR Tailwind plugin.

import "@operator-ds/tokens";

Use Sans 400 for body text, Sans 500 for controls, and Mono 400 or 500 for aligned data. Keep operational UI text upright. See Typography for the size scale and case rules. Selective token imports also need @operator-ds/tokens/fonts.

Standalone web and desktop installation

Keep the downloaded WOFF2 files beside fonts.css and load it once from your public font directory. Adjust this path to match your app:

@import url("/fonts/operator/fonts.css");
 
.interface {
  font-family: "Operator Sans Family", sans-serif;
  font-weight: 400;
  font-synthesis: none;
}
 
.data {
  font-family: "Operator Mono Family", monospace;
  font-variant-numeric: tabular-nums;
  font-variant-ligatures: none;
  font-synthesis: none;
}

For static fonts, use fonts-static.css and weights 300, 400, 500, 600 or 700. Load one font stylesheet: tokens, variable or static.

On desktop, install one package's TTF files. Font menus list OPERATOR Sans Prototype and OPERATOR Mono Prototype. Remove earlier prototypes first to avoid family-name conflicts.

Zero forms and numeral alignment

Sans defaults to plain zero; Mono to slashed zero. Capital O stays unmarked. Set font-feature-settings: "cv01" 1 for plain, "cv01" 2 for slashed, or "cv01" 3 for square-dot in either family. Use tabular-nums to align Sans digits. Disable Mono's programming ligatures for literal character-by-character alignment, as in the example above.

Validation

Version 0.004 passes the automated family checks and OpenType Sanitizer. Windows and Linux rendering, small-size hinting, and broader language and reader testing remain open. These fonts are unhinted development candidates.

Coverage, test results and earlier versions

Checks cover all 24 TTF/WOFF2 pairs, identity, source hashes, static/variable outline parity, signature details and HarfBuzz shaping. Rebuilding the source produced byte-identical files. All 48 files pass OpenType Sanitizer 9.2.0. The squared g is present across all five weights, variable weights and italics.

The September 25 pass reran 83 selected FontBakery OpenType, metadata and basic rasterization checks against the current 24 TTF faces: 1,208 passes, 36 warnings, 504 skips and 24 informational results, with no failures or errors. The warnings match inherited long glyph names and Mono metric-storage recommendations. This is a focused check set, not the complete publishing profile or native-platform qualification.

Sans maps 728 codepoints; Mono maps 889, with 721 shared. The tester marks unsupported characters instead of using fallback glyphs. See the coverage file and source and limitations, including inherited mark-combination limits.

The previous v0.003 candidate passed a focused FontBakery 1.1.0 suite. That report does not qualify v0.004. Earlier downloads remain available: three-weight Sans + Mono and original Mono Regular.

On this page