first commit

This commit is contained in:
2025-06-17 11:53:18 +02:00
commit 9f0f7ba12b
8804 changed files with 1369176 additions and 0 deletions

View File

@ -0,0 +1,14 @@
$theme-colors-text: map-merge((
"action": shade-color($base-color, 60%),
"error": shade-color($red-dark, 60%)
), $theme-colors-text);
$theme-colors-bg-subtle: map-merge((
"action": tint-color($base-color, 80%),
"error": tint-color($red-dark, 80%)
), $theme-colors-bg-subtle);
$theme-colors-border-subtle: map-merge((
"action": tint-color($base-color, 60%),
"error": tint-color($red-dark, 60%)
), $theme-colors-border-subtle);

View File

@ -0,0 +1,18 @@
$atum-colors-dark: (
template-quickicon-color: var(--template-bg-dark-5),
focus-shadow: var(--gray-800),
) !default;
$link-hover-color-dark: lighten($light-blue, 20%);
$form-select-indicator-dark: url("../images/select-bg-dark.svg");
$form-select-indicator-rtl-dark: url("../images/select-bg-rtl-dark.svg");
$form-select-bg-dark: var(--template-bg-dark);
$form-select-background-dark: $form-select-bg-dark $form-select-indicator-dark no-repeat right center / $form-select-bg-size; // Used so we can have multiple background elements (e.g. arrow and feedback icon)
$form-select-background-rtl-dark: $form-select-bg-dark $form-select-indicator-rtl-dark no-repeat left center / $form-select-bg-size; // Used so we can have multiple background elements (e.g. arrow and feedback icon)
// Alerts
$state-info-text-dark: var(--template-bg-dark-50);
// Code-color override bootstrap for accessibility contrast
$code-color-dark: #d7488b; //used in bootstrap

View File

@ -0,0 +1,305 @@
// Remove prefix added in BS5 for compat with Joomla beta's shipped with Betas
$prefix: "";
// Use dark mode conditionally based on media queries from the browser to match the desktop theme
$color-mode-type: media-query;
// Variables
$white: #fff;
$whiteoffset: #fefefe;
$gray-100: #f8f9fa;
$gray-200: #e8e8e8;
$gray-300: #dee2e6; //used for toolbar and badges
$gray-400: #cdcdcd; //used for border-bottom sidebar-nav and toolbar normal border
$gray-500: #adb5bd; //used in toolbar and buttons for border
$gray-600: #666e76; //used for atum-text-dark and $secondary
$gray-700: #495057; //used for atum-text-dark, secondary
$gray-800: #343a40;
$gray-900: #212529; //used for tree header
$bluegray: #b2bfcd; // used for borders
$black: #000; //used for shadows
$dark-blue: #001b4c; //is the atum-special-color
$light-blue: #2a69b8; //is the template-link-color
// BS Colours
$blue: #2a69b7; // Same as hsl(213, 63%, 44%); // base color for calculation, Primary-color
$indigo: #0377be; //used in bootstrap
$purple: #6f42c1; //used in bootstrap
$pink: #971250; //used in bootstrap
$red: #c52827; //used in bootstrap
$red-dark: #3b0d0c; //used for alerts error
$yellow: #ffb514; //used in bootstrap
$green: #457d54; //used in bootstrap
$green-dark: #0f2f21; //used for alert success
$teal: #20c997; //used in bootstrap
$cyan: #107d8e; //used in bootstrap
$darkblue: #132f53;
$base-color: $darkblue;
// Atum colours defined as scss variables for use in scss functions
$atum-text-dark: $gray-700;
$success: $green;
$danger: $red;
$info: $light-blue;
$warning: $yellow;
$theme-colors: (
"primary": $darkblue,
"secondary": $gray-700,
"success": $success,
"info": $light-blue,
"warning": $yellow,
"danger": $danger,
"light": $gray-100,
"dark": $gray-900,
"action": $base-color,
"error": $red-dark) !default;
$template-background-light: #f0f4fb; //light background color, frontend dashboard background and installer body background
$atum-colors: (
template-sidebar-bg: var(--template-bg-dark-80),
template-sidebar-font-color: $white,
template-sidebar-link-color: $white,
template-bg-light: $template-background-light,
template-link-color: var(--link-color),
template-text-light: $white,
template-text-dark: $atum-text-dark,
template-special-color: $dark-blue,
template-contrast: $light-blue,
template-quickicon-color: hsl(var(--hue), 30%, 40%),
template-bg-dark: hsl(var(--hue), 40%, 20%),
template-bg-dark-3: hsl(var(--hue), 40%, 97%),
template-bg-dark-5: hsl(var(--hue), 40%, 95%),
template-bg-dark-7: hsl(var(--hue), 40%, 93%),
template-bg-dark-10: hsl(var(--hue), 40%, 90%),
template-bg-dark-15: hsl(var(--hue), 40%, 85%),
template-bg-dark-20: hsl(var(--hue), 40%, 80%),
template-bg-dark-30: hsl(var(--hue), 40%, 70%),
template-bg-dark-40: hsl(var(--hue), 40%, 60%),
template-bg-dark-50: hsl(var(--hue), 40%, 50%),
template-bg-dark-60: hsl(var(--hue), 40%, 40%),
template-bg-dark-65: hsl(var(--hue), 40%, 35%),
template-bg-dark-70: hsl(var(--hue), 40%, 30%),
template-bg-dark-75: hsl(var(--hue), 40%, 25%),
template-bg-dark-80: hsl(var(--hue), 40%, 20%),
template-bg-dark-90: hsl(var(--hue), 40%, 10%),
);
$colors: (
card-bg: rgba(255, 255, 255, .7),
card-color: var(--template-bg-dark-60),
bluegray: $bluegray,
lightbluegray: #f6f9fc,
toolbar-bg: $white,
success-border: var(--success),
info-border: var(--info),
warning-border: var(--warning),
danger-border: var(--danger),
login-main-bg: darken($base-color, 8%), //used on login
border: $gray-400,
"white": $white, // the key here must be in quotes to avoid scss compilation warnings.
white-offset: $whiteoffset,
focus: #39f,
focus-shadow: #eaeaea,
toggle-color: $white, //used in sidebar
);
// Alerts
$alert-border-level: 0;
$alert-color-level: 0;
// Global
$atum-box-shadow: 0 2px 10px -8px var(--template-bg-dark-50);
$btn-disabled-opacity: .4;
// Toolbar
$atum-toolbar-line-height: 2.45rem;
// Sidebar
$sidebar-width: 18rem;
$sidebar-width-login: 28.75rem;
$sidebar-width-closed: 3rem;
$main-brand-height: 3rem;
// Fonts
$font-family-sans-serif: "Roboto", -apple-system, BlinkMacSystemFont, "Segoe UI", "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
$h1-font-size: 1.65rem;
$h2-font-size: 1.5rem;
$h3-font-size: 1.25rem;
$h4-font-size: 1rem;
$h5-font-size: .9286rem;
$h6-font-size: .8571rem;
$headings-color: var(--template-bg-dark);
$font-size-sm: .8rem;
$font-size-vsm: .6rem;
$display1-size: 1rem;
$display2-size: .875rem;
$content-font-size: .875rem;
$label-font-size: 1rem;
$danger-bg: #900;
$badge-font-size: .75rem;
$jicon-css-prefix: icon !default;
$fa-css-prefix: fa !default;
$fa-font-path: "../../../../media/vendor/fontawesome-free/webfonts";
$roboto-font-path: "../../../../../media/vendor/roboto-fontface/fonts";
// Font weights
$thin-weight: 100;
$extralight-weight: 200;
$light-weight: 300;
$normal-weight: 400;
$medium-weight: 500;
$semibold-weight: 600;
$bold-weight: 700;
$extrabold-weight: 800;
$black-weight: 900;
// Tables
$table-cell-padding-y: .75rem;
$table-cell-padding-x: 1rem;
$table-cell-padding-y-sm: .3rem;
$table-cell-padding-x-sm: .3rem;
$table-group-separator-color: $gray-300;
// Dropdowns
$dropdown-padding-y: 0;
$dropdown-box-shadow: 0 1px 1px rgba($black, .15);
$dropdown-link-hover-color: var(--template-text-dark);
$dropdown-border-width: 1px;
$dropdown-item-padding-y: .5rem;
$dropdown-item-padding-x: .75rem;
$dropdown-spacer: 0;
// Cards
$card-border-width: 0;
$card-border-color: transparent;
// Alerts
$state-success-text: $success;
$state-success-bg: lighten($success, 58%);
$state-success-border: hsl(var(--hue),50%,93%);
$state-info-text: var(--template-bg-dark-70);
$state-info-bg: var(--body-bg);
$state-warning-text: darken($warning, 24%);
$state-warning-bg: lighten($warning, 44%);
$state-warning-border: $warning;
$state-danger-text: $danger;
$state-danger-bg: lighten($danger, 52%);
$state-danger-border: $danger;
$state-error-text: $danger;
$state-error-bg: lighten($danger, 52%);
$state-error-border: $danger;
// Badges
$badge-padding-x: .2rem;
$badge-padding-y: .3rem;
$badge-border-radius: .2rem;
$success-bg: $green;
$success-txt: $white;
$warning-bg: #f9d71c;
$warning-txt: #000;
$danger-bg: #900;
$danger-txt: #fff;
$info-bg: $gray-300;
$info-txt: $white;
// Input Group
$input-group-addon-color: var(--white);
$input-group-addon-bg: $base-color;
$input-group-addon-border-color: var(--template-bg-dark);
// Treeselect
$treeselect-line-height: 2.2rem;
$treeselect-indent: 40px;
$treeselect-line-color: var(--template-bg-dark-7);
// List
$list-group-border-color: var(--template-bg-dark-15);
$list-group-item-padding-y: .75rem;
// Buttons
$input-btn-padding-y-sm-submenu: 0;
$input-btn-padding-x-sm-submenu: 1.625rem;
$input-btn-submenu-icon-distance: 1rem;
// Custom form
$form-select-indicator-padding: 3rem;
$form-select-bg: var(--template-bg-light);
$form-select-bg-size: calc(max(100%, 116rem));
$form-select-indicator: url("../images/select-bg.svg");
$form-select-indicator-rtl: url("../images/select-bg-rtl.svg");
$form-select-indicator-active: url("../../../images/select-bg.svg");
$form-select-indicator-active-rtl: url("../../../images/select-bg-rtl.svg");
$form-select-background: $form-select-bg $form-select-indicator no-repeat right center / $form-select-bg-size; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
$form-select-background-rtl: $form-select-bg $form-select-indicator-rtl no-repeat left center / $form-select-bg-size; // Used so we can have multiple background elements (e.g., arrow and feedback icon)
$form-select-box-shadow: $atum-box-shadow;
$form-select-bg-size-sm: 75rem;
$form-select-multiple-padding-y: .3rem;
$form-file-button-color: var(--white);
// Input
$input-padding: .5rem 1rem;
$input-border-color: var(--template-bg-dark-20);
$input-focus-border-color: var(--focus);
$input-box-shadow: $atum-box-shadow;
$input-max-width: 100%;
$input-btn-focus-width: .2rem;
$input-btn-focus-color: var(--focus-shadow);
$input-btn-padding-y: .5rem;
$input-btn-padding-x: 1rem;
// Modals
$modal-header-height: 2.875rem;
// Quickicons
$quickicon-bg: var(--white);
$quickicon-box-shadow-success: 0 0 3px 0 var(--success);
$quickicon-box-shadow-danger: 0 0 3px 0 var(--danger);
$quickicon-box-shadow-warning: 0 0 3px 0 var(--warning);
$quickicon-icon-size: 2rem;
$quickicon-icon-size-sm: 1.3rem;
// Gutter
$grid-gutter-width: 2rem;
$grid-gutter-width-s: 15px;
// Breadcrumbs
$breadcrumb-bg: var(--white);
// Links
$link-color: $light-blue;
$link-hover-color: darken($light-blue, 20%);
$link-decoration: none;
// Z-Index list
$zindex-negative: -1;
$zindex-actions: auto;
$zindex-toolbar: 1000;
$zindex-sidebar: 1010;
$zindex-header: 1020;
$zindex-alerts: 1030;
$zindex-modal-backdrop: 1040;
$zindex-modal: 1050;
$zindex-popover: 1060;
$zindex-tooltip: 1070;
$zindex-mobile-bottom: 8000;
$zindex-mobile-toggle: 9999;
$zindex-mobile-menu: 9000;
// scss-docs-start border-radius-variables
$btn-border-radius: .25rem !default;
$border-radius: .25rem !default;
$border-radius-sm: .2rem !default;
$border-radius-lg: .3rem !default;
$border-radius-xl: .3rem !default;
$border-radius-2xl: .3rem !default;
// scss-docs-end border-radius-variables

View File

@ -0,0 +1,58 @@
// Alerts
.alert {
margin: 1rem 0;
border-right: 0;
border-left: 0;
border-radius: $border-radius-sm;
&.alert-info {
color: var(--template-bg-dark);
background-color: var(--template-bg-dark-10);
border: 1px solid var(--template-bg-dark-20);
}
&.alert-warning {
color: $state-warning-text;
background-color: $state-warning-bg;
border: 1px solid $state-warning-border;
}
&.alert-success {
color: $state-success-text;
background-color: $state-success-bg;
border: 1px solid $state-success-border;
}
&.alert-error {
color: $state-error-text;
background-color: $state-error-bg;
border: 1px solid $state-error-border;
}
}
.alert-parent {
margin-top: 0;
}
fieldset .alert {
&.alert-info {
margin: -1rem 0 1rem;
}
}
.alert-heading {
font-size: $h4-font-size;
}
@keyframes fadeIn {
from {
opacity: 0;
transform: translateY(-15px);
}
to {
opacity: 1;
transform: translateY(0);
}
}

View File

@ -0,0 +1,16 @@
:root {
--calendar-bg: var(--body-bg);
--calendar-week-bg: #f4f4f4;
--calendar-buttons-color: #495057;
--calendar-select-bg-color: #{$form-select-bg};
--calendar-select-color: var(--body-color);
}
@if $enable-dark-mode {
@include color-mode(dark, true) {
--calendar-week-bg: var(--gray-700);
--calendar-buttons-color: var(--template-bg-dark-20);
--calendar-select-bg-url: url("../../images/calendar-select-bg-dark.svg") /*rtl:url("../../images/calendar-select-bg-dark-rtl.svg")*/;
--calendar-select-bg-color: #{$form-select-bg-dark};
}
}

View File

@ -0,0 +1,23 @@
// Edit Form
.title-alias {
.form-control {
max-width: 100%;
}
.form-control-feedback {
position: absolute;
right: 1rem;
bottom: -1.8rem;
text-align: right;
}
}
.layout-edit {
.title-alias {
.form-group {
box-shadow: none;
}
}
}

View File

@ -0,0 +1,217 @@
// Form
.form-control {
max-width: $input-max-width;
&:disabled,
&[readonly] {
background-color: var(--gray-200);
opacity: 1;
}
@if $enable-dark-mode {
@include color-mode(dark) {
&:disabled,
&[readonly] {
background-color: var(--gray-800);
}
}
}
&:hover:not(:disabled):not([readonly])::-webkit-file-upload-button,
&:hover:not(:disabled):not([readonly])::file-selector-button {
background-color: var(--template-bg-dark-50);
}
&::placeholder {
font-size: .8rem;
font-style: italic;
}
&::-webkit-file-upload-button,
&::file-selector-button {
background-color: var(--template-bg-dark-70);
}
}
.control-group {
position: relative;
display: flex;
flex-wrap: wrap;
margin: 0 0 1rem;
> .form-check {
display: inline-block;
}
&::after {
display: table;
clear: both;
content: "";
}
.control-label {
width: 240px;
padding: .3rem 1rem .3rem 0;
}
.controls {
position: relative;
flex: 1;
min-width: 210px;
max-width: 100%;
+ div {
width: 100%;
margin: 5px 0 10px;
}
}
.form-vertical & {
flex-direction: column;
}
}
.stack .control-label {
width: 100%;
}
.spacer {
hr {
width: 380px;
}
}
td .form-control {
display: inline-block;
width: auto;
}
.checkboxes {
padding-top: 5px;
.checkbox input {
position: static;
margin-left: 0;
}
}
.form-check {
padding-top: 5px;
margin-bottom: 0;
}
.modal label {
width: 100%;
}
// Validation
.invalid {
color: var(--danger);
border-color: var(--danger);
}
.valid {
border-color: var(--success);
}
.form-control-feedback {
display: block;
}
[aria-grabbed="true"] {
box-shadow: $input-box-shadow;
}
.sortable-handler.inactive {
opacity: .3;
}
// set up hidden tooltip
[role="tooltip"]:not(.show) {
z-index: $zindex-tooltip;
display: none;
padding: .5em;
margin: .25em;
color: $white;
text-align: start;
background: $black;
border-radius: .2rem !important;
}
// reveal associated tooltip on focus
:focus + [role="tooltip"],
:hover + [role="tooltip"] {
position: absolute;
display: block;
}
.filter-search-bar__description {
bottom: 100%;
}
.container-popup .filter-search-bar__description {
top: 100%;
bottom: auto;
}
.input-group > .form-control[readonly] {
margin-right: 1px;
}
.form-group {
@extend .mb-3;
}
// Subform - non table layout
div.subform-repeatable-group {
position: relative;
padding: 32px 32px 16px 28px;
margin-top: 20px;
border: $input-border-width solid $input-border-color;
@include border-radius($border-radius);
> .btn-toolbar {
.btn-group {
position: static;
}
.btn {
position: absolute;
&.group-add {
right: -1px;
bottom: -1px;
border-radius: $border-radius 0 $border-radius 0;
}
&.group-remove {
top: -1px;
right: -1px;
border-radius: 0 $border-radius 0 $border-radius;
}
&.group-move {
top: 50%;
right: 100%;
padding: 0;
margin-top: -27px;
border-radius: $border-radius 0 0 $border-radius;
span {
padding: 1.5rem .5rem;
}
}
}
}
}
// Highlight draggable section
.subform-repeatable-group[draggable="true"] {
// For non table layout
background-color: $teal;
// For table layout
> td {
background-color: $teal;
}
}

View File

@ -0,0 +1,288 @@
// Global
html {
height: 100%;
&.a11y_font {
font-size: 18px;
}
}
body {
display: flex;
flex-direction: column;
min-height: 100%;
padding: 0;
margin: 0;
text-align: start;
&.admin {
background-color: var(--template-bg-dark-5);
}
@if $enable-dark-mode {
@include color-mode(dark) {
&.admin {
background-color: var(--template-bg-dark-90);
}
}
}
&.monochrome {
filter: grayscale(1);
&::after {
position: fixed;
top: 0;
left: 0;
z-index: -1;
width: 100%;
height: 100%;
content: "";
background: var(--template-bg-dark-5);
}
}
&.a11y_contrast {
filter: contrast(115%);
}
&.monochrome.a11y_contrast {
filter: grayscale(1) contrast(115%);
}
&.a11y_highlight {
a,
.header-item-content {
padding: 3px;
text-decoration: underline !important;
border: #f00 dotted 1px;
}
.joomlaversion {
padding: 0;
text-decoration: none !important;
border: none;
}
a.page-link {
padding: $pagination-padding-y $pagination-padding-x;
}
}
}
h1,
h2,
h3,
h4,
h5,
h6 {
font-weight: $font-weight-bold;
}
h1 {
font-weight: $font-weight-normal;
}
small,
.small {
font-size: $font-size-sm;
}
legend {
font-size: 1.2rem;
font-weight: $font-weight-bold;
}
// focus-visible polyfill rule
.js-focus-visible :focus:not(.focus-visible) {
outline: none;
}
// Default focus highlighting
a,
button,
input,
textarea {
&.focus-visible {
outline: auto 2px var(--focus);
}
}
// Break up text in cells to prevent overflow
.break-word {
word-break: break-all;
word-wrap: break-word;
}
label,
caption {
@include font-size($form-label-font-size);
text-align: start;
}
.logo {
img path {
fill: var(--template-text-dark);
}
}
.container-main,
.system-debug {
padding-bottom: 50px;
}
body .container-main {
order: 1;
position: relative;
padding-right: 0;
padding-left: 0;
}
.content {
padding: 1rem;
@include media-breakpoint-up(md) {
padding: 0 2rem;
.subhead + & {
padding-top: 0;
}
}
}
body:not(.contentpane) .main-card {
background: var(--body-bg);
border-radius: $border-radius;
box-shadow: $atum-box-shadow;
}
.row-selected {
background-color: var(--toolbar-bg);
}
// Multiple buttons wrapping
.input-group input {
min-width: 220px;
}
// Multilingual associations specific
.item-associations {
padding: 0;
}
.item-associations li {
display: inline-block;
margin-bottom: 3px;
list-style: none;
}
// Quickicon specific
.message-alert {
text-align: end !important;
}
// external links with icons
a[target="_blank"]::before {
padding-inline-end: 3px;
font-family: "Font Awesome 6 Free";
font-size: 14px;
font-weight: 900;
content: "\f35d";
}
#wrapper {
&.d-flex {
@include media-breakpoint-down(sm) {
display: block !important;
}
}
}
.text-muted {
color: var(--template-text-dark) !important;
opacity: .7;
}
@if $enable-dark-mode {
@include color-mode(dark) {
.text-muted {
color: var(--template-text-light) !important;
}
}
}
.card-columns {
display: grid;
grid-gap: 0 15px;
grid-template-columns: 1fr;
@include media-breakpoint-up(md) {
grid-template-columns: 1fr 1fr;
}
}
.cpanel-help,
.cpanel-system {
.card-columns {
@include media-breakpoint-up(md) {
grid-template-columns: 1fr 1fr 1fr;
}
}
}
.tiny {
@include font-size($form-label-font-size);
line-height: 1.4rem;
}
// details
details {
padding: .5rem 1rem;
margin: 0 0 2rem;
background: var(--template-bg-dark-3);
border: 1px solid var(--template-bg-dark-10);
border-radius: $border-radius;
summary {
color: var(--template-link-color);
~ * {
margin-top: 1rem;
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
details {
background: var(--template-bg-dark-90);
}
}
}
// meter element
meter {
width: 100%;
}
// Bootstrap 4 b/c
.sr-only {
@extend .visually-hidden;
}
// tab *+* border
@include media-breakpoint-up(md) {
joomla-tab[orientation=horizontal]:not([view=accordion]) {
section > .row {
--gutter-x: 4rem;
> * + * {
border-inline-start: 1px solid var(--template-bg-dark-10);
}
}
}
}

View File

@ -0,0 +1,229 @@
// Header
.header {
z-index: $zindex-header;
color: $white;
background: var(--template-bg-dark);
&-inside {
display: flex;
min-height: 54px;
}
a {
color: $white;
&:before {
display: none;
}
}
.logo {
display: flex;
flex-flow: row nowrap;
align-items: center;
width: $sidebar-width;
height: 100%;
padding: 12px 5px;
overflow: hidden;
background-color: var(--template-bg-dark-70);
transition: all .3s ease-in-out;
&.small {
justify-content: center;
width: $sidebar-width-closed;
transition: all .3s ease-in-out;
svg,
img {
&:not(.logo-collapsed) {
display: none;
}
&.logo-collapsed {
display: inline-block;
width: 20px;
height: 20px;
object-fit: contain;
object-position: center center;
}
}
}
svg,
img {
width: 150px;
height: 30px;
margin: 0 .35rem;
object-fit: contain;
object-position: left center;
&.logo-collapsed {
display: none;
}
}
}
.page-title {
padding: 0 1rem;
margin: 0;
overflow: hidden;
font-size: 1.2rem;
color: $white;
text-overflow: ellipsis;
white-space: nowrap;
> span {
margin-inline-end: .25rem;
}
}
.dropdown-menu {
font-size: .85rem;
}
.dropdown-header,
.dropdown-item {
padding: .82rem .75rem;
color: $white;
background-color: var(--template-bg-dark-70);
> span {
margin-inline-end: .5rem;
}
&:hover {
background-color: var(--template-bg-dark);
}
}
.dropdown-header {
padding: .75rem;
font-size: inherit;
background-color: var(--template-bg-dark);
}
}
.header-items {
align-items: center;
justify-content: flex-end;
width: 50%;
margin: 15px;
margin-inline-start: auto;
.dropdown-toggle {
background-color: transparent;
border: 0;
&::after {
display: none;
}
}
}
.header-item {
position: relative;
margin: 0 4px;
}
.header-item-content {
display: flex;
align-items: center;
line-height: 1rem;
color: $white;
background-color: var(--template-bg-dark-60);
border-radius: 22px;
padding-inline-end: 4px;
a,
button {
color: $white;
text-decoration: none;
}
a {
display: flex;
}
&:not(.no-link):not(.joomlaversion):hover {
background-color: var(--template-bg-dark-50);
}
&.joomlaversion {
color: var(--bluegray);
background-color: transparent;
.header-item-text {
padding-inline-end: 12px;
}
}
}
.header-item-icon {
> * {
display: flex;
align-items: center;
justify-content: center;
width: 28px;
min-width: 28px;
height: 28px;
margin: 4px;
color: $white;
background-color: var(--template-bg-dark);
border-radius: 16px;
}
span {
margin: 4px;
}
}
.header-item-count {
margin-inline-end: .5rem;
}
.header-item-text {
padding: 0 8px 0 4px;
font-size: .75rem;
white-space: nowrap;
}
.header-more-btn {
margin: 0 5px;
font-size: 1.7rem;
}
.header-dd-items {
.header-item-content {
background: transparent;
}
.header-item-text {
font-size: .75rem;
}
.dropdown-item {
padding: .5rem .75rem;
}
}
.header-dd-item {
padding: 3px 6px;
}
@include media-breakpoint-down(md) {
.header-items {
position: fixed;
bottom: 0;
flex-direction: row-reverse;
width: 100%;
padding: 10px 0;
margin: 0;
background: var(--template-bg-dark);
.#{$jicon-css-prefix}-angle-down,
.#{$fa-css-prefix}-angle-down {
transform: rotate(180deg);
}
}
}

View File

@ -0,0 +1,86 @@
// Icons
.#{$jicon-css-prefix}-white {
color: $white;
}
.tbody-icon {
padding: 0 3px;
text-align: center;
background-color: transparent;
border: 0;
[class^="#{$jicon-css-prefix}-"],
[class*=" #{$jicon-css-prefix}-"],
[class^="#{$fa-css-prefix}-"],
[class*=" #{$fa-css-prefix}-"] {
width: 26px;
height: 26px;
font-size: 1rem;
line-height: 22px;
color: $gray-400;
border: 2px solid var(--border);
border-radius: 50%;
}
.#{$jicon-css-prefix}-publish,
.#{$jicon-css-prefix}-check,
.#{$fa-css-prefix}-check {
color: var(--success);
border-color: var(--success);
}
.#{$jicon-css-prefix}-home,
.#{$jicon-css-prefix}-color-featured,
.#{$jicon-css-prefix}-star.featured,
.#{$fa-css-prefix}-star.featured {
color: $warning;
border-color: $warning;
}
.#{$jicon-css-prefix}-folder,
.#{$fa-css-prefix}-folder {
color: var(--template-text-dark);
border-color: $gray-700;
}
.#{$jicon-css-prefix}-checkedout,
.#{$jicon-css-prefix}-lock,
.#{$fa-css-prefix}-lock {
width: auto;
height: auto;
font-size: 1.2rem;
line-height: 1rem;
color: var(--template-text-dark);
border: 0;
}
&.home-disabled,
&.featured-disabled,
&.color-featured-disabled,
&.#{$jicon-css-prefix}-star-disabled,
&.#{$fa-css-prefix}-star-disabled {
cursor: not-allowed;
opacity: 1;
}
&.disabled .#{$jicon-css-prefix}-home,
&.disabled .#{$fa-css-prefix}-home {
color: $state-warning-bg;
border-color: $state-warning-bg;
}
}
// WebAuthn
.plg_system_webauthn_login_button svg {
width: 30px;
margin: 4px;
}
.plg_system_webauthn_login_button svg path, .plg_system_webauthn_login_button svg circle {
fill: var(--white);
}
.badge > span {
margin-inline-end: .5rem;
}

View File

@ -0,0 +1,9 @@
// Iframe
iframe {
border: 0;
}
.modal iframe {
width: 100%;
}

View File

@ -0,0 +1,33 @@
.options-form {
width: 100%;
padding: 1vw 2vw;
margin-bottom: 1rem;
color: var(--template-text-dark);
border: 1px solid var(--template-bg-dark-20);
> legend {
float: none;
width: auto;
padding: 0 1rem;
font-weight: $font-weight-bold;
color: var(--template-text-dark);
background-color: var(--body-bg);
}
@if $enable-dark-mode {
@include color-mode(dark) {
> legend {
color: var(--template-text-light);
}
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.options-form {
color: var(--template-text-light);
}
}
}

View File

@ -0,0 +1,9 @@
#content {
form {
.name {
&.break-word {
word-break: break-word;
}
}
}
}

View File

@ -0,0 +1,266 @@
// Login page
.view-login,
.task-logout {
.container-main {
order: 1;
@include media-breakpoint-down(md) {
display: flex;
flex-wrap: wrap;
align-items: center;
justify-content: center;
min-height: calc(100vh - 35vh);
}
#content {
@include media-breakpoint-down(md) {
max-width: 98%;
padding: 0;
}
}
}
.login {
width: 100%;
max-width: 25rem;
padding: 30px;
margin: 1rem;
color: var(--template-text-dark);
background: var(--body-bg);
border-radius: 10px;
box-shadow: 0 4px 20px -10px var(--template-bg-dark-50);
@include media-breakpoint-down(lg) {
margin-bottom: 3rem;
}
img {
width: auto;
max-height: 4.4rem;
}
.logo {
padding: 0 20px 20px;
}
svg.joomla-logo {
width: 2.4rem;
height: 4.4rem;
background-size: 4.4rem 2.4rem;
path {
fill: var(--template-bg-dark);
}
}
&-watermark {
position: absolute;
z-index: -1;
max-width: 500px;
transform: rotate(12deg) translate(40%, 10%);
}
}
.form-group {
position: relative;
margin-bottom: 1.85rem;
label {
span {
font-size: ($font-size-base * .9);
@include media-breakpoint-down(sm) {
width: 100%;
}
}
}
.form-control-feedback {
position: absolute;
inset-inline-end: 0;
bottom: -1.5rem;
font-size: ($font-size-base * .75);
text-align: end;
}
.form-control-hint {
position: absolute;
top: .1rem;
inset-inline-end: 0;
font-size: ($font-size-base * .75);
text-align: end;
}
}
input:focus,
select:focus {
box-shadow: inset 0 0 1px 1px var(--template-contrast);
}
h1 {
margin-bottom: .25rem;
color: $white;
text-align: center;
}
h2 {
font-weight: $font-weight-normal;
color: var(--template-bg-dark-10);
}
.btn {
@include media-breakpoint-only(xs) {
padding: 8px 10px;
font-size: ($font-size-base * .875);
}
}
.form-control,
.form-select {
max-width: none;
}
.sidebar-wrapper,
.header .logo {
flex: 1 0 400px;
}
.sidebar-wrapper {
display: flex;
flex-direction: column;
max-width: none;
background-color: var(--template-sidebar-bg);
@include media-breakpoint-down(md) {
order: 2;
margin-bottom: 3rem;
}
.main-brand {
margin-bottom: auto;
a {
font-size: ($font-size-base * .875);
}
}
.card-header {
font-size: ($font-size-base * 1.125);
color: $white;
}
}
#sidebar {
align-self: flex-end;
width: 100%;
font-size: ($font-size-base * .875);
--body-color: var(--template-text-light);
color: var(--template-text-light);
text-align: center;
.card {
background: rgba(0, 0, 0, .1);
box-shadow: none;
.module-body {
padding: .75rem 1.25rem;
}
}
@include media-breakpoint-down(md) {
position: relative;
bottom: 0;
}
}
.container-main,
.sidebar-wrapper {
@include media-breakpoint-down(md) {
flex: 1 0 100% !important;
max-width: 100% !important;
min-height: auto;
}
}
.wrapper {
display: flex;
@include media-breakpoint-down(md) {
flex-direction: column;
}
}
.header {
display: flex;
.logo {
&.small {
line-height: 2.5rem;
}
}
@include media-breakpoint-down(md) {
background: var(--template-bg-dark-70);
}
}
}
label {
color: $darkblue;
}
@if $enable-dark-mode {
@include color-mode(dark) {
label {
color: var(--white);
}
}
}
.com_login .sidebar-wrapper .main-brand {
flex: 1;
flex-basis: auto;
margin-top: 100px;
text-align: center;
@include media-breakpoint-down(md) {
margin-top: 10px;
}
}
.com_login .sidebar-wrapper #sidebar p {
margin-bottom: .2rem;
}
.com_login .sidebar-wrapper .main-brand a,
.com_login .sidebar-wrapper #sidebar,
.com_login .sidebar-wrapper #sidebar a {
color: var(--template-text-light);
}
.view-login {
#wrapper.d-flex {
@include media-breakpoint-down(md) {
display: flex !important;
}
}
#sidebar-wrapper:not(.show):not(.collapse) {
@include media-breakpoint-down(md) {
display: block;
}
}
.invalid .form-control-feedback {
color: var(--danger);
}
}
.login_message {
margin: 1rem 1rem 0;
}

View File

@ -0,0 +1,349 @@
// Modals
.modal {
.btn {
padding: 0 22px;
margin-inline-end: .5rem;
font-size: 1rem;
line-height: 2.3rem;
color: var(--template-text-dark);
background: var(--white);
border-color: var(--whiteoffset);
box-shadow: 1px 1px 1px 0 rgba(0, 0, 0, .25);
}
.btn-primary:not([href]),
.btn-success:not([href]),
.btn-danger:not([href]),
.btn-secondary:not([href]) {
color: var(--template-text-dark);
background: var(--white);
border: 1px solid var(--template-text-dark);
}
.btn-primary:not([href]) {
&:hover,
&:focus {
color: var(--white);
background: var(--primary);
border-color: var(--primary);
}
}
.btn-secondary:not([href]) {
&:hover,
&:focus {
color: var(--white);
background: var(--secondary);
border-color: var(--secondary);
}
}
.btn-success:not([href]) {
&:hover,
&:focus {
color: var(--white);
background: var(--success);
border-color: var(--success);
}
}
.btn-danger:not([href]) {
&:hover,
&:focus {
color: var(--white);
background: var(--danger);
border-color: var(--danger);
}
}
.btn.btn-danger {
[class^="#{$jicon-css-prefix}-"],
[class*=" #{$jicon-css-prefix}-"],
[class^="#{$fa-css-prefix}-"],
[class*=" #{$fa-css-prefix}-"],
span {
display: inline-block;
width: 2.375rem;
height: 100%;
margin: 0 16px;
margin-inline-start: -22px;
line-height: 2.375rem;
color: hsla(0, 0%, 100%, .9);
background-color: var(--danger);
}
}
.btn.btn-success {
[class^="#{$jicon-css-prefix}-"],
[class*=" #{$jicon-css-prefix}-"],
[class^="#{$fa-css-prefix}-"],
[class*=" #{$fa-css-prefix}-"],
span {
display: inline-block;
width: 2.375rem;
height: 100%;
margin: 0 16px;
margin-inline-start: -22px;
line-height: 2.375rem;
color: hsla(0, 0%, 100%, .9);
background-color: var(--success);
}
}
}
.modal-header {
padding: 0 15px;
}
.modal-body {
overflow-y: initial;
}
.modal-title {
font-weight: $font-weight-normal;
line-height: $modal-header-height;
}
.contentpane {
padding: 20px;
}
// Changelog
.changelog {
text-align: start !important;
&__item {
display: flex;
border-bottom: 1px solid $table-border-color;
@include media-breakpoint-down(md) {
flex-direction: column;
}
}
&__tag {
flex: 1 0 180px;
max-width: 180px;
padding: 10px 15px;
text-align: end;
background: darken($gray-100, 2.5%);
border-right: 1px solid $table-border-color;
.badge {
border-radius: .2rem;
&.badge-jlanguage {
background-color: $white;
}
}
@include media-breakpoint-down(md) {
flex: 1 0 auto;
max-width: 100%;
text-align: left;
border-right: 0;
border-bottom: 1px solid $table-border-color;
}
}
&__list {
padding: 10px 15px;
ul {
padding-inline-start: 15px;
margin-bottom: 0;
}
li {
margin-bottom: .15rem;
&:last-of-type {
margin-bottom: 0;
}
}
}
}
// Styling for joomla-dialog element
joomla-dialog {
dialog {
width: 96vw;
max-width: 1700px;
height: 96vh;
padding: 0;
border: 1px solid var(--border-color-translucent);
border-radius: .3rem;
box-shadow: 0 .5rem 1rem rgba(0, 0, 0, .15);
@include media-breakpoint-up(xxl) {
width: 80vw;
height: 80vh;
}
// Override display to flex, to scale the content to full height
&[open] {
display: flex;
}
}
&[type="image"] {
dialog {
width: fit-content;
height: fit-content;
}
}
&[type="iframe"] {
dialog {
overflow: hidden;
}
}
iframe.iframe-content {
width: 100%;
height: 100%;
}
// Extra loading animation for iframe and ajax types
&[type="iframe"],
&[type="ajax"] {
&.loading {
dialog:after {
position: absolute;
top: 50%;
left: 50%;
display: block;
width: 66px;
height: 66px;
content: "";
background: url("../../../../system/images/ajax-loader.gif") no-repeat center;
transform: translate(-50%, -50%);
}
}
}
}
// Dialog animation
joomla-dialog dialog[open] {
animation: dialog-show .4s ease normal;
@media (prefers-reduced-motion: reduce) {
animation: none;
}
}
@keyframes dialog-show {
0% {
opacity: 0;
transform: translateY(-50px);
}
30% {
opacity: 1;
}
100% {
transform: translateY(0);
}
}
// Dialog elements
.joomla-dialog-container {
position: relative;
box-sizing: border-box;
display: flex;
flex-flow: column;
width: 100%;
.buttons-holder {
display: flex;
align-items: center;
justify-content: flex-end;
margin-inline-start: auto;
button {
margin-inline: .375rem;
}
}
}
.joomla-dialog-header {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 1rem;
border-bottom: 1px solid var(--border-color);
h3 {
margin: 0;
}
.header-icon {
margin-inline-end: .375rem;
font-size: $h3-font-size;
}
&.empty {
display: none;
}
}
.joomla-dialog-body {
position: relative;
box-sizing: border-box;
flex: 1 1 auto;
.buttons-holder {
position: absolute;
top: 1rem;
right: 1rem;
}
// Apply overflow for potentially large content
joomla-dialog[type="inline"],
joomla-dialog[type="ajax"] & {
overflow: auto;
}
// Content basic loading animation
joomla-dialog.loading & {
opacity: 0;
}
joomla-dialog.loaded & {
opacity: 1;
transition: opacity .4s ease;
}
}
.joomla-dialog-footer {
position: relative;
padding: 1rem;
border-top: 1px solid var(--border-color);
.buttons-holder button {
padding-inline: 22px;
}
&.empty {
display: none;
}
}
// Dialog alert and confirm
.joomla-dialog-alert,
.joomla-dialog-confirm {
dialog {
width: 600px;
max-width: 80vw;
height: fit-content;
}
.joomla-dialog-body {
padding: 1rem;
}
}
// Dialog for content select field
.joomla-dialog-content-select-field {
dialog {
@include media-breakpoint-up(xxl) {
width: 90vw;
height: 90vh;
}
}
}

View File

