Skip to content

feat(fonts): embed Francois One font - #8601

Open
grantfitzsimmons wants to merge 1 commit into
mainfrom
issue-8598
Open

grantfitzsimmons wants to merge 1 commit into
mainfrom
issue-8598

Conversation

@grantfitzsimmons

@grantfitzsimmons grantfitzsimmons commented Sep 29, 2026 •

Copy link
Copy Markdown
Member

Fixes #8598

This PR just removes the external Google Fonts request for Francois One. I just added Francois One WOFF2 font assets and the stylesheet. I've included the SIL Open Font License as requested when redistributing. This is important for self-hosted users without public internet access (and for anyone who does not want to phone home to Google).

This one is pretty simple. No need to wait on Google's servers. 😄

Testing instructions

  • Make sure table icons (e.g. CO, Loc, Agt) show the correct font! Compare against v7

Summary by CodeRabbit

  • Style
    • Updated the site’s typography to use the Francois One font, including support for Vietnamese and extended Latin characters.
    • Font rendering no longer relies on Google Fonts, providing a consistent appearance across supported character sets.

source it locally instead!
@grantfitzsimmons grantfitzsimmons added this to the 7.12.2 milestone Sep 29, 2026
@coderabbitai

coderabbitai Bot commented Sep 29, 2026 •

Copy link
Copy Markdown
Contributor

Review in Change Stack →

Navigate logical layers of code changes, visualize relationships, and explore their blast radius.

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Advanced

Run ID: ecc90f37-6dd8-4eac-913a-fe5345590d3a

📥 Commits

Reviewing files that changed from the base of the PR and between 2ada98a and f754070.

⛔ Files ignored due to path filters (3)
  • specifyweb/frontend/static/fonts/francois-one-latin-ext.woff2 is excluded by !**/*.woff2
  • specifyweb/frontend/static/fonts/francois-one-latin.woff2 is excluded by !**/*.woff2
  • specifyweb/frontend/static/fonts/francois-one-vietnamese.woff2 is excluded by !**/*.woff2
📒 Files selected for processing (3)
  • specifyweb/frontend/static/fonts/OFL.txt
  • specifyweb/frontend/static/fonts/francois-one.css
  • specifyweb/frontend/templates/body.html

Included review availability: This review used your included allowance. Your plan provides up to 2 included reviews per hour; 1 remain after this review.


📝 Walkthrough

Walkthrough

The frontend now loads Francois One from local font files instead of Google Fonts. The change adds font-face declarations for Vietnamese, Latin Extended, and Latin ranges, plus the font’s SIL Open Font License.

Changes

Local font loading

Layer / File(s) Summary
Package and load Francois One
specifyweb/frontend/static/fonts/francois-one.css, specifyweb/frontend/templates/body.html, specifyweb/frontend/static/fonts/OFL.txt
The stylesheet declares Francois One font faces for three character ranges. The page links to the local stylesheet, and the font license is included.

Priority: ⬇️ Low

Change: Feature · Severity of issue fixed: Low

Merge Risk: ⚪ Minimal · up to f7540

The local font loads for the stated table labels and inspected accented text. No material merge-blocking issue is established.

Architecture Summary

Architecture risk: 🔵 Low · up to f7540

The change affects 1 system.

Changed systems: specifyweb

Architecture concerns
No architecture-level concerns identified.

Review details

Systems and components

  • observed — specifyweb (ui) was modified; 3 changed files map to changed impact.

Before / after behavior

  • observed — Modified behavior in specifyweb/frontend/static/fonts/OFL.txt: Added the Francois One copyright notice and the full SIL Open Font License 1.1, including its permissions, distribution and naming conditions, termination clause, and disclaimers.
  • observed — Modified behavior in specifyweb/frontend/static/fonts/francois-one.css: Adds Francois One font-face rules for Vietnamese, Latin Extended, and Latin character ranges, each referencing its corresponding WOFF2 file.
  • observed — Modified behavior in specifyweb/frontend/templates/body.html: The stylesheet link now points to the local Francois One CSS file instead of the Google Fonts URL.
🚥 Pre-merge checks | ✅ 5 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Testing Instructions ⚠️ Warning The testing instruction covers the visual table-icon result, and the examples (CO, Loc, and Agt) are relevant. It does not cover the other changed behavior: loading `/static/fonts/francois-one.c… Replace the single instruction with steps that: (1) open a page that renders autogenerated table icons and verify CO, Loc, and Agt use the Francois One appearance compared with v7; (2) use browser network tools, or test with public …
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly and concisely describes the main change: embedding the Francois One font locally.
Linked Issues check ✅ Passed Issue #8598 requires Francois One to load from local files instead of Google Fonts. The PR changes templates/body.html to load /static/fonts/francois-one.css. The stylesheet defines local `Francoi…
Out of Scope Changes check ✅ Passed The changes stay within issue #8598. The stylesheet and font assets implement local delivery. OFL.txt documents the license needed for font redistribution. No unrelated change is identified.
Automatic Tests ✅ Passed Automatic tests are not necessary for this static-resource change. The PR only adds font files and CSS, and changes one template stylesheet link. The repository has no existing Django template or stat…
Full details: Testing Instructions

Explanation

The testing instruction covers the visual table-icon result, and the examples (CO, Loc, and Agt) are relevant. It does not cover the other changed behavior: loading /static/fonts/francois-one.css and its WOFF2 assets instead of contacting Google Fonts. “Show the correct font” is also not a precise expected result.

Resolution

Replace the single instruction with steps that: (1) open a page that renders autogenerated table icons and verify CO, Loc, and Agt use the Francois One appearance compared with v7; (2) use browser network tools, or test with public internet access disabled, to confirm the local stylesheet and WOFF2 assets load successfully; and (3) confirm that no request is made to fonts.googleapis.com.

  • Fix all pre-merge checks with AI
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Commit to this branch
  • Create a new PR

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

Status: 📋Back Log

Development

Successfully merging this pull request may close these issues.

Embed the Francois One font

2 participants