diff --git a/src/app/@theme/components/footer/footer.component.ts b/src/app/@theme/components/footer/footer.component.ts
index 85e3b7ac..8866debd 100644
--- a/src/app/@theme/components/footer/footer.component.ts
+++ b/src/app/@theme/components/footer/footer.component.ts
@@ -1,11 +1,12 @@
import { Component } from '@angular/core';
+import { NbThemeService } from '@nebular/theme';
@Component({
selector: 'ngx-footer',
styleUrls: ['./footer.component.scss'],
template: `
- Created with ♥ by Akveo 2019
+ Created with ♥ by Marketsoft 2025
@@ -16,4 +17,5 @@ import { Component } from '@angular/core';
`,
})
export class FooterComponent {
-}
+ constructor(private themeService: NbThemeService) {}
+}
\ No newline at end of file
diff --git a/src/app/@theme/components/header/header.component.ts b/src/app/@theme/components/header/header.component.ts
index bfe2b9bc..14fa4e53 100644
--- a/src/app/@theme/components/header/header.component.ts
+++ b/src/app/@theme/components/header/header.component.ts
@@ -17,24 +17,28 @@ export class HeaderComponent implements OnInit, OnDestroy {
userPictureOnly: boolean = false;
user: any;
- themes = [
- {
- value: 'default',
- name: 'Light',
- },
- {
- value: 'dark',
- name: 'Dark',
- },
- {
- value: 'cosmic',
- name: 'Cosmic',
- },
- {
- value: 'corporate',
- name: 'Corporate',
- },
- ];
+themes = [
+ {
+ value: 'default',
+ name: 'Light',
+ },
+ {
+ value: 'dark',
+ name: 'Dark',
+ },
+ {
+ value: 'cosmic',
+ name: 'Cosmic',
+ },
+ {
+ value: 'corporate',
+ name: 'Corporate',
+ },
+ {
+ value: 'marketsoft',
+ name: 'Marketsoft',
+ },
+];
currentTheme = 'default';
diff --git a/src/app/@theme/styles/styles.scss b/src/app/@theme/styles/styles.scss
index 5b3be87e..e71bc4f1 100644
--- a/src/app/@theme/styles/styles.scss
+++ b/src/app/@theme/styles/styles.scss
@@ -1,4 +1,6 @@
@import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap');
+/* You can add global styles to this file, and also import other style files */
+@import url('https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap');
// themes - our custom or/and out of the box themes
@import 'themes';
diff --git a/src/app/@theme/styles/theme.marketsoft.ts b/src/app/@theme/styles/theme.marketsoft.ts
new file mode 100644
index 00000000..46215f8c
--- /dev/null
+++ b/src/app/@theme/styles/theme.marketsoft.ts
@@ -0,0 +1,171 @@
+import { NbJSThemeOptions, DEFAULT_THEME as baseTheme } from '@nebular/theme';
+
+const baseThemeVariables = baseTheme.variables;
+
+export const MARKETSOFT_THEME = {
+ name: 'marketsoft',
+ base: 'default',
+ variables: {
+ // Based on the Marketsoft brand colors from the provided brand guide
+ // Primary color - Marketsoft red
+ temperature: {
+ arcFill: ['#D6001C', '#D6001C', '#D6001C', '#D6001C', '#D6001C'],
+ arcEmpty: baseThemeVariables.bg2,
+ thumbBg: '#FFFFFF',
+ thumbBorder: '#D6001C',
+ },
+
+ // Override with Marketsoft brand colors
+ primary: '#D6001C', // Marketsoft red
+ success: '#2a2e40', // Marketsoft blue
+ info: '#2a2e40', // Marketsoft blue
+ warning: '#D6001C', // Marketsoft red
+ danger: '#D6001C', // Marketsoft red
+
+ // Background colors
+ bg3: '#f7f9fc',
+ bg4: '#edf1f7',
+
+ solar: {
+ gradientLeft: '#D6001C',
+ gradientRight: '#D6001C',
+ shadowColor: 'rgba(0, 0, 0, 0)',
+ secondSeriesFill: baseThemeVariables.bg2,
+ radius: ['70%', '90%'],
+ },
+
+ traffic: {
+ tooltipBg: baseThemeVariables.bg,
+ tooltipBorderColor: baseThemeVariables.border2,
+ tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;',
+ tooltipTextColor: baseThemeVariables.fgText,
+ tooltipFontWeight: 'normal',
+
+ yAxisSplitLine: baseThemeVariables.separator,
+
+ lineBg: '#D6001C',
+ lineShadowBlur: '0',
+ itemColor: '#D6001C',
+ itemBorderColor: '#D6001C',
+ itemEmphasisBorderColor: '#D6001C',
+ shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
+ shadowLineShadow: 'rgba(0, 0, 0, 0)',
+ gradFrom: baseThemeVariables.bg,
+ gradTo: baseThemeVariables.bg,
+ },
+
+ electricity: {
+ tooltipBg: baseThemeVariables.bg,
+ tooltipLineColor: baseThemeVariables.fgText,
+ tooltipLineWidth: '0',
+ tooltipBorderColor: baseThemeVariables.border2,
+ tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
+ tooltipTextColor: baseThemeVariables.fgText,
+ tooltipFontWeight: 'normal',
+
+ axisLineColor: baseThemeVariables.border3,
+ xAxisTextColor: baseThemeVariables.fg,
+ yAxisSplitLine: baseThemeVariables.separator,
+
+ itemBorderColor: '#D6001C',
+ lineStyle: 'solid',
+ lineWidth: '4',
+ lineGradFrom: '#D6001C',
+ lineGradTo: '#D6001C',
+ lineShadow: 'rgba(0, 0, 0, 0)',
+
+ areaGradFrom: 'rgba(214, 0, 28, 0.2)',
+ areaGradTo: 'rgba(214, 0, 28, 0)',
+ shadowLineDarkBg: 'rgba(0, 0, 0, 0)',
+ },
+
+ bubbleMap: {
+ titleColor: baseThemeVariables.fgText,
+ areaColor: baseThemeVariables.bg4,
+ areaHoverColor: baseThemeVariables.fgHighlight,
+ areaBorderColor: baseThemeVariables.border5,
+ },
+
+ echarts: {
+ bg: baseThemeVariables.bg,
+ textColor: baseThemeVariables.fgText,
+ axisLineColor: baseThemeVariables.fgText,
+ splitLineColor: baseThemeVariables.separator,
+ itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)',
+ tooltipBackgroundColor: '#D6001C',
+ areaOpacity: '0.7',
+ },
+
+ chartjs: {
+ axisLineColor: baseThemeVariables.separator,
+ textColor: baseThemeVariables.fgText,
+ },
+
+ // Additional styling for specific components
+ orders: {
+ tooltipBg: baseThemeVariables.bg,
+ tooltipLineColor: 'rgba(0, 0, 0, 0)',
+ tooltipLineWidth: '0',
+ tooltipBorderColor: baseThemeVariables.border2,
+ tooltipExtraCss: 'border-radius: 10px; padding: 8px 24px;',
+ tooltipTextColor: baseThemeVariables.fgText,
+ tooltipFontWeight: 'normal',
+ tooltipFontSize: '20',
+
+ axisLineColor: baseThemeVariables.border4,
+ axisFontSize: '16',
+ axisTextColor: baseThemeVariables.fg,
+ yAxisSplitLine: baseThemeVariables.separator,
+
+ itemBorderColor: '#D6001C',
+ lineStyle: 'solid',
+ lineWidth: '4',
+
+ // first line
+ firstAreaGradFrom: 'rgba(42, 46, 64, 0.2)',
+ firstAreaGradTo: 'rgba(42, 46, 64, 0)',
+ firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)',
+
+ // second line
+ secondLineGradFrom: '#D6001C',
+ secondLineGradTo: '#D6001C',
+
+ secondAreaGradFrom: 'rgba(214, 0, 28, 0.2)',
+ secondAreaGradTo: 'rgba(214, 0, 28, 0)',
+ secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)',
+
+ // third line
+ thirdLineGradFrom: '#2a2e40',
+ thirdLineGradTo: '#2a2e40',
+
+ thirdAreaGradFrom: 'rgba(42, 46, 64, 0.2)',
+ thirdAreaGradTo: 'rgba(42, 46, 64, 0)',
+ thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)',
+ },
+
+ // Setting up the Marketsoft specific colors for visuals
+ visitorsPieLegend: {
+ firstSection: '#D6001C',
+ secondSection: '#2a2e40',
+ },
+
+ earningPie: {
+ radius: ['65%', '100%'],
+ center: ['50%', '50%'],
+
+ fontSize: '22',
+
+ firstPieGradientLeft: '#D6001C',
+ firstPieGradientRight: '#D6001C',
+ firstPieShadowColor: 'rgba(0, 0, 0, 0)',
+
+ secondPieGradientLeft: '#2a2e40',
+ secondPieGradientRight: '#2a2e40',
+ secondPieShadowColor: 'rgba(0, 0, 0, 0)',
+
+ thirdPieGradientLeft: '#ffffff',
+ thirdPieGradientRight: '#ffffff',
+ thirdPieShadowColor: 'rgba(0, 0, 0, 0)',
+ },
+ },
+} as NbJSThemeOptions;
\ No newline at end of file
diff --git a/src/app/@theme/styles/themes.scss b/src/app/@theme/styles/themes.scss
index 6ee6e40e..c7e25807 100644
--- a/src/app/@theme/styles/themes.scss
+++ b/src/app/@theme/styles/themes.scss
@@ -86,3 +86,67 @@ $nb-themes: nb-register-theme((
slide-out-shadow-color: 0 4px 14px 0 #8f9bb3,
slide-out-shadow-color-rtl: 0 4px 14px 0 #8f9bb3,
), dark, dark);
+
+// Add the new Marketsoft theme
+$nb-themes: nb-register-theme((
+ layout-padding-top: 2.25rem,
+
+ menu-item-icon-margin: 0 0.5rem 0 0,
+
+ card-height-tiny: 13.5rem,
+ card-height-small: 21.1875rem,
+ card-height-medium: 28.875rem,
+ card-height-large: 36.5625rem,
+ card-height-giant: 44.25rem,
+ card-margin-bottom: 1.875rem,
+ card-header-with-select-padding-top: 0.5rem,
+ card-header-with-select-padding-bottom: 0.5rem,
+
+ select-min-width: 6rem,
+
+ // Marketsoft brand colors
+ color-primary-100: #ffe2e5,
+ color-primary-200: #ffb2b9,
+ color-primary-300: #ff7e8c,
+ color-primary-400: #ff4d5f,
+ color-primary-500: #D6001C, // Main Marketsoft red
+ color-primary-600: #ad0017,
+ color-primary-700: #840012,
+ color-primary-800: #5b000c,
+ color-primary-900: #320007,
+
+ // Custom background for the Marketsoft theme
+ background-basic-color-1: #ffffff,
+ background-basic-color-2: #f7f9fc,
+ background-basic-color-3: #edf1f7,
+ background-basic-color-4: #e4e9f2,
+
+ // Text colors
+ text-basic-color: #2a2e40, // Marketsoft dark blue
+ text-primary-color: #D6001C, // Marketsoft red
+
+ // Override some menu colors
+ menu-item-hover-text-color: #D6001C,
+ menu-item-active-text-color: #D6001C,
+ menu-item-active-background-color: #ffe2e5,
+ menu-item-icon-color: #D6001C,
+
+ // Set the slide-out colors (sidebar)
+ slide-out-background: #ffffff,
+ slide-out-shadow-color: 0 4px 14px 0 rgba(214, 0, 28, 0.1),
+ slide-out-shadow-color-rtl: 0 4px 14px 0 rgba(214, 0, 28, 0.1),
+
+ // Button colors
+ button-filled-primary-background-color: #D6001C,
+ button-filled-primary-border-color: #D6001C,
+ button-filled-primary-hover-background-color: #ad0017,
+ button-filled-primary-hover-border-color: #ad0017,
+
+ // Border radius
+ card-border-radius: 0.375rem,
+ border-radius: 0.375rem,
+
+ // Typography settings - use Roboto as specified in the brand guide
+ font-family-primary: 'Roboto, sans-serif',
+ font-family-secondary: 'Roboto, sans-serif',
+), marketsoft, default);
\ No newline at end of file
diff --git a/src/app/@theme/theme.module.ts b/src/app/@theme/theme.module.ts
index 9bb44420..f61b7e63 100644
--- a/src/app/@theme/theme.module.ts
+++ b/src/app/@theme/theme.module.ts
@@ -38,6 +38,7 @@ import { DEFAULT_THEME } from './styles/theme.default';
import { COSMIC_THEME } from './styles/theme.cosmic';
import { CORPORATE_THEME } from './styles/theme.corporate';
import { DARK_THEME } from './styles/theme.dark';
+import { MARKETSOFT_THEME } from './styles/theme.marketsoft'; // Import the new theme
const NB_MODULES = [
NbLayoutModule,
@@ -82,11 +83,11 @@ export class ThemeModule {
providers: [
...NbThemeModule.forRoot(
{
- name: 'default',
+ name: 'marketsoft', // Set marketsoft as the default theme
},
- [ DEFAULT_THEME, COSMIC_THEME, CORPORATE_THEME, DARK_THEME ],
+ [ DEFAULT_THEME, COSMIC_THEME, CORPORATE_THEME, DARK_THEME, MARKETSOFT_THEME ], // Add MARKETSOFT_THEME to the themes array
).providers,
],
};
}
-}
+}
\ No newline at end of file
diff --git a/src/app/pages/dashboard/status-card/status-card.component.scss b/src/app/pages/dashboard/status-card/status-card.component.scss
index 03be02f5..a5deba5b 100644
--- a/src/app/pages/dashboard/status-card/status-card.component.scss
+++ b/src/app/pages/dashboard/status-card/status-card.component.scss
@@ -76,4 +76,4 @@
text-transform: uppercase;
}
}
-}
+}
\ No newline at end of file