diff --git a/README.md b/README.md index 34eabf7..d1ef4b0 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ - -
+
@@ -134,7 +134,7 @@
-
+
@@ -189,23 +189,21 @@ - + - - + - - + - + @@ -220,8 +218,8 @@ - - + + diff --git a/templates/colors_custom.css b/templates/colors_custom.css new file mode 100644 index 0000000..1ebc90a --- /dev/null +++ b/templates/colors_custom.css @@ -0,0 +1,424 @@ +@charset "UTF-8"; +/* Copyright (C) 2025 Moko Consulting + + This file is part of a Moko Consulting project. + + SPDX-License-Identifier: GPL-3.0-or-later + + # FILE INFORMATION + DEFGROUP: Joomla.Template.Site + INGROUP: MokoCassiopeia.Templates + PATH: ./templates/colors_custom_dark.css + VERSION: 03.06.03 + BRIEF: Template for custom dark mode color definitions + + # USAGE INSTRUCTIONS + 1. Copy this file to: + `media/templates/site/mokocassiopeia/css/colors/dark/colors_custom.css` + or + `media/templates/site/mokocassiopeia/css/colors/light/colors_custom.css` ` + 2. Customize the CSS variables below to match your brand colors for dark mode + 3. In Joomla admin, go to System → Site Templates → MokoCassiopeia + 4. Under Theme tab, set "Dark Mode Palette" to "Custom" + 5. Save and view your site in dark mode to see the custom colors + + NOTE: This file is excluded from version control (.gitignore) to prevent + fork-specific customizations from being committed to the repository. + */ + +/* ----------------------------------------------- + * CUSTOM DARK THEME + * --------------------------------------------- */ + +:root[data-bs-theme='dark']{ +color-scheme: dark; + +/* ===== BRAND & THEME COLORS ===== */ +--color-primary: #112855; +--accent-color-primary: #3f8ff0; +--accent-color-secondary: #6fb3ff; + +/* ===== NAVIGATION ===== */ +--mainmenu-nav-link-color: #fff; +--nav-text-color: gray; +--nav-bg-color: var(--color-primary); + +/* ===== LINKS ===== */ +--color-link: white; +--color-hover: gray; +--color-active: var(--mainmenu-nav-link-color); +--link-color: #8ab4f8; +--link-color-rgb: 138, 180, 248; +--link-decoration: underline; +--link-hover-color: #c3d6ff; +--link-hover-color-rgb: 195, 214, 255; +--link-active-color: var(--link-color); + +/* ===== OFFCANVAS ===== */ +--offcanvas-color: var(--body-color); +--offcanvas-padding-x: 1rem; +--offcanvas-padding-y: 1rem; + +/* ===== NAVBAR ===== */ +--navbar-padding-x: 1rem; +--navbar-padding-y: 0.5rem; +--navbar-color: var(--nav-text-color); +--navbar-active-color: var(--mainmenu-nav-link-color); +--navbar-disabled-color: #6c757d; +--navbar-brand-padding-y: 0.3125rem; +--navbar-brand-margin-end: 1rem; +--navbar-brand-font-size: 1.25rem; +--navbar-brand-color: var(--nav-text-color); +--navbar-brand-active-color: var(--mainmenu-nav-link-color); +--navbar-nav-link-padding-x: 0.5rem; +--navbar-toggler-padding-y: 0.25rem; +--navbar-toggler-padding-x: 0.75rem; +--navbar-toggler-font-size: 1.25rem; +--navbar-toggler-border-color: rgba(255, 255, 255, 0.1); +--navbar-toggler-border-radius: 0.25rem; +--navbar-toggler-focus-width: 0.25rem; +--navbar-toggler-transition: box-shadow 0.15s ease-in-out; +--nav-link-padding-x: 1rem; +--nav-link-padding-y: 0.5rem; +--nav-link-font-weight: 400; +--nav-link-color: var(--nav-text-color); +--nav-link-active-color: var(--mainmenu-nav-link-color); +--nav-link-disabled-color: #6c757d; + +/* ===== TYPOGRAPHY & BODY ===== */ +--font-sans-serif: -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-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace; +--body-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; +--body-font-size: 1rem; +--body-font-weight: 400; +--body-line-height: 1.5; +--body-color: #e6ebf1; +--body-color-rgb: 230, 235, 241; +--body-bg: #0e1318; +--body-bg-rgb: 14, 19, 24; +--heading-color: #f1f5f9; +--emphasis-color: #fff; +--emphasis-color-rgb: 255, 255, 255; +--secondary-color: #e6ebf1bf; +--secondary-color-rgb: 230, 235, 241; +--tertiary-color: #e6ebf180; +--tertiary-color-rgb: 230, 235, 241; +--muted-color: #6d757e; +--code-color: #ff7abd; +--code-color-ink: var(--code-color, #e93f8e); +--highlight-color: #111; +--highlight-bg: #ffe28a1a; + +/* ===== LAYOUT & SPACING ===== */ +--padding-x: 0.15rem; +--padding-y: 0.15rem; +--bg-opacity: 1; +--nav-toggle-size: 3rem; +--gradient: linear-gradient(180deg, #ffffff26, #fff0); +--secondary-bg: #151b22; +--secondary-bg-rgb: 21, 27, 34; +--tertiary-bg: #10151b; +--tertiary-bg-rgb: 16, 21, 27; +--hr-color: var(--border-color, #dfe3e7); +--border-color-soft: var(--border-color, #dfe3e7); +--kbd-bg: var(--secondary-bg, #eaedf0); +--kbd-ink: var(--body-bg, #fff); +--toc-bg: var(--secondary-bg, #eaedf0); +--toc-ink: var(--color-primary, #112855); +--selection-bg: var(--highlight-bg, #fbeea8); +--selection-ink: var(--body-color, #22262a); +--border: 5px; + +/* ===== BREAKPOINTS ===== */ +--bp-xs: 0; +--bp-sm: 576px; +--bp-md: 768px; +--bp-lg: 992px; +--bp-xl: 1200px; + +/* ===== BOOTSTRAP PALETTE ===== */ +--primary: #010156; +--secondary: #48525d; +--success: #4aa664; +--info: #4f7aa0; +--warning: #c77a00; +--danger: #c23a31; +--light: #1b2027; +--dark: #0f1318; +--primary-rgb: 1,1,86; +--secondary-rgb: 72,82,93; +--success-rgb: 74,166,100; +--info-rgb: 79,122,160; +--warning-rgb: 199,122,0; +--danger-rgb: 194,58,49; +--light-rgb: 27,32,39; +--dark-rgb: 15,19,24; +--primary-text-emphasis: #c7ccff; +--secondary-text-emphasis: #cfd6de; +--success-text-emphasis: #bde8c9; +--info-text-emphasis: #bcd6ee; +--warning-text-emphasis: #ffd9a6; +--danger-text-emphasis: #ffb7b2; +--light-text-emphasis: #d2d8df; +--dark-text-emphasis: #d2d8df; +--primary-bg-subtle: #0b1030; +--secondary-bg-subtle: #1e2430; +--success-bg-subtle: #0f2a1b; +--info-bg-subtle: #0d2232; +--warning-bg-subtle: #2a1e06; +--danger-bg-subtle: #2d1110; +--light-bg-subtle: #12161d; +--dark-bg-subtle: #1e2430; +--primary-border-subtle: #2b3a7a; +--secondary-border-subtle: #2b323b; +--success-border-subtle: #2b5b40; +--info-border-subtle: #254861; +--warning-border-subtle: #5a3c0e; +--danger-border-subtle: #5c2723; +--light-border-subtle: #222831; +--dark-border-subtle: #2b323b; + +/* ===== STANDARD COLORS ===== */ +--blue: #91a4ff; +--indigo: #b19cff; +--purple: #c0a5ff; +--pink: #ff8fc0; +--red: #ff7a73; +--orange: #ff9c4d; +--yellow: #ffd166; +--green: #78d694; +--teal: #76e3ff; +--cyan: #6fb7ff; +--black: #000; +--white: #fff; + +/* ===== GRAY SCALE ===== */ +--gray-100: #161a20; +--gray-200: #1b2027; +--gray-300: #222831; +--gray-400: #2b323b; +--gray-500: #36404a; +--gray-600: #48525d; +--gray-700: #5b6672; +--gray-800: #cfd6de; +--gray-900: #e6ebf1; +--white-rgb: 255, 255, 255; +--black-rgb: 0, 0, 0; + +/* ===== HEADER BACKGROUND ===== */ +--header-background-image: url('../../../../../../media/templates/site/mokocassiopeia/images/bg.svg'); +--header-background-attachment: fixed; +--header-background-repeat: repeat; +--header-background-size: auto; + +/* ===== CONTAINER BACKGROUNDS ===== */ +/* Below Topbar Container */ +--container-below-topbar-bg-image: ; +--container-below-topbar-bg-color: ; +--container-below-topbar-bg-position: center; +--container-below-topbar-bg-attachment: fixed; +--container-below-topbar-bg-repeat: no-repeat; +--container-below-topbar-bg-size: cover; +--container-below-topbar-border: ; +--container-below-topbar-border-radius: ; + +/* Top A Container */ +--container-top-a-bg-image: ; +--container-top-a-bg-color: ; +--container-top-a-bg-position: center; +--container-top-a-bg-attachment: fixed; +--container-top-a-bg-repeat: no-repeat; +--container-top-a-bg-size: cover; +--container-top-a-border: ; +--container-top-a-border-radius: ; + +/* Top B Container */ +--container-top-b-bg-image: ; +--container-top-b-bg-color: ; +--container-top-b-bg-position: center; +--container-top-b-bg-attachment: fixed; +--container-top-b-bg-repeat: no-repeat; +--container-top-b-bg-size: cover; +--container-top-b-border: ; +--container-top-b-border-radius: ; + +/* TOC Container */ +--container-toc-bg: ; +--container-toc-color: #dbe3ff; + +/* Sidebar Container */ +--container-sidebar-bg-image: ; +--container-sidebar-bg-color: ; +--container-sidebar-bg-position: center; +--container-sidebar-bg-attachment: scroll; +--container-sidebar-bg-repeat: repeat; +--container-sidebar-bg-size: auto; +--container-sidebar-border: ; +--container-sidebar-border-radius: ; + +/* Bottom A Container */ +--container-bottom-a-bg-image: ; +--container-bottom-a-bg-color: ; +--container-bottom-a-bg-position: center; +--container-bottom-a-bg-attachment: fixed; +--container-bottom-a-bg-repeat: no-repeat; +--container-bottom-a-bg-size: cover; +--container-bottom-a-border: ; +--container-bottom-a-border-radius: ; + +/* Bottom B Container */ +--container-bottom-b-bg-image: ; +--container-bottom-b-bg-color: ; +--container-bottom-b-bg-position: center; +--container-bottom-b-bg-attachment: fixed; +--container-bottom-b-bg-repeat: no-repeat; +--container-bottom-b-bg-size: cover; +--container-bottom-b-border: ; +--container-bottom-b-border-radius: ; + +/* ===== BORDERS ===== */ +--border-width: 1px; +--border-style: solid; +--border-color: #2b323b; +--border-color-translucent: #ffffff26; +--border-radius: .25rem; +--border-radius-sm: .2rem; +--border-radius-lg: .3rem; +--border-radius-xl: .3rem; +--border-radius-xxl: 2rem; +--border-radius-pill: 50rem; + +/* ===== SHADOWS ===== */ +--box-shadow: 0 .5rem 1rem #00000066; +--box-shadow-sm: 0 .125rem .25rem #00000040; +--box-shadow-lg: 0 1rem 3rem #00000080; +--box-shadow-inset: inset 0 1px 2px #00000040; + +/* ===== FOCUS & FORMS ===== */ +--focus-ring-width: .25rem; +--focus-ring-opacity: .6; +--focus-ring-color: #5472ff66; +--input-color: #e6ebf1; +--input-bg: #1a2332; +--input-border-color: #3a4250; +--input-focus-border-color: #5472ff; +--input-focus-box-shadow: 0 0 0 0.25rem rgba(84, 114, 255, 0.25); +--input-placeholder-color: #8894aa; +--input-disabled-bg: #0f1318; +--input-disabled-border-color: #2b323b; +--form-valid-color: #78d694; +--form-valid-border-color: #78d694; +--form-invalid-color: #ff8e86; +--form-invalid-border-color: #ff8e86; + +/* ===== BUTTONS ===== */ +--btn-border-radius: var(--border-radius); +--btn-box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.05), 0 1px 1px rgba(0, 0, 0, 0.3); + +/* ===== CARDS ===== */ +--card-spacer-y: 1rem; +--card-spacer-x: 1rem; +--card-title-spacer-y: 0.5rem; +--card-border-width: 1px; +--card-border-color: var(--border-color); +--card-border-radius: var(--border-radius); +--card-box-shadow: none; +--card-inner-border-radius: calc(var(--border-radius) - 1px); +--card-cap-padding-y: 0.5rem; +--card-cap-padding-x: 1rem; +--card-cap-bg: rgba(255, 255, 255, 0.03); +--card-cap-color: var(--body-color); +--card-height: auto; +--card-color: var(--body-color); +--card-bg: var(--secondary-bg); +--card-img-overlay-padding: 1rem; +--card-group-margin: 0.75rem; + +/* ===== VIRTUEMART (VM) ===== */ +/* VM Surfaces */ +--vm-surface: var(--secondary-bg); +--vm-surface-2: var(--tertiary-bg); +--vm-text: var(--body-color); +--vm-text-strong: #ffffff; +--vm-text-muted: var(--gray-700); +--vm-border: var(--border-color); +--vm-price-color: var(--success); + +/* VM Layout and Density */ +--vm-container-max-width: 1200px; +--vm-section-gap: 2rem; +--vm-block-radius: var(--border-radius); +--vm-block-shadow: var(--box-shadow-sm); + +/* VM Typography */ +--vm-category-title-size: 2rem; +--vm-subcategory-title-size: 1.5rem; +--vm-page-title-size: 1.75rem; +--vm-products-type-title-size: 1.25rem; +--vm-product-title-size: 1.125rem; +--vm-product-title-weight: 500; +--vm-products-type-title-weight: 600; +--vm-price-size: 1.5rem; +--vm-price-detail-size: 1.125rem; +--vm-price-desc-size: 0.875rem; + +/* VM Controls */ +--vm-input-radius: var(--border-radius); +--vm-input-shadow: var(--box-shadow-sm); +--vm-qty-width: 80px; +--vm-cart-dropdown-min-width: 300px; + +/* VM Alerts */ +--vm-alert-radius: var(--border-radius); +--vm-alert-shadow: var(--box-shadow-sm); +--vm-availability-bg: var(--success-bg-subtle); +--vm-availability-text: var(--success); + +/* VM Buttons */ +--vm-btn-padding-x: 1rem; +--vm-btn-padding-y: 0.5rem; +--vm-btn-radius: var(--border-radius); +--vm-btn-shadow: var(--box-shadow-sm); +--vm-btn-primary-bg: var(--primary); +--vm-btn-primary-text: #ffffff; +--vm-btn-primary-border: var(--primary); +--vm-btn-secondary-bg: var(--secondary); +--vm-btn-secondary-text: #ffffff; +--vm-btn-secondary-border: var(--secondary); + +/* VM Image Overlay Controls */ +--vm-image-overlay-gap-x: 0.5rem; +--vm-image-overlay-gap-y: 0.5rem; +--vm-image-overlay-raise: 0.25rem; +--vm-image-overlay-btn-size: 2.5rem; +--vm-image-overlay-btn-radius: 50%; +--vm-image-overlay-btn-bg: rgba(0, 0, 0, 0.7); +--vm-image-overlay-btn-bg-hover: rgba(0, 0, 0, 0.85); +--vm-image-overlay-btn-border-color: rgba(255, 255, 255, 0.2); +--vm-image-overlay-btn-border-width: 1px; +--vm-image-overlay-btn-color: var(--body-color); +--vm-image-overlay-btn-shadow: 0 2px 4px rgba(0, 0, 0, 0.3); + +/* VM Vendor Menu */ +--vm-vendor-menu-bg: var(--secondary-bg); +--vm-vendor-menu-border: var(--border-color); +--vm-vendor-menu-radius: var(--border-radius); +--vm-vendor-menu-shadow: var(--box-shadow-sm); +--vm-vendor-menu-item-gap: 0.25rem; +--vm-vendor-menu-item-padding-x: 1rem; +--vm-vendor-menu-item-padding-y: 0.5rem; +--vm-vendor-menu-pill-radius: 50rem; +--vm-vendor-menu-link: var(--link-color); +--vm-vendor-menu-link-hover: var(--link-hover-color); +--vm-vendor-menu-link-active: var(--primary); +--vm-vendor-menu-hover-bg: var(--tertiary-bg); + +/* ===== GABLE ===== */ +--gab-blue: #4d9fff; +--gab-green: #5cb85c; +--gab-red: #ff6b6b; +--gab-orange: #ff9f5a; +--gab-gray1: #868e96; +--gab-gray2: #adb5bd; +--gab-gray3: #ced4da; +} diff --git a/templates/colors_custom_dark.css b/templates/colors_custom_dark.css deleted file mode 100644 index 18b8655..0000000 --- a/templates/colors_custom_dark.css +++ /dev/null @@ -1,245 +0,0 @@ -@charset "UTF-8"; -/* Copyright (C) 2025 Moko Consulting - - This file is part of a Moko Consulting project. - - SPDX-License-Identifier: GPL-3.0-or-later - - # FILE INFORMATION - DEFGROUP: Joomla.Template.Site - INGROUP: MokoCassiopeia.Templates - PATH: ./templates/colors_custom_dark.css - VERSION: 03.06.03 - BRIEF: Template for custom dark mode color definitions - - # USAGE INSTRUCTIONS - 1. Copy this file to: media/templates/site/mokocassiopeia/css/colors/dark/colors_custom.css - 2. Customize the CSS variables below to match your brand colors for dark mode - 3. In Joomla admin, go to System → Site Templates → MokoCassiopeia - 4. Under Theme tab, set "Dark Mode Palette" to "Custom" - 5. Save and view your site in dark mode to see the custom colors - - NOTE: This file is excluded from version control (.gitignore) to prevent - fork-specific customizations from being committed to the repository. - */ - -/* ----------------------------------------------- - * CUSTOM DARK THEME - * --------------------------------------------- */ - -:root[data-bs-theme='dark']{ - /* System hint for native widgets */ - color-scheme: dark; - - /* ===== PRIMARY BRAND COLORS ===== */ - /* Main brand color used throughout the template */ - --color-primary: #112855; - - /* Accent colors for interactive elements */ - --accent-color-primary: #3f8ff0; - --accent-color-secondary: #6fb3ff; - - /* ===== LINK COLORS ===== */ - /* Color for hyperlinks in dark mode */ - --color-link: white; - - /* Color when hovering over links */ - --color-hover: gray; - - /* Active link color */ - --color-active: var(--mainmenu-nav-link-color); - - /* ===== NAVIGATION ===== */ - /* Text color in main menu */ - --mainmenu-nav-link-color: #fff; - - /* Background color for navigation */ - --nav-text-color: gray; - --nav-bg-color: var(--color-primary); - - /* ===== HEADER BACKGROUND ===== */ - /* Background image for header section (same as light mode) */ - --header-background-image: url('../../../../../../media/templates/site/mokocassiopeia/images/bg.svg'); - --header-background-attachment: fixed; - --header-background-repeat: repeat; - --header-background-size: auto; - - /* ===== CONTAINER BACKGROUNDS ===== */ - /* Below Topbar Container */ - --container-below-topbar-bg-image: ; - --container-below-topbar-bg-color: ; - --container-below-topbar-bg-position: center; - --container-below-topbar-bg-attachment: fixed; - --container-below-topbar-bg-repeat: no-repeat; - --container-below-topbar-bg-size: cover; - --container-below-topbar-border: ; - --container-below-topbar-border-radius: ; - - /* Top A Container */ - --container-top-a-bg-image: ; - --container-top-a-bg-color: ; - --container-top-a-bg-position: center; - --container-top-a-bg-attachment: fixed; - --container-top-a-bg-repeat: no-repeat; - --container-top-a-bg-size: cover; - --container-top-a-border: ; - --container-top-a-border-radius: ; - - /* Top B Container */ - --container-top-b-bg-image: ; - --container-top-b-bg-color: ; - --container-top-b-bg-position: center; - --container-top-b-bg-attachment: fixed; - --container-top-b-bg-repeat: no-repeat; - --container-top-b-bg-size: cover; - --container-top-b-border: ; - --container-top-b-border-radius: ; - - /* Table of Contents Container */ - --container-toc-bg: ; - --container-toc-color: #dbe3ff; - - /* Sidebar Container */ - --container-sidebar-bg-image: ; - --container-sidebar-bg-color: ; - --container-sidebar-bg-position: center; - --container-sidebar-bg-attachment: scroll; - --container-sidebar-bg-repeat: repeat; - --container-sidebar-bg-size: auto; - --container-sidebar-border: ; - --container-sidebar-border-radius: ; - - /* Bottom A Container */ - --container-bottom-a-bg-image: ; - --container-bottom-a-bg-color: ; - --container-bottom-a-bg-position: center; - --container-bottom-a-bg-attachment: fixed; - --container-bottom-a-bg-repeat: no-repeat; - --container-bottom-a-bg-size: cover; - --container-bottom-a-border: ; - --container-bottom-a-border-radius: ; - - /* Bottom B Container */ - --container-bottom-b-bg-image: ; - --container-bottom-b-bg-color: ; - --container-bottom-b-bg-position: center; - --container-bottom-b-bg-attachment: fixed; - --container-bottom-b-bg-repeat: no-repeat; - --container-bottom-b-bg-size: cover; - --container-bottom-b-border: ; - --container-bottom-b-border-radius: ; - - /* ===== BOOTSTRAP 5 COLOR PALETTE (Dark Mode) ===== */ - /* Lightened colors for dark mode visibility */ - --blue: #91a4ff; - --black: #000; - --indigo: #b19cff; - --purple: #c0a5ff; - --pink: #ff8fc0; - --red: #ff7a73; - --orange: #ff9c4d; - --yellow: #ffd166; - --green: #78d694; - --teal: #76e3ff; - --cyan: #6fb7ff; - --white: #fff; - - /* Gray scale tuned for dark mode */ - --gray-100: #161a20; - --gray-200: #1b2027; - --gray-300: #222831; - --gray-400: #2b323b; - --gray-500: #36404a; - --gray-600: #48525d; - --gray-700: #5b6672; - --gray-800: #cfd6de; - --gray-900: #e6ebf1; - - /* Contextual colors (adjusted for dark backgrounds) */ - --primary: #010156; - --secondary: #48525d; - --success: #4aa664; - --info: #4f7aa0; - --warning: #c77a00; - --danger: #c23a31; - --light: #1b2027; - --dark: #0f1318; - - /* ===== BODY & TYPOGRAPHY ===== */ - --body-font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, 'Helvetica Neue', Arial, 'Noto Sans', sans-serif; - --body-font-size: 1rem; - --body-font-weight: 400; - --body-line-height: 1.5; - - --body-color: #e6ebf1; - --body-color-rgb: 230, 235, 241; - --body-bg: #0e1318; - --body-bg-rgb: 14, 19, 24; - - /* ===== ADDITIONAL THEME COLORS ===== */ - --muted-color: #6d757e; - --hr-color: var(--border-color, #dfe3e7); - --link-active-color: var(--link-color); - --code-color: #ff7abd; - --code-color-ink: var(--code-color, #e93f8e); - --border-color-soft: var(--border-color, #dfe3e7); - --kbd-bg: var(--secondary-bg, #eaedf0); - --kbd-ink: var(--body-bg, #fff); - --toc-bg: var(--secondary-bg, #eaedf0); - --toc-ink: var(--color-primary, #112855); - --selection-bg: var(--highlight-bg, #fbeea8); - --selection-ink: var(--body-color, #22262a); - - --emphasis-color: #fff; - --emphasis-color-rgb: 255, 255, 255; - - --secondary-color: #e6ebf1bf; - --secondary-color-rgb: 230, 235, 241; - --secondary-bg: #151b22; - --secondary-bg-rgb: 21, 27, 34; - - --tertiary-color: #e6ebf180; - --tertiary-color-rgb: 230, 235, 241; - --tertiary-bg: #10151b; - --tertiary-bg-rgb: 16, 21, 27; - - --heading-color: #f1f5f9; - - --link-color: #8ab4f8; - --link-color-rgb: 138, 180, 248; - --link-decoration: underline; - --link-hover-color: #c3d6ff; - --link-hover-color-rgb: 195, 214, 255; - - --highlight-color: #111; - --highlight-bg: #ffe28a1a; - - /* ===== BORDERS & SHADOWS ===== */ - --border: 5px; - --border-width: 1px; - --border-style: solid; - --border-color: #2b323b; - --border-color-translucent: #ffffff26; - - --border-radius: .25rem; - --border-radius-sm: .2rem; - --border-radius-lg: .3rem; - --border-radius-xl: .3rem; - --border-radius-xxl: 2rem; - --border-radius-pill: 50rem; - - --box-shadow: 0 .5rem 1rem #00000066; - --box-shadow-sm: 0 .125rem .25rem #00000040; - --box-shadow-lg: 0 1rem 3rem #00000080; - --box-shadow-inset: inset 0 1px 2px #00000040; - - /* ===== FORM COLORS ===== */ - --focus-ring-width: .25rem; - --focus-ring-opacity: .6; - --focus-ring-color: #5472ff66; - - --form-valid-color: #78d694; - --form-valid-border-color: #78d694; - --form-invalid-color: #ff8e86; - --form-invalid-border-color: #ff8e86; -} diff --git a/templates/colors_custom_light.css b/templates/colors_custom_light.css deleted file mode 100644 index 4a4c77f..0000000 --- a/templates/colors_custom_light.css +++ /dev/null @@ -1,227 +0,0 @@ -@charset "UTF-8"; -/* Copyright (C) 2025 Moko Consulting - - This file is part of a Moko Consulting project. - - SPDX-License-Identifier: GPL-3.0-or-later - - # FILE INFORMATION - DEFGROUP: Joomla.Template.Site - INGROUP: MokoCassiopeia.Templates - PATH: ./templates/colors_custom_light.css - VERSION: 03.06.03 - BRIEF: Template for custom light mode color definitions - - # USAGE INSTRUCTIONS - 1. Copy this file to: media/templates/site/mokocassiopeia/css/colors/light/colors_custom.css - 2. Customize the CSS variables below to match your brand colors - 3. In Joomla admin, go to System → Site Templates → MokoCassiopeia - 4. Under Theme tab, set "Light Mode Palette" to "Custom" - 5. Save and view your site to see the custom colors - - NOTE: This file is excluded from version control (.gitignore) to prevent - fork-specific customizations from being committed to the repository. - */ - -/* ----------------------------------------------- - * CUSTOM LIGHT THEME - * --------------------------------------------- */ - -:root[data-bs-theme="light"] { - color-scheme: light; - - /* ===== PRIMARY BRAND COLORS ===== */ - /* Main brand color used throughout the template */ - --color-primary: #112855; - - /* Accent colors for interactive elements */ - --accent-color-primary: #3f8ff0; - --accent-color-secondary: #3f8ff0; - - /* ===== LINK COLORS ===== */ - /* Color for hyperlinks */ - --color-link: #224FAA; - - /* Color when hovering over links */ - --color-hover: var(--accent-color-primary); - - /* ===== NAVIGATION ===== */ - /* Text color in main menu */ - --mainmenu-nav-link-color: white; - - /* Background color for navigation */ - --nav-text-color: white; - --nav-bg-color: var(--color-link); - - /* ===== HEADER BACKGROUND ===== */ - /* Background image for header section */ - --header-background-image: url('../../../../../../media/templates/site/mokocassiopeia/images/bg.svg'); - --header-background-attachment: fixed; - --header-background-repeat: repeat; - --header-background-size: auto; - - /* ===== CONTAINER BACKGROUNDS ===== */ - /* Below Topbar Container */ - --container-below-topbar-bg-image: ; - --container-below-topbar-bg-color: ; - --container-below-topbar-bg-position: center; - --container-below-topbar-bg-attachment: fixed; - --container-below-topbar-bg-repeat: repeat; - --container-below-topbar-bg-size: auto; - --container-below-topbar-border: ; - --container-below-topbar-border-radius: ; - - /* Top A Container */ - --container-top-a-bg-image: ; - --container-top-a-bg-color: ; - --container-top-a-bg-position: center; - --container-top-a-bg-attachment: fixed; - --container-top-a-bg-repeat: repeat; - --container-top-a-bg-size: auto; - --container-top-a-border: ; - --container-top-a-border-radius: ; - - /* Top B Container */ - --container-top-b-bg-image: ; - --container-top-b-bg-color: ; - --container-top-b-bg-position: center; - --container-top-b-bg-attachment: fixed; - --container-top-b-bg-repeat: repeat; - --container-top-b-bg-size: auto; - --container-top-b-border: ; - --container-top-b-border-radius: ; - - /* Table of Contents Container */ - --container-toc-bg: var(--mainmenu-nav-link-color); - --container-toc-color: var(--color-primary); - - /* Sidebar Container */ - --container-sidebar-bg-image: ; - --container-sidebar-bg-color: ; - --container-sidebar-bg-position: center; - --container-sidebar-bg-attachment: scroll; - --container-sidebar-bg-repeat: repeat; - --container-sidebar-bg-size: auto; - --container-sidebar-border: ; - --container-sidebar-border-radius: ; - - /* Bottom A Container */ - --container-bottom-a-bg-image: ; - --container-bottom-a-bg-color: ; - --container-bottom-a-bg-position: center; - --container-bottom-a-bg-attachment: fixed; - --container-bottom-a-bg-repeat: repeat; - --container-bottom-a-bg-size: auto; - --container-bottom-a-border: ; - --container-bottom-a-border-radius: ; - - /* Bottom B Container */ - --container-bottom-b-bg-image: ; - --container-bottom-b-bg-color: ; - --container-bottom-b-bg-position: center; - --container-bottom-b-bg-attachment: fixed; - --container-bottom-b-bg-repeat: repeat; - --container-bottom-b-bg-size: auto; - --container-bottom-b-border: ; - --container-bottom-b-border-radius: ; - - /* ===== BOOTSTRAP 5 COLOR PALETTE ===== */ - /* Standard Bootstrap color variables */ - --blue: #010156; - --black: #000; - --indigo: #6812f3; - --purple: #6f42c2; - --pink: #e93f8e; - --red: #a51f18; - --orange: #fd7e17; - --yellow: #ad6200; - --green: #448344; - --teal: #5abfdd; - --cyan: #30638d; - --white: #fff; - - /* Gray scale */ - --gray-100: #f9fafb; - --gray-200: #eaedf0; - --gray-300: #dfe3e7; - --gray-400: #ced4da; - --gray-500: #adb5bd; - --gray-600: #6d757e; - --gray-700: #484f56; - --gray-800: #353b41; - --gray-900: #22262a; - - /* Contextual colors */ - --primary: #010156; - --secondary: #6d757e; - --success: #448344; - --info: #30638d; - --warning: #ad6200; - --danger: #a51f18; - --light: #f9fafb; - --dark: #353b41; - - /* ===== BODY & TYPOGRAPHY ===== */ - --body-font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif; - --body-font-size: 1rem; - --body-font-weight: 400; - --body-line-height: 1.5; - --body-color: #22262a; - --body-color-rgb: 34, 38, 42; - --body-bg: #fff; - --body-bg-rgb: 255, 255, 255; - - /* ===== ADDITIONAL THEME COLORS ===== */ - --muted-color: #6d757e; - --hr-color: var(--border-color, #dfe3e7); - --link-active-color: var(--link-color); - --code-color: #e93f8e; - --code-color-ink: var(--code-color, #e93f8e); - --border-color-soft: var(--border-color, #dfe3e7); - --kbd-bg: var(--secondary-bg, #eaedf0); - --kbd-ink: var(--body-bg, #fff); - --toc-bg: var(--secondary-bg, #eaedf0); - --toc-ink: var(--color-primary, #112855); - --selection-bg: var(--highlight-bg, #fbeea8); - --selection-ink: var(--body-color, #22262a); - --emphasis-color: #000; - --emphasis-color-rgb: 0, 0, 0; - --secondary-color: #22262abf; - --secondary-bg: #eaedf0; - --tertiary-color: #22262a80; - --tertiary-bg: #f9fafb; - --heading-color: inherit; - --link-color: #224faa; - --link-color-rgb: 34, 79, 170; - --link-decoration: underline; - --link-hover-color: #424077; - --link-hover-color-rgb: 66, 64, 119; - --highlight-color: #22262a; - --highlight-bg: #fbeea8; - - /* ===== BORDERS & SHADOWS ===== */ - --border: 5px; - --border-width: 1px; - --border-style: solid; - --border-color: #dfe3e7; - --border-color-translucent: #0000002d; - --border-radius: .25rem; - --border-radius-sm: .2rem; - --border-radius-lg: .3rem; - --border-radius-xl: .3rem; - --border-radius-xxl: 2rem; - --border-radius-pill: 50rem; - --box-shadow: 0 .5rem 1rem #00000026; - --box-shadow-sm: 0 .125rem .25rem #00000013; - --box-shadow-lg: 0 1rem 3rem #0000002d; - --box-shadow-inset: inset 0 1px 2px #00000013; - - /* ===== FORM COLORS ===== */ - --focus-ring-width: .25rem; - --focus-ring-opacity: .25; - --focus-ring-color: #01015640; - --form-valid-color: #448344; - --form-valid-border-color: #448344; - --form-invalid-color: #a51f18; - --form-invalid-border-color: #a51f18; -}