Bootstrap 5 powers the responsive, mobile-first foundation of MokoCassiopeia, delivering a scalable grid system, standardized components, and utility classes. This implementation integrates Moko Consulting brand variables to ensure consistency, accessibility, and performance across all interfaces.
Brand & Theme Colors
The three root brand colours drive the entire visual identity. --color-primary is the primary brand navy used for navigation backgrounds, buttons, and key UI surfaces. --accent-color-primary and --accent-color-secondary are the two accent blues used for links, highlights, borders, and interactive states.
--color-primary--accent-color-primary--accent-color-secondaryBody & Surface Colors
These variables define the page canvas. --body-bg is the root page background. --secondary-bg and --tertiary-bg are progressively lighter surface layers used for cards, sidebars, and nested containers. --body-color is the default text colour — a cool off-white chosen for comfortable contrast on dark surfaces.
--body-bg--secondary-bg--tertiary-bg--body-color--heading-color--emphasis-color--muted-colorLink Colors
Link colours are tuned for dark-theme legibility. --link-color is the default anchor colour; --link-hover-color is its hover state. Both are perceptually lighter than their light-theme equivalents to maintain sufficient contrast against dark surfaces without oversaturation.
--link-color--link-hover-color--link-active-colorBootstrap Semantic Palette
The Bootstrap semantic palette is remapped for the dark theme. All eight semantic roles — primary, secondary, success, info, warning, danger, light, and dark — are overridden with values tuned for dark-surface rendering. Note that light and dark are inverted relative to their light-theme meanings.
--primary--secondary--success--info--warning--danger--light--darkSemantic Text Emphasis Colors
Text emphasis colours are lightened variants of the semantic palette, designed for use as coloured text on dark-theme subtle backgrounds. They maintain WCAG AA contrast against their paired subtle background colours.
--primary-text-emphasis--secondary-text-emphasis--success-text-emphasis--info-text-emphasis--warning-text-emphasis--danger-text-emphasisSemantic Subtle Backgrounds
Subtle background colours are very dark tinted variants of each semantic colour. They are used for alert backgrounds, badge fills, and contextual table rows — providing a colour hint without overwhelming the dark canvas.
--primary-bg-subtle--secondary-bg-subtle--success-bg-subtle--info-bg-subtle--warning-bg-subtle--danger-bg-subtleStandard Named Colors
The full standard colour set is remapped for the dark theme. Each named colour is a lighter, more luminous variant of its light-theme counterpart — necessary to maintain visibility against dark backgrounds while preserving hue identity.
--blue--indigo--purple--pink--red--orange--yellow--green--teal--cyan--black--whiteGray Scale
The gray scale is inverted for the dark theme — --gray-100 is the darkest value and --gray-900 is the lightest. This inversion preserves Bootstrap's numeric convention (lower = lighter in light mode) while mapping correctly to dark-theme surface hierarchy.
--gray-100--gray-200--gray-300--gray-400--gray-500--gray-600--gray-700--gray-800--gray-900Hero / Banner Colors
The banner position in MokoCassiopeia renders a full-viewport-height hero section controlled entirely by CSS custom properties. The system is split into two layers: a background layer (the raw colour behind everything) and an overlay layer (a semi-transparent gradient composited on top to ensure text legibility regardless of the background image or colour used).
Two named variants are provided — Primary (deep navy #0d1e3a, 65% overlay) and Secondary (near-black navy #080f1e, 80% overlay). The heavier overlay on Secondary is intentional — it is designed for hero sections where the background image carries more detail and needs stronger suppression to keep foreground content readable.
Inside the hero area, the inner .hero card element is independently controlled via --hero-card-* and --hero-alt-card-* variables, allowing the card background, text colour, border radius, padding, and max-width to be configured independently of the full-bleed background. Switching between variants requires only a moduleclass_sfx change in the Joomla module settings — no CSS edits needed.
--hero-primary-bg-color--hero-secondary-bg-color--hero-primary-color--hero-overlay-bg--hero-primary-overlay--hero-secondary-overlayBlock Colors (top-a / top-b / bottom-a / bottom-b)
Block colour variables control the background and text colour of modules placed in the auto-grid positions (top-a, top-b, bottom-a, bottom-b). Four numbered presets are available, assignable via moduleclass_sfx on individual modules. Highlight, CTA, and Alert overrides provide semantic block variants for common content patterns.
--block-color-1--block-color-2--block-color-3--block-color-4--block-highlight-bg--block-cta-bg--block-alert-bgGable Component Colors
The Gable color set provides a consistent palette for the Gable extension components. These are intentionally lighter and more saturated than the standard palette to ensure visibility in component-specific UI elements.
--gab-blue--gab-green--gab-red--gab-orange--gab-gray1--gab-gray2--gab-gray3RGB & Tonal Gradients
The RGB spectrum and black-to-white gradient are provided as quick reference tools for evaluating colour relationships and contrast. Hover any gradient to sample the exact pixel colour at that point.