@ -0,0 +1,173 @@
// Quick Icons
.quick-icons {
background-color: var(--body-bg);
.nav {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(190px, 1fr));
grid-gap: 1rem;
}
a {
text-decoration: none;
}
ul {
padding: 0;
}
.quickicon {
--text-color: var(--template-quickicon-color);
--bg-color: hsl(var(--hue), 60%, 97%);
--icon-color: var(--template-quickicon-color);
--bg-color-hvr: var(--template-bg-dark);
display: flex;
flex-grow: 1;
a {
display: flex;
flex-direction: column;
flex-grow: 1;
justify-content: flex-end;
padding: 0 1rem;
color: var(--text-color);
background-color: var(--bg-color);
transition: all .25s ease;
.quickicon-icon {
margin-top: .5rem;
margin-inline-start: .2rem;
> * {
font-size: $quickicon-icon-size;
color: var(--icon-color);
}
}
.quickicon-name {
padding: .125rem 0 .6rem;
font-size: $display2-size;
font-weight: bold;
}
.quickicon-amount {
padding: .25rem .5rem;
font-weight: $bold-weight;
line-height: 1rem;
background: hsl(var(--hue),50%,93%);
border-radius: $border-radius;
transition: all .25s ease;
margin-inline-start: .5rem;
@if $enable-dark-mode {
/* stylelint-disable max-nesting-depth */
@include color-mode(dark) {
/* stylelint-enable max-nesting-depth */
color: var(--template-bg-dark-80);
}
}
}
.j-links-link {
display: block;
padding: 0 .2rem;
line-height: 1.1;
}
&:hover,
&:focus,
&:active {
color: $white;
text-decoration: none;
background: var(--bg-color-hvr);
.quickicon-amount {
background: var(--icon-color);
}
}
&.warning,
&.danger {
--text-color: var(--danger);
--bg-color: #f4f0f0;
--icon-color: #ce8484;
--bg-color-hvr: var(--danger);
}
&.success {
--text-color: var(--success);
--bg-color: #f3f9f3;
--icon-color: #55a258;
--bg-color-hvr: var(--success);
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.quickicon {
--bg-color: var(--template-bg-dark-80);
--bg-color-hvr: var(--template-bg-dark-65);
}
}
}
.quickicon-info {
display: flex;
align-items: flex-end;
}
.quickicon-linkadd {
width: 2.5rem;
font-size: 1.2rem;
background: hsl(var(--hue),50%,93%);
transition: all .25s ease;
a {
align-items: flex-end;
justify-content: center;
width: 100%;
> * {
margin-bottom: 10px;
color: var(--template-quickicon-color);
}
@if $enable-dark-mode {
@include color-mode(dark) {
/* stylelint-disable max-nesting-depth */
> * {
/* stylelint-enable max-nesting-depth */
color: var(--template-bg-dark-80);
}
}
}
&:hover,
&:focus,
&:active {
background: var(--template-bg-dark);
* {
color: $white;
}
}
}
}
.quickicon-single,
.quickicon-group {
display: flex;
min-height: 6rem;
overflow: hidden;
border: 1px solid hsl(var(--hue),50%,93%);
border-radius: 4px;
}
}
#content .menu-quicktask {
position: absolute;
inset-inline-end: 1.25rem;
}

View File

@ -0,0 +1,20 @@
.shepherd-element, .shepherd-arrow:before {
background-color: var(--body-bg) !important;
}
.shepherd-text, .shepherd-title {
color: var(--body-color) !important;
}
@if $enable-dark-mode {
@include color-mode(dark) {
.shepherd-has-title .shepherd-content .shepherd-header, .shepherd-element.shepherd-has-title[data-popper-placement^=bottom]>.shepherd-arrow:before {
background-color: var(--dark-bg-subtle) !important;
}
// Matches the bootstrap color on hover for btn-close
.shepherd-has-title .shepherd-content .shepherd-cancel-icon:hover {
filter: $btn-close-white-filter !important;
}
}
}

View File

@ -0,0 +1,45 @@
// Sidebar
.sidebar-nav {
padding: 1rem 2rem;
li {
font-size: .9rem;
font-weight: $font-weight-bold;
&.divider {
margin: .3rem 0;
}
a {
display: block;
padding: .25rem;
font-weight: $font-weight-normal;
color: var(--template-text-dark);
text-decoration: none;
&::before {
margin-inline-end: .5rem;
font-family: "Font Awesome 6 Free";
font-weight: 900;
content: "\f054" #{"/*!rtl:\"\f053\"*/"};
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
a {
color: var(--template-text-light);
}
}
}
&.item:hover, &.active {
background-color: var(--template-bg-dark-60);
a {
color: var(--template-text-light);
}
}
}
}

View File

@ -0,0 +1,285 @@
// Sidebar
.sidebar-wrapper {
z-index: $zindex-sidebar;
min-height: calc(100vh - 66px);
overflow: hidden;
background-color: var(--template-sidebar-bg);
box-shadow: 0 0 20px -10px var(--template-bg-dark-50);
.sidebar-sticky {
position: sticky;
top: 0;
}
.item {
position: relative;
display: flex;
flex-wrap: wrap;
list-style-type: none;
a,
.menu-dashboard,
.menu-quicktask {
color: $white;
text-decoration: none;
&:hover {
color: var(--template-text-light);
text-decoration: none;
background-color: var(--template-bg-dark-65);
}
}
> a {
position: relative;
display: flex;
flex-grow: 1;
align-items: center;
min-height: 40px;
[class^="#{$jicon-css-prefix}-"],
[class*=" #{$jicon-css-prefix}-"],
[class^="#{$fa-css-prefix}-"],
[class*=" #{$fa-css-prefix}-"] {
margin: 0 .85rem;
transform: scale(1.2);
}
}
&-level-2 > a {
padding-inline-start: 3rem;
}
&-level-3 > a {
padding-inline-start: 3.75rem;
}
}
@include media-breakpoint-up(sm) {
flex: 1 0 $sidebar-width;
max-width: $sidebar-width;
transition: all .3s ease-in-out;
}
@include media-breakpoint-down(sm) {
&.sidebar-menu {
top: auto;
}
}
.sidebar-toggle {
background: var(--template-bg-dark-60);
a {
color: $white;
}
.sidebar-item-title {
white-space: nowrap;
}
}
}
// Sidebar navigation
.main-nav {
width: $sidebar-width;
padding: 0;
font-size: .95rem;
@include media-breakpoint-down(sm) {
width: 100%;
}
// All list items
li {
.menu-dashboard,
.menu-quicktask {
> a {
display: inline-flex;
align-items: center;
justify-content: center;
width: 40px;
height: 100%;
}
}
}
// 2nd level items
ul {
width: 100%;
padding: 0;
background-color: var(--template-bg-dark-75);
}
.divider {
height: 1px;
margin: 0 0 0 48px;
list-style: none;
background-color: var(--template-bg-dark-60);
}
.menuitem-group {
margin-top: .65rem;
font-size: .75rem;
padding-inline-start: 3rem;
.sidebar-item-title {
color: var(--template-bg-dark-30);
}
}
// Dropdown indicator
.has-arrow {
.sidebar-item-title {
margin-inline-end: auto;
}
&::after {
display: flex;
align-items: center;
justify-content: center;
width: 2rem;
font-family: "Font Awesome 6 Free";
font-weight: 900;
content: "\f054" #{"/*!rtl:\"\f053\"*/"};
}
}
a.mm-active {
background-color: var(--template-bg-dark-70);
}
a.mm-active + .menu-quicktask {
background-color: var(--template-bg-dark-60);
}
.mm-active > .has-arrow::after {
content: "\f078";
}
.mm-collapse {
display: none;
&.mm-collapsed,
&.mm-show {
display: block;
}
}
.mm-collapsing {
position: relative;
height: 0;
overflow: hidden;
transition: all .35s ease;
}
.badge {
align-self: center;
margin: 0 .3rem .25rem;
background-color: var(--template-bg-dark-60);
}
}
// Sidebar Closed
.closed {
.sidebar-wrapper {
flex: 1 0 $sidebar-width-closed;
max-width: $sidebar-width-closed;
overflow: visible;
}
.sidebar-item-title,
.has-arrow::after,
.menu-dashboard {
display: none;
}
.main-nav,
.main-nav li {
max-width: 3rem;
}
.main-nav a:hover {
position: relative;
max-width: 3rem;
}
.main-nav a:hover .sidebar-item-title {
position: absolute;
inset-inline-start: 100%;
display: flex;
align-items: center;
height: 100%;
padding: 0 1rem;
white-space: nowrap;
pointer-events: none;
background-color: var(--template-bg-dark-60);
border-end-start-radius: 0;
border-end-end-radius: $border-radius;
border-start-end-radius: $border-radius;
border-start-start-radius: 0;
}
.main-nav > li > ul {
height: 0;
padding: 0;
visibility: hidden;
}
}
@include media-breakpoint-up(sm) {
.toggler-burger {
display: none;
}
}
// Mobile
@include media-breakpoint-down(sm) {
#menu-collapse {
display: none;
background: var(--template-bg-dark-50);
}
.toggler-burger {
position: fixed;
right: 0;
bottom: 0;
z-index: $zindex-mobile-toggle;
padding: 10px 15px;
&:focus {
box-shadow: none;
}
.navbar-toggler-icon::before {
display: inline-block;
font: normal normal 900 28px/1 "Font Awesome 6 Free";
color: var(--toggle-color);
content: "\f00d";
}
&.collapsed {
.navbar-toggler-icon::before {
content: "\f0c9";
}
}
}
.sidebar-menu {
display: none;
&.show,
&.collapsing {
position: fixed;
bottom: 55px;
z-index: $zindex-mobile-menu;
display: block;
width: 100%;
min-height: auto;
max-height: calc(100vh - 72px);
overflow-y: auto;
}
}
}

View File

@ -0,0 +1,22 @@
.switcher {
.toggle-outside {
border: $input-border-width solid $input-border-color;
@include border-radius($input-border-radius, 0);
&:focus {
box-shadow: $input-box-shadow;
}
}
input:focus ~ .toggle-outside {
border-color: $input-focus-border-color;
@if $enable-shadows {
@include box-shadow($input-box-shadow, $input-focus-box-shadow);
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $input-focus-box-shadow;
}
}
}
.disabled {
opacity: $btn-disabled-opacity;
}

View File

@ -0,0 +1,249 @@
.subhead {
position: sticky;
top: 0;
right: 0;
left: 0;
z-index: $zindex-toolbar;
width: auto;
min-height: 43px;
padding: 8px 1rem;
color: var(--template-text-dark); //#0c192e;
background: $white;
background-image: linear-gradient(var(--toolbar-bg), var(--template-bg-dark-3));
box-shadow: $atum-box-shadow;
.row {
margin-right: 0;
margin-left: 0;
}
&.noshadow {
box-shadow: none;
}
joomla-toolbar-button,
.btn-group {
margin-inline-start: .75rem;
&:first-child {
margin-inline-start: 0;
}
}
joomla-toolbar-button {
.btn > span,
.dropdown-item > span {
margin-inline-end: .5rem;
width: 1.25em;
text-align: center;
}
}
.btn {
--subhead-btn-accent: var(--template-text-dark);
padding: 0 1rem;
margin: 5px 0;
font-size: 1rem;
line-height: $atum-toolbar-line-height;
color: var(--template-text-dark);
background: var(--body-bg);
border-color: hsl(var(--hue),20%,80%);
> span {
display: inline-block;
color: var(--subhead-btn-accent);
}
&:not([disabled]):hover,
&:not([disabled]):active,
&:not([disabled]):focus {
color: rgba(255, 255, 255, .9);
background-color: var(--subhead-btn-accent);
border-color: var(--subhead-btn-accent);
> span {
color: rgba(255, 255, 255, .9);
}
}
&.btn-success {
--subhead-btn-accent: var(--success);
}
&.btn-danger {
--subhead-btn-accent: var(--danger);
}
&.btn-primary {
--subhead-btn-accent: var(--template-link-color);
}
&.btn-secondary {
--subhead-btn-accent: var(--template-special-color);
}
&.btn-info {
--subhead-btn-accent: var(--template-bg-dark);
}
@if $enable-dark-mode {
@include color-mode(dark) {
&.btn-info {
--subhead-btn-accent: var(--template-bg-light);
/* stylelint-disable max-nesting-depth */
&:hover, &:focus, &:active {
/* stylelint-enable max-nesting-depth */
--subhead-btn-accent: var(--template-bg-dark-60);
}
}
}
}
&.btn-action {
--subhead-btn-accent: var(--template-bg-dark);
display: flex;
align-items: center;
&::after {
width: 2.375rem;
font-family: "Font Awesome 6 Free";
font-weight: 900;
content: "\f078";
border: 0;
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
&.btn-action {
--subhead-btn-accent: var(--template-bg-light);
/* stylelint-disable max-nesting-depth */
&:hover, &:focus, &:active {
/* stylelint-enable max-nesting-depth */
--subhead-btn-accent: var(--template-bg-dark-60);
}
}
}
}
&[disabled],
&.dropdown-toggle[disabled] {
--subhead-btn-accent: var(--template-bg-dark);
background: rgba($gray-300, .8);
opacity: .5;
&:hover,
&:active,
&:focus {
cursor: not-allowed;
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.btn {
--subhead-btn-accent: var(--template-text-light);
color: var(--template-text-light);
}
}
}
.dropdown-toggle {
&.btn {
padding-inline-end: 0;
}
}
.btn-group:not(:last-child) > .dropdown-toggle-split {
order: 1;
margin-inline-start: -$border-radius;
border-radius: 0 $border-radius $border-radius 0;
}
.dropdown-menu joomla-toolbar-button,
.btn-group joomla-toolbar-button {
margin-inline-start: 0;
}
.contentpane & {
margin: -15px -15px 0;
background-image: none;
border-bottom: 1px solid var(--template-bg-dark-7);
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.subhead {
background-color: var(--body-bg);
background-image: linear-gradient(var(--body-bg), var(--dark-bg));
}
}
}
@include media-breakpoint-down(sm) {
joomla-tab[view=accordion] .col-md-9,
joomla-tab[view=accordion] .col-md-3 {
padding: .5rem 1rem !important;
}
#myTab {
margin-top: 1rem;
margin-bottom: 1.5rem;
}
joomla-tab[view=accordion] ul li {
width: 100%;
}
.toggler-toolbar {
top: 0;
bottom: auto;
z-index: $zindex-alerts;
padding: 7px 10px;
margin: 5px;
background-color: var(--template-bg-dark);
border-radius: 30px;
.toggler-toolbar-icon::before {
font: normal normal 900 28px/1 "Font Awesome 6 Free";
color: var(--toggle-color);
content: "\f00d";
}
&.collapsed .toggler-toolbar-icon::before {
content: "\f085";
}
}
.subhead {
padding-right: 0;
padding-left: 0;
joomla-toolbar-button,
.btn-group,
.btn {
width: 100%;
margin-left: 0;
text-align: left;
}
.btn-toolbar > .btn-group,
.btn-toolbar > joomla-toolbar-button {
margin-left: 0;
}
.btn.btn-action::after {
text-align: center;
margin-inline-start: auto;
}
.dropdown-toggle-split {
width: auto;
}
}
}

