Skip to content

Portal fonts fail to load: malformed Google Fonts CSS2 URL #942

@andro-marty

Description

@andro-marty

Describe the bug
The Google Fonts stylesheet link in the portal's index.html uses an invalid CSS2 API URL. The Inter font weights are comma-separated (wght@400,500,600), but the Google Fonts CSS2 API requires weight values to be separated by semicolons (wght@400;500;600). Commas are reserved for multi-axis tuples (e.g. ital,wght@0,400;1,700).

Because the URL is malformed, Google's API responds with an HTTP 400 error page. The browser requests a stylesheet, receives an HTML error page instead, and blocks it. The portal's fonts never load and fall back to system fonts.

The offending line in internal/portal/index.html:

To Reproduce
Steps to reproduce the behavior:

  1. Open the Outpost portal in a browser.
  2. Open the browser DevTools Console and Network tab.
  3. Observe the request to https://fonts.googleapis.com/css2?family=Inter:wght@400,500,600&family=JetBrains+Mono:wght@400&display=swap.
  4. The request returns a 400 with Content-Type: text/html, and the console shows a MIME-type mismatch error:
  5. Firefox: NS_ERROR_CORRUPTED_CONTENT — "The resource ... was blocked due to MIME type ('text/html') mismatch (X-Content-Type-Options: nosniff)."
  6. Chrome: "Refused to apply style ... because its MIME type ('text/html') is not a supported stylesheet MIME type."

Expected behavior

The Google Fonts URL should use semicolon-separated weights so the API returns a valid text/css response and the Inter / JetBrains Mono fonts load correctly:

<link
  href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600&family=JetBrains+Mono:wght@400&display=swap"
  rel="stylesheet"
/>

Screenshots
If applicable, add screenshots to help explain your problem.

Additional context
The bug is purely cosmetic in effect (typography falls back to system fonts); no portal functionality is broken.

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions