Skip to content

Twenty Fourteen: Update the bundled Lato font to version 2.015 - #14413

Open
canburak wants to merge 3 commits into
WordPress:trunkfrom
canburak:trac-66334
Open

canburak wants to merge 3 commits into
WordPress:trunkfrom
canburak:trac-66334

Conversation

@canburak

@canburak canburak commented Oct 18, 2026 •

Copy link
Copy Markdown

This change replaces the Lato 1.104 font files in Twenty Fourteen with Lato 2.015. Lato 1.104 does not have many letters of Latin-script languages, for example Turkish İ ğ ş. Lato 2.015 has these letters.

Changes:

  • fonts/lato/*.woff2 and *.woff: new files from Lato 2.015. The file names do not change.
  • fonts/font-lato.css: new copyright line and new ver values. The @font-face rules and the unicode-range values do not change.
  • fonts/lato/LICENSE.txt: the OFL text from the Lato 2.015 package.
  • functions.php: new font stylesheet version.
  • readme.txt: new copyright line and source.

How the font files were made:

  1. Download https://www.latofonts.com/files/Lato2OFL.zip (SHA-256 42b54e96c07e299d967fc3227c7bd63a20d6cfb1dc8fd6dae83628091e20a5b8).
  2. Use pyftsubset (fonttools) on each TTF with --layout-features=* --name-IDs=* --name-languages=* --notdef-outline. Hinting stays, as in the old files.
  3. Use the unicode-range values from font-lato.css:
    • lato-latin-*.woff2: the latin range.
    • lato-latin-ext-*.woff2: the latin-ext range.
    • lato-all-*.woff: the two ranges together.

Weights and sources: 300 (Lato-Light, Lato-LightItalic), 400 (Lato-Regular, Lato-Italic), 700 (Lato-Bold, Lato-BoldItalic), 900 (Lato-Black).

File sizes: each lato-latin-*.woff2 file increases from approximately 23 KB to 40 KB. Each lato-latin-ext-*.woff2 file increases from approximately 5 KB to 50 KB. Because of unicode-range, the browser loads a latin-ext file only when the page has a letter in that range.

Test:

  1. Open a post that has text in Turkish, Czech, Romanian or Vietnamese.
  2. Make sure that all letters show in Lato, in all weights and styles.
  3. Make sure that English text looks the same as before. The letter widths and spaces are slightly different in Lato 2.

Live example: sadibey.com (tr_TR) serves the font files from this PR through a child theme. The child theme overrides twentyfourteen_font_url().

Note: Translations that set Lato font: on or off to off (for example tr_TR, cs_CZ) can change it back to on after this change.

Trac ticket: https://core.trac.wordpress.org/ticket/66334

Use of AI Tools

AI assistance: Yes
Tool(s): Claude Code
Model(s): Claude Opus 5.5
Used for: Research of the problem, generation of the font subsets, edits to the CSS and text files, and the text of this description. I reviewed the changes and tested the result.


This Pull Request is for code review only. Please keep all other discussion in the Trac ticket. Do not merge this Pull Request. See GitHub Pull Requests for Code Review in the Core Handbook for more details.

The bundled Lato 1.104 does not have many letters of Latin-script
languages, for example Turkish `İ ğ ş`. The browser then shows these
letters in a different font. Some translations turn the font off for
this reason.

Lato 2.015 has these letters. The file names, the font weights and the
`unicode-range` values do not change.

See #66334.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@github-actions

Copy link
Copy Markdown

Test using WordPress Playground

The changes in this pull request can previewed and tested using a WordPress Playground instance.

WordPress Playground is an experimental project that creates a full WordPress instance entirely within the browser.

Some things to be aware of

  • All changes will be lost when closing a tab with a Playground instance.
  • All changes will be lost when refreshing the page.
  • A fresh instance is created each time the link below is clicked.
  • Every time this pull request is updated, a new ZIP file containing all changes is created. If changes are not reflected in the Playground instance,
    it's possible that the most recent build failed, or has not completed. Check the list of workflow runs to be sure.

For more details about these limitations and more, check out the Limitations page in the WordPress Playground documentation.

Test this pull request with WordPress Playground.

@canburak
canburak marked this pull request as ready for review October 18, 2026 18:33
@github-actions

Copy link
Copy Markdown

The following accounts have interacted with this PR and/or linked issues. I will continue to update these lists as activity occurs. You can also manually ask me to refresh this list by adding the props-bot label.

Core Committers: Use this line as a base for the props when committing in SVN:

Props canburak.

To understand the WordPress project's expectations around crediting contributors, please review the Contributor Attribution page in the Core Handbook.

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.

1 participant