diff --git a/package.json b/package.json index 1129dddb54..c0cda75a3c 100644 --- a/package.json +++ b/package.json @@ -37,6 +37,7 @@ "@angular/core": "^13.3.12", "@angular/forms": "^13.3.12", "@angular/google-maps": "^12.2.13", + "@angular/material": "^12.1.0", "@angular/platform-browser": "^13.3.12", "@angular/platform-browser-dynamic": "^13.3.12", "@angular/router": "^13.3.12", @@ -62,7 +63,6 @@ "ng2-completer": "^9.0.1", "ng2-smart-table": "^1.6.0", "ngx-echarts": "^4.2.2", - "node-sass": "^4.14.1", "normalize.css": "6.0.0", "pace-js": "1.0.2", "roboto-fontface": "0.8.0", diff --git a/src/app/@core/core.module.ts b/src/app/@core/core.module.ts index 1135104a05..26bf07438e 100644 --- a/src/app/@core/core.module.ts +++ b/src/app/@core/core.module.ts @@ -1,5 +1,6 @@ import { ModuleWithProviders, NgModule, Optional, SkipSelf } from '@angular/core'; import { CommonModule } from '@angular/common'; +import { MAT_RIPPLE_GLOBAL_OPTIONS } from '@angular/material/core'; import { NbAuthModule, NbDummyAuthStrategy } from '@nebular/auth'; import { NbSecurityModule, NbRoleProvider } from '@nebular/security'; import { of as observableOf } from 'rxjs'; @@ -51,6 +52,7 @@ import { CountryOrderService } from './mock/country-order.service'; import { StatsProgressBarService } from './mock/stats-progress-bar.service'; import { VisitorsAnalyticsService } from './mock/visitors-analytics.service'; import { SecurityCamerasService } from './mock/security-cameras.service'; +import { RippleService } from './utils/ripple.service'; import { MockDataModule } from './mock/mock-data.module'; const socialLinks = [ @@ -91,6 +93,7 @@ const DATA_SERVICES = [ { provide: StatsProgressBarData, useClass: StatsProgressBarService }, { provide: VisitorsAnalyticsData, useClass: VisitorsAnalyticsService }, { provide: SecurityCamerasData, useClass: SecurityCamerasService }, + {provide: MAT_RIPPLE_GLOBAL_OPTIONS, useExisting: RippleService}, ]; export class NbSimpleRoleProvider extends NbRoleProvider { diff --git a/src/app/@core/utils/ripple.service.ts b/src/app/@core/utils/ripple.service.ts new file mode 100644 index 0000000000..5efb7a3c56 --- /dev/null +++ b/src/app/@core/utils/ripple.service.ts @@ -0,0 +1,11 @@ +import { Injectable } from '@angular/core'; +import { RippleGlobalOptions } from '@angular/material/core'; + +@Injectable({providedIn: 'root'}) +export class RippleService implements RippleGlobalOptions { + public disabled: boolean = false; + + public toggle(enabled: boolean): void { + this.disabled = !enabled; + } +} diff --git a/src/app/@theme/components/header/header.component.html b/src/app/@theme/components/header/header.component.html index 6fdc5d3570..b228cde1f0 100644 --- a/src/app/@theme/components/header/header.component.html +++ b/src/app/@theme/components/header/header.component.html @@ -1,12 +1,28 @@
- - + +
- - {{ theme.name }} + + {{ theme.name }}
@@ -14,11 +30,32 @@ - - - - - + + + + = new Subject(); + public readonly materialTheme$: Observable; userPictureOnly: boolean = false; user: any; @@ -34,18 +36,34 @@ export class HeaderComponent implements OnInit, OnDestroy { value: 'corporate', name: 'Corporate', }, + { + value: 'material-light', + name: 'Material Light', + }, + { + value: 'material-dark', + name: 'Material Dark', + }, ]; currentTheme = 'default'; userMenu = [ { title: 'Profile' }, { title: 'Log out' } ]; - constructor(private sidebarService: NbSidebarService, - private menuService: NbMenuService, - private themeService: NbThemeService, - private userService: UserData, - private layoutService: LayoutService, - private breakpointService: NbMediaBreakpointsService) { + public constructor( + private sidebarService: NbSidebarService, + private menuService: NbMenuService, + private themeService: NbThemeService, + private userService: UserData, + private layoutService: LayoutService, + private breakpointService: NbMediaBreakpointsService, + private rippleService: RippleService, + ) { + this.materialTheme$ = this.themeService.onThemeChange() + .pipe(map(theme => { + const themeName: string = theme?.name || ''; + return themeName.startsWith('material'); + })); } ngOnInit() { @@ -68,7 +86,10 @@ export class HeaderComponent implements OnInit, OnDestroy { map(({ name }) => name), takeUntil(this.destroy$), ) - .subscribe(themeName => this.currentTheme = themeName); + .subscribe(themeName => { + this.currentTheme = themeName; + this.rippleService.toggle(themeName?.startsWith('material')); + }); } ngOnDestroy() { diff --git a/src/app/@theme/styles/_overrides.scss b/src/app/@theme/styles/_overrides.scss index acf7d8ac1d..7fa53aaa4b 100644 --- a/src/app/@theme/styles/_overrides.scss +++ b/src/app/@theme/styles/_overrides.scss @@ -8,4 +8,15 @@ right: 0.41rem !important; } } + + nb-card nb-list { + @include nb-scrollbars( + nb-theme(card-scrollbar-color), + nb-theme(card-scrollbar-background-color), + nb-theme(card-scrollbar-width)); + } + + .table { + color: nb-theme(text-basic-color) !important; + } } diff --git a/src/app/@theme/styles/material/_angular-material.scss b/src/app/@theme/styles/material/_angular-material.scss new file mode 100644 index 0000000000..f9787f5f3a --- /dev/null +++ b/src/app/@theme/styles/material/_angular-material.scss @@ -0,0 +1,19 @@ +@use '~@angular/material' as mat; + +@mixin angular-material() { + @include mat.core(); + + @include nb-for-theme(material-dark) { + $custom-dark-theme: mat.define-dark-theme( + mat.define-palette(mat.$pink-palette), + mat.define-palette(mat.$blue-grey-palette)); + @include mat.all-component-themes($custom-dark-theme); + } + + @include nb-for-theme(material-light) { + $custom-light-theme: mat.define-light-theme( + mat.define-palette(mat.$indigo-palette), + mat.define-palette(mat.$pink-palette)); + @include mat.all-component-themes($custom-light-theme); + } +} diff --git a/src/app/@theme/styles/material/_material-dark.scss b/src/app/@theme/styles/material/_material-dark.scss new file mode 100644 index 0000000000..b991f81bd3 --- /dev/null +++ b/src/app/@theme/styles/material/_material-dark.scss @@ -0,0 +1,501 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '~@nebular/theme/styles/core/functions'; +@import '~@nebular/theme/styles/core/mixins'; + +$theme: ( + color-primary-100: #fff2f7, + color-primary-200: #ffd4e3, + color-primary-300: #fc9abc, + color-primary-400: #f24681, + color-primary-500: #e91d63, + color-primary-600: #c71451, + color-primary-700: #a80d43, + color-primary-800: #870935, + color-primary-900: #70062a, + + color-primary-transparent-100: rgba(233, 29, 99, 0.08), + color-primary-transparent-200: rgba(233, 29, 99, 0.16), + color-primary-transparent-300: rgba(233, 29, 99, 0.24), + color-primary-transparent-400: rgba(233, 29, 99, 0.32), + color-primary-transparent-500: rgba(233, 29, 99, 0.4), + color-primary-transparent-600: rgba(233, 29, 99, 0.48), + + color-success-100: #edfbd1, + color-success-200: #d7f7a6, + color-success-300: #b4e775, + color-success-400: #8fcf50, + color-success-500: #60af20, + color-success-600: #499617, + color-success-700: #357d10, + color-success-800: #24650a, + color-success-900: #175306, + + color-success-transparent-100: rgba(96, 175, 32, 0.08), + color-success-transparent-200: rgba(96, 175, 32, 0.16), + color-success-transparent-300: rgba(96, 175, 32, 0.24), + color-success-transparent-400: rgba(96, 175, 32, 0.32), + color-success-transparent-500: rgba(96, 175, 32, 0.4), + color-success-transparent-600: rgba(96, 175, 32, 0.48), + + color-info-100: #ccf7fe, + color-info-200: #99e9fd, + color-info-300: #66d3f9, + color-info-400: #40bbf4, + color-info-500: #0495ee, + color-info-600: #0273cc, + color-info-700: #0256ab, + color-info-800: #013d8a, + color-info-900: #002b72, + + color-info-transparent-100: rgba(4, 149, 238, 0.08), + color-info-transparent-200: rgba(4, 149, 238, 0.16), + color-info-transparent-300: rgba(4, 149, 238, 0.24), + color-info-transparent-400: rgba(4, 149, 238, 0.32), + color-info-transparent-500: rgba(4, 149, 238, 0.4), + color-info-transparent-600: rgba(4, 149, 238, 0.48), + + color-warning-100: #fff3cd, + color-warning-200: #ffe49b, + color-warning-300: #ffd169, + color-warning-400: #ffbe43, + color-warning-500: #ff9f05, + color-warning-600: #db8003, + color-warning-700: #b76302, + color-warning-800: #934a01, + color-warning-900: #7a3800, + + color-warning-transparent-100: rgba(255, 159, 5, 0.08), + color-warning-transparent-200: rgba(255, 159, 5, 0.16), + color-warning-transparent-300: rgba(255, 159, 5, 0.24), + color-warning-transparent-400: rgba(255, 159, 5, 0.32), + color-warning-transparent-500: rgba(255, 159, 5, 0.4), + color-warning-transparent-600: rgba(255, 159, 5, 0.48), + + color-danger-100: #fbd2c8, + color-danger-200: #f79e94, + color-danger-300: #e75d5c, + color-danger-400: #cf3341, + color-danger-500: #b00020, + color-danger-600: #970029, + color-danger-700: #7e002e, + color-danger-800: #66002f, + color-danger-900: #54002f, + + color-danger-transparent-100: rgba(176, 0, 32, 0.08), + color-danger-transparent-200: rgba(176, 0, 32, 0.16), + color-danger-transparent-300: rgba(176, 0, 32, 0.24), + color-danger-transparent-400: rgba(176, 0, 32, 0.32), + color-danger-transparent-500: rgba(176, 0, 32, 0.4), + color-danger-transparent-600: rgba(176, 0, 32, 0.48), + + color-basic-100: #ffffff, + color-basic-200: #f5f5f5, + color-basic-300: #f5f5f5, + color-basic-400: #d4d4d4, + color-basic-500: #b3b3b3, + color-basic-600: #808080, + color-basic-700: #404040, + color-basic-800: #353535, + color-basic-900: #303030, + color-basic-1000: #1f1f1f, + color-basic-1100: #141414, + + color-basic-transparent-100: rgba(128, 128, 128, 0.08), + color-basic-transparent-200: rgba(128, 128, 128, 0.16), + color-basic-transparent-300: rgba(128, 128, 128, 0.24), + color-basic-transparent-400: rgba(128, 128, 128, 0.32), + color-basic-transparent-500: rgba(128, 128, 128, 0.4), + color-basic-transparent-600: rgba(128, 128, 128, 0.48), + + color-basic-control-transparent-100: rgba(255, 255, 255, 0.08), + color-basic-control-transparent-200: rgba(255, 255, 255, 0.16), + color-basic-control-transparent-300: rgba(255, 255, 255, 0.24), + color-basic-control-transparent-400: rgba(255, 255, 255, 0.32), + color-basic-control-transparent-500: rgba(255, 255, 255, 0.4), + color-basic-control-transparent-600: rgba(255, 255, 255, 0.48), + + color-basic-focus: color-basic-400, + color-basic-hover: color-basic-200, + color-basic-default: color-basic-300, + color-basic-active: color-basic-400, + color-basic-disabled: color-basic-transparent-300, + color-basic-focus-border: color-basic-500, + color-basic-hover-border: color-basic-hover, + color-basic-default-border: color-basic-default, + color-basic-active-border: color-basic-active, + color-basic-disabled-border: color-basic-disabled, + + color-basic-transparent-focus: color-basic-transparent-300, + color-basic-transparent-hover: color-basic-transparent-200, + color-basic-transparent-default: color-basic-transparent-100, + color-basic-transparent-active: color-basic-transparent-300, + color-basic-transparent-disabled: color-basic-transparent-200, + color-basic-transparent-focus-border: color-basic-500, + color-basic-transparent-hover-border: color-basic-500, + color-basic-transparent-default-border: color-basic-500, + color-basic-transparent-active-border: color-basic-500, + color-basic-transparent-disabled-border: color-basic-transparent-300, + + color-primary-focus: color-primary-600, + color-primary-hover: color-primary-400, + color-primary-default: color-primary-500, + color-primary-active: color-primary-600, + color-primary-disabled: color-basic-transparent-300, + color-primary-focus-border: color-primary-700, + color-primary-hover-border: color-primary-hover, + color-primary-default-border: color-primary-default, + color-primary-active-border: color-primary-active, + color-primary-disabled-border: color-primary-disabled, + + color-primary-transparent-focus: color-primary-transparent-300, + color-primary-transparent-hover: color-primary-transparent-200, + color-primary-transparent-default: color-primary-transparent-100, + color-primary-transparent-active: color-primary-transparent-300, + color-primary-transparent-disabled: color-basic-transparent-200, + color-primary-transparent-focus-border: color-primary-500, + color-primary-transparent-hover-border: color-primary-500, + color-primary-transparent-default-border: color-primary-500, + color-primary-transparent-active-border: color-primary-500, + color-primary-transparent-disabled-border: color-basic-transparent-300, + + color-success-focus: color-success-600, + color-success-hover: color-success-400, + color-success-default: color-success-500, + color-success-active: color-success-600, + color-success-disabled: color-basic-transparent-300, + color-success-focus-border: color-success-700, + color-success-hover-border: color-success-hover, + color-success-default-border: color-success-default, + color-success-active-border: color-success-active, + color-success-disabled-border: color-success-disabled, + + color-success-transparent-focus: color-success-transparent-300, + color-success-transparent-hover: color-success-transparent-200, + color-success-transparent-default: color-success-transparent-100, + color-success-transparent-active: color-success-transparent-300, + color-success-transparent-disabled: color-basic-transparent-200, + color-success-transparent-focus-border: color-success-500, + color-success-transparent-hover-border: color-success-500, + color-success-transparent-default-border: color-success-500, + color-success-transparent-active-border: color-success-500, + color-success-transparent-disabled-border: color-basic-transparent-300, + + color-info-focus: color-info-600, + color-info-hover: color-info-400, + color-info-default: color-info-500, + color-info-active: color-info-600, + color-info-disabled: color-basic-transparent-300, + color-info-focus-border: color-info-700, + color-info-hover-border: color-info-hover, + color-info-default-border: color-info-default, + color-info-active-border: color-info-active, + color-info-disabled-border: color-info-disabled, + + color-info-transparent-focus: color-info-transparent-300, + color-info-transparent-hover: color-info-transparent-200, + color-info-transparent-default: color-info-transparent-100, + color-info-transparent-active: color-info-transparent-300, + color-info-transparent-disabled: color-basic-transparent-200, + color-info-transparent-focus-border: color-info-500, + color-info-transparent-hover-border: color-info-500, + color-info-transparent-default-border: color-info-500, + color-info-transparent-active-border: color-info-500, + color-info-transparent-disabled-border: color-basic-transparent-300, + + color-warning-focus: color-warning-600, + color-warning-hover: color-warning-400, + color-warning-default: color-warning-500, + color-warning-active: color-warning-600, + color-warning-disabled: color-basic-transparent-300, + color-warning-focus-border: color-warning-700, + color-warning-hover-border: color-warning-hover, + color-warning-default-border: color-warning-default, + color-warning-active-border: color-warning-active, + color-warning-disabled-border: color-warning-disabled, + + color-warning-transparent-focus: color-warning-transparent-300, + color-warning-transparent-hover: color-warning-transparent-200, + color-warning-transparent-default: color-warning-transparent-100, + color-warning-transparent-active: color-warning-transparent-300, + color-warning-transparent-disabled: color-basic-transparent-200, + color-warning-transparent-focus-border: color-warning-500, + color-warning-transparent-hover-border: color-warning-500, + color-warning-transparent-default-border: color-warning-500, + color-warning-transparent-active-border: color-warning-500, + color-warning-transparent-disabled-border: color-basic-transparent-300, + + color-danger-focus: color-danger-600, + color-danger-hover: color-danger-400, + color-danger-default: color-danger-500, + color-danger-active: color-danger-600, + color-danger-disabled: color-basic-transparent-300, + color-danger-focus-border: color-danger-700, + color-danger-hover-border: color-danger-hover, + color-danger-default-border: color-danger-default, + color-danger-active-border: color-danger-active, + color-danger-disabled-border: color-danger-disabled, + + color-danger-transparent-focus: color-danger-transparent-300, + color-danger-transparent-hover: color-danger-transparent-200, + color-danger-transparent-default: color-danger-transparent-100, + color-danger-transparent-active: color-danger-transparent-300, + color-danger-transparent-disabled: color-basic-transparent-200, + color-danger-transparent-focus-border: color-danger-500, + color-danger-transparent-hover-border: color-danger-500, + color-danger-transparent-default-border: color-danger-500, + color-danger-transparent-active-border: color-danger-500, + color-danger-transparent-disabled-border: color-basic-transparent-300, + + color-control-focus: color-basic-300, + color-control-hover: color-basic-200, + color-control-default: color-basic-100, + color-control-active: color-basic-300, + color-control-disabled: color-basic-transparent-300, + color-control-focus-border: color-basic-500, + color-control-hover-border: color-control-hover, + color-control-default-border: color-control-default, + color-control-active-border: color-control-active, + color-control-disabled-border: color-control-disabled, + + color-control-transparent-focus: color-basic-control-transparent-300, + color-control-transparent-hover: color-basic-control-transparent-200, + color-control-transparent-default: color-basic-control-transparent-100, + color-control-transparent-active: color-basic-control-transparent-300, + color-control-transparent-disabled: color-basic-transparent-200, + color-control-transparent-focus-border: color-basic-100, + color-control-transparent-hover-border: color-basic-100, + color-control-transparent-default-border: color-basic-100, + color-control-transparent-active-border: color-basic-100, + color-control-transparent-disabled-border: color-basic-transparent-300, + + background-basic-color-1: color-basic-1000, + background-basic-color-2: color-basic-1000, + background-basic-color-3: color-basic-900, + background-basic-color-4: color-basic-1100, + + background-alternative-color-1: color-basic-100, + background-alternative-color-2: color-basic-200, + background-alternative-color-3: color-basic-300, + background-alternative-color-4: color-basic-400, + + border-basic-color-1: color-basic-800, + border-basic-color-2: color-basic-900, + border-basic-color-3: color-basic-1000, + border-basic-color-4: color-basic-1100, + border-basic-color-5: color-basic-1100, + + border-alternative-color-1: color-basic-100, + border-alternative-color-2: color-basic-200, + border-alternative-color-3: color-basic-300, + border-alternative-color-4: color-basic-400, + border-alternative-color-5: color-basic-500, + + border-primary-color-1: color-primary-500, + border-primary-color-2: color-primary-600, + border-primary-color-3: color-primary-700, + border-primary-color-4: color-primary-800, + border-primary-color-5: color-primary-900, + + border-success-color-1: color-success-500, + border-success-color-2: color-success-600, + border-success-color-3: color-success-700, + border-success-color-4: color-success-800, + border-success-color-5: color-success-900, + + border-info-color-1: color-info-500, + border-info-color-2: color-info-600, + border-info-color-3: color-info-700, + border-info-color-4: color-info-800, + border-info-color-5: color-info-900, + + border-warning-color-1: color-warning-500, + border-warning-color-2: color-warning-600, + border-warning-color-3: color-warning-700, + border-warning-color-4: color-warning-800, + border-warning-color-5: color-warning-900, + + border-danger-color-1: color-danger-500, + border-danger-color-2: color-danger-600, + border-danger-color-3: color-danger-700, + border-danger-color-4: color-danger-800, + border-danger-color-5: color-danger-900, + + text-basic-color: color-basic-100, + text-alternate-color: color-basic-900, + text-control-color: color-basic-100, + text-disabled-color: color-basic-transparent-600, + text-hint-color: color-basic-600, + + text-primary-color: color-primary-default, + text-primary-focus-color: color-primary-focus, + text-primary-hover-color: color-primary-hover, + text-primary-active-color: color-primary-active, + text-primary-disabled-color: color-primary-400, + + text-success-color: color-success-default, + text-success-focus-color: color-success-focus, + text-success-hover-color: color-success-hover, + text-success-active-color: color-success-active, + text-success-disabled-color: color-success-400, + + text-info-color: color-info-default, + text-info-focus-color: color-info-focus, + text-info-hover-color: color-info-hover, + text-info-active-color: color-info-active, + text-info-disabled-color: color-info-400, + + text-warning-color: color-warning-default, + text-warning-focus-color: color-warning-focus, + text-warning-hover-color: color-warning-hover, + text-warning-active-color: color-warning-active, + text-warning-disabled-color: color-warning-400, + + text-danger-color: color-danger-default, + text-danger-focus-color: color-danger-focus, + text-danger-hover-color: color-danger-hover, + text-danger-active-color: color-danger-active, + text-danger-disabled-color: color-danger-400, + + font-family-primary: unquote('Roboto, sans-serif'), + + shadow: unquote( + '0px 2px 1px -1px rgba(0, 0, 0, 0.2), 0px 1px 1px 0px rgba(0, 0, 0, 0.14), 0px 1px 3px 0px rgba(0, 0, 0, 0.12)' + ), + card-shadow: shadow, + header-shadow: unquote( + '0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12)' + ), + + header-background-color: color-primary-default, + footer-background-color: color-primary-default, + header-text-color: text-basic-color, + footer-text-color: text-basic-color, + footer-text-highlight-color: footer-text-color, + sidebar-background-color: background-basic-color-2, + + material-regular-font-weight: 400, + menu-text-font-weight: material-regular-font-weight, + menu-text-color: rgba(255, 255, 255, 0.7), + menu-item-hover-text-color: rgba(255, 255, 255, 0.7), + menu-item-hover-background-color: rgba(255, 255, 255, 0.04), + menu-item-active-background-color: rgba(0, 0, 0, 0.25), + + menu-item-icon-color: rgba(255, 255, 255, 0.7), + menu-item-icon-hover-color: rgba(255, 255, 255, 0.7), + + menu-submenu-item-hover-background-color: rgba(255, 255, 255, 0.04), + menu-submenu-item-active-hover-background-color: rgba(255, 255, 255, 0.1), + menu-submenu-item-active-background-color: rgba(0, 0, 0, 0.25), + + card-border-style: none, + card-background-color: color-basic-800, + card-divider-color: color-basic-700, + + input-border-width: 1px, + input-basic-border-color: rgba(255, 255, 255, 0.7), + input-basic-focus-border-color: color-primary-focus, + input-basic-disabled-border-color: input-basic-border-color, + input-basic-hover-border-color: input-basic-border-color, + input-basic-background-color: transparent, + input-basic-focus-background-color: transparent, + input-basic-disabled-background-color: transparent, + input-basic-hover-background-color: transparent, + input-rectangle-border-radius: 0.25rem, + input-semi-round-border-radius: 0.25rem, + input-round-border-radius: 0.25rem, + input-medium-padding: 0.75rem 1rem, + input-large-padding: 1rem 1rem, + input-small-text-font-weight: text-paragraph-font-weight, + input-medium-text-font-weight: text-paragraph-font-weight, + input-large-text-font-weight: text-paragraph-font-weight, + input-primary-background-color: input-basic-background-color, + input-primary-focus-background-color: input-basic-focus-background-color, + input-primary-disabled-background-color: input-basic-disabled-background-color, + input-primary-hover-background-color: input-basic-hover-background-color, + input-info-background-color: input-basic-background-color, + input-info-focus-background-color: input-basic-focus-background-color, + input-info-disabled-background-color: input-basic-disabled-background-color, + input-info-hover-background-color: input-basic-hover-background-color, + input-success-background-color: input-basic-background-color, + input-success-focus-background-color: input-basic-focus-background-color, + input-success-disabled-background-color: input-basic-disabled-background-color, + input-success-hover-background-color: input-basic-hover-background-color, + input-warning-background-color: input-basic-background-color, + input-warning-focus-background-color: input-basic-focus-background-color, + input-warning-disabled-background-color: input-basic-disabled-background-color, + input-warning-hover-background-color: input-basic-hover-background-color, + input-danger-background-color: input-basic-background-color, + input-danger-focus-background-color: input-basic-focus-background-color, + input-danger-disabled-background-color: input-basic-disabled-background-color, + input-danger-hover-background-color: input-basic-hover-background-color, + input-control-background-color: input-basic-background-color, + input-control-focus-background-color: input-basic-focus-background-color, + input-control-disabled-background-color: input-basic-disabled-background-color, + input-control-hover-background-color: input-basic-hover-background-color, + + select-tiny-text-font-weight: material-regular-font-weight, + select-small-text-font-weight: material-regular-font-weight, + select-medium-text-font-weight: material-regular-font-weight, + select-large-text-font-weight: material-regular-font-weight, + select-giant-text-font-weight: material-regular-font-weight, + select-rectangle-border-radius: 0, + select-semi-round-border-radius: 0, + select-round-border-radius: 0, + select-outline-border-width: 0 0 1px 0, + select-outline-basic-border-color: rgba(255, 255, 255, 0.7), + select-outline-basic-focus-border-color: color-primary-focus, + select-outline-basic-hover-border-color: select-outline-basic-border-color, + select-outline-basic-disabled-border-color: select-outline-basic-border-color, + select-outline-basic-background-color: transparent, + select-outline-basic-focus-background-color: transparent, + select-outline-basic-hover-background-color: transparent, + select-outline-basic-disabled-background-color: transparent, + select-outline-primary-background-color: select-outline-basic-background-color, + select-outline-primary-focus-background-color: select-outline-basic-focus-background-color, + select-outline-primary-hover-background-color: select-outline-basic-hover-background-color, + select-outline-primary-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-success-background-color: select-outline-basic-background-color, + select-outline-success-focus-background-color: select-outline-basic-focus-background-color, + select-outline-success-hover-background-color: select-outline-basic-hover-background-color, + select-outline-success-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-info-background-color: select-outline-basic-background-color, + select-outline-info-focus-background-color: select-outline-basic-focus-background-color, + select-outline-info-hover-background-color: select-outline-basic-hover-background-color, + select-outline-info-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-warning-background-color: select-outline-basic-background-color, + select-outline-warning-focus-background-color: select-outline-basic-focus-background-color, + select-outline-warning-hover-background-color: select-outline-basic-hover-background-color, + select-outline-warning-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-danger-background-color: select-outline-basic-background-color, + select-outline-danger-focus-background-color: select-outline-basic-focus-background-color, + select-outline-danger-hover-background-color: select-outline-basic-hover-background-color, + select-outline-danger-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-control-background-color: select-outline-basic-background-color, + select-outline-control-focus-background-color: select-outline-basic-focus-background-color, + select-outline-control-hover-background-color: select-outline-basic-hover-background-color, + select-outline-control-disabled-background-color: select-outline-basic-disabled-background-color, + option-list-shadow: shadow, + option-list-border-style: none, + option-list-adjacent-border-style: none, + option-background-color: color-basic-700, + option-hover-background-color: #4a4a4a, + option-focus-background-color: option-hover-background-color, + option-selected-background-color: #525252, + option-selected-hover-background-color: option-selected-background-color, + option-selected-focus-background-color: option-selected-background-color, + option-selected-text-color: text-primary-color, + option-selected-hover-text-color: text-primary-color, + option-selected-focus-text-color: text-primary-color, + option-tiny-text-font-weight: material-regular-font-weight, + option-small-text-font-weight: material-regular-font-weight, + option-medium-text-font-weight: material-regular-font-weight, + option-large-text-font-weight: material-regular-font-weight, + option-giant-text-font-weight: material-regular-font-weight +); + +$nb-themes: nb-register-theme($theme, material-dark, dark); diff --git a/src/app/@theme/styles/material/_material-light.scss b/src/app/@theme/styles/material/_material-light.scss new file mode 100644 index 0000000000..fd033164c9 --- /dev/null +++ b/src/app/@theme/styles/material/_material-light.scss @@ -0,0 +1,497 @@ +/** + * @license + * Copyright Akveo. All Rights Reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + */ + +@import '~@nebular/theme/styles/core/functions'; +@import '~@nebular/theme/styles/core/mixins'; + +$theme: ( + color-primary-100: #e8cbfe, + color-primary-200: #ce97fd, + color-primary-300: #ae63f9, + color-primary-400: #903df4, + color-primary-500: #6200ee, + color-primary-600: #4b00cc, + color-primary-700: #3800ab, + color-primary-800: #27008a, + color-primary-900: #1b0072, + + color-primary-transparent-100: rgba(98, 0, 238, 0.08), + color-primary-transparent-200: rgba(98, 0, 238, 0.16), + color-primary-transparent-300: rgba(98, 0, 238, 0.24), + color-primary-transparent-400: rgba(98, 0, 238, 0.32), + color-primary-transparent-500: rgba(98, 0, 238, 0.4), + color-primary-transparent-600: rgba(98, 0, 238, 0.48), + + color-success-100: #edfbd1, + color-success-200: #d7f7a6, + color-success-300: #b4e775, + color-success-400: #8fcf50, + color-success-500: #60af20, + color-success-600: #499617, + color-success-700: #357d10, + color-success-800: #24650a, + color-success-900: #175306, + + color-success-transparent-100: rgba(96, 175, 32, 0.08), + color-success-transparent-200: rgba(96, 175, 32, 0.16), + color-success-transparent-300: rgba(96, 175, 32, 0.24), + color-success-transparent-400: rgba(96, 175, 32, 0.32), + color-success-transparent-500: rgba(96, 175, 32, 0.4), + color-success-transparent-600: rgba(96, 175, 32, 0.48), + + color-info-100: #ccf7fe, + color-info-200: #99e9fd, + color-info-300: #66d3f9, + color-info-400: #40bbf4, + color-info-500: #0495ee, + color-info-600: #0273cc, + color-info-700: #0256ab, + color-info-800: #013d8a, + color-info-900: #002b72, + + color-info-transparent-100: rgba(4, 149, 238, 0.08), + color-info-transparent-200: rgba(4, 149, 238, 0.16), + color-info-transparent-300: rgba(4, 149, 238, 0.24), + color-info-transparent-400: rgba(4, 149, 238, 0.32), + color-info-transparent-500: rgba(4, 149, 238, 0.4), + color-info-transparent-600: rgba(4, 149, 238, 0.48), + + color-warning-100: #fff3cd, + color-warning-200: #ffe49b, + color-warning-300: #ffd169, + color-warning-400: #ffbe43, + color-warning-500: #ff9f05, + color-warning-600: #db8003, + color-warning-700: #b76302, + color-warning-800: #934a01, + color-warning-900: #7a3800, + + color-warning-transparent-100: rgba(255, 159, 5, 0.08), + color-warning-transparent-200: rgba(255, 159, 5, 0.16), + color-warning-transparent-300: rgba(255, 159, 5, 0.24), + color-warning-transparent-400: rgba(255, 159, 5, 0.32), + color-warning-transparent-500: rgba(255, 159, 5, 0.4), + color-warning-transparent-600: rgba(255, 159, 5, 0.48), + + color-danger-100: #fbd2c8, + color-danger-200: #f79e94, + color-danger-300: #e75d5c, + color-danger-400: #cf3341, + color-danger-500: #b00020, + color-danger-600: #970029, + color-danger-700: #7e002e, + color-danger-800: #66002f, + color-danger-900: #54002f, + + color-danger-transparent-100: rgba(176, 0, 32, 0.08), + color-danger-transparent-200: rgba(176, 0, 32, 0.16), + color-danger-transparent-300: rgba(176, 0, 32, 0.24), + color-danger-transparent-400: rgba(176, 0, 32, 0.32), + color-danger-transparent-500: rgba(176, 0, 32, 0.4), + color-danger-transparent-600: rgba(176, 0, 32, 0.48), + + color-basic-100: #ffffff, + color-basic-200: #f5f5f5, + color-basic-300: #ebebeb, + color-basic-400: #e0e0e0, + color-basic-500: #b3b3b3, + color-basic-600: #838383, + color-basic-700: #636363, + color-basic-800: #424242, + color-basic-900: #242424, + color-basic-1000: #1b1b1b, + color-basic-1100: #000000, + + color-basic-transparent-100: rgba(131, 131, 131, 0.08), + color-basic-transparent-200: rgba(131, 131, 131, 0.16), + color-basic-transparent-300: rgba(131, 131, 131, 0.24), + color-basic-transparent-400: rgba(131, 131, 131, 0.32), + color-basic-transparent-500: rgba(131, 131, 131, 0.4), + color-basic-transparent-600: rgba(131, 131, 131, 0.48), + + color-basic-control-transparent-100: rgba(255, 255, 255, 0.08), + color-basic-control-transparent-200: rgba(255, 255, 255, 0.16), + color-basic-control-transparent-300: rgba(255, 255, 255, 0.24), + color-basic-control-transparent-400: rgba(255, 255, 255, 0.32), + color-basic-control-transparent-500: rgba(255, 255, 255, 0.4), + color-basic-control-transparent-600: rgba(255, 255, 255, 0.48), + + color-basic-focus: color-basic-400, + color-basic-hover: color-basic-200, + color-basic-default: color-basic-300, + color-basic-active: color-basic-400, + color-basic-disabled: color-basic-transparent-300, + color-basic-focus-border: color-basic-500, + color-basic-hover-border: color-basic-hover, + color-basic-default-border: color-basic-default, + color-basic-active-border: color-basic-active, + color-basic-disabled-border: color-basic-disabled, + + color-basic-transparent-focus: color-basic-transparent-300, + color-basic-transparent-hover: color-basic-transparent-200, + color-basic-transparent-default: color-basic-transparent-100, + color-basic-transparent-active: color-basic-transparent-300, + color-basic-transparent-disabled: color-basic-transparent-200, + color-basic-transparent-focus-border: color-basic-500, + color-basic-transparent-hover-border: color-basic-500, + color-basic-transparent-default-border: color-basic-500, + color-basic-transparent-active-border: color-basic-500, + color-basic-transparent-disabled-border: color-basic-transparent-300, + + color-primary-focus: color-primary-600, + color-primary-hover: color-primary-400, + color-primary-default: color-primary-500, + color-primary-active: color-primary-600, + color-primary-disabled: color-basic-transparent-300, + color-primary-focus-border: color-primary-700, + color-primary-hover-border: color-primary-hover, + color-primary-default-border: color-primary-default, + color-primary-active-border: color-primary-active, + color-primary-disabled-border: color-primary-disabled, + + color-primary-transparent-focus: color-primary-transparent-300, + color-primary-transparent-hover: color-primary-transparent-200, + color-primary-transparent-default: color-primary-transparent-100, + color-primary-transparent-active: color-primary-transparent-300, + color-primary-transparent-disabled: color-basic-transparent-200, + color-primary-transparent-focus-border: color-primary-500, + color-primary-transparent-hover-border: color-primary-500, + color-primary-transparent-default-border: color-primary-500, + color-primary-transparent-active-border: color-primary-500, + color-primary-transparent-disabled-border: color-basic-transparent-300, + + color-success-focus: color-success-600, + color-success-hover: color-success-400, + color-success-default: color-success-500, + color-success-active: color-success-600, + color-success-disabled: color-basic-transparent-300, + color-success-focus-border: color-success-700, + color-success-hover-border: color-success-hover, + color-success-default-border: color-success-default, + color-success-active-border: color-success-active, + color-success-disabled-border: color-success-disabled, + + color-success-transparent-focus: color-success-transparent-300, + color-success-transparent-hover: color-success-transparent-200, + color-success-transparent-default: color-success-transparent-100, + color-success-transparent-active: color-success-transparent-300, + color-success-transparent-disabled: color-basic-transparent-200, + color-success-transparent-focus-border: color-success-500, + color-success-transparent-hover-border: color-success-500, + color-success-transparent-default-border: color-success-500, + color-success-transparent-active-border: color-success-500, + color-success-transparent-disabled-border: color-basic-transparent-300, + + color-info-focus: color-info-600, + color-info-hover: color-info-400, + color-info-default: color-info-500, + color-info-active: color-info-600, + color-info-disabled: color-basic-transparent-300, + color-info-focus-border: color-info-700, + color-info-hover-border: color-info-hover, + color-info-default-border: color-info-default, + color-info-active-border: color-info-active, + color-info-disabled-border: color-info-disabled, + + color-info-transparent-focus: color-info-transparent-300, + color-info-transparent-hover: color-info-transparent-200, + color-info-transparent-default: color-info-transparent-100, + color-info-transparent-active: color-info-transparent-300, + color-info-transparent-disabled: color-basic-transparent-200, + color-info-transparent-focus-border: color-info-500, + color-info-transparent-hover-border: color-info-500, + color-info-transparent-default-border: color-info-500, + color-info-transparent-active-border: color-info-500, + color-info-transparent-disabled-border: color-basic-transparent-300, + + color-warning-focus: color-warning-600, + color-warning-hover: color-warning-400, + color-warning-default: color-warning-500, + color-warning-active: color-warning-600, + color-warning-disabled: color-basic-transparent-300, + color-warning-focus-border: color-warning-700, + color-warning-hover-border: color-warning-hover, + color-warning-default-border: color-warning-default, + color-warning-active-border: color-warning-active, + color-warning-disabled-border: color-warning-disabled, + + color-warning-transparent-focus: color-warning-transparent-300, + color-warning-transparent-hover: color-warning-transparent-200, + color-warning-transparent-default: color-warning-transparent-100, + color-warning-transparent-active: color-warning-transparent-300, + color-warning-transparent-disabled: color-basic-transparent-200, + color-warning-transparent-focus-border: color-warning-500, + color-warning-transparent-hover-border: color-warning-500, + color-warning-transparent-default-border: color-warning-500, + color-warning-transparent-active-border: color-warning-500, + color-warning-transparent-disabled-border: color-basic-transparent-300, + + color-danger-focus: color-danger-600, + color-danger-hover: color-danger-400, + color-danger-default: color-danger-500, + color-danger-active: color-danger-600, + color-danger-disabled: color-basic-transparent-300, + color-danger-focus-border: color-danger-700, + color-danger-hover-border: color-danger-hover, + color-danger-default-border: color-danger-default, + color-danger-active-border: color-danger-active, + color-danger-disabled-border: color-danger-disabled, + + color-danger-transparent-focus: color-danger-transparent-300, + color-danger-transparent-hover: color-danger-transparent-200, + color-danger-transparent-default: color-danger-transparent-100, + color-danger-transparent-active: color-danger-transparent-300, + color-danger-transparent-disabled: color-basic-transparent-200, + color-danger-transparent-focus-border: color-danger-500, + color-danger-transparent-hover-border: color-danger-500, + color-danger-transparent-default-border: color-danger-500, + color-danger-transparent-active-border: color-danger-500, + color-danger-transparent-disabled-border: color-basic-transparent-300, + + color-control-focus: color-basic-300, + color-control-hover: color-basic-200, + color-control-default: color-basic-100, + color-control-active: color-basic-300, + color-control-disabled: color-basic-transparent-300, + color-control-focus-border: color-basic-500, + color-control-hover-border: color-control-hover, + color-control-default-border: color-control-default, + color-control-active-border: color-control-active, + color-control-disabled-border: color-control-disabled, + + color-control-transparent-focus: color-basic-control-transparent-300, + color-control-transparent-hover: color-basic-control-transparent-200, + color-control-transparent-default: color-basic-control-transparent-100, + color-control-transparent-active: color-basic-control-transparent-300, + color-control-transparent-disabled: color-basic-transparent-200, + color-control-transparent-focus-border: color-basic-100, + color-control-transparent-hover-border: color-basic-100, + color-control-transparent-default-border: color-basic-100, + color-control-transparent-active-border: color-basic-100, + color-control-transparent-disabled-border: color-basic-transparent-300, + + background-basic-color-1: color-basic-100, + background-basic-color-2: color-basic-300, + background-basic-color-3: #fafafa, + background-basic-color-4: color-basic-400, + + background-alternative-color-1: color-basic-800, + background-alternative-color-2: color-basic-900, + background-alternative-color-3: color-basic-1000, + background-alternative-color-4: color-basic-1100, + + border-basic-color-1: color-basic-100, + border-basic-color-2: color-basic-200, + border-basic-color-3: color-basic-300, + border-basic-color-4: color-basic-400, + border-basic-color-5: color-basic-500, + + border-alternative-color-1: color-basic-800, + border-alternative-color-2: color-basic-900, + border-alternative-color-3: color-basic-1000, + border-alternative-color-4: color-basic-1100, + border-alternative-color-5: color-basic-1100, + + border-primary-color-1: color-primary-500, + border-primary-color-2: color-primary-600, + border-primary-color-3: color-primary-700, + border-primary-color-4: color-primary-800, + border-primary-color-5: color-primary-900, + + border-success-color-1: color-success-500, + border-success-color-2: color-success-600, + border-success-color-3: color-success-700, + border-success-color-4: color-success-800, + border-success-color-5: color-success-900, + + border-info-color-1: color-info-500, + border-info-color-2: color-info-600, + border-info-color-3: color-info-700, + border-info-color-4: color-info-800, + border-info-color-5: color-info-900, + + border-warning-color-1: color-warning-500, + border-warning-color-2: color-warning-600, + border-warning-color-3: color-warning-700, + border-warning-color-4: color-warning-800, + border-warning-color-5: color-warning-900, + + border-danger-color-1: color-danger-500, + border-danger-color-2: color-danger-600, + border-danger-color-3: color-danger-700, + border-danger-color-4: color-danger-800, + border-danger-color-5: color-danger-900, + + text-basic-color: color-basic-800, + text-alternate-color: color-basic-100, + text-control-color: color-basic-100, + text-disabled-color: color-basic-transparent-600, + text-hint-color: color-basic-600, + + text-primary-color: color-primary-default, + text-primary-focus-color: color-primary-focus, + text-primary-hover-color: color-primary-hover, + text-primary-active-color: color-primary-active, + text-primary-disabled-color: color-primary-400, + + text-success-color: color-success-default, + text-success-focus-color: color-success-focus, + text-success-hover-color: color-success-hover, + text-success-active-color: color-success-active, + text-success-disabled-color: color-success-400, + + text-info-color: color-info-default, + text-info-focus-color: color-info-focus, + text-info-hover-color: color-info-hover, + text-info-active-color: color-info-active, + text-info-disabled-color: color-info-400, + + text-warning-color: color-warning-default, + text-warning-focus-color: color-warning-focus, + text-warning-hover-color: color-warning-hover, + text-warning-active-color: color-warning-active, + text-warning-disabled-color: color-warning-400, + + text-danger-color: color-danger-default, + text-danger-focus-color: color-danger-focus, + text-danger-hover-color: color-danger-hover, + text-danger-active-color: color-danger-active, + text-danger-disabled-color: color-danger-400, + + font-family-primary: unquote('Roboto, sans-serif'), + + shadow: unquote('0 2px 1px -1px rgba(0,0,0,.2), 0 1px 1px 0 rgba(0,0,0,.14), 0 1px 3px 0 rgba(0,0,0,.12)'), + card-shadow: shadow, + header-shadow: unquote( + '0 3px 5px -1px rgba(0,0,0,.2), 0 6px 10px 0 rgba(0,0,0,.14), 0 1px 18px 0 rgba(0,0,0,.12)' + ), + + header-background-color: color-primary-default, + footer-background-color: color-primary-default, + header-text-color: text-alternate-color, + footer-text-color: text-alternate-color, + footer-text-highlight-color: footer-text-color, + sidebar-background-color: background-basic-color-2, + + menu-text-font-weight: 400, + menu-text-color: rgba(0, 0, 0, 0.87), + menu-item-hover-text-color: rgba(0, 0, 0, 0.87), + menu-item-hover-background-color: rgba(0, 0, 0, 0.04), + menu-item-active-background-color: rgba(0, 0, 0, 0.08), + + menu-item-icon-color: rgba(0, 0, 0, 0.87), + menu-item-icon-hover-color: rgba(0, 0, 0, 0.87), + + menu-submenu-item-hover-background-color: rgba(0, 0, 0, 0.04), + menu-submenu-item-active-hover-background-color: rgba(0, 0, 0, 0.1), + menu-submenu-item-active-background-color: rgba(0, 0, 0, 0.08), + + card-border-style: none, + card-divider-color: color-basic-200, + + input-border-width: 1px, + input-basic-border-color: rgba(0, 0, 0, 0.42), + input-basic-focus-border-color: color-primary-focus, + input-basic-disabled-border-color: rgba(0, 0, 0, 0.42), + input-basic-hover-border-color: rgba(0, 0, 0, 0.42), + input-basic-background-color: transparent, + input-basic-focus-background-color: transparent, + input-basic-disabled-background-color: transparent, + input-basic-hover-background-color: transparent, + input-rectangle-border-radius: 0.25rem, + input-semi-round-border-radius: 0.25rem, + input-round-border-radius: 0.25rem, + input-medium-padding: 0.75rem 1rem, + input-large-padding: 1rem 1rem, + input-small-text-font-weight: text-paragraph-font-weight, + input-medium-text-font-weight: text-paragraph-font-weight, + input-large-text-font-weight: text-paragraph-font-weight, + input-primary-background-color: input-basic-background-color, + input-primary-focus-background-color: input-basic-focus-background-color, + input-primary-disabled-background-color: input-basic-disabled-background-color, + input-primary-hover-background-color: input-basic-hover-background-color, + input-info-background-color: input-basic-background-color, + input-info-focus-background-color: input-basic-focus-background-color, + input-info-disabled-background-color: input-basic-disabled-background-color, + input-info-hover-background-color: input-basic-hover-background-color, + input-success-background-color: input-basic-background-color, + input-success-focus-background-color: input-basic-focus-background-color, + input-success-disabled-background-color: input-basic-disabled-background-color, + input-success-hover-background-color: input-basic-hover-background-color, + input-warning-background-color: input-basic-background-color, + input-warning-focus-background-color: input-basic-focus-background-color, + input-warning-disabled-background-color: input-basic-disabled-background-color, + input-warning-hover-background-color: input-basic-hover-background-color, + input-danger-background-color: input-basic-background-color, + input-danger-focus-background-color: input-basic-focus-background-color, + input-danger-disabled-background-color: input-basic-disabled-background-color, + input-danger-hover-background-color: input-basic-hover-background-color, + input-control-background-color: input-basic-background-color, + input-control-focus-background-color: input-basic-focus-background-color, + input-control-disabled-background-color: input-basic-disabled-background-color, + input-control-hover-background-color: input-basic-hover-background-color, + + select-tiny-text-font-weight: material-regular-font-weight, + select-small-text-font-weight: material-regular-font-weight, + select-medium-text-font-weight: material-regular-font-weight, + select-large-text-font-weight: material-regular-font-weight, + select-giant-text-font-weight: material-regular-font-weight, + select-rectangle-border-radius: 0, + select-semi-round-border-radius: 0, + select-round-border-radius: 0, + select-outline-border-width: 0 0 1px 0, + select-outline-basic-border-color: rgba(0, 0, 0, 0.42), + select-outline-basic-focus-border-color: color-primary-focus, + select-outline-basic-hover-border-color: select-outline-basic-border-color, + select-outline-basic-disabled-border-color: select-outline-basic-border-color, + select-outline-basic-background-color: transparent, + select-outline-basic-focus-background-color: transparent, + select-outline-basic-hover-background-color: transparent, + select-outline-basic-disabled-background-color: transparent, + select-outline-primary-background-color: select-outline-basic-background-color, + select-outline-primary-focus-background-color: select-outline-basic-focus-background-color, + select-outline-primary-hover-background-color: select-outline-basic-hover-background-color, + select-outline-primary-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-success-background-color: select-outline-basic-background-color, + select-outline-success-focus-background-color: select-outline-basic-focus-background-color, + select-outline-success-hover-background-color: select-outline-basic-hover-background-color, + select-outline-success-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-info-background-color: select-outline-basic-background-color, + select-outline-info-focus-background-color: select-outline-basic-focus-background-color, + select-outline-info-hover-background-color: select-outline-basic-hover-background-color, + select-outline-info-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-warning-background-color: select-outline-basic-background-color, + select-outline-warning-focus-background-color: select-outline-basic-focus-background-color, + select-outline-warning-hover-background-color: select-outline-basic-hover-background-color, + select-outline-warning-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-danger-background-color: select-outline-basic-background-color, + select-outline-danger-focus-background-color: select-outline-basic-focus-background-color, + select-outline-danger-hover-background-color: select-outline-basic-hover-background-color, + select-outline-danger-disabled-background-color: select-outline-basic-disabled-background-color, + select-outline-control-background-color: select-outline-basic-background-color, + select-outline-control-focus-background-color: select-outline-basic-focus-background-color, + select-outline-control-hover-background-color: select-outline-basic-hover-background-color, + select-outline-control-disabled-background-color: select-outline-basic-disabled-background-color, + option-list-shadow: shadow, + option-list-border-style: none, + option-list-adjacent-border-style: none, + option-background-color: color-basic-100, + option-hover-background-color: color-basic-200, + option-focus-background-color: option-hover-background-color, + option-selected-background-color: color-basic-300, + option-selected-hover-background-color: option-selected-background-color, + option-selected-focus-background-color: option-selected-background-color, + option-selected-text-color: text-primary-color, + option-selected-hover-text-color: text-primary-color, + option-selected-focus-text-color: text-primary-color, + option-tiny-text-font-weight: material-regular-font-weight, + option-small-text-font-weight: material-regular-font-weight, + option-medium-text-font-weight: material-regular-font-weight, + option-large-text-font-weight: material-regular-font-weight, + option-giant-text-font-weight: material-regular-font-weight +); + +$nb-themes: nb-register-theme($theme, material-light, default); diff --git a/src/app/@theme/styles/material/_material-overrides.scss b/src/app/@theme/styles/material/_material-overrides.scss new file mode 100644 index 0000000000..ebb4c2461b --- /dev/null +++ b/src/app/@theme/styles/material/_material-overrides.scss @@ -0,0 +1,44 @@ +@mixin material-overrides() { + @include nb-for-themes(material-dark, material-light) { + nb-layout-header { + nb-actions, .logo-container { + nb-icon, .user-name { + color: nb-theme(color-basic-100) !important; + } + } + + .select-button { + background-color: nb-theme(background-basic-color-3) !important; + } + } + + nb-sidebar { + transition: width 0.3s; + + .main-container { + transition: width 0.3s; + } + } + + nb-card { + border-bottom-left-radius: 0.125rem; + border-bottom-right-radius: 0.125rem; + + nb-card-header, .tabset { + background-color: nb-theme(card-divider-color); + } + } + + [nbinput] { + font-weight: 400; + + &.status-basic:focus:hover { + border-color: nb-theme(color-primary-focus) !important; + } + } + + [nbbutton] { + box-shadow: none !important; + } + } +} diff --git a/src/app/@theme/styles/material/theme.material-dark.ts b/src/app/@theme/styles/material/theme.material-dark.ts new file mode 100644 index 0000000000..28fad118b9 --- /dev/null +++ b/src/app/@theme/styles/material/theme.material-dark.ts @@ -0,0 +1,361 @@ +import { NbJSThemeOptions } from '@nebular/theme'; + +const palette = { + primary: '#e91d63', + success: '#60af20', + info: '#0495ee', + warning: '#ff9f05', + danger: '#b00020', +}; + +export const baseTheme: NbJSThemeOptions = { + name: 'material-dark', + base: 'dark', + variables: { + fontMain: 'Roboto, sans-serif', + fontSecondary: 'Roboto, sans-serif', + + bg: '#383838', + bg2: '#292929', + bg3: '#1f1f1f', + bg4: '#141414', + + border: '#383838', + border2: '#292929', + border3: '#1f1f1f', + border4: '#141414', + border5: '#141414', + + fg: '#808080', + fgHeading: '#ffffff', + fgText: '#ffffff', + fgHighlight: palette.primary, + layoutBg: '#1f1f1f', + separator: '#1f1f1f', + + primary: palette.primary, + success: palette.success, + info: palette.info, + warning: palette.warning, + danger: palette.danger, + + primaryLight: '#f24681', + successLight: '#8fcf50', + infoLight: '#40bbf4', + warningLight: '#ffbe43', + dangerLight: '#cf3341', + }, +}; + +const baseThemeVariables = baseTheme.variables; + +export const MATERIAL_DARK_THEME = { + name: 'material-dark', + base: 'default', + variables: { + temperature: { + arcFill: [ + baseThemeVariables.primary, + baseThemeVariables.primary, + baseThemeVariables.primary, + baseThemeVariables.primary, + baseThemeVariables.primary, + ], + arcEmpty: baseThemeVariables.bg2, + thumbBg: baseThemeVariables.bg2, + thumbBorder: baseThemeVariables.primary, + }, + + solar: { + gradientLeft: baseThemeVariables.primary, + gradientRight: baseThemeVariables.primary, + shadowColor: 'rgba(0, 0, 0, 0)', + secondSeriesFill: baseThemeVariables.bg2, + radius: ['80%', '90%'], + }, + + traffic: { + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + + yAxisSplitLine: baseThemeVariables.separator, + + lineBg: baseThemeVariables.border4, + lineShadowBlur: '1', + itemColor: baseThemeVariables.border4, + itemBorderColor: baseThemeVariables.border4, + itemEmphasisBorderColor: baseThemeVariables.primary, + shadowLineDarkBg: 'rgba(0, 0, 0, 0)', + shadowLineShadow: 'rgba(0, 0, 0, 0)', + gradFrom: baseThemeVariables.bg2, + gradTo: baseThemeVariables.bg2, + }, + + 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: baseThemeVariables.primary, + lineStyle: 'solid', + lineWidth: '4', + lineGradFrom: baseThemeVariables.primary, + lineGradTo: baseThemeVariables.primary, + lineShadow: 'rgba(0, 0, 0, 0)', + + areaGradFrom: baseThemeVariables.bg2, + areaGradTo: baseThemeVariables.bg2, + shadowLineDarkBg: 'rgba(0, 0, 0, 0)', + }, + + bubbleMap: { + titleColor: baseThemeVariables.fgText, + areaColor: baseThemeVariables.bg4, + areaHoverColor: baseThemeVariables.fgHighlight, + areaBorderColor: baseThemeVariables.border5, + }, + + profitBarAnimationEchart: { + textColor: baseThemeVariables.fgText, + + firstAnimationBarColor: baseThemeVariables.primary, + secondAnimationBarColor: baseThemeVariables.success, + + splitLineStyleOpacity: '1', + splitLineStyleWidth: '1', + splitLineStyleColor: baseThemeVariables.separator, + + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + tooltipFontSize: '16', + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipBorderWidth: '1', + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + }, + + trafficBarEchart: { + gradientFrom: baseThemeVariables.warningLight, + gradientTo: baseThemeVariables.warning, + shadow: baseThemeVariables.warningLight, + shadowBlur: '0', + + axisTextColor: baseThemeVariables.fgText, + axisFontSize: '12', + + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + }, + + countryOrders: { + countryBorderColor: baseThemeVariables.border4, + countryFillColor: baseThemeVariables.bg3, + countryBorderWidth: '1', + hoveredCountryBorderColor: baseThemeVariables.primary, + hoveredCountryFillColor: baseThemeVariables.primaryLight, + hoveredCountryBorderWidth: '1', + + chartAxisLineColor: baseThemeVariables.border4, + chartAxisTextColor: baseThemeVariables.fg, + chartAxisFontSize: '16', + chartGradientTo: baseThemeVariables.primary, + chartGradientFrom: baseThemeVariables.primaryLight, + chartAxisSplitLine: baseThemeVariables.separator, + chartShadowLineColor: baseThemeVariables.primaryLight, + + chartLineBottomShadowColor: baseThemeVariables.primary, + + chartInnerLineColor: baseThemeVariables.bg2, + }, + + echarts: { + bg: baseThemeVariables.bg, + textColor: baseThemeVariables.fgText, + axisLineColor: baseThemeVariables.fgText, + splitLineColor: baseThemeVariables.separator, + itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)', + tooltipBackgroundColor: baseThemeVariables.primary, + areaOpacity: '0.7', + }, + + chartjs: { + axisLineColor: baseThemeVariables.separator, + textColor: baseThemeVariables.fgText, + }, + + 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: baseThemeVariables.primary, + lineStyle: 'solid', + lineWidth: '4', + + // first line + firstAreaGradFrom: baseThemeVariables.bg3, + firstAreaGradTo: baseThemeVariables.bg3, + firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)', + + // second line + secondLineGradFrom: baseThemeVariables.primary, + secondLineGradTo: baseThemeVariables.primary, + + secondAreaGradFrom: 'rgba(51, 102, 255, 0.2)', + secondAreaGradTo: 'rgba(51, 102, 255, 0)', + secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)', + + // third line + thirdLineGradFrom: baseThemeVariables.success, + thirdLineGradTo: baseThemeVariables.successLight, + + thirdAreaGradFrom: 'rgba(0, 214, 143, 0.2)', + thirdAreaGradTo: 'rgba(0, 214, 143, 0)', + thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)', + }, + + profit: { + bg: baseThemeVariables.bg, + textColor: baseThemeVariables.fgText, + axisLineColor: baseThemeVariables.border4, + splitLineColor: baseThemeVariables.separator, + areaOpacity: '1', + + axisFontSize: '16', + axisTextColor: baseThemeVariables.fg, + + // first bar + firstLineGradFrom: baseThemeVariables.bg3, + firstLineGradTo: baseThemeVariables.bg3, + firstLineShadow: 'rgba(0, 0, 0, 0)', + + // second bar + secondLineGradFrom: baseThemeVariables.primary, + secondLineGradTo: baseThemeVariables.primary, + secondLineShadow: 'rgba(0, 0, 0, 0)', + + // third bar + thirdLineGradFrom: baseThemeVariables.success, + thirdLineGradTo: baseThemeVariables.successLight, + thirdLineShadow: 'rgba(0, 0, 0, 0)', + }, + + orderProfitLegend: { + firstItem: baseThemeVariables.success, + secondItem: baseThemeVariables.primary, + thirdItem: baseThemeVariables.bg3, + }, + + visitors: { + tooltipBg: baseThemeVariables.bg, + tooltipLineColor: 'rgba(0, 0, 0, 0)', + tooltipLineWidth: '1', + 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: baseThemeVariables.primary, + lineStyle: 'dotted', + lineWidth: '6', + lineGradFrom: '#ffffff', + lineGradTo: '#ffffff', + lineShadow: 'rgba(0, 0, 0, 0)', + + areaGradFrom: baseThemeVariables.primary, + areaGradTo: baseThemeVariables.primaryLight, + + innerLineStyle: 'solid', + innerLineWidth: '1', + + innerAreaGradFrom: baseThemeVariables.success, + innerAreaGradTo: baseThemeVariables.success, + }, + + visitorsLegend: { + firstIcon: baseThemeVariables.success, + secondIcon: baseThemeVariables.primary, + }, + + visitorsPie: { + firstPieGradientLeft: baseThemeVariables.success, + firstPieGradientRight: baseThemeVariables.success, + firstPieShadowColor: 'rgba(0, 0, 0, 0)', + firstPieRadius: ['70%', '90%'], + + secondPieGradientLeft: baseThemeVariables.warning, + secondPieGradientRight: baseThemeVariables.warningLight, + secondPieShadowColor: 'rgba(0, 0, 0, 0)', + secondPieRadius: ['60%', '97%'], + shadowOffsetX: '0', + shadowOffsetY: '0', + }, + + visitorsPieLegend: { + firstSection: baseThemeVariables.warning, + secondSection: baseThemeVariables.success, + }, + + earningPie: { + radius: ['65%', '100%'], + center: ['50%', '50%'], + + fontSize: '22', + + firstPieGradientLeft: baseThemeVariables.success, + firstPieGradientRight: baseThemeVariables.success, + firstPieShadowColor: 'rgba(0, 0, 0, 0)', + + secondPieGradientLeft: baseThemeVariables.primary, + secondPieGradientRight: baseThemeVariables.primary, + secondPieShadowColor: 'rgba(0, 0, 0, 0)', + + thirdPieGradientLeft: baseThemeVariables.warning, + thirdPieGradientRight: baseThemeVariables.warning, + thirdPieShadowColor: 'rgba(0, 0, 0, 0)', + }, + + earningLine: { + gradFrom: baseThemeVariables.primary, + gradTo: baseThemeVariables.primary, + + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + tooltipFontSize: '16', + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipBorderWidth: '1', + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + }, + }, +} as NbJSThemeOptions; diff --git a/src/app/@theme/styles/material/theme.material-light.ts b/src/app/@theme/styles/material/theme.material-light.ts new file mode 100644 index 0000000000..f0a40c7a35 --- /dev/null +++ b/src/app/@theme/styles/material/theme.material-light.ts @@ -0,0 +1,361 @@ +import { NbJSThemeOptions } from '@nebular/theme'; + +const palette = { + primary: '#6200ee', + success: '#60af20', + info: '#0495ee', + warning: '#ff9f05', + danger: '#b00020', +}; + +export const baseTheme: NbJSThemeOptions = { + name: 'material-light', + base: 'default', + variables: { + fontMain: 'Roboto, sans-serif', + fontSecondary: 'Roboto, sans-serif', + + bg: '#ffffff', + bg2: '#f5f5f5', + bg3: '#ebebeb', + bg4: '#e0e0e0', + + border: '#ffffff', + border2: '#f5f5f5', + border3: '#ebebeb', + border4: '#e0e0e0', + border5: '#b3b3b3', + + fg: '#838383', + fgHeading: '#1a2138', + fgText: '#1a2138', + fgHighlight: palette.primary, + layoutBg: '#ebebeb', + separator: '#ebebeb', + + primary: palette.primary, + success: palette.success, + info: palette.info, + warning: palette.warning, + danger: palette.danger, + + primaryLight: '#903df4', + successLight: '#8fcf50', + infoLight: '#40bbf4', + warningLight: '#ffbe43', + dangerLight: '#cf3341', + }, +}; + +const baseThemeVariables = baseTheme.variables; + +export const MATERIAL_LIGHT_THEME = { + name: 'material-light', + base: 'default', + variables: { + temperature: { + arcFill: [ + baseThemeVariables.primary, + baseThemeVariables.primary, + baseThemeVariables.primary, + baseThemeVariables.primary, + baseThemeVariables.primary, + ], + arcEmpty: baseThemeVariables.bg2, + thumbBg: baseThemeVariables.bg2, + thumbBorder: baseThemeVariables.primary, + }, + + solar: { + gradientLeft: baseThemeVariables.primary, + gradientRight: baseThemeVariables.primary, + shadowColor: 'rgba(0, 0, 0, 0)', + secondSeriesFill: baseThemeVariables.bg2, + radius: ['80%', '90%'], + }, + + traffic: { + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + + yAxisSplitLine: baseThemeVariables.separator, + + lineBg: baseThemeVariables.border4, + lineShadowBlur: '1', + itemColor: baseThemeVariables.border4, + itemBorderColor: baseThemeVariables.border4, + itemEmphasisBorderColor: baseThemeVariables.primary, + shadowLineDarkBg: 'rgba(0, 0, 0, 0)', + shadowLineShadow: 'rgba(0, 0, 0, 0)', + gradFrom: baseThemeVariables.bg2, + gradTo: baseThemeVariables.bg2, + }, + + 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: baseThemeVariables.primary, + lineStyle: 'solid', + lineWidth: '4', + lineGradFrom: baseThemeVariables.primary, + lineGradTo: baseThemeVariables.primary, + lineShadow: 'rgba(0, 0, 0, 0)', + + areaGradFrom: baseThemeVariables.bg2, + areaGradTo: baseThemeVariables.bg2, + shadowLineDarkBg: 'rgba(0, 0, 0, 0)', + }, + + bubbleMap: { + titleColor: baseThemeVariables.fgText, + areaColor: baseThemeVariables.bg4, + areaHoverColor: baseThemeVariables.fgHighlight, + areaBorderColor: baseThemeVariables.border5, + }, + + profitBarAnimationEchart: { + textColor: baseThemeVariables.fgText, + + firstAnimationBarColor: baseThemeVariables.primary, + secondAnimationBarColor: baseThemeVariables.success, + + splitLineStyleOpacity: '1', + splitLineStyleWidth: '1', + splitLineStyleColor: baseThemeVariables.separator, + + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + tooltipFontSize: '16', + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipBorderWidth: '1', + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + }, + + trafficBarEchart: { + gradientFrom: baseThemeVariables.warningLight, + gradientTo: baseThemeVariables.warning, + shadow: baseThemeVariables.warningLight, + shadowBlur: '0', + + axisTextColor: baseThemeVariables.fgText, + axisFontSize: '12', + + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + }, + + countryOrders: { + countryBorderColor: baseThemeVariables.border4, + countryFillColor: baseThemeVariables.bg3, + countryBorderWidth: '1', + hoveredCountryBorderColor: baseThemeVariables.primary, + hoveredCountryFillColor: baseThemeVariables.primaryLight, + hoveredCountryBorderWidth: '1', + + chartAxisLineColor: baseThemeVariables.border4, + chartAxisTextColor: baseThemeVariables.fg, + chartAxisFontSize: '16', + chartGradientTo: baseThemeVariables.primary, + chartGradientFrom: baseThemeVariables.primaryLight, + chartAxisSplitLine: baseThemeVariables.separator, + chartShadowLineColor: baseThemeVariables.primaryLight, + + chartLineBottomShadowColor: baseThemeVariables.primary, + + chartInnerLineColor: baseThemeVariables.bg2, + }, + + echarts: { + bg: baseThemeVariables.bg, + textColor: baseThemeVariables.fgText, + axisLineColor: baseThemeVariables.fgText, + splitLineColor: baseThemeVariables.separator, + itemHoverShadowColor: 'rgba(0, 0, 0, 0.5)', + tooltipBackgroundColor: baseThemeVariables.primary, + areaOpacity: '0.7', + }, + + chartjs: { + axisLineColor: baseThemeVariables.separator, + textColor: baseThemeVariables.fgText, + }, + + 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: baseThemeVariables.primary, + lineStyle: 'solid', + lineWidth: '4', + + // first line + firstAreaGradFrom: baseThemeVariables.bg3, + firstAreaGradTo: baseThemeVariables.bg3, + firstShadowLineDarkBg: 'rgba(0, 0, 0, 0)', + + // second line + secondLineGradFrom: baseThemeVariables.primary, + secondLineGradTo: baseThemeVariables.primary, + + secondAreaGradFrom: 'rgba(51, 102, 255, 0.2)', + secondAreaGradTo: 'rgba(51, 102, 255, 0)', + secondShadowLineDarkBg: 'rgba(0, 0, 0, 0)', + + // third line + thirdLineGradFrom: baseThemeVariables.success, + thirdLineGradTo: baseThemeVariables.successLight, + + thirdAreaGradFrom: 'rgba(0, 214, 143, 0.2)', + thirdAreaGradTo: 'rgba(0, 214, 143, 0)', + thirdShadowLineDarkBg: 'rgba(0, 0, 0, 0)', + }, + + profit: { + bg: baseThemeVariables.bg, + textColor: baseThemeVariables.fgText, + axisLineColor: baseThemeVariables.border4, + splitLineColor: baseThemeVariables.separator, + areaOpacity: '1', + + axisFontSize: '16', + axisTextColor: baseThemeVariables.fg, + + // first bar + firstLineGradFrom: baseThemeVariables.bg3, + firstLineGradTo: baseThemeVariables.bg3, + firstLineShadow: 'rgba(0, 0, 0, 0)', + + // second bar + secondLineGradFrom: baseThemeVariables.primary, + secondLineGradTo: baseThemeVariables.primary, + secondLineShadow: 'rgba(0, 0, 0, 0)', + + // third bar + thirdLineGradFrom: baseThemeVariables.success, + thirdLineGradTo: baseThemeVariables.successLight, + thirdLineShadow: 'rgba(0, 0, 0, 0)', + }, + + orderProfitLegend: { + firstItem: baseThemeVariables.success, + secondItem: baseThemeVariables.primary, + thirdItem: baseThemeVariables.bg3, + }, + + visitors: { + tooltipBg: baseThemeVariables.bg, + tooltipLineColor: 'rgba(0, 0, 0, 0)', + tooltipLineWidth: '1', + 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: baseThemeVariables.primary, + lineStyle: 'dotted', + lineWidth: '6', + lineGradFrom: '#ffffff', + lineGradTo: '#ffffff', + lineShadow: 'rgba(0, 0, 0, 0)', + + areaGradFrom: baseThemeVariables.primary, + areaGradTo: baseThemeVariables.primaryLight, + + innerLineStyle: 'solid', + innerLineWidth: '1', + + innerAreaGradFrom: baseThemeVariables.success, + innerAreaGradTo: baseThemeVariables.success, + }, + + visitorsLegend: { + firstIcon: baseThemeVariables.success, + secondIcon: baseThemeVariables.primary, + }, + + visitorsPie: { + firstPieGradientLeft: baseThemeVariables.success, + firstPieGradientRight: baseThemeVariables.success, + firstPieShadowColor: 'rgba(0, 0, 0, 0)', + firstPieRadius: ['70%', '90%'], + + secondPieGradientLeft: baseThemeVariables.warning, + secondPieGradientRight: baseThemeVariables.warningLight, + secondPieShadowColor: 'rgba(0, 0, 0, 0)', + secondPieRadius: ['60%', '97%'], + shadowOffsetX: '0', + shadowOffsetY: '0', + }, + + visitorsPieLegend: { + firstSection: baseThemeVariables.warning, + secondSection: baseThemeVariables.success, + }, + + earningPie: { + radius: ['65%', '100%'], + center: ['50%', '50%'], + + fontSize: '22', + + firstPieGradientLeft: baseThemeVariables.success, + firstPieGradientRight: baseThemeVariables.success, + firstPieShadowColor: 'rgba(0, 0, 0, 0)', + + secondPieGradientLeft: baseThemeVariables.primary, + secondPieGradientRight: baseThemeVariables.primary, + secondPieShadowColor: 'rgba(0, 0, 0, 0)', + + thirdPieGradientLeft: baseThemeVariables.warning, + thirdPieGradientRight: baseThemeVariables.warning, + thirdPieShadowColor: 'rgba(0, 0, 0, 0)', + }, + + earningLine: { + gradFrom: baseThemeVariables.primary, + gradTo: baseThemeVariables.primary, + + tooltipTextColor: baseThemeVariables.fgText, + tooltipFontWeight: 'normal', + tooltipFontSize: '16', + tooltipBg: baseThemeVariables.bg, + tooltipBorderColor: baseThemeVariables.border2, + tooltipBorderWidth: '1', + tooltipExtraCss: 'border-radius: 10px; padding: 4px 16px;', + }, + }, +} as NbJSThemeOptions; diff --git a/src/app/@theme/styles/styles.scss b/src/app/@theme/styles/styles.scss index b35d980d96..09ea723bc7 100644 --- a/src/app/@theme/styles/styles.scss +++ b/src/app/@theme/styles/styles.scss @@ -1,4 +1,5 @@ @import url('https://fonts.googleapis.com/css?family=Open+Sans:400,600,700&display=swap'); +@import url('https://fonts.googleapis.com/css?family=Roboto:200,300,400,500,600,700,800&display=swap'); // themes - our custom or/and out of the box themes @import 'themes'; @@ -12,15 +13,20 @@ @import '~bootstrap/scss/mixins'; @import '~bootstrap/scss/grid'; +@import './material/angular-material'; + // loading progress bar theme @import './pace.theme'; @import './layout'; @import './overrides'; +@import './material/material-overrides'; // install the framework and custom global styles @include nb-install() { + @include angular-material(); + // framework global styles @include nb-theme-global(); @include nb-auth-global(); @@ -30,4 +36,5 @@ @include ngx-pace-theme(); @include nb-overrides(); + @include material-overrides(); }; diff --git a/src/app/@theme/styles/themes.scss b/src/app/@theme/styles/themes.scss index c5d5aa8d5d..8c8917ee8a 100644 --- a/src/app/@theme/styles/themes.scss +++ b/src/app/@theme/styles/themes.scss @@ -2,6 +2,9 @@ @import '~@nebular/theme/styles/theming'; // @nebular out of the box themes @import '~@nebular/theme/styles/themes'; +// material themes +@import './material/material-dark'; +@import './material/material-light'; $nb-themes: nb-register-theme(( layout-padding-top: 2.25rem, @@ -86,3 +89,47 @@ $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); + +$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, + option-list-border-radius: 0, + + slide-out-background: linear-gradient(270deg, #e0e0e0 0%, #ebebeb 100%), + slide-out-shadow-color: 0 4px 14px 0 #ebebeb, + slide-out-shadow-color-rtl: 0 4px 14px 0 #ebebeb, +), material-light, material-light); + +$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, + option-list-border-radius: 0, + + slide-out-background: linear-gradient(270deg, #1f1f1f 0%, #292929 100%), + slide-out-shadow-color: 0 4px 14px 0 #292929, + slide-out-shadow-color-rtl: 0 4px 14px 0 #292929, +), material-dark, material-dark); diff --git a/src/app/@theme/theme.module.ts b/src/app/@theme/theme.module.ts index 9bb4442024..f573109874 100644 --- a/src/app/@theme/theme.module.ts +++ b/src/app/@theme/theme.module.ts @@ -1,5 +1,6 @@ import { ModuleWithProviders, NgModule } from '@angular/core'; import { CommonModule } from '@angular/common'; +import { MatRippleModule } from '@angular/material/core'; import { NbActionsModule, NbLayoutModule, @@ -38,6 +39,8 @@ 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 { MATERIAL_LIGHT_THEME } from './styles/material/theme.material-light'; +import { MATERIAL_DARK_THEME } from './styles/material/theme.material-dark'; const NB_MODULES = [ NbLayoutModule, @@ -71,8 +74,8 @@ const PIPES = [ ]; @NgModule({ - imports: [CommonModule, ...NB_MODULES], - exports: [CommonModule, ...PIPES, ...COMPONENTS], + imports: [CommonModule, MatRippleModule, ...NB_MODULES], + exports: [CommonModule, MatRippleModule, ...PIPES, ...COMPONENTS], declarations: [...COMPONENTS, ...PIPES], }) export class ThemeModule { @@ -84,7 +87,7 @@ export class ThemeModule { { name: 'default', }, - [ DEFAULT_THEME, COSMIC_THEME, CORPORATE_THEME, DARK_THEME ], + [ DEFAULT_THEME, COSMIC_THEME, CORPORATE_THEME, DARK_THEME, MATERIAL_LIGHT_THEME, MATERIAL_DARK_THEME ], ).providers, ], }; diff --git a/src/app/pages/dashboard/contacts/contacts.component.html b/src/app/pages/dashboard/contacts/contacts.component.html index 0aac40bfee..ef34b97710 100644 --- a/src/app/pages/dashboard/contacts/contacts.component.html +++ b/src/app/pages/dashboard/contacts/contacts.component.html @@ -3,7 +3,7 @@ - + @@ -12,7 +12,7 @@ - + {{ c.time | date: 'shortTime' }} diff --git a/src/app/pages/dashboard/dashboard.component.ts b/src/app/pages/dashboard/dashboard.component.ts index c359216af2..083d3bdd09 100644 --- a/src/app/pages/dashboard/dashboard.component.ts +++ b/src/app/pages/dashboard/dashboard.component.ts @@ -54,6 +54,8 @@ export class DashboardComponent implements OnDestroy { cosmic: CardSettings[]; corporate: CardSettings[]; dark: CardSettings[]; + 'material-dark': CardSettings[]; + 'material-light': CardSettings[]; } = { default: this.commonStatusCardsSet, cosmic: this.commonStatusCardsSet, @@ -76,6 +78,8 @@ export class DashboardComponent implements OnDestroy { }, ], dark: this.commonStatusCardsSet, + 'material-dark': this.commonStatusCardsSet, + 'material-light': this.commonStatusCardsSet, }; constructor(private themeService: NbThemeService, diff --git a/src/app/pages/dashboard/electricity/electricity.component.html b/src/app/pages/dashboard/electricity/electricity.component.html index 7085cbd7cb..c68ede53bd 100644 --- a/src/app/pages/dashboard/electricity/electricity.component.html +++ b/src/app/pages/dashboard/electricity/electricity.component.html @@ -37,8 +37,8 @@ 291 USD - - {{ t }} + + {{ t }} diff --git a/src/app/pages/dashboard/rooms/room-selector/room-selector.component.scss b/src/app/pages/dashboard/rooms/room-selector/room-selector.component.scss index d66ebb204e..ea35240676 100644 --- a/src/app/pages/dashboard/rooms/room-selector/room-selector.component.scss +++ b/src/app/pages/dashboard/rooms/room-selector/room-selector.component.scss @@ -7,6 +7,7 @@ border-width: 0; box-shadow: none; margin: 0; + height: 100%; } nb-card-header { diff --git a/src/app/pages/dashboard/security-cameras/security-cameras.component.html b/src/app/pages/dashboard/security-cameras/security-cameras.component.html index 739acc0555..70d7b445cc 100644 --- a/src/app/pages/dashboard/security-cameras/security-cameras.component.html +++ b/src/app/pages/dashboard/security-cameras/security-cameras.component.html @@ -22,7 +22,7 @@
-
+
{{ selectedCamera.title }}
@@ -40,19 +40,19 @@ - + Pause - + Logs - + Search - + Setup diff --git a/src/app/pages/dashboard/security-cameras/security-cameras.component.scss b/src/app/pages/dashboard/security-cameras/security-cameras.component.scss index 567b323abb..a327a86686 100644 --- a/src/app/pages/dashboard/security-cameras/security-cameras.component.scss +++ b/src/app/pages/dashboard/security-cameras/security-cameras.component.scss @@ -13,7 +13,7 @@ .single-view-button { .nb-square { - font-size: 1.25rem; + font-size: 1rem; } @include nb-ltr { @@ -72,6 +72,10 @@ background-size: cover; position: relative; + &:not(.single) { + cursor: pointer; + } + &::before { background-color: rgba(255, 255, 255, 0.1); content: ''; @@ -96,6 +100,9 @@ } nb-action { + cursor: pointer; + border-radius: 2px; + nb-icon { @include nb-ltr(margin-right, 0.5rem); @include nb-rtl(margin-left, 0.5rem); 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 03be02f59f..158df84bc6 100644 --- a/src/app/pages/dashboard/status-card/status-card.component.scss +++ b/src/app/pages/dashboard/status-card/status-card.component.scss @@ -5,7 +5,7 @@ flex-direction: row; align-items: center; height: 6rem; - overflow: visible; + cursor: pointer; .icon-container { height: 100%; diff --git a/src/app/pages/dashboard/status-card/status-card.component.ts b/src/app/pages/dashboard/status-card/status-card.component.ts index 1627640857..3ffd6ad200 100644 --- a/src/app/pages/dashboard/status-card/status-card.component.ts +++ b/src/app/pages/dashboard/status-card/status-card.component.ts @@ -4,7 +4,7 @@ import { Component, Input } from '@angular/core'; selector: 'ngx-status-card', styleUrls: ['./status-card.component.scss'], template: ` - +
diff --git a/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.html b/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.html index 7f46e3322e..826b87b9c5 100644 --- a/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.html +++ b/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.html @@ -42,6 +42,6 @@
- diff --git a/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.scss b/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.scss index 0fa12c1ae6..2a91157613 100644 --- a/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.scss +++ b/src/app/pages/dashboard/temperature/temperature-dragger/temperature-dragger.component.scss @@ -39,25 +39,27 @@ position: absolute; width: 5.25rem; height: 5.25rem; - background-color: nb-theme(card-background-color); + background-color: nb-theme(card-background-color) !important; border-radius: 50%; bottom: 2%; left: 50%; transform: translate(-50%, 50%); z-index: 2; - display: flex; - align-items: center; - justify-content: center; cursor: pointer; border: nb-theme(divider-width) nb-theme(divider-style) nb-theme(divider-color); &.on { - color: nb-theme(text-hint-color); + color: nb-theme(color-primary-default); } } .power-icon { + position: absolute; + top: 50%; + margin-top: -0.625rem; + left: 50%; + margin-left: -0.625rem; font-size: 3rem; } } diff --git a/src/app/pages/dashboard/temperature/temperature.component.html b/src/app/pages/dashboard/temperature/temperature.component.html index 8f6c0e4b79..a7da27bbac 100644 --- a/src/app/pages/dashboard/temperature/temperature.component.html +++ b/src/app/pages/dashboard/temperature/temperature.component.html @@ -20,16 +20,16 @@
- + - + - + - + @@ -51,16 +51,16 @@
- + - + - + - + diff --git a/src/app/pages/dashboard/traffic/traffic.component.ts b/src/app/pages/dashboard/traffic/traffic.component.ts index 3ddd6e2c7c..a0396689ec 100644 --- a/src/app/pages/dashboard/traffic/traffic.component.ts +++ b/src/app/pages/dashboard/traffic/traffic.component.ts @@ -12,8 +12,8 @@ import { TrafficChartData } from '../../../@core/data/traffic-chart'; Traffic Consumption - - {{ t }} + + {{ t }} diff --git a/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.html b/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.html index 30bf039a73..f2ba91aa17 100644 --- a/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.html +++ b/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.html @@ -1,7 +1,7 @@ - - + + {{ period }} diff --git a/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.scss b/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.scss index 52cb2cab98..51b123bb58 100644 --- a/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.scss +++ b/src/app/pages/e-commerce/charts-panel/chart-panel-header/chart-panel-header.component.scss @@ -11,9 +11,9 @@ ngx-legend-chart, .period-select { - padding-top: 1rem; - @include nb-ltr(padding-left, 0.5rem); - @include nb-rtl(padding-right, 0.5rem); + margin-top: 1rem; + @include nb-ltr(margin-left, 0.5rem); + @include nb-rtl(margin-right, 0.5rem); } @include media-breakpoint-up(md) { diff --git a/src/app/pages/e-commerce/charts-panel/charts-panel.component.scss b/src/app/pages/e-commerce/charts-panel/charts-panel.component.scss index acf1a9025e..4d601af136 100644 --- a/src/app/pages/e-commerce/charts-panel/charts-panel.component.scss +++ b/src/app/pages/e-commerce/charts-panel/charts-panel.component.scss @@ -6,6 +6,10 @@ $legend-canceled-color: #3f4fda; @include nb-install-component() { + nb-card { + overflow: hidden; + } + nb-tabset { display: flex; flex-direction: column; diff --git a/src/app/pages/e-commerce/earning-card/front-side/earning-card-front.component.html b/src/app/pages/e-commerce/earning-card/front-side/earning-card-front.component.html index 0f93231837..abaa6784b0 100644 --- a/src/app/pages/e-commerce/earning-card/front-side/earning-card-front.component.html +++ b/src/app/pages/e-commerce/earning-card/front-side/earning-card-front.component.html @@ -1,6 +1,6 @@ - - {{ currency }} + + {{ currency }} diff --git a/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.html b/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.html index 8c483a7e40..42e18aa369 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.html +++ b/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.html @@ -1,6 +1,5 @@ - - - - + diff --git a/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.scss b/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.scss index 00e2406edb..0663243a88 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.scss +++ b/src/app/pages/e-commerce/traffic-reveal-card/back-side/traffic-back-card.component.scss @@ -1,19 +1,7 @@ @import '../../../../@theme/styles/themes'; @include nb-install-component() { - display: flex; - flex-direction: column; - flex: 1; - - nb-card-body { - overflow: hidden; - position: relative; - display: flex; - flex-direction: column; - } - ngx-traffic-bar-chart { - flex: 1; position: relative; ::ng-deep { diff --git a/src/app/pages/e-commerce/traffic-reveal-card/front-side/traffic-front-card.component.scss b/src/app/pages/e-commerce/traffic-reveal-card/front-side/traffic-front-card.component.scss index 835388ad72..128c6745d2 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/front-side/traffic-front-card.component.scss +++ b/src/app/pages/e-commerce/traffic-reveal-card/front-side/traffic-front-card.component.scss @@ -3,7 +3,11 @@ @import '../../../../@theme/styles/themes'; @include nb-install-component() { - overflow: auto; + overflow: hidden; + + nb-list { + height: 100%; + } .item { display: flex; diff --git a/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.html b/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.html index 4e22530534..630e056437 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.html +++ b/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.html @@ -1,6 +1,4 @@ - - Traffic - - {{ period }} - - +Traffic + + {{ period }} + diff --git a/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.scss b/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.scss index b92c1db3fe..958c42bc38 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.scss +++ b/src/app/pages/e-commerce/traffic-reveal-card/traffic-cards-header/traffic-cards-header.component.scss @@ -1,14 +1,5 @@ -@import '../../../../@theme/styles/themes'; - -@include nb-install-component() { - nb-card-header { - display: flex; - align-items: center; - justify-content: space-between; - padding-top: nb-theme(card-header-with-select-padding-top); - padding-bottom: nb-theme(card-header-with-select-padding-bottom); - - @include nb-ltr(padding-right, 4rem); - @include nb-rtl(padding-left, 4rem); - } +:host { + display: flex; + align-items: center; + justify-content: space-between; } diff --git a/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.html b/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.html index 1b11ab714c..1a8faa0049 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.html +++ b/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.html @@ -1,15 +1,23 @@ - + + + + - - + + + + + + + diff --git a/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.scss b/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.scss index 42f557468b..ccf47060e4 100644 --- a/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.scss +++ b/src/app/pages/e-commerce/traffic-reveal-card/traffic-reveal-card.component.scss @@ -9,4 +9,11 @@ @include nb-rtl(left, 1.25rem); cursor: pointer; } + + nb-card-header { + padding-top: nb-theme(card-header-with-select-padding-top); + padding-bottom: nb-theme(card-header-with-select-padding-bottom); + @include nb-ltr(padding-right, 4rem); + @include nb-rtl(padding-left, 4rem); + } } diff --git a/src/app/pages/e-commerce/user-activity/user-activity.component.html b/src/app/pages/e-commerce/user-activity/user-activity.component.html index 445f18f97c..46ba0524fb 100644 --- a/src/app/pages/e-commerce/user-activity/user-activity.component.html +++ b/src/app/pages/e-commerce/user-activity/user-activity.component.html @@ -2,8 +2,8 @@ User Activity - - {{ t }} + + {{ t }} diff --git a/src/app/pages/e-commerce/visitors-analytics/visitors-analytics.component.scss b/src/app/pages/e-commerce/visitors-analytics/visitors-analytics.component.scss index b8af1e7bb4..dadf5a216c 100644 --- a/src/app/pages/e-commerce/visitors-analytics/visitors-analytics.component.scss +++ b/src/app/pages/e-commerce/visitors-analytics/visitors-analytics.component.scss @@ -5,10 +5,10 @@ @include nb-install-component() { position: relative; display: block; - overflow: hidden; nb-card { position: relative; + overflow: hidden; } nb-card-header { diff --git a/src/app/pages/extra-components/spinner/spinner-in-buttons/spinner-in-buttons.component.html b/src/app/pages/extra-components/spinner/spinner-in-buttons/spinner-in-buttons.component.html index bc2ff55cd0..e547a3eaee 100644 --- a/src/app/pages/extra-components/spinner/spinner-in-buttons/spinner-in-buttons.component.html +++ b/src/app/pages/extra-components/spinner/spinner-in-buttons/spinner-in-buttons.component.html @@ -3,33 +3,33 @@
- - -
- - - diff --git a/src/app/pages/forms/buttons/buttons.component.html b/src/app/pages/forms/buttons/buttons.component.html index b9bbeb50c2..a4673f5dba 100644 --- a/src/app/pages/forms/buttons/buttons.component.html +++ b/src/app/pages/forms/buttons/buttons.component.html @@ -4,10 +4,10 @@ Hero Buttons
- -
@@ -18,10 +18,10 @@ Default Buttons
- -
@@ -32,10 +32,10 @@ Outline Buttons
- -
@@ -46,10 +46,10 @@ Ghost Buttons
- -
@@ -62,7 +62,7 @@ Button shapes
-
@@ -73,7 +73,7 @@ Button sizes
-
@@ -86,13 +86,13 @@ Action Groups - - - + + + - + - + @@ -100,24 +100,30 @@ - + Pause - + Logs - + Search - + Setup + + + + + +
diff --git a/src/app/pages/forms/buttons/buttons.component.scss b/src/app/pages/forms/buttons/buttons.component.scss index 71df895406..19176e49ab 100644 --- a/src/app/pages/forms/buttons/buttons.component.scss +++ b/src/app/pages/forms/buttons/buttons.component.scss @@ -17,4 +17,9 @@ .actions-card { height: 8rem; } + + nb-action { + border-radius: 2px; + cursor: pointer; + } } diff --git a/src/app/pages/forms/buttons/buttons.component.ts b/src/app/pages/forms/buttons/buttons.component.ts index f839321e2b..52e8506b3b 100644 --- a/src/app/pages/forms/buttons/buttons.component.ts +++ b/src/app/pages/forms/buttons/buttons.component.ts @@ -1,5 +1,7 @@ import { Component } from '@angular/core'; -import { NbComponentShape, NbComponentSize, NbComponentStatus } from '@nebular/theme'; +import { NbComponentShape, NbComponentSize, NbComponentStatus, NbThemeService } from '@nebular/theme'; +import { Observable } from 'rxjs'; +import { map } from 'rxjs/operators'; @Component({ selector: 'ngx-buttons', @@ -7,7 +9,18 @@ import { NbComponentShape, NbComponentSize, NbComponentStatus } from '@nebular/t templateUrl: './buttons.component.html', }) export class ButtonsComponent { - statuses: NbComponentStatus[] = [ 'primary', 'success', 'info', 'warning', 'danger' ]; - shapes: NbComponentShape[] = [ 'rectangle', 'semi-round', 'round' ]; - sizes: NbComponentSize[] = [ 'tiny', 'small', 'medium', 'large', 'giant' ]; + public constructor(private readonly themeService: NbThemeService) { + this.materialTheme$ = this.themeService.onThemeChange() + .pipe(map(theme => { + const themeName: string = theme?.name || ''; + return themeName.startsWith('material'); + })); + } + + public readonly materialTheme$: Observable; + + public readonly statuses: NbComponentStatus[] = [ 'primary', 'success', 'info', 'warning', 'danger' ]; + public readonly shapes: NbComponentShape[] = [ 'rectangle', 'semi-round', 'round' ]; + public readonly sizes: NbComponentSize[] = [ 'tiny', 'small', 'medium', 'large', 'giant' ]; + } diff --git a/src/app/pages/forms/buttons/material-buttons/material-buttons.component.html b/src/app/pages/forms/buttons/material-buttons/material-buttons.component.html new file mode 100644 index 0000000000..d9c0e9825f --- /dev/null +++ b/src/app/pages/forms/buttons/material-buttons/material-buttons.component.html @@ -0,0 +1,9 @@ + + + + + + + Toggle left + Toggle right + \ No newline at end of file diff --git a/src/app/pages/forms/buttons/material-buttons/material-buttons.component.scss b/src/app/pages/forms/buttons/material-buttons/material-buttons.component.scss new file mode 100644 index 0000000000..8957100515 --- /dev/null +++ b/src/app/pages/forms/buttons/material-buttons/material-buttons.component.scss @@ -0,0 +1,3 @@ +button, mat-button-toggle-group { + margin: 0.5rem; +} diff --git a/src/app/pages/forms/buttons/material-buttons/material-buttons.component.ts b/src/app/pages/forms/buttons/material-buttons/material-buttons.component.ts new file mode 100644 index 0000000000..55cf55ffa7 --- /dev/null +++ b/src/app/pages/forms/buttons/material-buttons/material-buttons.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-material-buttons', + templateUrl: './material-buttons.component.html', + styleUrls: ['./material-buttons.component.scss'], +}) +export class MaterialButtonsComponent {} diff --git a/src/app/pages/forms/form-inputs/form-inputs.component.html b/src/app/pages/forms/form-inputs/form-inputs.component.html index 962904abcf..5e40366a1a 100644 --- a/src/app/pages/forms/form-inputs/form-inputs.component.html +++ b/src/app/pages/forms/form-inputs/form-inputs.component.html @@ -10,8 +10,10 @@
- - + + + + @@ -26,9 +28,9 @@ Select - - Option 1 - Option 2 + + Option 1 + Option 2 @@ -85,3 +87,8 @@ +
+
+ +
+
\ No newline at end of file diff --git a/src/app/pages/forms/form-inputs/form-inputs.component.ts b/src/app/pages/forms/form-inputs/form-inputs.component.ts index 4ec7045a01..84d4ae1eb6 100644 --- a/src/app/pages/forms/form-inputs/form-inputs.component.ts +++ b/src/app/pages/forms/form-inputs/form-inputs.component.ts @@ -1,13 +1,28 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { NbThemeService } from '@nebular/theme'; +import { Observable } from 'rxjs'; +import { tap } from 'rxjs/operators'; @Component({ selector: 'ngx-form-inputs', styleUrls: ['./form-inputs.component.scss'], templateUrl: './form-inputs.component.html', }) -export class FormInputsComponent { +export class FormInputsComponent implements OnInit { + public constructor(private readonly themeService: NbThemeService) { + } - starRate = 2; - heartRate = 4; - radioGroupValue = 'This is value 2'; + public materialTheme$: Observable; + public starRate: number = 2; + public heartRate: number = 4; + public radioGroupValue: string = 'This is value 2'; + public showMaterialInputs = false; + + ngOnInit() { + this.materialTheme$ = this.themeService.onThemeChange() + .pipe(tap(theme => { + const themeName: string = theme?.name || ''; + this.showMaterialInputs = themeName.startsWith('material'); + })); + } } diff --git a/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.html b/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.html new file mode 100644 index 0000000000..326bcd075e --- /dev/null +++ b/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.html @@ -0,0 +1,58 @@ + + Angular Material + +
+
+ + Input + + hint + + + + Select + + Option 1 + Option 2 + Option 3 + + hint + + + + Datepicker + + + + hint + +
+
+ + Textarea + + hint + + +
+ + +
+ +
+ + +
+ +
+ + + Option 1 + Option 2 + Option 3 + +
+
+
+
+
\ No newline at end of file diff --git a/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.scss b/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.scss new file mode 100644 index 0000000000..0e4bda6c88 --- /dev/null +++ b/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.scss @@ -0,0 +1,16 @@ +:host { + display: block; +} + +.input-example { + display: block; + margin-top: 1rem; + + label, mat-radio-button { + margin-right: 1rem; + } + + textarea { + min-height: 3rem; + } +} diff --git a/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.ts b/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.ts new file mode 100644 index 0000000000..ff29c9cec0 --- /dev/null +++ b/src/app/pages/forms/form-inputs/material-inputs/material-inputs.component.ts @@ -0,0 +1,8 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'ngx-material-inputs', + templateUrl: './material-inputs.component.html', + styleUrls: ['./material-inputs.component.scss'], +}) +export class MaterialInputsComponent {} diff --git a/src/app/pages/forms/forms.module.ts b/src/app/pages/forms/forms.module.ts index a7b939624f..52487d113b 100644 --- a/src/app/pages/forms/forms.module.ts +++ b/src/app/pages/forms/forms.module.ts @@ -15,11 +15,37 @@ import { ThemeModule } from '../../@theme/theme.module'; import { FormsRoutingModule } from './forms-routing.module'; import { FormsComponent } from './forms.component'; import { FormInputsComponent } from './form-inputs/form-inputs.component'; +import { MaterialInputsComponent } from './form-inputs/material-inputs/material-inputs.component'; import { FormLayoutsComponent } from './form-layouts/form-layouts.component'; import { DatepickerComponent } from './datepicker/datepicker.component'; import { ButtonsComponent } from './buttons/buttons.component'; +import { MaterialButtonsComponent } from './buttons/material-buttons/material-buttons.component'; import { FormsModule as ngFormsModule } from '@angular/forms'; +import { MatNativeDateModule } from '@angular/material/core'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatInputModule } from '@angular/material/input'; +import { MatSelectModule } from '@angular/material/select'; +import { MatDatepickerModule } from '@angular/material/datepicker'; +import { MatCheckboxModule } from '@angular/material/checkbox'; +import { MatSlideToggleModule } from '@angular/material/slide-toggle'; +import { MatRadioModule } from '@angular/material/radio'; +import { MatButtonModule } from '@angular/material/button'; +import { MatButtonToggleModule } from '@angular/material/button-toggle'; + +const materialModules = [ + MatFormFieldModule, + MatInputModule, + MatSelectModule, + MatNativeDateModule, + MatDatepickerModule, + MatCheckboxModule, + MatSlideToggleModule, + MatRadioModule, + MatButtonModule, + MatButtonToggleModule, +]; + @NgModule({ imports: [ ThemeModule, @@ -35,6 +61,7 @@ import { FormsModule as ngFormsModule } from '@angular/forms'; NbSelectModule, NbIconModule, ngFormsModule, + ...materialModules, ], declarations: [ FormsComponent, @@ -42,6 +69,8 @@ import { FormsModule as ngFormsModule } from '@angular/forms'; FormInputsComponent, FormLayoutsComponent, DatepickerComponent, + MaterialInputsComponent, + MaterialButtonsComponent, ], }) export class FormsModule { } diff --git a/src/app/pages/layout/accordion/accordion.component.html b/src/app/pages/layout/accordion/accordion.component.html index 180e3abab8..1b5240bff5 100644 --- a/src/app/pages/layout/accordion/accordion.component.html +++ b/src/app/pages/layout/accordion/accordion.component.html @@ -3,13 +3,13 @@ Toggle Accordion By Button - + - + Product Details @@ -20,7 +20,7 @@ - + Reviews @@ -31,7 +31,7 @@ - + Edit @@ -46,7 +46,7 @@
- + Product Details @@ -57,7 +57,7 @@ - + Reviews @@ -68,7 +68,7 @@ - + Edit diff --git a/src/app/pages/layout/list/list.component.html b/src/app/pages/layout/list/list.component.html index a11abe3c6e..9be4c3bbcb 100644 --- a/src/app/pages/layout/list/list.component.html +++ b/src/app/pages/layout/list/list.component.html @@ -15,12 +15,14 @@
Users - - - - - - + + + + + + + +
diff --git a/src/app/pages/layout/stepper/stepper.component.html b/src/app/pages/layout/stepper/stepper.component.html index 86e0116cd3..e6c220cc50 100644 --- a/src/app/pages/layout/stepper/stepper.component.html +++ b/src/app/pages/layout/stepper/stepper.component.html @@ -4,25 +4,25 @@ First step

Step content #1

- - + +
Second step

Step content #2

- - + +

Step content #3

- - + +
Fourth step

Step content #4

- - + +
@@ -43,7 +43,7 @@

Step content #4

- + @@ -57,8 +57,8 @@

Step content #4

- - + +
@@ -70,14 +70,14 @@

Step content #4

- - + +

Wizard completed!

- +
@@ -97,8 +97,8 @@

Step content #1

viverra ex. Lorem ipsum dolor sit amet, consectetur adipiscing elit. Praesent metus turpis, commodo vel placerat quis, lobortis in ligula.

- - + +

Step content #2

@@ -107,8 +107,8 @@

Step content #2

sed ornare magna. Mauris vitae laoreet diam. Mauris fermentum ligula at lacinia semper. Nulla placerat dui eu sapien pellentesque, eu placerat leo luctus. Cras pharetra blandit fermentum.

- - + +

Step content #3

@@ -123,8 +123,8 @@

Step content #3

sed ornare magna. Mauris vitae laoreet diam. Mauris fermentum ligula at lacinia semper. Nulla placerat dui eu sapien pellentesque, eu placerat leo luctus. Cras pharetra blandit fermentum.

- - + +

Step content #4

@@ -133,8 +133,8 @@

Step content #4

sit amet fringilla orci efficitur. Nam bibendum lectus ut viverra tristique. Fusce eu pulvinar magna, quis viverra ex.

- - + +
diff --git a/src/app/pages/miscellaneous/not-found/not-found.component.html b/src/app/pages/miscellaneous/not-found/not-found.component.html index 9eb129fa3d..df0284ad5b 100644 --- a/src/app/pages/miscellaneous/not-found/not-found.component.html +++ b/src/app/pages/miscellaneous/not-found/not-found.component.html @@ -5,7 +5,7 @@

404 Page Not Found

The page you were looking for doesn't exist -
diff --git a/src/app/pages/modal-overlays/dialog/dialog-name-prompt/dialog-name-prompt.component.html b/src/app/pages/modal-overlays/dialog/dialog-name-prompt/dialog-name-prompt.component.html index 267efd3782..a4202be36c 100644 --- a/src/app/pages/modal-overlays/dialog/dialog-name-prompt/dialog-name-prompt.component.html +++ b/src/app/pages/modal-overlays/dialog/dialog-name-prompt/dialog-name-prompt.component.html @@ -4,7 +4,7 @@ - - + + diff --git a/src/app/pages/modal-overlays/dialog/dialog.component.html b/src/app/pages/modal-overlays/dialog/dialog.component.html index 655d03ae79..a017869eb1 100644 --- a/src/app/pages/modal-overlays/dialog/dialog.component.html +++ b/src/app/pages/modal-overlays/dialog/dialog.component.html @@ -3,9 +3,9 @@ Open Dialog - + - + @@ -14,9 +14,9 @@ Open Without Backdrop - + - + @@ -25,9 +25,9 @@ Open Without Esc Close - + - + @@ -36,9 +36,9 @@ Open Without Backdrop Click - + - + @@ -47,7 +47,7 @@ Return Result From Dialog - +

Names:

    @@ -63,7 +63,7 @@

    Names:

    Template Dialog {{ data }} - + diff --git a/src/app/pages/modal-overlays/dialog/showcase-dialog/showcase-dialog.component.html b/src/app/pages/modal-overlays/dialog/showcase-dialog/showcase-dialog.component.html index 4cd3db631e..1e82a3b4e8 100644 --- a/src/app/pages/modal-overlays/dialog/showcase-dialog/showcase-dialog.component.html +++ b/src/app/pages/modal-overlays/dialog/showcase-dialog/showcase-dialog.component.html @@ -9,6 +9,6 @@ in aliquet massa aliquet et. - + diff --git a/src/app/pages/modal-overlays/popovers/popover-examples.component.ts b/src/app/pages/modal-overlays/popovers/popover-examples.component.ts index c542b774ee..000d50bc80 100644 --- a/src/app/pages/modal-overlays/popovers/popover-examples.component.ts +++ b/src/app/pages/modal-overlays/popovers/popover-examples.component.ts @@ -34,7 +34,7 @@ export class NgxPopoverTabsComponent {
    - + `, diff --git a/src/app/pages/modal-overlays/popovers/popovers.component.html b/src/app/pages/modal-overlays/popovers/popovers.component.html index 0f9f38d655..4d7465ba9f 100644 --- a/src/app/pages/modal-overlays/popovers/popovers.component.html +++ b/src/app/pages/modal-overlays/popovers/popovers.component.html @@ -4,10 +4,10 @@ Popover Position

    When popover has not enough space based on the configured placement, it will adjust accordingly trying to fit the screen.

    - - - - + + + +
    @@ -17,9 +17,9 @@ Simple Popovers

    In a simples form popover can take a string of text to render.

    - - - + + +
    @@ -55,7 +55,7 @@
    - + @@ -76,9 +76,9 @@ Template Popovers

    You can pass a refference to `ng-template` to be rendered.

    - - - + + +
    @@ -88,9 +88,9 @@ Component Popovers

    Same way popover can render any angular compnoent.

    - - - + + +
    @@ -103,52 +103,52 @@

    Quickly move mouse cursor over the buttons, only the last popover will be created. It allows us to avoid excess white improving page performance.

    - - - - - - - - - - - - - - - -
    diff --git a/src/app/pages/modal-overlays/toastr/toastr.component.html b/src/app/pages/modal-overlays/toastr/toastr.component.html index 6e1c4c6346..f9204833b6 100644 --- a/src/app/pages/modal-overlays/toastr/toastr.component.html +++ b/src/app/pages/modal-overlays/toastr/toastr.component.html @@ -8,8 +8,8 @@
    - - {{ p }} + + {{ p }}
    @@ -34,8 +34,8 @@
    - - {{ t }} + + {{ t }}
    @@ -53,7 +53,7 @@ - - + + diff --git a/src/app/pages/modal-overlays/tooltip/tooltip.component.html b/src/app/pages/modal-overlays/tooltip/tooltip.component.html index edddfcd144..a5113a5fd9 100644 --- a/src/app/pages/modal-overlays/tooltip/tooltip.component.html +++ b/src/app/pages/modal-overlays/tooltip/tooltip.component.html @@ -3,8 +3,8 @@ Tooltip With Icon - - + +
    @@ -13,10 +13,10 @@ Tooltip Placements - - - - + + + +
    @@ -25,12 +25,12 @@ Colored Tooltips - - - - - - + + + + + + diff --git a/src/app/pages/modal-overlays/window/window.component.html b/src/app/pages/modal-overlays/window/window.component.html index db824d2d11..a6fb387ba7 100644 --- a/src/app/pages/modal-overlays/window/window.component.html +++ b/src/app/pages/modal-overlays/window/window.component.html @@ -3,9 +3,9 @@ Window Form - + - + @@ -14,9 +14,9 @@ Window Without Backdrop - + - + diff --git a/src/app/pages/ui-features/search-fields/search-fields.component.html b/src/app/pages/ui-features/search-fields/search-fields.component.html index eee086fb02..138d1694c5 100644 --- a/src/app/pages/ui-features/search-fields/search-fields.component.html +++ b/src/app/pages/ui-features/search-fields/search-fields.component.html @@ -5,7 +5,14 @@ Layout Rotate Search - + @@ -15,7 +22,14 @@ Modal Zoomin Search - + @@ -25,7 +39,14 @@ Modal Move Search - + @@ -35,7 +56,14 @@ Modal Drop Search - + @@ -45,7 +73,14 @@ Modal Half Search - + @@ -55,7 +90,14 @@ Curtain Search - + @@ -65,7 +107,14 @@ Column Curtain Search - + diff --git a/src/assets/images/kitten-material-dark.png b/src/assets/images/kitten-material-dark.png new file mode 100644 index 0000000000..3966612cb6 Binary files /dev/null and b/src/assets/images/kitten-material-dark.png differ diff --git a/src/assets/images/kitten-material-light.png b/src/assets/images/kitten-material-light.png new file mode 100644 index 0000000000..15e03eb8be Binary files /dev/null and b/src/assets/images/kitten-material-light.png differ