View File

@ -0,0 +1,139 @@
// Tree select
.treeselect {
display: block;
padding-left: 0;
list-style: none;
.nav-header {
font-weight: $font-weight-bold;
color: var(--template-bg-dark);
}
@if $enable-dark-mode {
@include color-mode(dark) {
.nav-header {
color: var(--body-color);
}
}
}
li {
position: relative;
display: block;
line-height: $treeselect-line-height;
list-style: none;
&::before {
position: absolute;
top: 14px;
inset-inline-start: ($treeselect-indent - 15px);
width: 10px;
height: 1px;
margin: auto;
content: "";
background-color: $treeselect-line-color;
}
&::after {
position: absolute;
top: 0;
bottom: 0;
inset-inline-start: ($treeselect-indent - 15px);
width: 1px;
height: 100%;
content: "";
background-color: $treeselect-line-color;
}
&:last-child {
&::after {
height: 14px;
}
}
li {
padding-inline-start: $treeselect-indent;
}
}
> li::before,
> li::after {
display: none;
}
.#{$jicon-css-prefix}-,
.#{$fa-css-prefix}- {
display: none;
}
.treeselect-toggle {
display: inline-block;
padding: 0;
margin-right: .1rem;
text-align: center;
cursor: pointer;
}
.treeselect-menu {
display: inline-block;
}
.treeselect-item {
display: inline-block;
input {
position: relative;
top: 1px;
margin-right: .2rem;
}
label {
margin-bottom: 0;
}
}
.dropdown-toggle {
padding: 0 .5rem .3rem;
margin-left: .5rem;
&::after {
margin-left: 0;
font-size: 1rem;
color: var(--template-text-dark);
}
}
}
.treeselect-sub {
padding-left: 0;
}
.tree-holder {
ul ul {
li::before,
li::after {
inset-inline-start: 8px;
display: block;
}
li::before {
top: 12px;
}
li:last-child::after {
height: 12px;
}
}
li {
line-height: 1.8rem;
li {
padding-inline-start: 20px;
}
}
}

View File

@ -0,0 +1,193 @@
// Utilities
* {
box-sizing: border-box;
}
// Keep B/C
.element-invisible {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
overflow: hidden;
clip: rect(0, 0, 0, 0);
white-space: nowrap;
border: 0;
clip-path: inset(50%);
}
.hidden {
display: none;
}
.table-row {
display: table-row;
}
// Form Grid
.form-grid {
--span-1: span 1;
--span-2: span 1;
--span-3: span 1;
--span-4: span 1;
--span-5: span 1;
display: grid;
grid-template-columns: repeat(1, 1fr);
grid-gap: 1rem;
@include media-breakpoint-up(sm) {
--span-2: span 2;
--span-3: span 2;
--span-4: span 2;
--span-5: span 2;
grid-template-columns: repeat(2, 1fr);
}
@include media-breakpoint-up(xxl) {
--span-3: span 3;
--span-4: span 4;
--span-5: span 5;
grid-template-columns: repeat(6, 1fr);
}
> * {
grid-column: 1 / -1;
}
.stack {
flex-direction: column;
}
.span-1 {
grid-column: 1 / var(--span-1);
&-inline {
grid-column: var(--span-1);
}
}
.span-2 {
grid-column: 1 / var(--span-2);
&-inline {
grid-column: var(--span-1);
@include media-breakpoint-up(xxl) {
grid-column: var(--span-2);
}
}
}
.span-3 {
grid-column: 1 / var(--span-3);
&-inline {
grid-column: var(--span-3);
}
}
.span-4 {
grid-column: 1 / var(--span-4);
&-inline {
grid-column: var(--span-4);
}
}
.span-5 {
grid-column: 1 / var(--span-5);
&-inline {
grid-column: var(--span-5);
}
}
@include media-breakpoint-up(lg) {
.offset-1 {
grid-column-start: 2;
}
.offset-2 {
grid-column-start: 3;
}
.offset-3 {
grid-column-start: 4;
}
.offset-4 {
grid-column-start: 5;
}
.offset-5 {
grid-column-start: 6;
}
}
}
// Sizing
.w-1 {
width: 1%;
}
.w-3 {
width: 3%;
}
.w-5 {
width: 5%;
}
.w-6 {
width: 6%;
}
.w-7 {
width: 7%;
}
.w-10 {
width: 10%;
}
.w-12 {
width: 12%;
}
.w-15 {
width: 15%;
}
.w-20 {
width: 20%;
}
.w-30 {
width: 30%;
}
.w-35 {
width: 35%;
}
.w-40 {
width: 40%;
}
.w-60 {
width: 60%;
}
.w-80 {
width: 80%;
}
.editor-xtd-buttons .btn {
margin-bottom: 5px;
}

View File

@ -0,0 +1,22 @@
// com_config
.com_config {
#fieldset-permissions {
grid-template-columns: 1fr;
}
#page-filters .form-select {
width: auto;
}
.tab-description {
grid-column: 1 / -1;
}
.options-menu {
.revert-controls .controls {
margin-inline-start: 0;
}
}
}

View File

@ -0,0 +1,31 @@
.com_content.layout-edit {
joomla-field-media .field-media-preview {
height: 10.25rem;
}
joomla-tab {
#attrib-basic[active],
#editor[active] {
display: flex;
flex-wrap: wrap;
.form-group {
flex: 0 0 50%;
max-width: 50%;
box-shadow: none;
&:nth-child(1),
&:nth-child(19) {
flex: 0 0 100%;
max-width: 100%;
}
}
.field-spacer {
flex: 0 0 100%;
max-width: 100%;
}
}
}
}

View File

@ -0,0 +1,172 @@
// com_cpanel
.com_cpanel {
.content {
margin-top: 2rem;
}
.card {
p:last-child {
margin-bottom: 0;
}
.list-group,
.table {
padding: 0;
margin-bottom: unset;
border-top: 1px solid var(--border-color);
}
}
.card-header {
--card-bg: hsla(0, 0%, 100%, .7);
.btn {
margin-top: .25em;
margin-bottom: .25em;
}
}
.card-body {
padding: 0;
overflow: hidden;
border-bottom-right-radius: $border-radius;
border-bottom-left-radius: $border-radius;
}
.module-actions {
order: 1;
margin-inline-start: auto;
> * {
padding: 0;
color: var(--template-bg-dark-70);
}
@if $enable-dark-mode {
@include color-mode(dark) {
> * {
color: var(--body-color);
}
}
}
}
.cpanel-add-module {
display: flex;
flex-direction: column;
align-items: flex-start;
justify-content: flex-end;
width: 100%;
min-height: 130px;
padding: 0 1rem;
font-size: .875rem;
font-weight: 700;
line-height: 1;
color: var(--template-quickicon-color);
background-color: var(--body-bg);
border: 1px solid var(--body-bg);
border-radius: $border-radius;
transition: all .15s ease-in;
&:hover,
&:focus,
&:active {
color: #fff;
text-decoration: none;
background: var(--template-bg-dark);
}
> span {
padding: .25rem 0 1rem;
}
.cpanel-add-module-icon {
font-size: 2rem;
color: var(--template-quickicon-color);
margin-inline-end: .5rem;
}
}
}
.cpanel-modules {
.list-group {
border-top: 1px solid $list-group-border-color;
}
.list-group-item {
a {
font-weight: 500;
text-decoration: underline;
}
.btn {
text-decoration: none;
}
.list-group-item a > span {
&[class^="#{$jicon-css-prefix}-"],
&[class*=" #{$jicon-css-prefix}-"],
&[class^="#{$fa-css-prefix}-"],
&[class*=" #{$fa-css-prefix}-"] {
display: block;
padding: .5rem;
color: rgba(255, 255, 255, .9);
background: var(--#{$prefix}link-color);
box-shadow: $atum-box-shadow;
&:hover {
background: var(--#{$prefix}link-hover-color);
}
}
}
}
.list-group-item span.home-image {
&[class^="#{$jicon-css-prefix}-"],
&[class*=" #{$jicon-css-prefix}-"],
&[class^="#{$fa-css-prefix}-"],
&[class*=" #{$fa-css-prefix}-"] {
display: inline-block;
padding: 0;
margin: 0 .85rem;
font-size: .9rem;
color: var(--body-color);
box-shadow: none;
transform: scale(1.2);
}
}
h2 {
margin-bottom: 0;
font-size: $h4-font-size;
}
.mod-custom {
padding: 1rem;
}
}
.sample-data {
.list-group-item {
padding: 1rem;
}
}
.sample-data__title {
font-weight: bold;
color: var(--heading-color);
}
.sample-data__icon {
width: 1.3rem;
text-align: center;
}
.sample-data__desc {
border-inline-start: 4px solid hsl(var(--hue),50%,93%);
padding-inline-start: 1rem;
margin-inline-start: 8px;
}

View File

@ -0,0 +1,7 @@
// com_joomlaupdate
.com_joomlaupdate {
caption {
caption-side: top;
}
}

View File

@ -0,0 +1,16 @@
:root {
--com-media-manager-overlay-header-bg: var(--template-bg-dark-5);
--com-media-manager-infobar-dt-color: rgba(0, 0, 0, .54);
--com-media-manager-content-bg: var(--body-bg);
--com-media-manager-overlay-bg: var(--template-bg-dark-3);
--com-media-manager-disk-name-color: var(--template-text-dark);
}
@if $enable-dark-mode {
@include color-mode(dark, true) {
--com-media-manager-overlay-bg: var(--template-bg-dark-90);
--com-media-manager-infobar-dt-color: rgba(255, 255, 255, .54);
--com-media-manager-overlay-header-bg: var(--template-bg-dark-80);
--com-media-manager-disk-name-color: var(--template-text-light);
}
}

View File

@ -0,0 +1,75 @@
.new-modules {
// We use the same colors for the new module section as we do for the quickicons.
--text-color: var(--template-quickicon-color);
--bg-color: hsl(var(--hue), 60%, 97%);
--bg-color-hvr: var(--template-bg-dark);
--icon-color: var(--template-quickicon-color);
--icon-color-hvr: hsl(var(--hue), 50%, 93%);
.card-columns {
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.new-modules {
--bg-color: var(--template-bg-dark-80);
--bg-color-hvr: var(--template-bg-dark-65);
--icon-color: var(--template-bg-dark-80);
--icon-color-hvr: var(--template-quickicon-color);
}
}
}
.new-module {
display: flex;
overflow: hidden;
color: var(--text-color);
background-color: var(--bg-color);
border: 1px solid hsl(var(--hue), 50%, 93%);
border-radius: $border-radius;
* {
transition: all .25s ease;
}
&-details {
flex: 1 0;
padding: 1rem;
}
&-title {
margin-bottom: .25rem;
font-size: 1rem;
font-weight: 700;
}
&-caption {
display: flex;
margin: 0;
font-size: .875rem;
}
&-link {
display: flex;
align-items: flex-end;
justify-content: center;
width: 2.5rem;
font-size: 1.2rem;
background: hsl(var(--hue), 50%, 93%);
span {
margin-bottom: 10px;
color: var(--icon-color);
}
.new-module:hover & {
background: var(--bg-color-hvr);
span {
color: var(--icon-color-hvr);
}
}
}
}

View File

@ -0,0 +1,23 @@
// com-privacy
.tbody-icon {
.#{$jicon-css-prefix}-download,
.#{$fa-css-prefix}-download {
color: var(--success);
border-color: var(--success);
}
.#{$jicon-css-prefix}-mail,
.#{$fa-css-prefix}-mail {
color: var(--primary);
border-color: var(--primary);
}
.#{$jicon-css-prefix}-delete,
.#{$fa-css-prefix}-delete,
.#{$jicon-css-prefix}-times,
.#{$fa-css-prefix}-times {
color: var(--danger);
border-color: var(--danger);
}
}

View File

@ -0,0 +1,75 @@
.new-tasks {
// We use the same colours for the new task section as we do for the quickicons.
--text-color: var(--template-quickicon-color);
--bg-color: hsl(var(--hue), 60%, 97%);
--bg-color-hvr: var(--template-bg-dark);
--icon-color: var(--template-quickicon-color);
--icon-color-hvr: hsl(var(--hue), 50%, 93%);
.card-columns {
grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.new-tasks {
--bg-color: var(--template-bg-dark-80);
--bg-color-hvr: var(--template-bg-dark-65);
--icon-color: var(--template-bg-dark-80);
--icon-color-hvr: var(--template-quickicon-color);
}
}
}
.new-task {
display: flex;
overflow: hidden;
color: var(--text-color);
background-color: var(--bg-color);
border: 1px solid hsl(var(--hue), 50%, 93%);
border-radius: $border-radius;
* {
transition: all .25s ease;
}
&-details {
flex: 1 0;
padding: 1rem;
}
&-title {
margin-bottom: .25rem;
font-size: 1rem;
font-weight: 700;
}
&-caption {
display: flex;
margin: 0;
font-size: .875rem;
}
&-link {
display: flex;
align-items: flex-end;
justify-content: center;
width: 2.5rem;
font-size: 1.2rem;
background: hsl(var(--hue), 50%, 93%);
span {
margin-bottom: 10px;
color: var(--icon-color);
}
.new-task:hover & {
background: var(--bg-color-hvr);
span {
color: var(--icon-color-hvr);
}
}
}
}

View File

@ -0,0 +1,22 @@
.com_tags {
#fieldset-image-intro,
#fieldset-image-fulltext {
> div {
grid-template-columns: 1fr;
}
@include media-breakpoint-up(md) {
display: inline-block;
width: calc(50% - 15px);
}
}
#fieldset-image-intro {
margin-inline-end: 15px;
}
#fieldset-image-fulltext {
margin-inline-start: 15px;
}
}

View File

@ -0,0 +1,58 @@
// com_templates
.com_templates {
.menu-assignment {
position: relative;
.menu-links {
padding-left: 0;
margin-top: 15px;
margin-left: 0;
column-count: 3;
column-gap: 15px;
@include media-breakpoint-down(lg) {
column-count: auto;
}
> li {
display: inline-block;
width: 100%;
margin-bottom: 15px;
vertical-align: top;
list-style: none;
backface-visibility: hidden;
page-break-inside: avoid;
break-inside: avoid;
}
}
.menu-links-block {
padding: 15px;
border: 1px solid $border-color;
border-radius: $border-radius-sm;
@if $enable-dark-mode {
@include color-mode(dark) {
--heading-color: var(--body-color);
}
}
}
label {
display: block;
padding: 3px 0;
font-size: inherit;
input {
position: relative;
margin-inline-end: 5px;
}
}
}
.thumbnail > img {
max-width: 100%;
max-height: 100%;
}
}

View File

@ -0,0 +1,131 @@
// com_users
.com_users {
&.view-debuggroup,
&.view-debuguser {
thead th {
white-space: normal;
}
.legend {
margin: 1rem 1rem 0;
}
}
&.view-mail {
.form-control {
max-width: 100%;
}
}
&.view-user, &.view-methods {
#com-users-methods-reset-container {
background-color: var(--light);
}
@if $enable-dark-mode {
@include color-mode(dark) {
#com-users-methods-reset-container {
background-color: var(--dark-bg-subtle);
}
}
}
.com-users-methods-list-method {
@extend .card;
@extend .mx-1;
@extend .mt-3;
@extend .mb-4;
&.com-users-methods-list-method-active {
@extend .border-secondary;
.com-users-methods-list-method-title h3 {
@extend .text-white;
}
.com-users-methods-list-method-header {
@extend .border-secondary;
@extend .bg-secondary;
@extend .text-white;
}
}
/** This is applied to headers that aren't an active method **/
&:not(.com-users-methods-list-method-active) .com-users-methods-list-method-header {
background-color: var(--light);
}
@if $enable-dark-mode {
@include color-mode(dark) {
/* stylelint-disable max-nesting-depth */
&:not(.com-users-methods-list-method-active) .com-users-methods-list-method-header {
/* stylelint-enable max-nesting-depth */
background-color: var(--dark-bg-subtle);
}
}
}
.com-users-methods-list-method-header {
@extend .align-items-center;
@extend .gap-2;
@extend .flex-wrap;
@extend .d-flex;
@extend .card-header;
}
.com-users-methods-list-method-image {
@extend .pt-1;
@extend .px-3;
@extend .pb-2;
@extend .rounded-2;
background-color: var(--light);
}
@if $enable-dark-mode {
@include color-mode(dark) {
/* stylelint-disable max-nesting-depth */
.com-users-methods-list-method-image {
/* stylelint-enable max-nesting-depth */
background-color: var(--dark-bg-subtle);
}
}
}
.com-users-methods-list-method-title {
@extend .flex-grow-1;
@extend .d-flex;
@extend .flex-column;
h3 {
@extend .fs-2;
@extend .p-0;
@extend .m-0;
@extend .d-flex;
@extend .gap-3;
@extend .align-items-center;
}
}
.com-users-methods-list-method-records-container {
@extend .card-body;
}
.com-users-methods-list-method-info {
@extend .my-1;
@extend .pb-1;
@extend .text-muted;
}
}
}
#fieldset-groups {
.controls {
margin-inline-start: 2rem;
}
}
}

View File

@ -0,0 +1,7 @@
@if $enable-dark-mode {
@include color-mode(dark) {
.com-apps-container .grid-container .card:hover {
background-color: var(--gray-800);
}
}
}

View File

@ -0,0 +1,61 @@
@import "../../variables";
// Search tools
.js-stools {
display: flex;
flex-wrap: wrap;
}
.js-stools-container-bar,
.js-stools-container-filters {
margin-bottom: 10px;
}
.js-stools-container-bar {
margin-inline-start: auto;
.btn-toolbar {
justify-content: flex-end;
> * {
margin: 5px 0;
+ * {
margin-inline-start: 8px;
}
}
.js-stools-btn-clear {
background-color: var(--template-bg-dark);
}
}
.ordering-select {
display: flex;
}
}
.js-stools-container-filters {
display: none;
width: 100%;
&-visible {
display: grid;
grid-gap: 8px;
grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
padding: 10px;
background-color: var(--body-bg);
}
}
.js-stools-field-list {
+ .js-stools-field-list {
margin-inline-start: 8px;
}
}
.js-stools-container-selector {
margin: 5px 0;
margin-inline-end: 8px;
}

View File

@ -0,0 +1,2 @@
// This file is a placeholder for the rtl template. That means it is required and should not be deleted.
@import "template";

View File

@ -0,0 +1,237 @@
// Bootstrap functions
@import "../../../../vendor/bootstrap/scss/functions";
// Atum Variables
@import "variables";
@import "variables-dark";
@import "../../../../vendor/bootstrap/scss/variables";
@import "../../../../vendor/bootstrap/scss/variables-dark";
@import "../../../../vendor/bootstrap/scss/maps";
@import "maps-atum";
@import "../../../../vendor/bootstrap/scss/mixins";
@import "../../../../vendor/bootstrap/scss/utilities";
// Bootstrap other
@import "../../../../vendor/bootstrap/scss/bootstrap";
// Fonts
@import "../../../../vendor/roboto-fontface/scss/roboto/sass/roboto-fontface";
@import "blocks/global"; // Leave this first
// jQuery Minicolors
@import "../../../../system/scss/jquery-minicolors";
// Vendor overrides
@import "vendor/bootstrap/badge";
@import "vendor/bootstrap/buttons";
@import "vendor/bootstrap/card";
@import "vendor/bootstrap/custom-forms";
@import "vendor/bootstrap/collapse";
@import "vendor/bootstrap/dropdown";
@import "vendor/bootstrap/form";
@import "vendor/bootstrap/lists";
@import "vendor/bootstrap/modal";
@import "vendor/bootstrap/pagination";
@import "vendor/bootstrap/reboot";
@import "vendor/bootstrap/table";
// Blocks
@import "blocks/alerts";
@import "blocks/calendar";
@import "blocks/edit";
@import "blocks/header";
@import "blocks/form";
@import "blocks/icons";
@import "blocks/iframe";
@import "blocks/layout";
@import "blocks/login";
@import "blocks/modals";
@import "blocks/quickicons";
@import "blocks/lists";
@import "blocks/shepard-modals";
@import "blocks/sidebar";
@import "blocks/sidebar-nav";
@import "blocks/switcher";
@import "blocks/toolbar";
@import "blocks/treeselect";
@import "blocks/utilities";
// These DO NOT BELONG HERE!!!
@import "vendor/codemirror";
@import "vendor/dragula";
@import "vendor/tinymce";
// Also these DO NOT BELONG HERE!!!
// Page specifics
@import "pages/com_config";
@import "pages/com_content";
@import "pages/com_cpanel";
@import "pages/com_joomlaupdate";
@import "pages/com_media";
@import "pages/com_modules";
@import "pages/com_tags";
@import "pages/com_privacy";
@import "pages/com_scheduler";
@import "pages/com_templates";
@import "pages/com_users";
@import "pages/plg_web_installer";
// Custom Atum colors
:root {
@each $color, $value in $atum-colors {
--#{$prefix}#{$color}: #{$value};
}
}
@if $enable-dark-mode {
@include color-mode(dark, true) {
@each $color, $value in $atum-colors-dark {
--#{$prefix}#{$color}: #{$value};
}
}
}
// Forcing reduced motion when set in the user OS
@media (prefers-reduced-motion: reduce) {
*, ::before, ::after {
background-attachment: initial !important;
transition-delay: 0s !important;
// temp fix until https://github.com/onokumus/metismenujs/issues/9 is addressed
transition-duration: .001ms !important;
animation-duration: 1ms !important;
animation-delay: -1ms !important;
animation-iteration-count: 1 !important;
scroll-behavior: auto !important;
}
}
// Bootstrap 5.2 overrides
.border-primary {
border-color: var(--primary) !important;
}
.border-secondary {
border-color: var(--secondary) !important;
}
.border-success {
border-color: var(--success) !important;
}
.border-info {
border-color: var(--info) !important;
}
.border-warning {
border-color: var(--warning) !important;
}
.border-danger {
border-color: var(--danger) !important;
}
.border-light {
border-color: var(--light) !important;
}
.border-dark {
border-color: var(--dark) !important;
}
.border-white {
border-color: var(--white) !important;
}
.text-primary {
color: var(--primary) !important;
}
.text-secondary {
color: var(--secondary) !important;
}
.text-success {
color: var(--success) !important;
}
.text-info {
color: var(--info) !important;
}
.text-warning {
color: var(--warning) !important;
}
.text-danger {
color: var(--danger) !important;
}
.text-light {
color: var(--light) !important;
}
.text-dark {
color: var(--dark) !important;
}
.text-black {
color: var(--black) !important;
}
.text-white {
color: var(--white) !important;
}
.text-body {
color: var(--body-color) !important;
}
.bg-primary {
background-color: var(--primary) !important;
}
.bg-secondary {
background-color: var(--secondary) !important;
}
.bg-success {
background-color: var(--success) !important;
}
.bg-info {
background-color: var(--info) !important;
}
.bg-warning {
background-color: var(--warning) !important;
}
.bg-danger {
background-color: var(--danger) !important;
}
.bg-light {
background-color: var(--light) !important;
}
.bg-dark {
background-color: var(--dark) !important;
}
.bg-black {
background-color: var(--black) !important;
}
.bg-white {
background-color: var(--white) !important;
}
.bg-body {
background-color: var(--body-bg) !important;
}
kbd {
padding: .2rem .4rem;
}

View File

@ -0,0 +1,19 @@
// Codemirror
joomla-editor-codemirror.fullscreen {
top: 133px;
.cm-editor {
height: calc(90vh - 133px) !important;
}
@include media-breakpoint-down(sm) {
top: 54px;
z-index: 890;
.cm-editor {
height: 100vh !important;
}
}
}

View File

@ -0,0 +1,19 @@
// Dragula
.gu-mirror {
position: fixed !important;
z-index: $zindex-popover !important;
display: table;
margin: 0 !important;
cursor: move;
background-color: $teal;
opacity: .8;
td, th {
background-color: $teal;
}
}
.js-draggable .sortable-handler {
cursor: move;
}

View File

@ -0,0 +1,73 @@
// TinyMCE
.editor {
.toggle-editor {
margin-top: 1rem;
}
.mce-tinymce {
border: 1px solid var(--template-bg-dark);
}
.mce-btn,
.mce-panel {
background: var(--white-offset);
}
}
.tox-fullscreen {
z-index: $zindex-modal-backdrop - 1 !important;
}
.container-main {
.mce-panel {
background: transparent;
border: 0;
box-shadow: none;
}
.mce-top-part {
margin-bottom: 1rem;
&::before {
box-shadow: none;
}
}
.mce-menubar .mce-menubtn {
background-color: $white;
}
.mce-flow-layout-item {
margin: 2px 8px 2px 0;
}
.mce-btn-group {
&:not(:first-child) {
margin-right: 6px;
margin-left: 0;
}
.mce-btn {
margin: 0 1px 0 0;
}
}
.mce-statusbar .mce-container-body {
background-color: $white;
border-top: var(--template-bg-light) 1px solid;
}
}
// Add a toolbar separator for the groups
.tox-toolbar__group:not(:last-of-type) {
border-inline-end: 1px solid var(--border-color) !important;
}
// Adjust the border radius for the editor
.tox-tinymce {
border-radius: 0 !important;
}

View File

@ -0,0 +1,6 @@
// Awesomplete
@import "../../../../../../vendor/awesomplete/css/awesomplete";
.awesomplete {
display: block;
}

View File

@ -0,0 +1,13 @@
// Badge
.badge {
@include media-breakpoint-down(md) {
white-space: normal;
}
&.bg-secondary {
&:hover {
color: $white;
}
}
}

View File

@ -0,0 +1,44 @@
// Buttons
.btn {
transition: none;
}
@include media-breakpoint-down(sm) {
.btn {
margin-bottom: .25rem;
}
.input-group .btn {
margin-bottom: 0;
}
}
.btn-primary {
color: var(--template-text-light);
background-color: var(--template-bg-dark-60);
border-color: var(--template-bg-dark-60);
&:hover,
&:focus,
&:active {
background-color: var(--template-bg-dark-70);
border-color: var(--template-bg-dark-90);
}
&:not(:disabled):not(.disabled):active,
&:not(:disabled):not(.disabled).active,
.show > &.dropdown-toggle {
background-color: var(--template-bg-dark);
border-color: var(--template-bg-dark);
}
}
.btn-secondary {
background-color: var(--template-bg-dark-60);
border-color: var(--template-bg-dark-60);
}
.input-group-text {
background-color: var(--template-bg-dark);
border-color: var(--template-bg-dark);
}

View File

@ -0,0 +1,49 @@
// Card
// Backport Bootstrap 4 card-columns
.card-columns {
.card {
margin-bottom: $card-spacer-y;
}
@include media-breakpoint-up(sm) {
column-count: 3;
column-gap: 1.25rem;
orphans: 1;
widows: 1;
.card {
display: inline-block; // Don't let them vertically span multiple columns
width: 100%; // Don't let their width change
}
}
}
.content {
.card {
box-shadow: $atum-box-shadow;
}
.card-header {
display: flex;
align-items: center;
padding: 1rem 1rem .75rem;
font-weight: $font-weight-bold;
color: var(--template-bg-dark);
background-color: var(--card-bg);
> [class^="icon-"],
> img {
margin-inline-end: .5rem;
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.card-header {
color: var(--body-color);
background-color: var(--body-bg);
}
}
}
}

View File

@ -0,0 +1,28 @@
// Collapse
.accordion {
.card-header {
display: block;
font-size: $h5-font-size;
font-weight: $font-weight-bold;
line-height: $headings-line-height;
}
/**
* TODO: This seems fairly specifically built for the menu types view and might be better scoped to
* that view rather than just being overridden for everything.
*/
.list-group-item {
--list-group-color: var(--link-color);
--list-group-bg: var(--white-offset);
}
@if $enable-dark-mode {
@include color-mode(dark) {
.list-group-item {
--list-group-bg: var(--gray-800);
}
}
}
}

View File

@ -0,0 +1,113 @@
@import "../../variables-dark";
// Custom Forms
.custom-select {
@extend .form-select;
}
.form-select {
max-width: $input-max-width;
cursor: pointer;
background: $form-select-background #{"/* rtl:"}$form-select-background-rtl#{"*/"};;
&[multiple] {
padding: 0;
option {
padding: $form-select-multiple-padding-y $form-select-padding-x;
&:checked {
color: var(--template-text-light);
background-color: var(--template-bg-dark) !important;
}
}
}
&.form-select-success,
&.custom-select-success {
color: var(--success);
background-color: var(--success);
border-color: var(--success);
option {
color: $form-select-color;
background-color: var(--white-offset);
}
@if $enable-dark-mode {
@include color-mode(dark) {
option {
background-color: var(--gray-800);
}
}
}
}
&.form-select-danger,
&.custom-select-danger {
color: var(--danger);
background-color: var(--danger);
border-color: var(--danger);
option {
color: $form-select-color;
background-color: var(--white-offset);
}
@if $enable-dark-mode {
@include color-mode(dark) {
option {
background-color: var(--gray-800);
}
}
}
}
&:disabled {
cursor: default;
background-color: var(--gray-200);
background-image: none;
border: 0;
box-shadow: none;
}
@if $enable-dark-mode {
@include color-mode(dark) {
&:disabled {
background-color: var(--gray-800);
}
}
}
optgroup,
option {
color: var(--template-text-dark);
background-color: var(--body-bg);
&:disabled {
background-color: var(--template-bg-dark-5);
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
option {
color: var(--template-text-light);
&:disabled {
background-color: var(--template-bg-dark-90);
}
}
}
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.form-select {
background: $form-select-background-dark #{"/* rtl:"}$form-select-background-rtl-dark#{"*/"};
}
}
}

View File

@ -0,0 +1,96 @@
// Dropdown
.btn-group .dropdown-menu {
min-width: 100%;
background: var(--body-bg);
box-shadow: $dropdown-box-shadow;
joomla-toolbar-button {
text-align: start;
border: 0;
}
}
.dropdown-menu {
box-shadow: $atum-box-shadow;
}
.dropdown-item {
text-align: start;
border-bottom: 1px solid rgba(0, 0, 0, .1);
&:hover,
&:focus {
.btn-primary + .dropdown-menu & {
background-color: var(--template-bg-dark);
}
.btn-secondary + .dropdown-menu & {
color: var(--template-text-light);
background-color: var(--secondary);
}
.btn-danger + .dropdown-menu & {
background-color: var(--danger);
}
.btn-info + .dropdown-menu & {
background-color: var(--info);
}
.dropdown-status-group .dropdown-menu &:not(.disabled) {
color: var(--template-text-light);
background-color: var(--template-bg-dark);
}
.dropdown-save-group .dropdown-menu &:not(.disabled) {
color: var(--template-text-light);
background-color: var(--success);
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
&:hover,
&:focus {
--dropdown-link-hover-bg: var(--gray-700);
--dropdown-link-hover-color: var(--body-color);
}
}
}
+ .dropdown-item {
border-top: 1px solid rgba(0, 0, 0, .1);
}
.dropdown-status-group .dropdown-menu &:not(.disabled) {
color: var(--action);
}
.dropdown-save-group .dropdown-menu &:not(.disabled) {
color: var(--success);
}
&.first:not(.last) {
border-bottom-right-radius: 0;
border-bottom-left-radius: 0;
}
&.last:not(.first) {
border-top-left-radius: 0;
border-top-right-radius: 0;
}
&:not(.first):not(.last):not(:only-of-type) {
border-radius: 0;
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.dropdown-item {
border-bottom: 1px solid rgba(255, 255, 255, .1);
}
}
}

View File

@ -0,0 +1,96 @@
// Form
label {
margin-bottom: 0;
}
td .form-control {
display: inline-block;
width: auto;
}
legend {
margin-bottom: 1.1rem;
font-size: 1rem;
font-weight: $font-weight-normal;
}
.checkboxes {
padding-top: 5px;
.checkbox input {
position: static;
margin-left: 0;
}
}
.form-check {
padding-top: 5px;
margin-bottom: 0;
}
.modal label {
width: 100%;
}
// Validation
.invalid {
color: var(--danger);
border-color: var(--danger);
}
.valid {
border-color: var(--success);
}
.form-control-feedback {
display: block;
}
[aria-grabbed="true"] {
box-shadow: 0 0 2px 1px var(--template-bg-dark);
}
select.form-control {
background-color: $form-select-bg;
}
.field-media-wrapper {
display: block;
width: 100%;
max-width: calc(50vw - 5rem);
.field-media-preview {
width: 100%;
max-width: none;
}
.button-select {
background-color: darken($success, 8%);
}
.button-clear {
background-color: darken($danger, 8%);
}
.button-clear > .#{$fa-css-prefix}-check,
.button-select > .#{$fa-css-prefix}-times {
color: $gray-100;
}
@include media-breakpoint-down(lg) {
min-width: 100%;
}
}
// Bootstrap 4 b/c
.form-inline .form-select, .form-inline .custom-select, .form-inline .form-control {
display: inline-block;
width: auto;
}
@include media-breakpoint-down(md) {
.form-inline .form-select, .form-inline .custom-select, .form-inline .form-control {
width: 100%;
}
}

View File

@ -0,0 +1,5 @@
// Lists
.list-unstyled .list-unstyled {
padding-left: 20px;
}

View File

@ -0,0 +1,108 @@
// Modal
.jviewport-height {
&10 {
height: 10vh;
}
&20 {
height: 20vh;
}
&30 {
height: 30vh;
}
&40 {
height: 40vh;
}
&50 {
height: 50vh;
}
&60 {
height: 60vh;
}
&70 {
height: 70vh;
}
&80 {
height: 80vh;
}
&90 {
height: 90vh;
}
&100 {
height: 100vh;
}
}
[class*=jviewport-height] iframe {
height: 100%;
}
.modal-dialog.jviewport-width {
&10 {
width: 10vw;
}
&20 {
width: 20vw;
max-width: none;
}
&30 {
width: 30vw;
max-width: none;
}
&40 {
width: 40vw;
max-width: none;
}
&50 {
width: 50vw;
max-width: none;
}
&60 {
width: 60vw;
max-width: none;
}
&70 {
width: 70vw;
max-width: none;
}
&80 {
width: 80vw;
max-width: none;
}
&90 {
width: 90vw;
max-width: none;
}
&100 {
width: 100vw;
max-width: none;
}
}
.modal-dialog {
@include media-breakpoint-down(md) {
margin: 1.75rem auto;
}
.modal-body {
padding: 0;
}
}

View File

@ -0,0 +1,5 @@
// Pagination
.pagination {
margin: 1rem;
}

View File

@ -0,0 +1,8 @@
// Matches default `<td>` alignment by inheriting `text-align`.
// 1. Fix alignment for Safari
th {
text-align: inherit;
/* stylelint-disable-next-line */
text-align: -webkit-match-parent; // 1
}

View File

@ -0,0 +1,89 @@
// Table
.table {
> :not(:first-child) {
border-top: 2px solid #dee2e6;
}
thead {
th {
font-size: $label-font-size;
}
th,
td {
white-space: nowrap;
.sysinfo & {
white-space: normal;
}
}
a {
color: var(--template-link-color);
&#sorted {
font-weight: $medium-weight;
// This is the same as the bootstrap line because when it's sorted we want to undo the style
color: var(--table-color-state, var(--table-color-type,var(--table-color)));
}
}
.actions,
.actions-th1 {
@include media-breakpoint-down(md) {
width: 28%;
}
}
}
tbody {
tr {
&:hover,
&:focus,
&:active {
background-color: $table-hover-bg;
}
&:last-of-type {
th,
td {
border-bottom: 0;
}
}
}
.itemnumber a.btn,
.itemnumber span.btn {
padding: .1rem .5rem;
text-decoration: none;
}
th {
font-weight: $medium-weight;
}
a:not(.badge):not(.btn):not(.dropdown-item) {
text-decoration: underline;
}
}
th,
td {
label {
margin-bottom: 0;
}
.inactive [class^="#{$jicon-css-prefix}-"],
.inactive [class*=" #{$jicon-css-prefix}-"],
.inactive [class^="#{$fa-css-prefix}-"],
.inactive [class*=" #{$fa-css-prefix}-"] {
color: $gray-400;
}
}
.j-main-container > & {
box-shadow: $atum-box-shadow;
}
}

View File

@ -0,0 +1,219 @@
@import "../../../../../../vendor/bootstrap/scss/functions";
// Atum Variables
@import "../../variables";
@import "../../variables-dark";
@import "../../../../../../vendor/bootstrap/scss/variables";
@import "../../../../../../vendor/bootstrap/scss/mixins";
// choices.js
@import "../../../../../../vendor/choicesjs/scss/choices";
.choices {
border: $form-select-border-width solid $form-select-border-color;
@include border-radius($form-select-border-radius, 0);
@include box-shadow($form-select-box-shadow);
&.is-focused {
border-color: $form-select-focus-border-color;
@if $enable-shadows {
@include box-shadow($form-select-box-shadow, $form-select-focus-box-shadow);
} @else {
// Avoid using mixin so we can pass custom focus shadow properly
box-shadow: $form-select-focus-box-shadow;
}
}
}
.choices__inner {
min-height: 42px;
padding: .1rem 1rem;
margin-bottom: 0;
font-size: 1rem;
border: none;
border-radius: 0;
}
.choices__input {
padding: 0;
margin-bottom: 0;
font-size: 1rem;
background-color: transparent;
&::placeholder {
color: $gray-700;
opacity: 1;
}
@if $enable-dark-mode {
@include color-mode(dark) {
&::placeholder {
color: var(--gray-200);
}
}
}
}
.choices__list--dropdown {
z-index: $zindex-popover;
}
.choices__list--single {
padding: 7px 16px 0 4px;
}
.choices__list--multiple .choices__item {
position: relative;
margin: 2px;
background-color: var(--template-bg-dark);
margin-inline-end: 2px;
border: 0;
border-radius: $border-radius;
&.is-highlighted {
background-color: var(--template-bg-dark);
opacity: .9;
}
}
.choices .choices__list--dropdown {
background-color: var(--body-bg);
.choices__item {
padding-inline-end: 10px;
}
.choices__item--selectable {
&::after {
display: none;
}
@if $enable-dark-mode {
@include color-mode(dark) {
&.is-highlighted {
background-color: var(--gray-800);
}
}
}
}
}
.choices__button_joomla {
position: relative;
padding: 0 10px;
color: inherit;
text-indent: -9999px;
cursor: pointer;
background: none;
border: 0;
opacity: .5;
appearance: none;
&::before {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
display: block;
text-align: center;
text-indent: 0;
content: "\00d7";
}
&:hover,
&:focus {
opacity: 1;
}
&:focus {
outline: none;
}
}
.choices[data-type*="select-one"],
.choices[data-type*="select-multiple"] {
.choices__inner {
padding-inline-end: $form-select-indicator-padding;
cursor: pointer;
background: url("../../../images/select-bg.svg") no-repeat 100%/116rem;
background-color: $form-select-bg;
[dir="rtl"] & {
background: url("../../../images/select-bg-rtl.svg") no-repeat 0/116rem;
background-color: $form-select-bg;
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
.choices__inner {
background: url("../../../images/select-bg-dark.svg") no-repeat 100%/116rem;
background-color: $form-select-bg-dark;
[dir="rtl"] & {
background: url("../../../images/select-bg-rtl-dark.svg") no-repeat 0/116rem;
background-color: $form-select-bg-dark;
}
}
}
}
}
.choices[data-type*="select-one"] {
.choices__input {
background-color: var(--body-bg);
}
@if $enable-dark-mode {
@include color-mode(dark) {
.choices__input {
border-color: var(--gray-600);
}
}
}
.choices__item {
display: flex;
justify-content: space-between;
}
.choices__button_joomla {
position: absolute;
top: 50%;
inset-inline-end: 0;
width: 20px;
height: 20px;
padding: 0;
margin-block-start: -10px;
margin-inline-end: 50px;
border-radius: 10em;
opacity: .5;
&:hover,
&:focus {
opacity: 1;
}
&:focus {
box-shadow: 0 0 0 2px #00bcd4;
}
}
&::after {
display: none;
}
}
.choices[data-type*="select-multiple"],
.choices[data-type*="text"] {
.choices__input {
padding: .35rem 0;
}
}
.choices__heading {
font-size: 1.2rem;
}

View File

@ -0,0 +1,22 @@
// Override the font path
$fa-css-prefix: fa;
$fa-font-path: "../../../../../../vendor/fontawesome-free/webfonts" !default;
// Font Awesome 6 Free
@import "../../../../../../vendor/fontawesome-free/scss/fontawesome";
@import "../../../../../../vendor/fontawesome-free/scss/regular";
@import "../../../../../../vendor/fontawesome-free/scss/solid";
// Brands must be imported last
@import "../../../../../../vendor/fontawesome-free/scss/brands";
// B/C with Font Awesome 5
@import "../../../../../../vendor/fontawesome-free/scss/shims";
// B/C for Icomoon
@import "../../../../../../system/scss/icomoon";
// RTL override
html[dir=rtl] .float-right {
float: left;
}

View File

@ -0,0 +1,155 @@
@import "../../variables";
@import "../../variables-dark";
@import "../../../../../../vendor/joomla-custom-elements/css/joomla-alert";
@import "../../../../../../vendor/bootstrap/scss/mixins/color-mode";
// The following is a restyle for the system alerts
#system-message-container joomla-alert {
position: relative;
display: flex;
width: 100%;
min-width: 16rem;
padding: 0;
margin-bottom: 1rem;
color: var(--alert-accent-color, var(--template-bg-dark));
background-color: var(--alert-bg-color, var(--white));
border: 1px solid var(--alert-accent-color, var(--template-bg-dark));
border-radius: .25rem;
transition: opacity .15s linear;
.alert-heading {
display: flex;
flex-direction: column;
justify-content: center;
padding: .8rem;
line-height: normal;
color: var(--white);
background: var(--alert-accent-color, var(--template-bg-dark));
align-content: center;
.message::before,
.success::before {
display: inline-block;
width: 1em;
height: 1em;
content: "";
background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M1299 813l-422 422q-19 19-45 19t-45-19l-294-294q-19-19-19-45t19-45l102-102q19-19 45-19t45 19l147 147 275-275q19-19 45-19t45 19l102 102q19 19 19 45t-19 45zm141 83q0-148-73-273t-198-198-273-73-273 73-198 198-73 273 73 273 198 198 273 73 273-73 198-198 73-273zm224 0q0 209-103 385.5t-279.5 279.5-385.5 103-385.5-103-279.5-279.5-103-385.5 103-385.5 279.5-279.5 385.5-103 385.5 103 279.5 279.5 103 385.5z"/></svg>');
background-size: 100%;
}
.notice::before,
.info::before {
display: inline-block;
width: 1em;
height: 1em;
content: "";
background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M256 8C119.043 8 8 119.083 8 256c0 136.997 111.043 248 248 248s248-111.003 248-248C504 119.083 392.957 8 256 8zm0 110c23.196 0 42 18.804 42 42s-18.804 42-42 42-42-18.804-42-42 18.804-42 42-42zm56 254c0 6.627-5.373 12-12 12h-88c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h12v-64h-12c-6.627 0-12-5.373-12-12v-24c0-6.627 5.373-12 12-12h64c6.627 0 12 5.373 12 12v100h12c6.627 0 12 5.373 12 12v24z"/></svg>');
background-size: 100%;
}
.warning::before {
display: inline-block;
width: 1em;
height: 1em;
content: "";
background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M1024 1375v-190q0-14-9.5-23.5t-22.5-9.5h-192q-13 0-22.5 9.5t-9.5 23.5v190q0 14 9.5 23.5t22.5 9.5h192q13 0 22.5-9.5t9.5-23.5zm-2-374l18-459q0-12-10-19-13-11-24-11h-220q-11 0-24 11-10 7-10 21l17 457q0 10 10 16.5t24 6.5h185q14 0 23.5-6.5t10.5-16.5zm-14-934l768 1408q35 63-2 126-17 29-46.5 46t-63.5 17h-1536q-34 0-63.5-17t-46.5-46q-37-63-2-126l768-1408q17-31 47-49t65-18 65 18 47 49z"/></svg>');
background-size: 100%;
}
.error::before,
.danger::before {
display: inline-block;
width: 1em;
height: 1em;
content: "";
background-image: url('data:image/svg+xml;utf8,<svg width="1792" height="1792" viewBox="0 0 512 512" xmlns="http://www.w3.org/2000/svg"><path fill="rgba(255, 255, 255, .95)" d="M256 8C119 8 8 119 8 256s111 248 248 248 248-111 248-248S393 8 256 8zm0 448c-110.5 0-200-89.5-200-200S145.5 56 256 56s200 89.5 200 200-89.5 200-200 200zm101.8-262.2L295.6 256l62.2 62.2c4.7 4.7 4.7 12.3 0 17l-22.6 22.6c-4.7 4.7-12.3 4.7-17 0L256 295.6l-62.2 62.2c-4.7 4.7-12.3 4.7-17 0l-22.6-22.6c-4.7-4.7-4.7-12.3 0-17l62.2-62.2-62.2-62.2c-4.7-4.7-4.7-12.3 0-17l22.6-22.6c4.7-4.7 12.3-4.7 17 0l62.2 62.2 62.2-62.2c4.7-4.7 12.3-4.7 17 0l22.6 22.6c4.7 4.7 4.7 12.3 0 17z"/></svg>');
background-size: 100%;
}
}
.alert-wrapper {
width: 100%;
}
.alert-link {
color: var(--template-link-color);
text-decoration: underline;
}
&[type="success"],
&[type="message"] {
--alert-accent-color: #{$state-success-text};
--alert-bg-color: #{$state-success-bg};
}
&[type="info"],
&[type="notice"] {
--alert-accent-color: #{$state-info-text};
--alert-bg-color: #{$state-info-bg};
@include color-mode(dark) {
p {
color: var(--body-color);
}
}
}
@include color-mode(dark) {
&[type="info"],
&[type="notice"] {
--alert-accent-color: #{$state-info-text-dark};
}
}
&[type="warning"] {
.joomla-alert--close {
color: #{$state-warning-text};
}
color: #{$state-warning-text};
--alert-accent-color: #{$warning};
--alert-bg-color: #{$state-warning-bg};
}
&[type="error"],
&[type="danger"] {
--alert-accent-color: #{$state-danger-text};
--alert-bg-color: #{$state-danger-bg};
}
.joomla-alert--close,
.joomla-alert-button--close {
position: absolute;
top: 0;
inset-inline-end: 0;
padding: .75rem .8rem;
font-size: 2rem;
line-height: 1rem;
color: var(--alert-accent-color);
text-shadow: none;
background: none;
border: 0;
opacity: 1;
&:hover,
&:focus {
text-decoration: none;
cursor: pointer;
opacity: .75;
}
}
div {
font-size: 1rem;
.alert-message {
padding: .15rem .3rem;
padding-inline-end: 2rem;
margin: .5rem;
}
.alert-message:not(:first-of-type) {
border-top: 1px solid var(--alert-accent-color);
}
}
}

View File

@ -0,0 +1,369 @@
@import "../../../../../../vendor/bootstrap/scss/functions";
// Atum Variables
@import "../../variables";
@import "../../../../../../vendor/bootstrap/scss/variables";
@import "../../../../../../vendor/bootstrap/scss/mixins";
// Tabs
//
// Base styles
//
joomla-tab {
display: flex;
flex-direction: column;
&[orientation=horizontal]:not([view=accordion]) {
margin-bottom: 0;
}
&[orientation=horizontal]:not([view=accordion]) > div[role=tablist] {
width: 100%;
margin-bottom: 0;
}
> div[role=tablist] {
display: flex;
flex-flow: wrap;
padding: 0;
white-space: nowrap;
list-style: outside none none;
border-bottom: 1px solid var(--template-bg-dark-10);
> button[role=tab] {
position: relative;
box-sizing: border-box;
display: block;
padding: .6rem 1rem;
text-decoration: none;
background-color: var(--body-bg);
border: 0;
box-shadow: none;
&:first-of-type,
&[aria-expanded=true]:first-of-type {
border-start-start-radius: .25rem;
}
&:focus-visible {
z-index: 1;
}
&[aria-expanded=true],
&:focus,
&:hover {
color: var(--template-bg-dark-60);
border: 0;
border-radius: 0;
box-shadow: none;
&::after {
position: absolute;
right: 0;
bottom: 0;
left: 0;
height: 3px;
content: "";
background-color: var(--template-link-color);
opacity: .8;
}
.text-muted {
color: var(--template-text-light) !important;
}
}
&[aria-expanded=true] {
font-weight: $font-weight-bold;
background: var(--template-bg-dark-3);
}
@if $enable-dark-mode {
@include color-mode(dark) {
/* stylelint-disable max-nesting-depth */
&[aria-expanded=true],
&:focus,
&:hover {
/* stylelint-enable max-nesting-depth */
color: var(--template-text-light);
}
/* stylelint-disable max-nesting-depth */
&[aria-expanded=true] {
/* stylelint-enable max-nesting-depth */
background: var(--template-bg-dark-60);
}
}
}
.text-muted {
color: var(--template-text-dark) !important;
}
@if $enable-dark-mode {
@include color-mode(dark) {
/* stylelint-disable max-nesting-depth */
.text-muted {
/* stylelint-enable max-nesting-depth */
color: var(--template-text-light) !important;
}
}
}
}
}
> button[role=region] {
width: 100%;
padding: .7rem;
color: var(--template-text-light);
text-align: start;
background-color: var(--template-link-color);
border: 1px solid var(--template-bg-dark-3);
border-top: 0;
&[aria-expanded=true],
&:hover,
&:focus {
color: var(--template-text-light);
background-color: var(--template-bg-dark);
}
.text-muted {
color: var(--template-text-light) !important;
}
}
@if $enable-dark-mode {
@include color-mode(dark) {
> button[role=region] {
border-color: var(--template-bg-dark-70);
}
}
}
> joomla-tab-element {
--gutter-x: 2rem;
display: none;
padding: 30px 2vw;
background-color: var(--body-bg);
border: 0;
border-radius: .25rem;
box-shadow: none;
&[active] {
display: block;
}
}
.main-card-columns > * > & {
height: 100%;
border-left: 1px solid var(--template-bg-dark-10);
}
}
joomla-tab[orientation=vertical] {
flex-direction: row;
align-items: flex-start;
width: 100%;
> div[role=tablist] {
flex: 0 0 25%;
flex-direction: column;
width: 100%;
min-width: 25%;
max-width: 25%;
height: auto;
padding: 0;
overflow: hidden;
border: 1px solid $gray-300;
border-radius: 0;
box-shadow: none;
@include media-breakpoint-down(lg) {
flex: 0 0 100%;
max-width: 100%;
}
> button[role=tab] {
text-align: start;
&[aria-expanded=true] {
color: var(--template-text-light);
background-color: var(--template-bg-dark-60);
}
}
> button[role=tab]:last-of-type {
border-bottom: 0;
}
> button[role=tab] {
position: relative;
display: block;
padding: .75em 1em;
margin: -1px 0;
text-decoration: none;
border-top: 1px solid transparent;
border-bottom: 1px solid $gray-300;
box-shadow: none;
&[aria-expanded=true],
&:focus,
&:hover {
color: var(--template-text-light);
background-color: var(--template-bg-dark-60);
background-image: none;
border-right: 0;
box-shadow: none;
&::after {
top: 0;
bottom: 0;
left: -1px;
width: 5px;
height: auto;
background-color: var(--template-bg-dark);
}
.text-muted {
color: var(--template-text-light) !important;
}
}
.text-muted {
color: var(--template-text-dark) !important;
}
@if $enable-dark-mode {
@include color-mode(dark) {
/* stylelint-disable max-nesting-depth */
.text-muted {
/* stylelint-enable max-nesting-depth */
color: var(--template-text-light) !important;
}
}
}
}
}
> joomla-tab-element {
width: 100%;
padding: $grid-gutter-width-s 0 $grid-gutter-width-s $grid-gutter-width-s;
border: 0 none;
box-shadow: none;
}
}
joomla-tab[view=accordion] {
flex-direction: column;
white-space: normal;
border-radius: 0;
box-shadow: 0 1px $white inset, 0 0 3px rgba(0, 0, 0, .04);
> div[role=tablist] {
background-color: $white;
> button[role=tab] {
position: relative;
display: block;
padding: .75em 1em;
color: var(--template-text-light);
text-align: start;
text-decoration: none;
border: 0;
border-bottom: 1px solid $gray-300;
box-shadow: none;
&[aria-expanded=true]::after,
&:hover::after {
position: absolute;
top: auto;
right: -1px;
bottom: -1px;
left: -1px;
display: block;
width: calc(100% + 2px);
height: 5px;
content: "";
background-color: var(--template-bg-dark);
opacity: .8;
}
}
}
> joomla-tab-element {
display: none;
padding: 15px;
&[active] {
display: block;
width: 100%;
max-width: 100%;
border-bottom: 1px solid $gray-300;
}
}
[active],
[aria-expanded=true] {
background-color: var(--body-bg);
}
.col-md-6,
.col-md-9,
.col-md-3 {
padding: .5rem 0 0 !important;
}
#permissions-sliders > joomla-tab-element[active] {
padding: 0 !important;
@include media-breakpoint-down(lg) {
[dir=ltr] & .respTable {
text-align: right;
}
[dir=rtl] & .respTable {
text-align: left;
}
.respTable, .respTable thead, .respTable tbody, .respTable tr, .respTable th, .respTable td {
display: block;
}
.respTable thead {
position: absolute;
top: -1111px;
left: -1111px;
}
/* stylelint-disable */
.respTable td::before {
font-weight: $bold-weight;
content: attr(data-label) ":";
[dir=ltr] & {
float: left;
padding: 0 2em 0 0;
}
[dir=rtl] & {
float: right;
padding: 0 0 0 2em;
}
}
/* stylelint-enable */
.respTable td:nth-child(1) {
font-weight: $bold-weight;
}
.respTable td:last-child {
border-bottom: 1em var(--template-bg-dark-80) solid;
}
.oddCol {
background: var(--template-bg-light);
}
}
}
}

View File

@ -0,0 +1,17 @@
// Minicolours
@import "../../../../../../vendor/minicolors/css/jquery.minicolors";
.minicolors-theme-bootstrap {
.minicolors-input {
width: 140px;
}
.rgb {
width: 175px;
}
.rgba {
width: 220px;
}
}