diff --git a/build/build-modules-js/compilecss.es6.js b/build/build-modules-js/compilecss.es6.js index 9d824e6053..7050c9269d 100644 --- a/build/build-modules-js/compilecss.es6.js +++ b/build/build-modules-js/compilecss.es6.js @@ -44,6 +44,9 @@ module.exports.compile = (options, path) => { `${RootPath}/templates/cassiopeia/scss/offline.scss`, `${RootPath}/templates/cassiopeia/scss/template.scss`, `${RootPath}/templates/cassiopeia/scss/template-rtl.scss`, + `${RootPath}/templates/cassiopeia/scss/global/fonts-local_roboto.scss`, + `${RootPath}/templates/cassiopeia/scss/global/fonts-web_poppins+roboto.scss`, + `${RootPath}/templates/cassiopeia/scss/global/fonts-web_roboto+noto-sans.scss`, `${RootPath}/templates/cassiopeia/scss/global/colors_autumn.scss`, `${RootPath}/templates/cassiopeia/scss/global/colors_spring.scss`, `${RootPath}/templates/cassiopeia/scss/global/colors_summer.scss`, @@ -71,7 +74,7 @@ module.exports.compile = (options, path) => { // Loop to get the files that should be compiled via parameter folders.forEach((folder) => { - Recurs(folder, ['*.js', '*.map', '*.svg', '*.png', '*.gif', '*.swf', '*.html', '*.json', '*.woff', '*.woff2']).then( + Recurs(folder, ['*.js', '*.map', '*.svg', '*.png', '*.gif', '*.swf', '*.html', '*.json']).then( (filesRc) => { filesRc.forEach( (file) => { diff --git a/build/media_source/fonts/fira-sans-v10-latin-700.woff b/build/media_source/fonts/fira-sans-v10-latin-700.woff deleted file mode 100644 index 757cb9cc27..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-700.woff and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-700.woff2 b/build/media_source/fonts/fira-sans-v10-latin-700.woff2 deleted file mode 100644 index 4414bfd3b1..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-700.woff2 and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-700italic.woff b/build/media_source/fonts/fira-sans-v10-latin-700italic.woff deleted file mode 100644 index ba16b12ec0..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-700italic.woff and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-700italic.woff2 b/build/media_source/fonts/fira-sans-v10-latin-700italic.woff2 deleted file mode 100644 index aae611ffe1..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-700italic.woff2 and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-italic.woff b/build/media_source/fonts/fira-sans-v10-latin-italic.woff deleted file mode 100644 index 5e82e183f3..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-italic.woff and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-italic.woff2 b/build/media_source/fonts/fira-sans-v10-latin-italic.woff2 deleted file mode 100644 index 7f191fd8ea..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-italic.woff2 and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-regular.woff b/build/media_source/fonts/fira-sans-v10-latin-regular.woff deleted file mode 100644 index d99ba57a35..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-regular.woff and /dev/null differ diff --git a/build/media_source/fonts/fira-sans-v10-latin-regular.woff2 b/build/media_source/fonts/fira-sans-v10-latin-regular.woff2 deleted file mode 100644 index 9bb576032e..0000000000 Binary files a/build/media_source/fonts/fira-sans-v10-latin-regular.woff2 and /dev/null differ diff --git a/build/media_source/fonts/fira-sans.scss b/build/media_source/fonts/fira-sans.scss deleted file mode 100644 index c47244ffb4..0000000000 --- a/build/media_source/fonts/fira-sans.scss +++ /dev/null @@ -1,52 +0,0 @@ -/* fira-sans-regular - latin */ -@font-face { - font-family: 'Fira Sans'; - font-style: normal; - font-weight: 400; - font-display:swap; - src: local('Fira Sans Regular'), local('FiraSans-Regular'), - url('./fira-sans-v10-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./fira-sans-v10-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* fira-sans-italic - latin */ -@font-face { - font-family: 'Fira Sans'; - font-style: italic; - font-weight: 400; - font-display:swap; - src: local('Fira Sans Italic'), local('FiraSans-Italic'), - url('./fira-sans-v10-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./fira-sans-v10-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* fira-sans-700 - latin */ -@font-face { - font-family: 'Fira Sans'; - font-style: normal; - font-weight: 700; - font-display:swap; - src: local('Fira Sans Bold'), local('FiraSans-Bold'), - url('./fira-sans-v10-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./fira-sans-v10-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* fira-sans-700italic - latin */ -@font-face { - font-family: 'Fira Sans'; - font-style: italic; - font-weight: 700; - font-display:swap; - src: local('Fira Sans Bold Italic'), local('FiraSans-BoldItalic'), - url('./fira-sans-v10-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./fira-sans-v10-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -:root { - --font-family-base: 'Fira Sans', Arial, sans-serif; -} - -body { - font-family: var(--font-family-base); - font-weight: 400; -} diff --git a/build/media_source/fonts/josefin-sans-v16-latin-600.woff b/build/media_source/fonts/josefin-sans-v16-latin-600.woff deleted file mode 100644 index c077491477..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-600.woff and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-600.woff2 b/build/media_source/fonts/josefin-sans-v16-latin-600.woff2 deleted file mode 100644 index aaa2eab4fa..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-600.woff2 and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-600italic.woff b/build/media_source/fonts/josefin-sans-v16-latin-600italic.woff deleted file mode 100644 index 871bd87929..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-600italic.woff and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-600italic.woff2 b/build/media_source/fonts/josefin-sans-v16-latin-600italic.woff2 deleted file mode 100644 index d5833b9048..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-600italic.woff2 and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-700.woff b/build/media_source/fonts/josefin-sans-v16-latin-700.woff deleted file mode 100644 index 1c2cc2de12..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-700.woff and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-700.woff2 b/build/media_source/fonts/josefin-sans-v16-latin-700.woff2 deleted file mode 100644 index bea0f56b71..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-700.woff2 and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-700italic.woff b/build/media_source/fonts/josefin-sans-v16-latin-700italic.woff deleted file mode 100644 index 95c95f41db..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-700italic.woff and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-700italic.woff2 b/build/media_source/fonts/josefin-sans-v16-latin-700italic.woff2 deleted file mode 100644 index 918ce92b8a..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-700italic.woff2 and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-italic.woff b/build/media_source/fonts/josefin-sans-v16-latin-italic.woff deleted file mode 100644 index e23283abca..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-italic.woff and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-italic.woff2 b/build/media_source/fonts/josefin-sans-v16-latin-italic.woff2 deleted file mode 100644 index faeab84929..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-italic.woff2 and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-regular.woff b/build/media_source/fonts/josefin-sans-v16-latin-regular.woff deleted file mode 100644 index b84ae72d8e..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-regular.woff and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans-v16-latin-regular.woff2 b/build/media_source/fonts/josefin-sans-v16-latin-regular.woff2 deleted file mode 100644 index 870b4b1314..0000000000 Binary files a/build/media_source/fonts/josefin-sans-v16-latin-regular.woff2 and /dev/null differ diff --git a/build/media_source/fonts/josefin-sans.scss b/build/media_source/fonts/josefin-sans.scss deleted file mode 100644 index 3612f5dc92..0000000000 --- a/build/media_source/fonts/josefin-sans.scss +++ /dev/null @@ -1,79 +0,0 @@ -/* josefin-sans-regular - latin */ -@font-face { - font-family: 'Josefin Sans'; - font-style: normal; - font-weight: 400; - font-display: swap; - src: local(''), - url('./josefin-sans-v16-latin-regular.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./josefin-sans-v16-latin-regular.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* josefin-sans-600 - latin */ -@font-face { - font-family: 'Josefin Sans'; - font-style: normal; - font-weight: 600; - font-display:swap; - src: local(''), - url('./josefin-sans-v16-latin-600.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./josefin-sans-v16-latin-600.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* josefin-sans-700 - latin */ -@font-face { - font-family: 'Josefin Sans'; - font-style: normal; - font-weight: 700; - font-display:swap; - src: local(''), - url('./josefin-sans-v16-latin-700.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./josefin-sans-v16-latin-700.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* josefin-sans-italic - latin */ -@font-face { - font-family: 'Josefin Sans'; - font-style: italic; - font-weight: 400; - font-display:swap; - src: local(''), - url('./josefin-sans-v16-latin-italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./josefin-sans-v16-latin-italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* josefin-sans-600italic - latin */ -@font-face { - font-family: 'Josefin Sans'; - font-style: italic; - font-weight: 600; - font-display:swap; - src: local(''), - url('./josefin-sans-v16-latin-600italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./josefin-sans-v16-latin-600italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -/* josefin-sans-700italic - latin */ -@font-face { - font-family: 'Josefin Sans'; - font-style: italic; - font-weight: 700; - font-display:swap; - src: local(''), - url('./josefin-sans-v16-latin-700italic.woff2') format('woff2'), /* Chrome 26+, Opera 23+, Firefox 39+ */ - url('./josefin-sans-v16-latin-700italic.woff') format('woff'); /* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */ -} - -:root { - --font-family-base: 'Josefin Sans', Arial, sans-serif; -} - -body { - font-family: var(--font-family-base); - font-weight: 400; -} - -h1, h2, h3, h4, h5, h6 { - font-family: var(--font-family-base); - font-weight: 600; -} diff --git a/installation/sql/mysql/base.sql b/installation/sql/mysql/base.sql index f5942f3ddd..ef29483c5c 100644 --- a/installation/sql/mysql/base.sql +++ b/installation/sql/mysql/base.sql @@ -797,7 +797,7 @@ CREATE TABLE IF NOT EXISTS `#__template_styles` ( INSERT INTO `#__template_styles` (`id`, `template`, `client_id`, `home`, `title`, `inheritable`, `parent`, `params`) VALUES (10, 'atum', 1, '1', 'atum - Default', 0, '', ''), -(11, 'cassiopeia', 0, '1', 'cassiopeia - Default', 0, '', '{"logoFile":"","fluidContainer":"0","sidebarLeftWidth":"3","sidebarRightWidth":"3","googleFont":"1","googleFontName":"fira-sans"}'); +(11, 'cassiopeia', 0, '1', 'cassiopeia - Default', 0, '', '{"logoFile":"","fluidContainer":"0","sidebarLeftWidth":"3","sidebarRightWidth":"3"}'); -- -------------------------------------------------------- diff --git a/installation/sql/postgresql/base.sql b/installation/sql/postgresql/base.sql index 0006eacc5f..c9d032931b 100644 --- a/installation/sql/postgresql/base.sql +++ b/installation/sql/postgresql/base.sql @@ -812,7 +812,7 @@ CREATE INDEX "#__template_styles_idx_client_id_home" ON "#__template_styles" ("c -- INSERT INTO "#__template_styles" ("id", "template", "client_id", "home", "title", "inheritable", "parent", "params") VALUES (10, 'atum', 1, '1', 'atum - Default', 0, '', ''), -(11, 'cassiopeia', 0, '1', 'cassiopeia - Default', 0, '', '{"logoFile":"","fluidContainer":"0","sidebarLeftWidth":"3","sidebarRightWidth":"3","googleFont":"1","googleFontName":"fira-sans"}'); +(11, 'cassiopeia', 0, '1', 'cassiopeia - Default', 0, '', '{"logoFile":"","fluidContainer":"0","sidebarLeftWidth":"3","sidebarRightWidth":"3"}'); SELECT setval('#__template_styles_id_seq', 12, false); diff --git a/language/en-GB/tpl_cassiopeia.ini b/language/en-GB/tpl_cassiopeia.ini index 6be05fc61e..2d53a97605 100644 --- a/language/en-GB/tpl_cassiopeia.ini +++ b/language/en-GB/tpl_cassiopeia.ini @@ -12,13 +12,12 @@ TPL_CASSIOPEIA_COLOR_NAME_SUMMER="Summer" TPL_CASSIOPEIA_COLOR_NAME_WINTER="Winter" TPL_CASSIOPEIA_FLUID="Fluid" TPL_CASSIOPEIA_FLUID_LABEL="Fluid Layout" +TPL_CASSIOPEIA_FONT_GROUP_LOCAL="Fonts from Folder" +TPL_CASSIOPEIA_FONT_GROUP_WEB="Fonts from Web" +TPL_CASSIOPEIA_FONT_LABEL="Fonts Scheme" +TPL_CASSIOPEIA_FONT_NOTE_TEXT="Loading fonts from external sources might be against privacy regulations in some countries.
Loading fonts from a local folder might have a performance impact on your site." TPL_CASSIOPEIA_LOGO_LABEL="Logo" TPL_CASSIOPEIA_STATIC="Static" TPL_CASSIOPEIA_STICKY_LABEL="Sticky Header" TPL_CASSIOPEIA_TOGGLE="Toggle Navigation" TPL_CASSIOPEIA_XML_DESCRIPTION="Continuing the space theme (Solarflare from 1.0, Milkyway from 1.5 and Protostar from 3.0), Cassiopeia is the Joomla 4 site template based on Bootstrap 4." -TPL_CASSIOPEIA_FONT_LABEL="Google font for text and headings" -TPL_CASSIOPEIA_FONT_DESC="Load Google font for text and headings (H1, H2, H3, etc)." -TPL_CASSIOPEIA_FONT_NAME_LABEL="Google Font Name" -TPL_CASSIOPEIA_FONT_NAME_DESC="Example: only one font Josefin Sans or a font combination Montserrat + Work Sans." - diff --git a/templates/cassiopeia/index.php b/templates/cassiopeia/index.php index a5cf7928c8..ca2adbebb6 100644 --- a/templates/cassiopeia/index.php +++ b/templates/cassiopeia/index.php @@ -37,6 +37,17 @@ $wa->registerAndUseStyle($assetColorName, $templatePath . '/css/global/' . $paramsColorName . '.css'); $this->getPreloadManager()->preload($wa->getAsset('style', $assetColorName)->getUri(), ['as' => 'style']); +// Use a font scheme if not "None" is set in the template style options +$paramsFontScheme = $this->params->get('useFontScheme', 'fonts-local_roboto'); + +if ($paramsFontScheme) +{ + // Preload the stylesheet for the font scheme, actually we need to preload the font(s) + $assetFontScheme = 'fontscheme.' . $paramsFontScheme; + $wa->registerAndUseStyle($assetFontScheme, $templatePath . '/css/global/' . $paramsFontScheme . '.css'); + $this->getPreloadManager()->preload($wa->getAsset('style', $assetFontScheme)->getUri(), ['as' => 'style']); +} + // Enable assets $wa->usePreset('template.cassiopeia.' . ($this->direction === 'rtl' ? 'rtl' : 'ltr')) ->useStyle('template.active.language') @@ -46,21 +57,6 @@ // Override 'template.active' asset to set correct ltr/rtl dependency $wa->registerStyle('template.active', '', [], [], ['template.cassiopeia.' . ($this->direction === 'rtl' ? 'rtl' : 'ltr')]); -// Use of Google Font -if ($this->params->get('googleFont')) -{ - // Preload the stylesheet for the font, actually we need to preload the font - $paramsFontName = $this->params->get('googleFontName'); - - if ($paramsFontName) - { - $assetFontName = 'font.' . $paramsFontName; - - $wa->registerAndUseStyle($assetFontName, 'media/fonts/' . $paramsFontName . '.css'); - $this->getPreloadManager()->preload($wa->getAsset('style', $assetFontName)->getUri(), ['as' => 'style']); - } -} - // Logo file or site title param if ($this->params->get('logoFile')) { diff --git a/templates/cassiopeia/scss/blocks/_global.scss b/templates/cassiopeia/scss/blocks/_global.scss index 79e872d861..881626113b 100644 --- a/templates/cassiopeia/scss/blocks/_global.scss +++ b/templates/cassiopeia/scss/blocks/_global.scss @@ -13,6 +13,7 @@ html { } body { + font-family: var(--cassiopeia-font-family-body); padding: 0; margin: 0; line-height: 1.6; @@ -29,7 +30,8 @@ h3, h4, h5, h6 { - font-weight: bold; + font-family: var(--cassiopeia-font-family-headings); + font-weight: var(--cassiopeia-font-weight-headings); } a { diff --git a/templates/cassiopeia/scss/global/fonts-local_roboto.scss b/templates/cassiopeia/scss/global/fonts-local_roboto.scss new file mode 100644 index 0000000000..42c8ee396c --- /dev/null +++ b/templates/cassiopeia/scss/global/fonts-local_roboto.scss @@ -0,0 +1,8 @@ +// Fonts +@import "../../../media/vendor/roboto-fontface/scss/roboto/roboto-fontface.css"; + +:root { + --cassiopeia-font-family-body: "Roboto", sans-serif; + --cassiopeia-font-family-headings: "Roboto", sans-serif; + --cassiopeia-font-weight-headings: bold; +} diff --git a/templates/cassiopeia/scss/global/fonts-web_poppins+roboto.scss b/templates/cassiopeia/scss/global/fonts-web_poppins+roboto.scss new file mode 100644 index 0000000000..64f2dfe57c --- /dev/null +++ b/templates/cassiopeia/scss/global/fonts-web_poppins+roboto.scss @@ -0,0 +1,8 @@ +// Fonts +@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@100;300;400;700&family=Roboto:wght@400;700&display=swap'); + +:root { + --cassiopeia-font-family-body: "Roboto", sans-serif; + --cassiopeia-font-family-headings: "Poppins", sans-serif; + --cassiopeia-font-weight-headings: normal; +} diff --git a/templates/cassiopeia/scss/global/fonts-web_roboto+noto-sans.scss b/templates/cassiopeia/scss/global/fonts-web_roboto+noto-sans.scss new file mode 100644 index 0000000000..d495853f80 --- /dev/null +++ b/templates/cassiopeia/scss/global/fonts-web_roboto+noto-sans.scss @@ -0,0 +1,8 @@ +// Fonts +@import url('https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100;300;400;700&family=Roboto:wght@100;300;400;700&display=swap'); + +:root { + --cassiopeia-font-family-body: "Noto Sans", sans-serif; + --cassiopeia-font-family-headings: "Roboto", sans-serif; + --cassiopeia-font-weight-headings: normal; +} diff --git a/templates/cassiopeia/templateDetails.xml b/templates/cassiopeia/templateDetails.xml index 4709927a3c..3df11bf8bc 100644 --- a/templates/cassiopeia/templateDetails.xml +++ b/templates/cassiopeia/templateDetails.xml @@ -70,16 +70,29 @@ /> - - + + + + + + + + + + TPL_CASSIOPEIA_COLOR_NAME_WINTER + + + + + JNO - - - - - - -