Inline style declaration from font-size classes

This is needed for cases where we don't touch the HTML output
to insert font size from the preprocessor (e.g., list item)
[MAILPOET-5740]
This commit is contained in:
Rostislav Wolny
2024-01-16 15:39:22 +01:00
committed by Jan Lysý
parent daf2d9f854
commit 0e04a892c2
2 changed files with 13 additions and 3 deletions

View File

@@ -191,12 +191,17 @@ class SettingsController {
}
public function getStylesheetForRendering(): string {
$settings = $this->getTheme()->get_settings();
$coreThemeSettings = \WP_Theme_JSON_Resolver::get_core_data()->get_settings();
$emailThemeSettings = $this->getTheme()->get_settings();
$css = '';
// Font family classes
foreach ($settings['typography']['fontFamilies']['theme'] as $fontFamily) {
foreach ($emailThemeSettings['typography']['fontFamilies']['theme'] as $fontFamily) {
$css .= ".has-{$fontFamily['slug']}-font-family { font-family: {$fontFamily['fontFamily']}; } \n";
}
// Font size classes
foreach ($coreThemeSettings['typography']['fontSizes']['default'] as $fontSize) {
$css .= ".has-{$fontSize['slug']}-font-size { font-size: {$fontSize['size']}; } \n";
}
return $css;
}

View File

@@ -11,7 +11,7 @@ class SettingsControllerTest extends \MailPoetTest {
$this->settingsController = $this->diContainer->get(SettingsController::class);
}
public function testItGeneratesCssStylesForThemeWithFontFamilies() {
public function testItGeneratesCssStylesForRenderer() {
$css = $this->settingsController->getStylesheetForRendering();
verify($css)->stringContainsString('.has-arial-font-family');
verify($css)->stringContainsString('.has-comic-sans-ms-font-family');
@@ -35,6 +35,11 @@ class SettingsControllerTest extends \MailPoetTest {
verify($css)->stringContainsString('.has-raleway-font-family');
verify($css)->stringContainsString('.has-permanent-marker-font-family');
verify($css)->stringContainsString('.has-pacifico-font-family');
verify($css)->stringContainsString('.has-small-font-size');
verify($css)->stringContainsString('.has-medium-font-size');
verify($css)->stringContainsString('.has-large-font-size');
verify($css)->stringContainsString('.has-x-large-font-size');
}
public function testItCanTranslateFontSizeSlug() {