Repo of the Day
national-park-service/fonts: United States National Park Service inspired Open Source fonts.
Published: Jun 18, 2026
Open repository ↗United States National Park Service inspired Open Source fonts. - national-park-service/fonts
Summary
The national-park-service/fonts repo bundles six open-source typefaces styled after U.S. public-lands signage, released under the SIL Open Font License 1.1 and distributed as .otf, .ttf, .woff, and .woff2 files. The project is explicit that it is independent and not affiliated with, endorsed by, or sponsored by the U.S. National Park Service, U.S. Forest Service, or the U.S. Department of the Interior. The whole pipeline — outlines, masters, ligature reconstruction, WOFF packaging — is written in TypeScript using the ts-fonts library, so no Python font toolchain is required.
What it is useful for
The collection covers the most common web typography slots, so a team can ship a full identity from a single package:
- NPS 2026 — a variable display face with a
wghtaxis from 100 to 900 (Thin through Black) for headlines, trail signs, and route badges. - Redwood Serif — a transitional serif with bracketed serifs, covering A–Z, a–z, digits, ASCII punctuation, and Latin-1 Supplement.
- Campmate Script — a brush script with 19 OpenType
ligaligatures (oo,ll,oss,or, etc.), suited to hand-painted trailhead-style headings. - NPS Symbols — 23 pictographs (mountain, tent, campfire, compass, arrowhead, pine, hiker, bear, weather glyphs) at PUA codepoints
U+E000+with ASCII shortcuts (M,T,F,A). - Sequoia Sans — a humanist display sans in four cuts (Regular, Wide, Light, Thin) that pair lowercase and uppercase drawings differently per weight.
- Switchback — routed-trail display caps in clean
Switchbackand distressedSwitchback Roughfamilies, separated as distinct CSS family names so they never collide at the same weight.
Two documented limitations matter for production use. First, the OFL 1.1 reservation lists the six family names as Reserved Font Names, so they cannot be reused for modified copies. Second, several families are intentionally narrow: Redwood Serif and Campmate Script are single Regular cuts, and the Light and Thin cuts of Sequoia Sans are uppercase-only display weights, not body text.
How engineers can use it
The README documents three install paths. Per the README, you can install via Bun:
bun add @nps-fonts/all
# or per family:
bun add @nps-fonts/redwood-serif @nps-fonts/campmate-script
Then in CSS:
@import "@nps-fonts/all";
body { font-family: "Redwood Serif"; }
.icon { font-family: "NPS Symbols"; }
A CDN option is also documented: <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@nps-fonts/all/index.css">. For full control, self-host with @font-face, pointing at the .woff2/.woff/.otf files you place in your static directory. Desktop ZIPs are available on the Releases page.
Building from source requires Bun 1.1+; bun install followed by bun run build produces all six families under fonts/<family>/, and bun run dev serves a verify/specimen site at http://localhost:3001 that loads each family's actual .woff2 files with size, line-height, and tracking sliders. A pixel-exact regression check (bun run verify) is provided for NPS 2026.