Fix system font stack when combined with a Google Font
authorTim Düsterhus <duesterhus@woltlab.com>
Tue, 27 Jul 2021 12:36:12 +0000 (14:36 +0200)
committerTim Düsterhus <duesterhus@woltlab.com>
Tue, 27 Jul 2021 12:36:12 +0000 (14:36 +0200)
Perform the replacement of the system font name, before prepending the Google
font to properly match the font name without the Google font prefix.

wcfsetup/install/files/lib/system/style/StyleCompiler.class.php

index c5c58707f0ba8b59dec761721ef392ef51a1243a..f4d849863da847c9e71770d731fe6b72f475d561 100644 (file)
@@ -592,13 +592,6 @@ EOT;
         unset($value);
 
         $variables['wcfFontFamily'] = $variables['wcfFontFamilyFallback'];
-        if (!empty($variables['wcfFontFamilyGoogle']) && $variables['wcfFontFamilyGoogle'] !== '~""') {
-            // The SCSS parser attempts to evaluate the variables, causing issues with font names that
-            // include logical operators such as "And" or "Or".
-            $variables['wcfFontFamilyGoogle'] = '"' . $variables['wcfFontFamilyGoogle'] . '"';
-
-            $variables['wcfFontFamily'] = $variables['wcfFontFamilyGoogle'] . ', ' . $variables['wcfFontFamily'];
-        }
 
         // Define the font family set for the OS default fonts. This needs to be happen statically to
         // allow modifications in the future in case of changes.
@@ -608,6 +601,14 @@ EOT;
             $variables['wcfFontFamily'] = self::SYSTEM_FONT_FAMILY;
         }
 
+        if (!empty($variables['wcfFontFamilyGoogle']) && $variables['wcfFontFamilyGoogle'] !== '~""') {
+            // The SCSS parser attempts to evaluate the variables, causing issues with font names that
+            // include logical operators such as "And" or "Or".
+            $variables['wcfFontFamilyGoogle'] = '"' . $variables['wcfFontFamilyGoogle'] . '"';
+
+            $variables['wcfFontFamily'] = $variables['wcfFontFamilyGoogle'] . ', ' . $variables['wcfFontFamily'];
+        }
+
         // add options as SCSS variables
         if (PACKAGE_ID) {
             foreach (Option::getOptions() as $constantName => $option) {