mirror of
https://github.com/WordPress/WordPress.git
synced 2025-02-20 19:56:49 +01:00
Introducing Font Face, a server-side `@font-face` styles generator and printer. tl;dr: * Introduces Font Face. * Deprecates `_wp_theme_json_webfonts_handler()`. **Introduce Font Face** From an array of fonts (i.e. each font-family and its font variations to be processed), it: 1. Validates each `font-face` declaration, i.e. the CSS property and value pairing. If validation fails, processing stops with no font-face styles printed. 3. Generates the `@font-face` CSS for each font-family. 4. Prints the CSS within a `<style id="wp-fonts-local">` element. The entry point into Font Face is through a new global function called `wp_print_font_faces()`, which is automatically called: * when the `'wp_head'` hook runs (for the front-end). * when the `'admin_print_styles'` hook runs (for the back-end). * when `_wp_get_iframed_editor_assets()` runs to inject the `@font-face` styles into the iframed editor. Once called, it gets the fonts from Theme_JSON merged data layer, which includes theme defined fonts and user activated fonts (once the Font Library #59166 is introduced into Core). For classic sites, themes and plugins can directly call `wp_print_font_faces()` and pass their fonts array to it for processing. **Deprecates `_wp_theme_json_webfonts_handler()`.** As Font Face is a direct replacement, the stopgap code in `_wp_theme_json_webfonts_handler()` (introduced in 6.0.0 via [53282]) is deprecated and unused in Core. **Props note:** There's a long multiple year history baked into Font Face, which dates back to the early versions of a web font API (see #46370 and [https://github.com/WordPress/gutenberg/issues/41479 roadmap]. The props list includes those who contributed from those early versions up to this commit. **References:** * #46370 original (Web)Fonts API proposal for registering and enqueuing web fonts. * [https://github.com/WordPress/gutenberg/issues/41479 Gutenberg tracking issue] which includes the evolution from Webfonts API to Fonts API to Font Face. * [53282] / #55567 Added the stopgap code `_wp_theme_json_webfonts_handler()` in 6.0. * [https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face @font-face on mdn web docs] * #59166 Font Library: Font manager for WordPress Follow-up to [53282]. Props aristath, jonoaldersonwp, hellofromTonya, andraganescu, annezazu, antonvlasenko, arena, askdesign, azaozz, bph, bradley2083, colorful-tones, costdev, davidbaumwald, desrosj, dingo_d, djcowan, domainsupport, dryanpress, elmastudio, flixos90, francina, garrett-eclipse, gigitux, grantmkin, grapplerulrich, gziolo, ironprogrammer, jb510, jeffpaul, jeremyyip, jffng, joostdevalk, jorgefilipecosta, juanmaguitar, mamaduka, matveb, mburridge, mitogh, ndiego, ntsekouras, oandregal, ocean90, oglekler, paaljoachim, pagelab, peterwilsoncc, poena, priethor, scruffian, SergeyBiryukov, shiloey, simison, skorasaurus, soean, westonruter, wildworks, zaguiini. Fixes #59165. Built from https://develop.svn.wordpress.org/trunk@56500 git-svn-id: http://core.svn.wordpress.org/trunk@56012 1a063a9b-81f0-0310-95a4-ce76da25c4cd |
||
|---|---|---|
| .. | ||
| css | ||
| images | ||
| includes | ||
| js | ||
| maint | ||
| network | ||
| user | ||
| about.php | ||
| admin-ajax.php | ||
| admin-footer.php | ||
| admin-functions.php | ||
| admin-header.php | ||
| admin-post.php | ||
| admin.php | ||
| async-upload.php | ||
| authorize-application.php | ||
| comment.php | ||
| contribute.php | ||
| credits.php | ||
| custom-background.php | ||
| custom-header.php | ||
| customize.php | ||
| edit-comments.php | ||
| edit-form-advanced.php | ||
| edit-form-blocks.php | ||
| edit-form-comment.php | ||
| edit-link-form.php | ||
| edit-tag-form.php | ||
| edit-tags.php | ||
| edit.php | ||
| erase-personal-data.php | ||
| export-personal-data.php | ||
| export.php | ||
| freedoms.php | ||
| import.php | ||
| index.php | ||
| install-helper.php | ||
| install.php | ||
| link-add.php | ||
| link-manager.php | ||
| link-parse-opml.php | ||
| link.php | ||
| load-scripts.php | ||
| load-styles.php | ||
| media-new.php | ||
| media-upload.php | ||
| media.php | ||
| menu-header.php | ||
| menu.php | ||
| moderation.php | ||
| ms-admin.php | ||
| ms-delete-site.php | ||
| ms-edit.php | ||
| ms-options.php | ||
| ms-sites.php | ||
| ms-themes.php | ||
| ms-upgrade-network.php | ||
| ms-users.php | ||
| my-sites.php | ||
| nav-menus.php | ||
| network.php | ||
| options-discussion.php | ||
| options-general.php | ||
| options-head.php | ||
| options-media.php | ||
| options-permalink.php | ||
| options-privacy.php | ||
| options-reading.php | ||
| options-writing.php | ||
| options.php | ||
| plugin-editor.php | ||
| plugin-install.php | ||
| plugins.php | ||
| post-new.php | ||
| post.php | ||
| press-this.php | ||
| privacy-policy-guide.php | ||
| privacy.php | ||
| profile.php | ||
| revision.php | ||
| setup-config.php | ||
| site-editor.php | ||
| site-health-info.php | ||
| site-health.php | ||
| term.php | ||
| theme-editor.php | ||
| theme-install.php | ||
| themes.php | ||
| tools.php | ||
| update-core.php | ||
| update.php | ||
| upgrade-functions.php | ||
| upgrade.php | ||
| upload.php | ||
| user-edit.php | ||
| user-new.php | ||
| users.php | ||
| widgets-form-blocks.php | ||
| widgets-form.php | ||
| widgets.php | ||