Skip to content

Serve label glyphs from the Open Waters font stack - #77

Merged
bkeepers merged 1 commit into
mainfrom
tile-fonts
Aug 19, 2026
Merged

Serve label glyphs from the Open Waters font stack#77
bkeepers merged 1 commit into
mainfrom
tile-fonts

Conversation

@bkeepers

Copy link
Copy Markdown
Member

Label glyphs come from https://tiles.openwaters.io/fonts (tile-fonts) instead of the VersaTiles glyph server.

The chart sets soundings and other hydrographic text in a sloping face (S-4 B-412.1), and VersaTiles serves no italic Noto. The style borrowed Open Sans italic for that text, and every stack name had to be mangled into versatiles' lowercase-underscore form on the way out. Seascape's next release moves its own labels to Noto Sans Medium and Medium Italic, which VersaTiles does not carry at all.

The style now asks for the stacks its layers actually name. The base map's labels follow: its bold stack asks for Noto Sans SemiBold, the heaviest weight tile-fonts publishes.

Verification

  • All six published stacks return 200 with access-control-allow-origin: * and year-long immutable caching. Noto Sans Bold 404s, as expected.
  • The built style asks for Regular, Italic, and SemiBold only, and no layer uses a composite stack. A new test fails if a layer ever names a stack the server does not publish.
  • Rendered the viewer against the live endpoint at z13 (Aarhus) and z4 (northern Europe): chart, base map, and bathymetry labels all draw, italics are true italics, and the Cyrillic, Greek, and CJK ranges all return 200.

The chart sets hydrographic text in a sloping face (S-4 B-412.1); the VersaTiles glyphs have no italic cut, so it borrowed Open Sans, and every stack name had to be mangled into versatiles' lowercase form. tiles.openwaters.io/fonts serves Noto Regular, Medium and SemiBold with true italics for all three, so the style now asks for the stacks its layers actually name.
Copilot AI lite review requested due to automatic review settings August 19, 2026 14:33

Copilot AI left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Updates the Seamap style builder and documentation so label glyphs are served from the Open Waters tile-fonts endpoint (instead of VersaTiles), enabling true italics and additional Noto weights required by the chart and upcoming Seascape label stacks.

Changes:

  • Switched the whole-style builder to use https://tiles.openwaters.io/fonts/{fontstack}/{range}.pbf for glyphs, and configured the base map label font stack to use Noto Sans Regular/SemiBold.
  • Removed the old VersaTiles-specific fontstack name mangling from style assembly.
  • Added a regression test ensuring the built style only references font stacks published by the glyph server, and updated docs/attribution accordingly.

Reviewed changes

Copilot reviewed 5 out of 5 changed files in this pull request and generated no comments.

Show a summary per file
File Description
style/README.md Documents the new glyph endpoint and updates layers({ font? }) wording for the relevant Noto stacks.
style/index.ts Points colorful() glyphs to the Open Waters font endpoint, configures base-map font stacks, and removes VersaTiles font renaming during assembly.
style/index.test.ts Adds a test that asserts the built style only requests published font stacks and uses the expected glyph URL template.
README.md Updates data source attribution to separate VersaTiles (base map) from Noto (glyphs).
CONTRIBUTING.md Updates contributor documentation to reflect the new glyph source and tooling.

💡 Add a code-review agent skill or configure MCP servers for context-aware, tailored reviews. Learn more in the docs.

@bkeepers
bkeepers merged commit add1dd8 into main Aug 19, 2026
4 checks passed
@bkeepers
bkeepers deleted the tile-fonts branch August 19, 2026 14:40
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants