Author: Javier Eguiluz (javiereguiluz)
Committer: GitHub (web-flow)
Pusher: Girgias
Date: 2023-07-19T12:01:23+01:00

Commit: 
https://github.com/php/web-php/commit/f71b6c7396f5ccc1f5e93eac89c644734da084c5
Raw diff: 
https://github.com/php/web-php/commit/f71b6c7396f5ccc1f5e93eac89c644734da084c5.diff

Add woff2 fonts and other font related tweaks (#752)

The following changes are made in this commit:

**(1)** Add the WOFF2 variant of web fonts. [WOFF2 
standard](https://w3c.github.io/woff/woff2/) reduces the file sizes 
significantly. This is important to make our website more accessible to folks 
with limited Internet connections.

96% of browsers support WOFF2 ([source](https://caniuse.com/?search=woff2)) and 
we still have WOFF and TTF/OTF/EOT formats for those edge-cases which don't 
support it.

Real examples of the file size reductions for php.net:

```
Fira Sans Regular: 183 KB (woff) -> 129 KB (woff2) --> 30% reduction in size
Fira Mono Regular:  87 KB (woff) ->  65 KB (woff2) --> 35% reduction in size
```

**(2)** Use `font-display: swap` for web fonts (see [MDN Docs for 
font-display](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display))

This is recommended to not block the rendering the page for a long time if the 
web font is not available. Again, this is important for folks with suboptimal 
network connections.

The `swap` value is also the default option in popular font services like 
[Google Fonts](https://fonts.google.com/).

**(3)** Update the list of alternative font families.

I updated the sans-serif and mono font stack used in the design. The new stacks 
are much longer (not a problem in practice thanks to CSS variables) but they 
cover all common browsing devices (including smartphones). I crafted the list 
from the recommended font stacks of the most popular CSS frameworks and the 
most popular websites for developers.

Changed paths:
  A  fonts/Fira/woff2/FiraMono-Bold.woff2
  A  fonts/Fira/woff2/FiraMono-Regular.woff2
  A  fonts/Fira/woff2/FiraSans-Bold.woff2
  A  fonts/Fira/woff2/FiraSans-BoldItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Book.woff2
  A  fonts/Fira/woff2/FiraSans-BookItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Eight.woff2
  A  fonts/Fira/woff2/FiraSans-EightItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Four.woff2
  A  fonts/Fira/woff2/FiraSans-FourItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Hair.woff2
  A  fonts/Fira/woff2/FiraSans-HairItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Heavy.woff2
  A  fonts/Fira/woff2/FiraSans-HeavyItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Light.woff2
  A  fonts/Fira/woff2/FiraSans-LightItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Medium.woff2
  A  fonts/Fira/woff2/FiraSans-MediumItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Regular.woff2
  A  fonts/Fira/woff2/FiraSans-RegularItalic.woff2
  A  fonts/Fira/woff2/FiraSans-SemiBold.woff2
  A  fonts/Fira/woff2/FiraSans-SemiBoldItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Thin.woff2
  A  fonts/Fira/woff2/FiraSans-ThinItalic.woff2
  A  fonts/Fira/woff2/FiraSans-Two.woff2
  A  fonts/Fira/woff2/FiraSans-TwoItalic.woff2
  M  fonts/Fira/fira.css
  M  images/supported-versions.php
  M  styles/theme-base.css


Diff:

diff --git a/fonts/Fira/fira.css b/fonts/Fira/fira.css
index 6ef47b5120..ec17749838 100644
--- a/fonts/Fira/fira.css
+++ b/fonts/Fira/fira.css
@@ -3,11 +3,13 @@
     src: url('/fonts/Fira/eot/FiraSans-Book.eot');
     src: local('Fira Sans Book'),
          local('FiraSans-Book'),
-         url('/fonts/Fira/eot/FiraSans-Book.eot') format('embedded-opentype'),
+         url('/fonts/Fira/woff2/FiraSans-Book.woff2') format('woff2'),
          url('/fonts/Fira/woff/FiraSans-Book.woff') format('woff'),
+         url('/fonts/Fira/eot/FiraSans-Book.eot') format('embedded-opentype'),
          url('/fonts/Fira/ttf/FiraSans-Book.ttf') format('truetype');
     font-weight: 400;
     font-style: normal;
+    font-display: swap;
 }
 
 @font-face{
@@ -15,11 +17,13 @@
     src: url('/fonts/Fira/eot/FiraSans-BookItalic.eot');
     src: local('Fira Sans Book Italic'),
          local('FiraSans-BookItalic'),
-         url('/fonts/Fira/eot/FiraSans-BookItalic.eot') 
format('embedded-opentype'),
+         url('/fonts/Fira/woff2/FiraSans-BookItalic.woff2') format('woff2'),
          url('/fonts/Fira/woff/FiraSans-BookItalic.woff') format('woff'),
+         url('/fonts/Fira/eot/FiraSans-BookItalic.eot') 
format('embedded-opentype'),
          url('/fonts/Fira/ttf/FiraSans-BookItalic.ttf') format('truetype');
     font-weight: 400;
     font-style: italic;
+    font-display: swap;
 }
 
 @font-face{
@@ -27,11 +31,13 @@
     src: url('/fonts/Fira/eot/FiraSans-Medium.eot');
     src: local('Fira Sans Medium'),
          local('FiraSans-Medium'),
-         url('/fonts/Fira/eot/FiraSans-Medium.eot') 
format('embedded-opentype'),
+         url('/fonts/Fira/woff2/FiraSans-Medium.woff2') format('woff2'),
          url('/fonts/Fira/woff/FiraSans-Medium.woff') format('woff'),
+         url('/fonts/Fira/eot/FiraSans-Medium.eot') 
format('embedded-opentype'),
          url('/fonts/Fira/ttf/FiraSans-Medium.ttf') format('truetype');
     font-weight: 500;
     font-style: normal;
+    font-display: swap;
 }
 
 @font-face{
@@ -39,11 +45,13 @@
     src: url('/fonts/Fira/eot/FiraSans-MediumItalic.eot');
     src: local('Fira Sans Medium Italic'),
          local('FiraSans-MediumItalic'),
-         url('/fonts/Fira/eot/FiraSans-MediumItalic.eot') 
format('embedded-opentype'),
+         url('/fonts/Fira/woff2/FiraSans-MediumItalic.woff2') format('woff2'),
          url('/fonts/Fira/woff/FiraSans-MediumItalic.woff') format('woff'),
+         url('/fonts/Fira/eot/FiraSans-MediumItalic.eot') 
format('embedded-opentype'),
          url('/fonts/Fira/ttf/FiraSans-MediumItalic.ttf') format('truetype');
     font-weight: 500;
     font-style: italic;
+    font-display: swap;
 }
 
 @font-face{
@@ -51,11 +59,13 @@
     src: url('/fonts/Fira/eot/FiraMono-Regular.eot');
     src: local('Fira Mono'),
          local('FiraMono-Regular'),
-         url('/fonts/Fira/eot/FiraMono-Regular.eot') 
format('embedded-opentype'),
+         url('/fonts/Fira/woff2/FiraMono-Regular.woff2') format('woff2'),
          url('/fonts/Fira/woff/FiraMono-Regular.woff') format('woff'),
+         url('/fonts/Fira/eot/FiraMono-Regular.eot') 
format('embedded-opentype'),
          url('/fonts/Fira/ttf/FiraMono-Regular.ttf') format('truetype');
     font-weight: 400;
     font-style: normal;
+    font-display: swap;
 }
 
 @font-face{
@@ -63,9 +73,11 @@
     src: url('/fonts/Fira/eot/FiraMono-Bold.eot');
     src: local('Fira Mono Bold'),
          local('FiraMono-Bold'),
-         url('/fonts/Fira/eot/FiraMono-Bold.eot') format('embedded-opentype'),
+         url('/fonts/Fira/woff2/FiraMono-Bold.woff2') format('woff2'),
          url('/fonts/Fira/woff/FiraMono-Bold.woff') format('woff'),
+         url('/fonts/Fira/eot/FiraMono-Bold.eot') format('embedded-opentype'),
          url('/fonts/Fira/ttf/FiraMono-Bold.ttf') format('truetype');
     font-weight: 700;
     font-style: normal;
+    font-display: swap;
 }
diff --git a/fonts/Fira/woff2/FiraMono-Bold.woff2 
b/fonts/Fira/woff2/FiraMono-Bold.woff2
new file mode 100755
index 0000000000..832aaabbb2
Binary files /dev/null and b/fonts/Fira/woff2/FiraMono-Bold.woff2 differ
diff --git a/fonts/Fira/woff2/FiraMono-Regular.woff2 
b/fonts/Fira/woff2/FiraMono-Regular.woff2
new file mode 100755
index 0000000000..9fa44b7cc2
Binary files /dev/null and b/fonts/Fira/woff2/FiraMono-Regular.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Bold.woff2 
b/fonts/Fira/woff2/FiraSans-Bold.woff2
new file mode 100755
index 0000000000..4c550c7d42
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Bold.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-BoldItalic.woff2 
b/fonts/Fira/woff2/FiraSans-BoldItalic.woff2
new file mode 100755
index 0000000000..9e66901467
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-BoldItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Book.woff2 
b/fonts/Fira/woff2/FiraSans-Book.woff2
new file mode 100755
index 0000000000..9d5db65829
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Book.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-BookItalic.woff2 
b/fonts/Fira/woff2/FiraSans-BookItalic.woff2
new file mode 100755
index 0000000000..84f272c44c
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-BookItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Eight.woff2 
b/fonts/Fira/woff2/FiraSans-Eight.woff2
new file mode 100755
index 0000000000..b5b1dfebc2
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Eight.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-EightItalic.woff2 
b/fonts/Fira/woff2/FiraSans-EightItalic.woff2
new file mode 100755
index 0000000000..48dc9f935a
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-EightItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Four.woff2 
b/fonts/Fira/woff2/FiraSans-Four.woff2
new file mode 100755
index 0000000000..95ebb7e6d6
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Four.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-FourItalic.woff2 
b/fonts/Fira/woff2/FiraSans-FourItalic.woff2
new file mode 100755
index 0000000000..cf408094da
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-FourItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Hair.woff2 
b/fonts/Fira/woff2/FiraSans-Hair.woff2
new file mode 100755
index 0000000000..10e728784b
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Hair.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-HairItalic.woff2 
b/fonts/Fira/woff2/FiraSans-HairItalic.woff2
new file mode 100755
index 0000000000..6027bad83a
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-HairItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Heavy.woff2 
b/fonts/Fira/woff2/FiraSans-Heavy.woff2
new file mode 100755
index 0000000000..b61bf0d816
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Heavy.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-HeavyItalic.woff2 
b/fonts/Fira/woff2/FiraSans-HeavyItalic.woff2
new file mode 100755
index 0000000000..f12daf3000
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-HeavyItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Light.woff2 
b/fonts/Fira/woff2/FiraSans-Light.woff2
new file mode 100755
index 0000000000..5c0e34d6bc
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Light.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-LightItalic.woff2 
b/fonts/Fira/woff2/FiraSans-LightItalic.woff2
new file mode 100755
index 0000000000..0e9b453ee6
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-LightItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Medium.woff2 
b/fonts/Fira/woff2/FiraSans-Medium.woff2
new file mode 100755
index 0000000000..7a1e5fc548
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Medium.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-MediumItalic.woff2 
b/fonts/Fira/woff2/FiraSans-MediumItalic.woff2
new file mode 100755
index 0000000000..2d08f9f7d4
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-MediumItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Regular.woff2 
b/fonts/Fira/woff2/FiraSans-Regular.woff2
new file mode 100755
index 0000000000..e766e06ccb
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Regular.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-RegularItalic.woff2 
b/fonts/Fira/woff2/FiraSans-RegularItalic.woff2
new file mode 100755
index 0000000000..3f63664fee
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-RegularItalic.woff2 
differ
diff --git a/fonts/Fira/woff2/FiraSans-SemiBold.woff2 
b/fonts/Fira/woff2/FiraSans-SemiBold.woff2
new file mode 100755
index 0000000000..bafabb5a18
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-SemiBold.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-SemiBoldItalic.woff2 
b/fonts/Fira/woff2/FiraSans-SemiBoldItalic.woff2
new file mode 100755
index 0000000000..a256463b49
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-SemiBoldItalic.woff2 
differ
diff --git a/fonts/Fira/woff2/FiraSans-Thin.woff2 
b/fonts/Fira/woff2/FiraSans-Thin.woff2
new file mode 100755
index 0000000000..73e2d82dda
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Thin.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-ThinItalic.woff2 
b/fonts/Fira/woff2/FiraSans-ThinItalic.woff2
new file mode 100755
index 0000000000..c8d3b364b7
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-ThinItalic.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-Two.woff2 
b/fonts/Fira/woff2/FiraSans-Two.woff2
new file mode 100755
index 0000000000..6b389c706a
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-Two.woff2 differ
diff --git a/fonts/Fira/woff2/FiraSans-TwoItalic.woff2 
b/fonts/Fira/woff2/FiraSans-TwoItalic.woff2
new file mode 100755
index 0000000000..479ca9f739
Binary files /dev/null and b/fonts/Fira/woff2/FiraSans-TwoItalic.woff2 differ
diff --git a/images/supported-versions.php b/images/supported-versions.php
index 3c28e29a61..772a8cc091 100644
--- a/images/supported-versions.php
+++ b/images/supported-versions.php
@@ -67,7 +67,7 @@ function date_horiz_coord(DateTime $date) {
 
                        text {
                                fill: #333;
-                               font-family: "Fira Sans", "Source Sans Pro", 
Helvetica, Arial, sans-serif;
+                               font-family: var(--font-family-sans-serif);
                                font-size: <?php echo (2 / 3) * $header_height; 
?>px;
                        }
 
diff --git a/styles/theme-base.css b/styles/theme-base.css
index a894d7df7b..4158e73134 100644
--- a/styles/theme-base.css
+++ b/styles/theme-base.css
@@ -10,6 +10,8 @@
  */
 
 :root {
+  --font-family-sans-serif: "Fira Sans", "Source Sans Pro", ui-sans-serif, 
system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica 
Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", 
"Segoe UI Symbol", "Noto Color Emoji";
+  --font-family-mono: "Fira Mono", "Source Code Pro", ui-monospace, 
SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", 
monospace;
   --dark-grey-color: #333;
   --dark-blue-color: #4F5B93;
   --medium-blue-color: #7A86B8;
@@ -295,14 +297,14 @@ textarea {
 }
 
 body, input, textarea {
-    font-family: "Fira Sans", "Source Sans Pro", Helvetica, Arial, sans-serif;
+  font-family: var(--font-family-sans-serif);
   font-weight: 400;
 }
 code,
 pre.info,
 .docs .classsynopsis,
 .docs .classsynopsis code {
-  font: normal 0.875rem/1.5rem "Fira Mono", "Source Code Pro", monospace;
+  font: normal 0.875rem/1.5rem var(--font-family-mono);
   overflow-x: auto;
 }
 p code,
@@ -745,7 +747,7 @@ table.standard th.subr {
 #layout .cse .gsc-control-cse,
 #layout .gsc-control-cse,
 #layout .gsc-control-cse .gsc-table-result {
-    font-family: "Fira Sans", "Source Sans Pro", Helvetica, Arial, sans-serif;
+    font-family: var(--font-family-sans-serif);
     font-size: 1rem;
     margin: 0;
     padding: 0;
@@ -1157,11 +1159,11 @@ fieldset {
 }
 .content-box .md5sum:before {
     content: "md5: ";
-    font-family: "Fira Sans", "Source Sans Pro", Helvetica, Arial, sans-serif;
+    font-family: var(--font-family-sans-serif);
 }
 .content-box .sha256:before {
     content: "sha256: ";
-    font-family: "Fira Sans", "Source Sans Pro", Helvetica, Arial, sans-serif;
+    font-family: var(--font-family-sans-serif);
 }
 .content-box .releasedate {
     float: right;

-- 
PHP Webmaster List Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to