Upgraded FontAwesome 6 to FontAwesome 7 Free
This commit is contained in:
@@ -31,7 +31,9 @@
|
|||||||
|
|
||||||
### Updated
|
### Updated
|
||||||
- Copyright Headers to MokoCodingDefaults standards
|
- Copyright Headers to MokoCodingDefaults standards
|
||||||
- Fixed `./templates/moko-cassiopeia/index.php` style injection
|
- Fixed `./templates/moko-cassiopeia/index.php` color style injection
|
||||||
|
- Upgraded `FontAwesome 6` to `FontAwesome 7 Free`
|
||||||
|
- Added `Font Awesome 7 Free` style fallback
|
||||||
|
|
||||||
## [02.01.05] 2025-09-04
|
## [02.01.05] 2025-09-04
|
||||||
- Removed vmbasic.css
|
- Removed vmbasic.css
|
||||||
|
|||||||
@@ -18,14 +18,13 @@
|
|||||||
VERSION: 03.00
|
VERSION: 03.00
|
||||||
BRIEF: Documentation for Moko-Cassiopeia template
|
BRIEF: Documentation for Moko-Cassiopeia template
|
||||||
PATH: .//templates/moko-cassiopeia/
|
PATH: .//templates/moko-cassiopeia/
|
||||||
NOTE: Includes Dark Mode and Soft Offline Mode
|
|
||||||
-->
|
-->
|
||||||
|
|
||||||
# Moko-Cassiopeia (v03.00)
|
# Moko-Cassiopeia (v03.00)
|
||||||
|
|
||||||
A modern, lightweight enhancement layer for Joomla's Cassiopeia
|
A modern, lightweight enhancement layer for Joomla's Cassiopeia
|
||||||
template.
|
template.
|
||||||
Moko-Cassiopeia adds **Font Awesome 6**, **Bootstrap 5** helpers, an
|
Moko-Cassiopeia adds **Font Awesome 7**, **Bootstrap 5** helpers, an
|
||||||
automatic **Table of Contents (TOC)** utility, and optional **Moko
|
automatic **Table of Contents (TOC)** utility, and optional **Moko
|
||||||
Expansions** including **Google Tag Manager** and **Google Analytics
|
Expansions** including **Google Tag Manager** and **Google Analytics
|
||||||
(GA4)** hooks---all while keeping core template overrides minimal and
|
(GA4)** hooks---all while keeping core template overrides minimal and
|
||||||
@@ -103,7 +102,7 @@ If upgrading from a prior version, Joomla will safely overwrite files
|
|||||||
- **Color Scheme**: Toggle light/dark defaults.\
|
- **Color Scheme**: Toggle light/dark defaults.\
|
||||||
- **Analytics/GTM**: Enable/disable optional expansions.
|
- **Analytics/GTM**: Enable/disable optional expansions.
|
||||||
|
|
||||||
### Font Awesome 6
|
### Font Awesome 7
|
||||||
|
|
||||||
- Fully integrated into Joomla's asset manager.\
|
- Fully integrated into Joomla's asset manager.\
|
||||||
- No extra scripts required.
|
- No extra scripts required.
|
||||||
|
|||||||
@@ -16,9 +16,10 @@
|
|||||||
;
|
;
|
||||||
; You should have received a copy of the GNU General Public License
|
; You should have received a copy of the GNU General Public License
|
||||||
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
||||||
; ; FILE INFORMATION
|
;
|
||||||
|
; #FILE INFORMATION
|
||||||
; DEFGROUP: Joomla.Template.Site
|
; DEFGROUP: Joomla.Template.Site
|
||||||
;INGROUP: Moko-Cassiopeia
|
; INGROUP: Moko-Cassiopeia
|
||||||
; PATH: ./language/en-GB/tpl_moko-cassiopeia.ini
|
; PATH: ./language/en-GB/tpl_moko-cassiopeia.ini
|
||||||
; VERSION: 03.00
|
; VERSION: 03.00
|
||||||
; BRIEF: English (GB) language strings for the Moko-Cassiopeia Joomla template
|
; BRIEF: English (GB) language strings for the Moko-Cassiopeia Joomla template
|
||||||
@@ -69,8 +70,8 @@ TPL_MOKO-CASSIOPEIA_LOGO_LABEL="Logo"
|
|||||||
TPL_MOKO-CASSIOPEIA_TITLE="Title (alternative to logo)"
|
TPL_MOKO-CASSIOPEIA_TITLE="Title (alternative to logo)"
|
||||||
TPL_MOKO-CASSIOPEIA_TAGLINE_LABEL="Tagline"
|
TPL_MOKO-CASSIOPEIA_TAGLINE_LABEL="Tagline"
|
||||||
TPL_MOKO-CASSIOPEIA_TAGLINE_DESC="Optional text to show as a subheading"
|
TPL_MOKO-CASSIOPEIA_TAGLINE_DESC="Optional text to show as a subheading"
|
||||||
TPL_MOKO-CASSIOPEIA_FA6KITCODE_LABEL="Font Awesome 6 Kit Unique Code"
|
TPL_MOKO-CASSIOPEIA_FAKITCODE_LABEL="Font Awesome Kit Unique Code"
|
||||||
TPL_MOKO-CASSIOPEIA_FA6KITCODE_DESC="<i>If left blank, Font Awesome 5 will be used.</i><br>Copy the unique Kit embed code above and paste it into the <head> of your project's HTML file or template.<br><a href='https://fontawesome.com/' target='_blank'>More information at the Font Awesome website.</a>"
|
TPL_MOKO-CASSIOPEIA_FAKITCODE_DESC="<i>If left blank, Font Awesome 7 Free will be used.</i><br>Copy the unique Kit embed code above and paste it into the <head> of your project's HTML file or template.<br><a href='https://fontawesome.com/' target='_blank'>More information at the Font Awesome website.</a>"
|
||||||
|
|
||||||
; ===== Typography (Theme tab) =====
|
; ===== Typography (Theme tab) =====
|
||||||
TPL_MOKO-CASSIOPEIA_FONT_LABEL="Fonts Scheme"
|
TPL_MOKO-CASSIOPEIA_FONT_LABEL="Fonts Scheme"
|
||||||
|
|||||||
@@ -16,9 +16,10 @@
|
|||||||
;
|
;
|
||||||
; You should have received a copy of the GNU General Public License
|
; You should have received a copy of the GNU General Public License
|
||||||
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
||||||
; ; FILE INFORMATION
|
;
|
||||||
|
; #FILE INFORMATION
|
||||||
; DEFGROUP: Joomla.Template.Site
|
; DEFGROUP: Joomla.Template.Site
|
||||||
;INGROUP: Moko-Cassiopeia
|
; INGROUP: Moko-Cassiopeia
|
||||||
; PATH: ./language/en-GB/tpl_moko-cassiopeia.sys.ini
|
; PATH: ./language/en-GB/tpl_moko-cassiopeia.sys.ini
|
||||||
; VERSION: 03.00
|
; VERSION: 03.00
|
||||||
; BRIEF: English (GB) system language strings for template metadata and installer
|
; BRIEF: English (GB) system language strings for template metadata and installer
|
||||||
@@ -45,7 +46,7 @@ TPL_MOKO-CASSIOPEIA_POSITION_TOPBAR="Top Bar"
|
|||||||
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-LEFT="Drawer-Left"
|
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-LEFT="Drawer-Left"
|
||||||
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-RIGHT="Drawer-Right"
|
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-RIGHT="Drawer-Right"
|
||||||
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION=
|
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION=
|
||||||
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="<h3>MOKO-CASSIOPEIA Template Description (v2.0)</h3>
|
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="<h3>MOKO-CASSIOPEIA Template Description</h3>
|
||||||
<p>
|
<p>
|
||||||
<strong>MOKO-CASSIOPEIA 2.0</strong> continues Joomla’s tradition of space-themed default templates—
|
<strong>MOKO-CASSIOPEIA 2.0</strong> continues Joomla’s tradition of space-themed default templates—
|
||||||
building on the legacy of <em>Solarflare</em> (Joomla 1.0), <em>Milkyway</em> (Joomla 1.5),
|
building on the legacy of <em>Solarflare</em> (Joomla 1.0), <em>Milkyway</em> (Joomla 1.5),
|
||||||
@@ -56,27 +57,6 @@ TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="<h3>MOKO-CASSIOPEIA Template Description (v
|
|||||||
preserving its modern, accessible, and mobile-first foundation while introducing new stylistic
|
preserving its modern, accessible, and mobile-first foundation while introducing new stylistic
|
||||||
enhancements and structural refinements specifically tailored for use by Moko Consulting.
|
enhancements and structural refinements specifically tailored for use by Moko Consulting.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
<strong>Version 2.0</strong> introduces significant new functionality including a Dark Mode toggle,
|
|
||||||
Google Tag Manager (GTM) and Google Analytics 4 (GA4) hooks, and expanded template configuration
|
|
||||||
options — all while keeping overrides minimal and upgrade-friendly.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>Features</h4>
|
|
||||||
<ul>
|
|
||||||
<li>Fully responsive and mobile-first layout</li>
|
|
||||||
<li>Based on Joomla 4+ template architecture</li>
|
|
||||||
<li>Enhanced SCSS and CSS overrides for streamlined custom styling</li>
|
|
||||||
<li>Built-in support for <strong>Bootstrap 5</strong></li>
|
|
||||||
<li>Font Awesome 6 integration for modern iconography</li>
|
|
||||||
<li>Automatic Table of Contents (TOC) — selectable per article via <code>toc-left</code> or <code>toc-right</code> layouts</li>
|
|
||||||
<li><strong>Dark Mode toggle (new in v2.0)</strong> with user switch and admin override</li>
|
|
||||||
<li><strong>Optional GTM + GA4 hooks (new in v2.0)</strong> for analytics and marketing integration</li>
|
|
||||||
<li>Optimized template structure for performance and maintainability</li>
|
|
||||||
<li>Custom module positions and layout presets</li>
|
|
||||||
<li>Accessible, lightweight, and extensible for long-term use</li>
|
|
||||||
<li>Ideal for professional services, portfolios, and informational websites</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h4>Code Attribution</h4>
|
<h4>Code Attribution</h4>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -16,9 +16,10 @@
|
|||||||
;
|
;
|
||||||
; You should have received a copy of the GNU General Public License
|
; You should have received a copy of the GNU General Public License
|
||||||
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
||||||
; ; FILE INFORMATION
|
;
|
||||||
|
; #FILE INFORMATION
|
||||||
; DEFGROUP: Joomla.Template.Site
|
; DEFGROUP: Joomla.Template.Site
|
||||||
;INGROUP: Moko-Cassiopeia
|
; INGROUP: Moko-Cassiopeia
|
||||||
; PATH: ./language/en-US/tpl_moko-cassiopeia.ini
|
; PATH: ./language/en-US/tpl_moko-cassiopeia.ini
|
||||||
; VERSION: 03.00
|
; VERSION: 03.00
|
||||||
; BRIEF: English (US) language strings for the Moko-Cassiopeia Joomla template
|
; BRIEF: English (US) language strings for the Moko-Cassiopeia Joomla template
|
||||||
@@ -69,8 +70,8 @@ TPL_MOKO-CASSIOPEIA_LOGO_LABEL="Logo"
|
|||||||
TPL_MOKO-CASSIOPEIA_TITLE="Title (alternative to logo)"
|
TPL_MOKO-CASSIOPEIA_TITLE="Title (alternative to logo)"
|
||||||
TPL_MOKO-CASSIOPEIA_TAGLINE_LABEL="Tagline"
|
TPL_MOKO-CASSIOPEIA_TAGLINE_LABEL="Tagline"
|
||||||
TPL_MOKO-CASSIOPEIA_TAGLINE_DESC="Optional text to show as a subheading"
|
TPL_MOKO-CASSIOPEIA_TAGLINE_DESC="Optional text to show as a subheading"
|
||||||
TPL_MOKO-CASSIOPEIA_FA6KITCODE_LABEL="Font Awesome 6 Kit Unique Code"
|
TPL_MOKO-CASSIOPEIA_FAKITCODE_LABEL="Font Awesome Kit Unique Code"
|
||||||
TPL_MOKO-CASSIOPEIA_FA6KITCODE_DESC="<i>If left blank, Font Awesome 5 will be used.</i><br>Copy the unique Kit embed code above and paste it into the <head> of your project's HTML file or template.<br><a href='https://fontawesome.com/' target='_blank'>More information at the Font Awesome website.</a>"
|
TPL_MOKO-CASSIOPEIA_FAKITCODE_DESC="<i>If left blank, Font Awesome 7 Free will be used.</i><br>Copy the unique Kit embed code above and paste it into the <head> of your project's HTML file or template.<br><a href='https://fontawesome.com/' target='_blank'>More information at the Font Awesome website.</a>"
|
||||||
|
|
||||||
; ===== Typography (Theme tab) =====
|
; ===== Typography (Theme tab) =====
|
||||||
TPL_MOKO-CASSIOPEIA_FONT_LABEL="Fonts Scheme"
|
TPL_MOKO-CASSIOPEIA_FONT_LABEL="Fonts Scheme"
|
||||||
|
|||||||
@@ -16,9 +16,10 @@
|
|||||||
;
|
;
|
||||||
; You should have received a copy of the GNU General Public License
|
; You should have received a copy of the GNU General Public License
|
||||||
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
; along with this program. If not, see https://www.gnu.org/licenses/ .
|
||||||
; ; FILE INFORMATION
|
;
|
||||||
|
; #FILE INFORMATION
|
||||||
; DEFGROUP: Joomla.Template.Site
|
; DEFGROUP: Joomla.Template.Site
|
||||||
;INGROUP: Moko-Cassiopeia
|
; INGROUP: Moko-Cassiopeia
|
||||||
; PATH: ./language/en-US/tpl_moko-cassiopeia.sys.ini
|
; PATH: ./language/en-US/tpl_moko-cassiopeia.sys.ini
|
||||||
; VERSION: 03.00
|
; VERSION: 03.00
|
||||||
; BRIEF: English (US) system language strings for template metadata and installer
|
; BRIEF: English (US) system language strings for template metadata and installer
|
||||||
@@ -45,9 +46,9 @@ TPL_MOKO-CASSIOPEIA_POSITION_TOPBAR="Top Bar"
|
|||||||
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-LEFT="Drawer-Left"
|
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-LEFT="Drawer-Left"
|
||||||
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-RIGHT="Drawer-Right"
|
TPL_MOKO-CASSIOPEIA_POSITION_DRAWER-RIGHT="Drawer-Right"
|
||||||
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION=
|
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION=
|
||||||
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="<h3>MOKO-CASSIOPEIA Template Description (v2.0)</h3>
|
TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="<h3>MOKO-CASSIOPEIA Template Description</h3>
|
||||||
<p>
|
<p>
|
||||||
<strong>MOKO-CASSIOPEIA 2.0</strong> continues Joomla’s tradition of space-themed default templates—
|
<strong>MOKO-CASSIOPEIA 3.0</strong> continues Joomla’s tradition of space-themed default templates—
|
||||||
building on the legacy of <em>Solarflare</em> (Joomla 1.0), <em>Milkyway</em> (Joomla 1.5),
|
building on the legacy of <em>Solarflare</em> (Joomla 1.0), <em>Milkyway</em> (Joomla 1.5),
|
||||||
and <em>Protostar</em> (Joomla 3.0).
|
and <em>Protostar</em> (Joomla 3.0).
|
||||||
</p>
|
</p>
|
||||||
@@ -56,27 +57,6 @@ TPL_MOKO-CASSIOPEIA_XML_DESCRIPTION="<h3>MOKO-CASSIOPEIA Template Description (v
|
|||||||
preserving its modern, accessible, and mobile-first foundation while introducing new stylistic
|
preserving its modern, accessible, and mobile-first foundation while introducing new stylistic
|
||||||
enhancements and structural refinements specifically tailored for use by Moko Consulting.
|
enhancements and structural refinements specifically tailored for use by Moko Consulting.
|
||||||
</p>
|
</p>
|
||||||
<p>
|
|
||||||
<strong>Version 2.0</strong> introduces significant new functionality including a Dark Mode toggle,
|
|
||||||
Google Tag Manager (GTM) and Google Analytics 4 (GA4) hooks, and expanded template configuration
|
|
||||||
options — all while keeping overrides minimal and upgrade-friendly.
|
|
||||||
</p>
|
|
||||||
|
|
||||||
<h4>Features</h4>
|
|
||||||
<ul>
|
|
||||||
<li>Fully responsive and mobile-first layout</li>
|
|
||||||
<li>Based on Joomla 4+ template architecture</li>
|
|
||||||
<li>Enhanced SCSS and CSS overrides for streamlined custom styling</li>
|
|
||||||
<li>Built-in support for <strong>Bootstrap 5</strong></li>
|
|
||||||
<li>Font Awesome 6 integration for modern iconography</li>
|
|
||||||
<li>Automatic Table of Contents (TOC) — selectable per article via <code>toc-left</code> or <code>toc-right</code> layouts</li>
|
|
||||||
<li><strong>Dark Mode toggle (new in v2.0)</strong> with user switch and admin override</li>
|
|
||||||
<li><strong>Optional GTM + GA4 hooks (new in v2.0)</strong> for analytics and marketing integration</li>
|
|
||||||
<li>Optimized template structure for performance and maintainability</li>
|
|
||||||
<li>Custom module positions and layout presets</li>
|
|
||||||
<li>Accessible, lightweight, and extensible for long-term use</li>
|
|
||||||
<li>Ideal for professional services, portfolios, and informational websites</li>
|
|
||||||
</ul>
|
|
||||||
|
|
||||||
<h4>Code Attribution</h4>
|
<h4>Code Attribution</h4>
|
||||||
<p>
|
<p>
|
||||||
|
|||||||
@@ -1,148 +0,0 @@
|
|||||||
@charset "UTF-8";
|
|
||||||
/* Copyright (C) 2025 Moko Consulting <hello@mokoconsulting.tech>
|
|
||||||
|
|
||||||
This file is part of a Moko Consulting project.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/ .
|
|
||||||
|
|
||||||
# FILE INFORMATION
|
|
||||||
DEFGROUP: Joomla.Template.Site
|
|
||||||
INGROUP: Moko-Cassiopeia
|
|
||||||
PATH: ./media/templates/site/moko-cassiopeia/css/global/fonts-local_roboto.css
|
|
||||||
VERSION: 03.00
|
|
||||||
BRIEF: Local Roboto font-face definitions for the Moko-Cassiopeia template
|
|
||||||
*/
|
|
||||||
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Regular.woff") format("woff");
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-Regular";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Regular.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Regular.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-RegularItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-RegularItalic.woff") format("woff");
|
|
||||||
font-weight: 400;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-RegularItalic";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-RegularItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-RegularItalic.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Light.woff") format("woff");
|
|
||||||
font-weight: 300;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-Light";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Light.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Light.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-LightItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-LightItalic.woff") format("woff");
|
|
||||||
font-weight: 300;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-LightItalic";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-LightItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-LightItalic.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Thin.woff") format("woff");
|
|
||||||
font-weight: 100;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-Thin";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Thin.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Thin.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-ThinItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-ThinItalic.woff") format("woff");
|
|
||||||
font-weight: 100;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-ThinItalic";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-ThinItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-ThinItalic.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Medium.woff") format("woff");
|
|
||||||
font-weight: 500;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-Medium";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Medium.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Medium.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-MediumItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-MediumItalic.woff") format("woff");
|
|
||||||
font-weight: 500;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-MediumItalic";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-MediumItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-MediumItalic.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Bold.woff") format("woff");
|
|
||||||
font-weight: 700;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-Bold";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Bold.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Bold.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BoldItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BoldItalic.woff") format("woff");
|
|
||||||
font-weight: 700;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-BoldItalic";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BoldItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BoldItalic.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Black.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Black.woff") format("woff");
|
|
||||||
font-weight: 900;
|
|
||||||
font-style: normal;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-Black";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Black.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-Black.woff") format("woff");
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BlackItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BlackItalic.woff") format("woff");
|
|
||||||
font-weight: 900;
|
|
||||||
font-style: italic;
|
|
||||||
}
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto-BlackItalic";
|
|
||||||
src: url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BlackItalic.woff2") format("woff2"), url("../../../../../vendor/roboto-fontface/fonts/roboto/Roboto-BlackItalic.woff") format("woff");
|
|
||||||
}
|
|
||||||
:root {
|
|
||||||
--font-family-body: "Roboto", sans-serif;
|
|
||||||
--font-family-headings: "Roboto", sans-serif;
|
|
||||||
--font-weight-headings: 700;
|
|
||||||
--font-weight-normal: 400;
|
|
||||||
}
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
<!-- Copyright (C) 2025 Moko Consulting <jmiller@mokoconsulting.tech>
|
|
||||||
|
|
||||||
This file is part of a Moko Consulting project.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/ .
|
|
||||||
|
|
||||||
# FILE INFORMATION
|
|
||||||
DEFGROUP: Joomla.Site
|
|
||||||
INGROUP: Templates.Moko-Cassiopeia
|
|
||||||
FILE: index.html
|
|
||||||
BRIEF: Security redirect page to block folder access and forward to site root.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<title>Redirecting…</title>
|
|
||||||
|
|
||||||
<!-- Search engines: do not index this placeholder redirect page -->
|
|
||||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
|
||||||
|
|
||||||
<!-- Instant redirect fallback even if JavaScript is disabled -->
|
|
||||||
<meta http-equiv="refresh" content="0; url=/" />
|
|
||||||
|
|
||||||
<!-- Canonical root reference -->
|
|
||||||
<link rel="canonical" href="/" />
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
(function redirectToRoot() {
|
|
||||||
// Configuration object with safe defaults.
|
|
||||||
var opts = {
|
|
||||||
fallbackPath: "/", // string: fallback destination if origin is unavailable
|
|
||||||
delayMs: 0, // number: delay before redirect in ms (0 = immediate)
|
|
||||||
behavior: "replace" // enum: "replace" | "assign"
|
|
||||||
};
|
|
||||||
|
|
||||||
// Determine absolute origin in all mainstream browsers.
|
|
||||||
var origin = (typeof location.origin === "string" && location.origin)
|
|
||||||
|| (location.protocol + "//" + location.host);
|
|
||||||
|
|
||||||
// Final destination: absolute root of the current site, or fallback path.
|
|
||||||
var destination = origin ? origin + "/" : opts.fallbackPath;
|
|
||||||
|
|
||||||
function go() {
|
|
||||||
if (opts.behavior === "assign") {
|
|
||||||
location.assign(destination);
|
|
||||||
} else {
|
|
||||||
location.replace(destination);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute redirect, optionally after a short delay.
|
|
||||||
if (opts.delayMs > 0) {
|
|
||||||
setTimeout(go, opts.delayMs);
|
|
||||||
} else {
|
|
||||||
go();
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Secondary meta-refresh for no-JS environments is already set above.
|
|
||||||
Some very old crawlers may ignore JS; the meta refresh ensures coverage.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<noscript>
|
|
||||||
<!-- Extra defense-in-depth: if JS is disabled, meta refresh (above) handles redirect. -->
|
|
||||||
<style>
|
|
||||||
html, body { height:100%; }
|
|
||||||
body { display:flex; align-items:center; justify-content:center; margin:0; font: 16px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
|
|
||||||
.msg { opacity: .75; text-align: center; }
|
|
||||||
</style>
|
|
||||||
</noscript>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="msg">Redirecting to the site root… If you are not redirected, <a href="/">click here</a>.</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
<!-- Copyright (C) 2025 Moko Consulting <jmiller@mokoconsulting.tech>
|
|
||||||
|
|
||||||
This file is part of a Moko Consulting project.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/ .
|
|
||||||
|
|
||||||
# FILE INFORMATION
|
|
||||||
DEFGROUP: Joomla.Site
|
|
||||||
INGROUP: Templates.Moko-Cassiopeia
|
|
||||||
FILE: index.html
|
|
||||||
BRIEF: Security redirect page to block folder access and forward to site root.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<title>Redirecting…</title>
|
|
||||||
|
|
||||||
<!-- Search engines: do not index this placeholder redirect page -->
|
|
||||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
|
||||||
|
|
||||||
<!-- Instant redirect fallback even if JavaScript is disabled -->
|
|
||||||
<meta http-equiv="refresh" content="0; url=/" />
|
|
||||||
|
|
||||||
<!-- Canonical root reference -->
|
|
||||||
<link rel="canonical" href="/" />
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
(function redirectToRoot() {
|
|
||||||
// Configuration object with safe defaults.
|
|
||||||
var opts = {
|
|
||||||
fallbackPath: "/", // string: fallback destination if origin is unavailable
|
|
||||||
delayMs: 0, // number: delay before redirect in ms (0 = immediate)
|
|
||||||
behavior: "replace" // enum: "replace" | "assign"
|
|
||||||
};
|
|
||||||
|
|
||||||
// Determine absolute origin in all mainstream browsers.
|
|
||||||
var origin = (typeof location.origin === "string" && location.origin)
|
|
||||||
|| (location.protocol + "//" + location.host);
|
|
||||||
|
|
||||||
// Final destination: absolute root of the current site, or fallback path.
|
|
||||||
var destination = origin ? origin + "/" : opts.fallbackPath;
|
|
||||||
|
|
||||||
function go() {
|
|
||||||
if (opts.behavior === "assign") {
|
|
||||||
location.assign(destination);
|
|
||||||
} else {
|
|
||||||
location.replace(destination);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute redirect, optionally after a short delay.
|
|
||||||
if (opts.delayMs > 0) {
|
|
||||||
setTimeout(go, opts.delayMs);
|
|
||||||
} else {
|
|
||||||
go();
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Secondary meta-refresh for no-JS environments is already set above.
|
|
||||||
Some very old crawlers may ignore JS; the meta refresh ensures coverage.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<noscript>
|
|
||||||
<!-- Extra defense-in-depth: if JS is disabled, meta refresh (above) handles redirect. -->
|
|
||||||
<style>
|
|
||||||
html, body { height:100%; }
|
|
||||||
body { display:flex; align-items:center; justify-content:center; margin:0; font: 16px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
|
|
||||||
.msg { opacity: .75; text-align: center; }
|
|
||||||
</style>
|
|
||||||
</noscript>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="msg">Redirecting to the site root… If you are not redirected, <a href="/">click here</a>.</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
<!-- Copyright (C) 2025 Moko Consulting <jmiller@mokoconsulting.tech>
|
|
||||||
|
|
||||||
This file is part of a Moko Consulting project.
|
|
||||||
|
|
||||||
SPDX-License-Identifier: GPL-3.0-or-later
|
|
||||||
|
|
||||||
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or
|
|
||||||
(at your option) any later version.
|
|
||||||
|
|
||||||
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU General Public License along with this program. If not, see https://www.gnu.org/licenses/ .
|
|
||||||
|
|
||||||
# FILE INFORMATION
|
|
||||||
DEFGROUP: Joomla.Site
|
|
||||||
INGROUP: Templates.Moko-Cassiopeia
|
|
||||||
FILE: index.html
|
|
||||||
BRIEF: Security redirect page to block folder access and forward to site root.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!doctype html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="utf-8" />
|
|
||||||
<title>Redirecting…</title>
|
|
||||||
|
|
||||||
<!-- Search engines: do not index this placeholder redirect page -->
|
|
||||||
<meta name="robots" content="noindex, nofollow, noarchive" />
|
|
||||||
|
|
||||||
<!-- Instant redirect fallback even if JavaScript is disabled -->
|
|
||||||
<meta http-equiv="refresh" content="0; url=/" />
|
|
||||||
|
|
||||||
<!-- Canonical root reference -->
|
|
||||||
<link rel="canonical" href="/" />
|
|
||||||
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1" />
|
|
||||||
|
|
||||||
<script>
|
|
||||||
|
|
||||||
(function redirectToRoot() {
|
|
||||||
// Configuration object with safe defaults.
|
|
||||||
var opts = {
|
|
||||||
fallbackPath: "/", // string: fallback destination if origin is unavailable
|
|
||||||
delayMs: 0, // number: delay before redirect in ms (0 = immediate)
|
|
||||||
behavior: "replace" // enum: "replace" | "assign"
|
|
||||||
};
|
|
||||||
|
|
||||||
// Determine absolute origin in all mainstream browsers.
|
|
||||||
var origin = (typeof location.origin === "string" && location.origin)
|
|
||||||
|| (location.protocol + "//" + location.host);
|
|
||||||
|
|
||||||
// Final destination: absolute root of the current site, or fallback path.
|
|
||||||
var destination = origin ? origin + "/" : opts.fallbackPath;
|
|
||||||
|
|
||||||
function go() {
|
|
||||||
if (opts.behavior === "assign") {
|
|
||||||
location.assign(destination);
|
|
||||||
} else {
|
|
||||||
location.replace(destination);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// Execute redirect, optionally after a short delay.
|
|
||||||
if (opts.delayMs > 0) {
|
|
||||||
setTimeout(go, opts.delayMs);
|
|
||||||
} else {
|
|
||||||
go();
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
</script>
|
|
||||||
|
|
||||||
<!--
|
|
||||||
Secondary meta-refresh for no-JS environments is already set above.
|
|
||||||
Some very old crawlers may ignore JS; the meta refresh ensures coverage.
|
|
||||||
-->
|
|
||||||
|
|
||||||
<noscript>
|
|
||||||
<!-- Extra defense-in-depth: if JS is disabled, meta refresh (above) handles redirect. -->
|
|
||||||
<style>
|
|
||||||
html, body { height:100%; }
|
|
||||||
body { display:flex; align-items:center; justify-content:center; margin:0; font: 16px/1.4 system-ui, -apple-system, Segoe UI, Roboto, Arial, sans-serif; }
|
|
||||||
.msg { opacity: .75; text-align: center; }
|
|
||||||
</style>
|
|
||||||
</noscript>
|
|
||||||
</head>
|
|
||||||
<body>
|
|
||||||
<div class="msg">Redirecting to the site root… If you are not redirected, <a href="/">click here</a>.</div>
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
10663
media/templates/site/moko-cassiopeia/vendor/fa7free/css/all.css
vendored
Normal file
10663
media/templates/site/moko-cassiopeia/vendor/fa7free/css/all.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
9
media/templates/site/moko-cassiopeia/vendor/fa7free/css/all.min.css
vendored
Normal file
9
media/templates/site/moko-cassiopeia/vendor/fa7free/css/all.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
2219
media/templates/site/moko-cassiopeia/vendor/fa7free/css/brands.css
vendored
Normal file
2219
media/templates/site/moko-cassiopeia/vendor/fa7free/css/brands.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
6
media/templates/site/moko-cassiopeia/vendor/fa7free/css/brands.min.css
vendored
Normal file
6
media/templates/site/moko-cassiopeia/vendor/fa7free/css/brands.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
8361
media/templates/site/moko-cassiopeia/vendor/fa7free/css/fontawesome.css
vendored
Normal file
8361
media/templates/site/moko-cassiopeia/vendor/fa7free/css/fontawesome.css
vendored
Normal file
File diff suppressed because it is too large
Load Diff
8
media/templates/site/moko-cassiopeia/vendor/fa7free/css/fontawesome.min.css
vendored
Normal file
8
media/templates/site/moko-cassiopeia/vendor/fa7free/css/fontawesome.min.css
vendored
Normal file
File diff suppressed because one or more lines are too long
31
media/templates/site/moko-cassiopeia/vendor/fa7free/css/regular.css
vendored
Normal file
31
media/templates/site/moko-cassiopeia/vendor/fa7free/css/regular.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2025 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-family-classic: "Font Awesome 7 Free";
|
||||||
|
--fa-font-regular: normal 400 1em/1 var(--fa-family-classic);
|
||||||
|
/* deprecated: this older custom property will be removed next major release */
|
||||||
|
--fa-style-family-classic: var(--fa-family-classic);
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Font Awesome 7 Free";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2");
|
||||||
|
}
|
||||||
|
.far {
|
||||||
|
--fa-family: var(--fa-family-classic);
|
||||||
|
--fa-style: 400;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-classic {
|
||||||
|
--fa-family: var(--fa-family-classic);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-regular {
|
||||||
|
--fa-style: 400;
|
||||||
|
}
|
||||||
6
media/templates/site/moko-cassiopeia/vendor/fa7free/css/regular.min.css
vendored
Normal file
6
media/templates/site/moko-cassiopeia/vendor/fa7free/css/regular.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2025 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-regular:normal 400 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2)}.far{--fa-style:400}.fa-classic,.far{--fa-family:var(--fa-family-classic)}.fa-regular{--fa-style:400}
|
||||||
31
media/templates/site/moko-cassiopeia/vendor/fa7free/css/solid.css
vendored
Normal file
31
media/templates/site/moko-cassiopeia/vendor/fa7free/css/solid.css
vendored
Normal file
@@ -0,0 +1,31 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2025 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-family-classic: "Font Awesome 7 Free";
|
||||||
|
--fa-font-solid: normal 900 1em/1 var(--fa-family-classic);
|
||||||
|
/* deprecated: this older custom property will be removed next major release */
|
||||||
|
--fa-style-family-classic: var(--fa-family-classic);
|
||||||
|
}
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: "Font Awesome 7 Free";
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2");
|
||||||
|
}
|
||||||
|
.fas {
|
||||||
|
--fa-family: var(--fa-family-classic);
|
||||||
|
--fa-style: 900;
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-classic {
|
||||||
|
--fa-family: var(--fa-family-classic);
|
||||||
|
}
|
||||||
|
|
||||||
|
.fa-solid {
|
||||||
|
--fa-style: 900;
|
||||||
|
}
|
||||||
6
media/templates/site/moko-cassiopeia/vendor/fa7free/css/solid.min.css
vendored
Normal file
6
media/templates/site/moko-cassiopeia/vendor/fa7free/css/solid.min.css
vendored
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Free 7.1.0 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)
|
||||||
|
* Copyright 2025 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-family-classic:"Font Awesome 7 Free";--fa-font-solid:normal 900 1em/1 var(--fa-family-classic);--fa-style-family-classic:var(--fa-family-classic)}@font-face{font-family:"Font Awesome 7 Free";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2)}.fas{--fa-style:900}.fa-classic,.fas{--fa-family:var(--fa-family-classic)}.fa-solid{--fa-style:900}
|
||||||
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-brands-400.woff2
vendored
Normal file
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-brands-400.woff2
vendored
Normal file
Binary file not shown.
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-regular-400.woff2
vendored
Normal file
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-regular-400.woff2
vendored
Normal file
Binary file not shown.
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-solid-900.woff2
vendored
Normal file
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-solid-900.woff2
vendored
Normal file
Binary file not shown.
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-v4compatibility.woff2
vendored
Normal file
BIN
media/templates/site/moko-cassiopeia/vendor/fa7free/webfonts/fa-v4compatibility.woff2
vendored
Normal file
Binary file not shown.
@@ -45,8 +45,7 @@ $params_googleanalytics = $this->params->get('googleanalytics', false);
|
|||||||
$params_googleanalyticsid = $this->params->get('googleanalyticsid', null);
|
$params_googleanalyticsid = $this->params->get('googleanalyticsid', null);
|
||||||
$params_custom_head_start = $this->params->get('custom_head_start', null);
|
$params_custom_head_start = $this->params->get('custom_head_start', null);
|
||||||
$params_custom_head_end = $this->params->get('custom_head_end', null);
|
$params_custom_head_end = $this->params->get('custom_head_end', null);
|
||||||
$params_leftIcon = htmlspecialchars($this->params->get('drawerLeftIcon', 'fa-solid fa-chevron-left'), ENT_COMPAT, 'UTF-8');
|
$params_developmentmode = $this->params->get('developmentmode', false);
|
||||||
$params_rightIcon = htmlspecialchars($this->params->get('drawerRightIcon', 'fa-solid fa-chevron-right'), ENT_COMPAT, 'UTF-8');
|
|
||||||
|
|
||||||
// Bootstrap behaviors (assets handled via WAM)
|
// Bootstrap behaviors (assets handled via WAM)
|
||||||
HTMLHelper::_('bootstrap.framework');
|
HTMLHelper::_('bootstrap.framework');
|
||||||
@@ -165,9 +164,6 @@ if ($params_FontScheme) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Expose CSS variables (and any computed font variables)
|
|
||||||
$wa->addInlineStyle(":root {\n --hue: 214;\n --template-bg-light: #f0f4fb;\n --template-text-dark: #495057;\n --template-text-light: #ffffff;\n --template-link-color: #2a69b8;\n --template-special-color: #001B4C;\n $fontStyles\n}");
|
|
||||||
|
|
||||||
// -------------------------------------
|
// -------------------------------------
|
||||||
// Brand: logo from params OR siteTitle
|
// Brand: logo from params OR siteTitle
|
||||||
// -------------------------------------
|
// -------------------------------------
|
||||||
@@ -206,11 +202,43 @@ $stickyHeader = $this->params->get('stickyHeader') ? 'position-sticky sticky-top
|
|||||||
// Meta
|
// Meta
|
||||||
$this->setMetaData('viewport', 'width=device-width, initial-scale=1');
|
$this->setMetaData('viewport', 'width=device-width, initial-scale=1');
|
||||||
|
|
||||||
// Optional Font Awesome Kit (not defined in JSON)
|
if ($this->params->get('faKitCode')) {
|
||||||
if ($this->params->get('fA6KitCode')) {
|
$faKit = "https://kit.fontawesome.com/" . $this->params->get('faKitCode') . ".js";
|
||||||
$fa6Kit = "https://kit.fontawesome.com/" . $this->params->get('fA6KitCode') . ".js";
|
HTMLHelper::_('script', $faKit, ['crossorigin' => 'anonymous']);
|
||||||
HTMLHelper::_('script', $fa6Kit, ['crossorigin' => 'anonymous']);
|
} else {
|
||||||
|
try {
|
||||||
|
if($params_developmentmode){
|
||||||
|
$wa->useStyle('vendor.fa7free.all');
|
||||||
|
$wa->useStyle('vendor.fa7free.brands');
|
||||||
|
$wa->useStyle('vendor.fa7free.fontawesome');
|
||||||
|
$wa->useStyle('vendor.fa7free.regular');
|
||||||
|
$wa->useStyle('vendor.fa7free.solid');
|
||||||
|
} else {
|
||||||
|
$wa->useStyle('vendor.fa7free.all.min');
|
||||||
|
$wa->useStyle('vendor.fa7free.brands.min');
|
||||||
|
$wa->useStyle('vendor.fa7free.fontawesome.min');
|
||||||
|
$wa->useStyle('vendor.fa7free.regular.min');
|
||||||
|
$wa->useStyle('vendor.fa7free.solid.min');
|
||||||
|
}
|
||||||
|
} catch (\Throwable $e) {
|
||||||
|
if($params_developmentmode){
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.all.dynamic', $templatePath . '/vendor/fa7free/css/all.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.brands.dynamic', $templatePath . '/vendor/fa7free/css/brands.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.fontawesome.dynamic', $templatePath . '/vendor/fa7free/css/fontawesome.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.regular.dynamic', $templatePath . '/vendor/fa7free/css/regular.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.solid.dynamic', $templatePath . '/vendor/fa7free/css/solid.css');
|
||||||
|
} else {
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.all.min.dynamic', $templatePath . '/vendor/fa7free/css/all.min.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.brands.min.dynamic', $templatePath . '/vendor/fa7free/css/brands.min.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.fontawesome.min.dynamic', $templatePath . '/vendor/fa7free/css/fontawesome.min.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.regular.min.dynamic', $templatePath . '/vendor/fa7free/css/regular.min.css');
|
||||||
|
$wa->registerAndUseStyle('vendor.fa7free.solid.min.dynamic', $templatePath . '/vendor/fa7free/css/solid.min.css');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
$params_leftIcon = htmlspecialchars($this->params->get('drawerLeftIcon', 'fa-solid fa-chevron-left'), ENT_COMPAT, 'UTF-8');
|
||||||
|
$params_rightIcon = htmlspecialchars($this->params->get('drawerRightIcon', 'fa-solid fa-chevron-right'), ENT_COMPAT, 'UTF-8');
|
||||||
|
|
||||||
?>
|
?>
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
|
|||||||
@@ -46,7 +46,7 @@
|
|||||||
{
|
{
|
||||||
"name": "vendor.bootstrap-toc",
|
"name": "vendor.bootstrap-toc",
|
||||||
"type": "style",
|
"type": "style",
|
||||||
"uri": "media/templates/site/moko-cassiopeia/css/vendor/afeld/bootstrap-toc.min.css",
|
"uri": "media/templates/site/moko-cassiopeia/vendor/afeld/bootstrap-toc.min.css",
|
||||||
"attributes":
|
"attributes":
|
||||||
{
|
{
|
||||||
"media": "all"
|
"media": "all"
|
||||||
@@ -123,11 +123,61 @@
|
|||||||
{
|
{
|
||||||
"name": "vendor.bootstrap-toc.js",
|
"name": "vendor.bootstrap-toc.js",
|
||||||
"type": "script",
|
"type": "script",
|
||||||
"uri": "media/templates/site/moko-cassiopeia/js/vendor/afeld/bootstrap-toc.min.js",
|
"uri": "media/templates/site/moko-cassiopeia/vendor/afeld/bootstrap-toc.min.js",
|
||||||
"attributes":
|
"attributes":
|
||||||
{
|
{
|
||||||
"defer": true
|
"defer": true
|
||||||
}
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.all",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/all.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.all.min",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/all.min.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.brands",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/brands.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.brands.min",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/brands.min.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.fontawesome",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/fontawesome.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.fontawesome.min",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/fontawesome.min.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.regular",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/regular.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.regular.min",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/regular.min.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.solid",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/solid.css"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "vendor.fa7free.solid.min",
|
||||||
|
"type": "style",
|
||||||
|
"uri": "media/templates/site/moko-cassiopeia/vendor/fa7free/css/solid.min.css"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -48,6 +48,7 @@
|
|||||||
<folder>css</folder>
|
<folder>css</folder>
|
||||||
<folder>images</folder>
|
<folder>images</folder>
|
||||||
<folder>fonts</folder>
|
<folder>fonts</folder>
|
||||||
|
<folder>vendor</folder>
|
||||||
</media>
|
</media>
|
||||||
<positions>
|
<positions>
|
||||||
<position>topbar</position>
|
<position>topbar</position>
|
||||||
@@ -185,9 +186,6 @@
|
|||||||
<field name="theme_sep_typo" type="spacer" label="Typography" hr="false" class="text fw-bold" />
|
<field name="theme_sep_typo" type="spacer" label="Typography" hr="false" class="text fw-bold" />
|
||||||
<field name="useFontScheme" type="groupedlist" label="TPL_MOKO-CASSIOPEIA_FONT_LABEL" default="0">
|
<field name="useFontScheme" type="groupedlist" label="TPL_MOKO-CASSIOPEIA_FONT_LABEL" default="0">
|
||||||
<option value="0">JNONE</option>
|
<option value="0">JNONE</option>
|
||||||
<group label="TPL_MOKO-CASSIOPEIA_FONT_GROUP_LOCAL">
|
|
||||||
<option value="media/templates/site/moko-cassiopeia/css/global/fonts-local_roboto.css">Roboto (local)</option>
|
|
||||||
</group>
|
|
||||||
<group label="TPL_MOKO-CASSIOPEIA_FONT_GROUP_WEB">
|
<group label="TPL_MOKO-CASSIOPEIA_FONT_GROUP_WEB">
|
||||||
<option value="https://fonts.googleapis.com/css2?family=Fira+Sans:wght@100;300;400;700&display=swap">Fira Sans (web)</option>
|
<option value="https://fonts.googleapis.com/css2?family=Fira+Sans:wght@100;300;400;700&display=swap">Fira Sans (web)</option>
|
||||||
<option value="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100;300;400;700&family=Roboto:wght@100;300;400;700&display=swap">Roboto + Noto Sans (web)</option>
|
<option value="https://fonts.googleapis.com/css2?family=Noto+Sans:wght@100;300;400;700&family=Roboto:wght@100;300;400;700&display=swap">Roboto + Noto Sans (web)</option>
|
||||||
@@ -204,7 +202,7 @@
|
|||||||
<field name="logoFile" type="media" default="media/templates/site/moko-cassiopeia/images/logo.svg" label="TPL_MOKO-CASSIOPEIA_LOGO_LABEL" showon="brand:1" />
|
<field name="logoFile" type="media" default="media/templates/site/moko-cassiopeia/images/logo.svg" label="TPL_MOKO-CASSIOPEIA_LOGO_LABEL" showon="brand:1" />
|
||||||
<field name="siteTitle" type="text" default="" label="TPL_MOKO-CASSIOPEIA_TITLE" filter="string" showon="brand:1" />
|
<field name="siteTitle" type="text" default="" label="TPL_MOKO-CASSIOPEIA_TITLE" filter="string" showon="brand:1" />
|
||||||
<field name="siteDescription" type="text" default="" label="TPL_MOKO-CASSIOPEIA_TAGLINE_LABEL" description="TPL_MOKO-CASSIOPEIA_TAGLINE_DESC" filter="string" showon="brand:1" />
|
<field name="siteDescription" type="text" default="" label="TPL_MOKO-CASSIOPEIA_TAGLINE_LABEL" description="TPL_MOKO-CASSIOPEIA_TAGLINE_DESC" filter="string" showon="brand:1" />
|
||||||
<field name="fA6KitCode" type="text" default="" label="TPL_MOKO-CASSIOPEIA_FA6KITCODE_LABEL" description="TPL_MOKO-CASSIOPEIA_FA6KITCODE_DESC" filter="string" />
|
<field name="faKitCode" type="text" default="" label="TPL_MOKO-CASSIOPEIA_FAKITCODE_LABEL" description="TPL_MOKO-CASSIOPEIA_FA6KITCODE_DESC" filter="string" />
|
||||||
|
|
||||||
<!-- Header & Navigation UI -->
|
<!-- Header & Navigation UI -->
|
||||||
<field name="theme_sep_header" type="spacer" label="Header & Navigation" hr="false" class="text fw-bold" />
|
<field name="theme_sep_header" type="spacer" label="Header & Navigation" hr="false" class="text fw-bold" />
|
||||||
|
|||||||
Reference in New Issue
Block a user