`s.
+
+.nav {
+ display: flex;
+ flex-wrap: wrap;
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+}
+
+.nav-link {
+ display: block;
+ padding: $nav-link-padding-y $nav-link-padding-x;
+
+ @include hover-focus {
+ text-decoration: none;
+ }
+
+ // Disabled state lightens text
+ &.disabled {
+ color: $nav-link-disabled-color;
+ }
+}
+
+//
+// Tabs
+//
+
+.nav-tabs {
+ border-bottom: $nav-tabs-border-width solid $nav-tabs-border-color;
+
+ .nav-item {
+ margin-bottom: -$nav-tabs-border-width;
+ }
+
+ .nav-link {
+ border: $nav-tabs-border-width solid transparent;
+ @include border-top-radius($nav-tabs-border-radius);
+
+ @include hover-focus {
+ border-color: $nav-tabs-link-hover-border-color;
+ }
+
+ &.disabled {
+ color: $nav-link-disabled-color;
+ background-color: transparent;
+ border-color: transparent;
+ }
+ }
+
+ .nav-link.active,
+ .nav-item.show .nav-link {
+ color: $nav-tabs-link-active-color;
+ background-color: $nav-tabs-link-active-bg;
+ border-color: $nav-tabs-link-active-border-color;
+ }
+
+ .dropdown-menu {
+ // Make dropdown border overlap tab border
+ margin-top: -$nav-tabs-border-width;
+ // Remove the top rounded corners here since there is a hard edge above the menu
+ @include border-top-radius(0);
+ }
+}
+
+
+//
+// Pills
+//
+
+.nav-pills {
+ .nav-link {
+ @include border-radius($nav-pills-border-radius);
+ }
+
+ .nav-link.active,
+ .show > .nav-link {
+ color: $nav-pills-link-active-color;
+ background-color: $nav-pills-link-active-bg;
+ }
+}
+
+
+//
+// Justified variants
+//
+
+.nav-fill {
+ .nav-item {
+ flex: 1 1 auto;
+ text-align: center;
+ }
+}
+
+.nav-justified {
+ .nav-item {
+ flex-basis: 0;
+ flex-grow: 1;
+ text-align: center;
+ }
+}
+
+
+// Tabbable tabs
+//
+// Hide tabbable panes to start, show them when `.active`
+
+.tab-content {
+ > .tab-pane {
+ display: none;
+ }
+ > .active {
+ display: block;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_navbar.scss b/src/assets/scss/black-dashboard/bootstrap/_navbar.scss
new file mode 100644
index 0000000..52de505
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_navbar.scss
@@ -0,0 +1,299 @@
+// Contents
+//
+// Navbar
+// Navbar brand
+// Navbar nav
+// Navbar text
+// Navbar divider
+// Responsive navbar
+// Navbar position
+// Navbar themes
+
+
+// Navbar
+//
+// Provide a static navbar from which we expand to create full-width, fixed, and
+// other navbar variations.
+
+.navbar {
+ position: relative;
+ display: flex;
+ flex-wrap: wrap; // allow us to do the line break for collapsing content
+ align-items: center;
+ justify-content: space-between; // space out brand from logo
+ padding: $navbar-padding-y $navbar-padding-x;
+
+ // Because flex properties aren't inherited, we need to redeclare these first
+ // few properties so that content nested within behave properly.
+ > .container,
+ > .container-fluid {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ }
+}
+
+
+// Navbar brand
+//
+// Used for brand, project, or site names.
+
+.navbar-brand {
+ display: inline-block;
+ padding-top: $navbar-brand-padding-y;
+ padding-bottom: $navbar-brand-padding-y;
+ margin-right: $navbar-padding-x;
+ font-size: $navbar-brand-font-size;
+ line-height: inherit;
+ white-space: nowrap;
+
+ @include hover-focus {
+ text-decoration: none;
+ }
+}
+
+
+// Navbar nav
+//
+// Custom navbar navigation (doesn't require `.nav`, but does make use of `.nav-link`).
+
+.navbar-nav {
+ display: flex;
+ flex-direction: column; // cannot use `inherit` to get the `.navbar`s value
+ padding-left: 0;
+ margin-bottom: 0;
+ list-style: none;
+
+ .nav-link {
+ padding-right: 0;
+ padding-left: 0;
+ }
+
+ .dropdown-menu {
+ position: static;
+ float: none;
+ }
+}
+
+
+// Navbar text
+//
+//
+
+.navbar-text {
+ display: inline-block;
+ padding-top: $nav-link-padding-y;
+ padding-bottom: $nav-link-padding-y;
+}
+
+
+// Responsive navbar
+//
+// Custom styles for responsive collapsing and toggling of navbar contents.
+// Powered by the collapse Bootstrap JavaScript plugin.
+
+// When collapsed, prevent the toggleable navbar contents from appearing in
+// the default flexbox row orientation. Requires the use of `flex-wrap: wrap`
+// on the `.navbar` parent.
+.navbar-collapse {
+ flex-basis: 100%;
+ flex-grow: 1;
+ // For always expanded or extra full navbars, ensure content aligns itself
+ // properly vertically. Can be easily overridden with flex utilities.
+ align-items: center;
+}
+
+// Button for toggling the navbar when in its collapsed state
+.navbar-toggler {
+ padding: $navbar-toggler-padding-y $navbar-toggler-padding-x;
+ font-size: $navbar-toggler-font-size;
+ line-height: 1;
+ background-color: transparent; // remove default button style
+ border: $border-width solid transparent; // remove default button style
+ @include border-radius($navbar-toggler-border-radius);
+
+ @include hover-focus {
+ text-decoration: none;
+ }
+
+ // Opinionated: add "hand" cursor to non-disabled .navbar-toggler elements
+ &:not(:disabled):not(.disabled) {
+ cursor: pointer;
+ }
+}
+
+// Keep as a separate element so folks can easily override it with another icon
+// or image file as needed.
+.navbar-toggler-icon {
+ display: inline-block;
+ width: 1.5em;
+ height: 1.5em;
+ vertical-align: middle;
+ content: "";
+ background: no-repeat center center;
+ background-size: 100% 100%;
+}
+
+// Generate series of `.navbar-expand-*` responsive classes for configuring
+// where your navbar collapses.
+.navbar-expand {
+ @each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ {$infix} {
+ @include media-breakpoint-down($breakpoint) {
+ > .container,
+ > .container-fluid {
+ padding-right: 0;
+ padding-left: 0;
+ }
+ }
+
+ @include media-breakpoint-up($next) {
+ flex-flow: row nowrap;
+ justify-content: flex-start;
+
+ .navbar-nav {
+ flex-direction: row;
+
+ .dropdown-menu {
+ position: absolute;
+ }
+
+ .nav-link {
+ padding-right: $navbar-nav-link-padding-x;
+ padding-left: $navbar-nav-link-padding-x;
+ }
+ }
+
+ // For nesting containers, have to redeclare for alignment purposes
+ > .container,
+ > .container-fluid {
+ flex-wrap: nowrap;
+ }
+
+ .navbar-collapse {
+ display: flex !important; // stylelint-disable-line declaration-no-important
+
+ // Changes flex-bases to auto because of an IE10 bug
+ flex-basis: auto;
+ }
+
+ .navbar-toggler {
+ display: none;
+ }
+ }
+ }
+ }
+}
+
+
+// Navbar themes
+//
+// Styles for switching between navbars with light or dark background.
+
+// Dark links against a light background
+.navbar-light {
+ .navbar-brand {
+ color: $navbar-light-active-color;
+
+ @include hover-focus {
+ color: $navbar-light-active-color;
+ }
+ }
+
+ .navbar-nav {
+ .nav-link {
+ color: $navbar-light-color;
+
+ @include hover-focus {
+ color: $navbar-light-hover-color;
+ }
+
+ &.disabled {
+ color: $navbar-light-disabled-color;
+ }
+ }
+
+ .show > .nav-link,
+ .active > .nav-link,
+ .nav-link.show,
+ .nav-link.active {
+ color: $navbar-light-active-color;
+ }
+ }
+
+ .navbar-toggler {
+ color: $navbar-light-color;
+ border-color: $navbar-light-toggler-border-color;
+ }
+
+ .navbar-toggler-icon {
+ background-image: $navbar-light-toggler-icon-bg;
+ }
+
+ .navbar-text {
+ color: $navbar-light-color;
+ a {
+ color: $navbar-light-active-color;
+
+ @include hover-focus {
+ color: $navbar-light-active-color;
+ }
+ }
+ }
+}
+
+// White links against a dark background
+.navbar-dark {
+ .navbar-brand {
+ color: $navbar-dark-active-color;
+
+ @include hover-focus {
+ color: $navbar-dark-active-color;
+ }
+ }
+
+ .navbar-nav {
+ .nav-link {
+ color: $navbar-dark-color;
+
+ @include hover-focus {
+ color: $navbar-dark-hover-color;
+ }
+
+ &.disabled {
+ color: $navbar-dark-disabled-color;
+ }
+ }
+
+ .show > .nav-link,
+ .active > .nav-link,
+ .nav-link.show,
+ .nav-link.active {
+ color: $navbar-dark-active-color;
+ }
+ }
+
+ .navbar-toggler {
+ color: $navbar-dark-color;
+ border-color: $navbar-dark-toggler-border-color;
+ }
+
+ .navbar-toggler-icon {
+ background-image: $navbar-dark-toggler-icon-bg;
+ }
+
+ .navbar-text {
+ color: $navbar-dark-color;
+ a {
+ color: $navbar-dark-active-color;
+
+ @include hover-focus {
+ color: $navbar-dark-active-color;
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_pagination.scss b/src/assets/scss/black-dashboard/bootstrap/_pagination.scss
new file mode 100644
index 0000000..9349f3f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_pagination.scss
@@ -0,0 +1,78 @@
+.pagination {
+ display: flex;
+ @include list-unstyled();
+ @include border-radius();
+}
+
+.page-link {
+ position: relative;
+ display: block;
+ padding: $pagination-padding-y $pagination-padding-x;
+ margin-left: -$pagination-border-width;
+ line-height: $pagination-line-height;
+ color: $pagination-color;
+ background-color: $pagination-bg;
+ border: $pagination-border-width solid $pagination-border-color;
+
+ &:hover {
+ z-index: 2;
+ color: $pagination-hover-color;
+ text-decoration: none;
+ background-color: $pagination-hover-bg;
+ border-color: $pagination-hover-border-color;
+ }
+
+ &:focus {
+ z-index: 2;
+ outline: $pagination-focus-outline;
+ box-shadow: $pagination-focus-box-shadow;
+ }
+
+ // Opinionated: add "hand" cursor to non-disabled .page-link elements
+ &:not(:disabled):not(.disabled) {
+ cursor: pointer;
+ }
+}
+
+.page-item {
+ &:first-child {
+ .page-link {
+ margin-left: 0;
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ .page-link {
+ @include border-right-radius($border-radius);
+ }
+ }
+
+ &.active .page-link {
+ z-index: 1;
+ color: $pagination-active-color;
+ background-color: $pagination-active-bg;
+ border-color: $pagination-active-border-color;
+ }
+
+ &.disabled .page-link {
+ color: $pagination-disabled-color;
+ pointer-events: none;
+ // Opinionated: remove the "hand" cursor set previously for .page-link
+ cursor: auto;
+ background-color: $pagination-disabled-bg;
+ border-color: $pagination-disabled-border-color;
+ }
+}
+
+
+//
+// Sizing
+//
+
+.pagination-lg {
+ @include pagination-size($pagination-padding-y-lg, $pagination-padding-x-lg, $font-size-lg, $line-height-lg, $border-radius-lg);
+}
+
+.pagination-sm {
+ @include pagination-size($pagination-padding-y-sm, $pagination-padding-x-sm, $font-size-sm, $line-height-sm, $border-radius-sm);
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_popover.scss b/src/assets/scss/black-dashboard/bootstrap/_popover.scss
new file mode 100644
index 0000000..3ef5f62
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_popover.scss
@@ -0,0 +1,183 @@
+.popover {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: $zindex-popover;
+ display: block;
+ max-width: $popover-max-width;
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ @include reset-text();
+ font-size: $popover-font-size;
+ // Allow breaking very long words so they don't overflow the popover's bounds
+ word-wrap: break-word;
+ background-color: $popover-bg;
+ background-clip: padding-box;
+ border: $popover-border-width solid $popover-border-color;
+ @include border-radius($popover-border-radius);
+ @include box-shadow($popover-box-shadow);
+
+ .arrow {
+ position: absolute;
+ display: block;
+ width: $popover-arrow-width;
+ height: $popover-arrow-height;
+ margin: 0 $border-radius-lg;
+
+ &::before,
+ &::after {
+ position: absolute;
+ display: block;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+ }
+ }
+}
+
+.bs-popover-top {
+ margin-bottom: $popover-arrow-height;
+
+ .arrow {
+ bottom: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
+ }
+
+ .arrow::before,
+ .arrow::after {
+ border-width: $popover-arrow-height ($popover-arrow-width / 2) 0;
+ }
+
+ .arrow::before {
+ bottom: 0;
+ border-top-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ bottom: $popover-border-width;
+ border-top-color: $popover-arrow-color;
+ }
+}
+
+.bs-popover-right {
+ margin-left: $popover-arrow-height;
+
+ .arrow {
+ left: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
+ width: $popover-arrow-height;
+ height: $popover-arrow-width;
+ margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
+ }
+
+ .arrow::before,
+ .arrow::after {
+ border-width: ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2) 0;
+ }
+
+ .arrow::before {
+ left: 0;
+ border-right-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ left: $popover-border-width;
+ border-right-color: $popover-arrow-color;
+ }
+}
+
+.bs-popover-bottom {
+ margin-top: $popover-arrow-height;
+
+ .arrow {
+ top: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
+ }
+
+ .arrow::before,
+ .arrow::after {
+ border-width: 0 ($popover-arrow-width / 2) $popover-arrow-height ($popover-arrow-width / 2);
+ }
+
+ .arrow::before {
+ top: 0;
+ border-bottom-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ top: $popover-border-width;
+ border-bottom-color: $popover-arrow-color;
+ }
+
+ // This will remove the popover-header's border just below the arrow
+ .popover-header::before {
+ position: absolute;
+ top: 0;
+ left: 50%;
+ display: block;
+ width: $popover-arrow-width;
+ margin-left: ($popover-arrow-width / -2);
+ content: "";
+ border-bottom: $popover-border-width solid $popover-header-bg;
+ }
+}
+
+.bs-popover-left {
+ margin-right: $popover-arrow-height;
+
+ .arrow {
+ right: calc((#{$popover-arrow-height} + #{$popover-border-width}) * -1);
+ width: $popover-arrow-height;
+ height: $popover-arrow-width;
+ margin: $border-radius-lg 0; // make sure the arrow does not touch the popover's rounded corners
+ }
+
+ .arrow::before,
+ .arrow::after {
+ border-width: ($popover-arrow-width / 2) 0 ($popover-arrow-width / 2) $popover-arrow-height;
+ }
+
+ .arrow::before {
+ right: 0;
+ border-left-color: $popover-arrow-outer-color;
+ }
+
+ .arrow::after {
+ right: $popover-border-width;
+ border-left-color: $popover-arrow-color;
+ }
+}
+
+.bs-popover-auto {
+ &[x-placement^="top"] {
+ @extend .bs-popover-top;
+ }
+ &[x-placement^="right"] {
+ @extend .bs-popover-right;
+ }
+ &[x-placement^="bottom"] {
+ @extend .bs-popover-bottom;
+ }
+ &[x-placement^="left"] {
+ @extend .bs-popover-left;
+ }
+}
+
+
+// Offset the popover to account for the popover arrow
+.popover-header {
+ padding: $popover-header-padding-y $popover-header-padding-x;
+ margin-bottom: 0; // Reset the default from Reboot
+ font-size: $font-size-base;
+ color: $popover-header-color;
+ background-color: $popover-header-bg;
+ border-bottom: $popover-border-width solid darken($popover-header-bg, 5%);
+ $offset-border-width: calc(#{$border-radius-lg} - #{$popover-border-width});
+ @include border-top-radius($offset-border-width);
+
+ &:empty {
+ display: none;
+ }
+}
+
+.popover-body {
+ padding: $popover-body-padding-y $popover-body-padding-x;
+ color: $popover-body-color;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_print.scss b/src/assets/scss/black-dashboard/bootstrap/_print.scss
new file mode 100644
index 0000000..1df9487
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_print.scss
@@ -0,0 +1,141 @@
+// stylelint-disable declaration-no-important, selector-no-qualifying-type
+
+// Source: https://github.com/h5bp/html5-boilerplate/blob/master/src/css/main.css
+
+// ==========================================================================
+// Print styles.
+// Inlined to avoid the additional HTTP request:
+// https://www.phpied.com/delay-loading-your-print-css/
+// ==========================================================================
+
+@if $enable-print-styles {
+ @media print {
+ *,
+ *::before,
+ *::after {
+ // Bootstrap specific; comment out `color` and `background`
+ //color: $black !important; // Black prints faster
+ text-shadow: none !important;
+ //background: transparent !important;
+ box-shadow: none !important;
+ }
+
+ a {
+ &:not(.btn) {
+ text-decoration: underline;
+ }
+ }
+
+ // Bootstrap specific; comment the following selector out
+ //a[href]::after {
+ // content: " (" attr(href) ")";
+ //}
+
+ abbr[title]::after {
+ content: " (" attr(title) ")";
+ }
+
+ // Bootstrap specific; comment the following selector out
+ //
+ // Don't show links that are fragment identifiers,
+ // or use the `javascript:` pseudo protocol
+ //
+
+ //a[href^="#"]::after,
+ //a[href^="javascript:"]::after {
+ // content: "";
+ //}
+
+ pre {
+ white-space: pre-wrap !important;
+ }
+ pre,
+ blockquote {
+ border: $border-width solid $gray-500; // Bootstrap custom code; using `$border-width` instead of 1px
+ page-break-inside: avoid;
+ }
+
+ //
+ // Printing Tables:
+ // http://css-discuss.incutio.com/wiki/Printing_Tables
+ //
+
+ thead {
+ display: table-header-group;
+ }
+
+ tr,
+ img {
+ page-break-inside: avoid;
+ }
+
+ p,
+ h2,
+ h3 {
+ orphans: 3;
+ widows: 3;
+ }
+
+ h2,
+ h3 {
+ page-break-after: avoid;
+ }
+
+ // Bootstrap specific changes start
+
+ // Specify a size and min-width to make printing closer across browsers.
+ // We don't set margin here because it breaks `size` in Chrome. We also
+ // don't use `!important` on `size` as it breaks in Chrome.
+ @page {
+ size: $print-page-size;
+ }
+ body {
+ min-width: $print-body-min-width !important;
+ }
+ .container {
+ min-width: $print-body-min-width !important;
+ }
+
+ // Bootstrap components
+ .navbar {
+ display: none;
+ }
+ .badge {
+ border: $border-width solid $black;
+ }
+
+ .table {
+ border-collapse: collapse !important;
+
+ td,
+ th {
+ background-color: $white !important;
+ }
+ }
+
+ .table-bordered {
+ th,
+ td {
+ border: 1px solid $gray-300 !important;
+ }
+ }
+
+ .table-dark {
+ color: inherit;
+
+ th,
+ td,
+ thead th,
+ tbody + tbody {
+ border-color: $table-border-color;
+ }
+ }
+
+ .table .thead-dark th {
+ color: inherit;
+ border-color: $table-border-color;
+ }
+
+ // Bootstrap specific changes end
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_progress.scss b/src/assets/scss/black-dashboard/bootstrap/_progress.scss
new file mode 100644
index 0000000..0ac3e0c
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_progress.scss
@@ -0,0 +1,34 @@
+@keyframes progress-bar-stripes {
+ from { background-position: $progress-height 0; }
+ to { background-position: 0 0; }
+}
+
+.progress {
+ display: flex;
+ height: $progress-height;
+ overflow: hidden; // force rounded corners by cropping it
+ font-size: $progress-font-size;
+ background-color: $progress-bg;
+ @include border-radius($progress-border-radius);
+ @include box-shadow($progress-box-shadow);
+}
+
+.progress-bar {
+ display: flex;
+ flex-direction: column;
+ justify-content: center;
+ color: $progress-bar-color;
+ text-align: center;
+ white-space: nowrap;
+ background-color: $progress-bar-bg;
+ @include transition($progress-bar-transition);
+}
+
+.progress-bar-striped {
+ @include gradient-striped();
+ background-size: $progress-height $progress-height;
+}
+
+.progress-bar-animated {
+ animation: progress-bar-stripes $progress-bar-animation-timing;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_reboot.scss b/src/assets/scss/black-dashboard/bootstrap/_reboot.scss
new file mode 100644
index 0000000..f297d09
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_reboot.scss
@@ -0,0 +1,483 @@
+// stylelint-disable at-rule-no-vendor-prefix, declaration-no-important, selector-no-qualifying-type, property-no-vendor-prefix
+
+// Reboot
+//
+// Normalization of HTML elements, manually forked from Normalize.css to remove
+// styles targeting irrelevant browsers while applying new styles.
+//
+// Normalize is licensed MIT. https://github.com/necolas/normalize.css
+
+
+// Document
+//
+// 1. Change from `box-sizing: content-box` so that `width` is not affected by `padding` or `border`.
+// 2. Change the default font family in all browsers.
+// 3. Correct the line height in all browsers.
+// 4. Prevent adjustments of font size after orientation changes in IE on Windows Phone and in iOS.
+// 5. Setting @viewport causes scrollbars to overlap content in IE11 and Edge, so
+// we force a non-overlapping, non-auto-hiding scrollbar to counteract.
+// 6. Change the default tap highlight to be completely transparent in iOS.
+
+*,
+*::before,
+*::after {
+ box-sizing: border-box; // 1
+}
+
+html {
+ font-family: sans-serif; // 2
+ line-height: 1.15; // 3
+ -webkit-text-size-adjust: 100%; // 4
+ -ms-text-size-adjust: 100%; // 4
+ -ms-overflow-style: scrollbar; // 5
+ -webkit-tap-highlight-color: rgba($black, 0); // 6
+}
+
+// IE10+ doesn't honor `` in some cases.
+@at-root {
+ @-ms-viewport {
+ width: device-width;
+ }
+}
+
+// stylelint-disable selector-list-comma-newline-after
+// Shim for "new" HTML5 structural elements to display correctly (IE10, older browsers)
+article, aside, figcaption, figure, footer, header, hgroup, main, nav, section {
+ display: block;
+}
+// stylelint-enable selector-list-comma-newline-after
+
+// Body
+//
+// 1. Remove the margin in all browsers.
+// 2. As a best practice, apply a default `background-color`.
+// 3. Set an explicit initial text-align value so that we can later use the
+// the `inherit` value on things like `` elements.
+
+body {
+ margin: 0; // 1
+ font-family: $font-family-base;
+ font-size: $font-size-base;
+ font-weight: $font-weight-base;
+ line-height: $line-height-base;
+ color: $body-color;
+ text-align: left; // 3
+ background-color: $body-bg; // 2
+}
+
+// Suppress the focus outline on elements that cannot be accessed via keyboard.
+// This prevents an unwanted focus outline from appearing around elements that
+// might still respond to pointer events.
+//
+// Credit: https://github.com/suitcss/base
+[tabindex="-1"]:focus {
+ outline: 0 !important;
+}
+
+
+// Content grouping
+//
+// 1. Add the correct box sizing in Firefox.
+// 2. Show the overflow in Edge and IE.
+
+hr {
+ box-sizing: content-box; // 1
+ height: 0; // 1
+ overflow: visible; // 2
+}
+
+
+//
+// Typography
+//
+
+// Remove top margins from headings
+//
+// By default, ``-`` all receive top and bottom margins. We nuke the top
+// margin for easier control within type scales as it avoids margin collapsing.
+// stylelint-disable selector-list-comma-newline-after
+h1, h2, h3, h4, h5, h6 {
+ margin-top: 0;
+ margin-bottom: $headings-margin-bottom;
+}
+// stylelint-enable selector-list-comma-newline-after
+
+// Reset margins on paragraphs
+//
+// Similarly, the top margin on ``s get reset. However, we also reset the
+// bottom margin to use `rem` units instead of `em`.
+p {
+ margin-top: 0;
+ margin-bottom: $paragraph-margin-bottom;
+}
+
+// Abbreviations
+//
+// 1. Remove the bottom border in Firefox 39-.
+// 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
+// 3. Add explicit cursor to indicate changed behavior.
+// 4. Duplicate behavior to the data-* attribute for our tooltip plugin
+
+abbr[title],
+abbr[data-original-title] { // 4
+ text-decoration: underline; // 2
+ text-decoration: underline dotted; // 2
+ cursor: help; // 3
+ border-bottom: 0; // 1
+}
+
+address {
+ margin-bottom: 1rem;
+ font-style: normal;
+ line-height: inherit;
+}
+
+ol,
+ul,
+dl {
+ margin-top: 0;
+ margin-bottom: 1rem;
+}
+
+ol ol,
+ul ul,
+ol ul,
+ul ol {
+ margin-bottom: 0;
+}
+
+dt {
+ font-weight: $dt-font-weight;
+}
+
+dd {
+ margin-bottom: .5rem;
+ margin-left: 0; // Undo browser default
+}
+
+blockquote {
+ margin: 0 0 1rem;
+}
+
+dfn {
+ font-style: italic; // Add the correct font style in Android 4.3-
+}
+
+// stylelint-disable font-weight-notation
+b,
+strong {
+ font-weight: bolder; // Add the correct font weight in Chrome, Edge, and Safari
+}
+// stylelint-enable font-weight-notation
+
+small {
+ font-size: 80%; // Add the correct font size in all browsers
+}
+
+//
+// Prevent `sub` and `sup` elements from affecting the line height in
+// all browsers.
+//
+
+sub,
+sup {
+ position: relative;
+ font-size: 75%;
+ line-height: 0;
+ vertical-align: baseline;
+}
+
+sub { bottom: -.25em; }
+sup { top: -.5em; }
+
+
+//
+// Links
+//
+
+a {
+ color: $link-color;
+ text-decoration: $link-decoration;
+ background-color: transparent; // Remove the gray background on active links in IE 10.
+ -webkit-text-decoration-skip: objects; // Remove gaps in links underline in iOS 8+ and Safari 8+.
+
+ @include hover {
+ color: $link-hover-color;
+ text-decoration: $link-hover-decoration;
+ }
+}
+
+// And undo these styles for placeholder links/named anchors (without href)
+// which have not been made explicitly keyboard-focusable (without tabindex).
+// It would be more straightforward to just use a[href] in previous block, but that
+// causes specificity issues in many other styles that are too complex to fix.
+// See https://github.com/twbs/bootstrap/issues/19402
+
+a:not([href]):not([tabindex]) {
+ color: inherit;
+ text-decoration: none;
+
+ @include hover-focus {
+ color: inherit;
+ text-decoration: none;
+ }
+
+ &:focus {
+ outline: 0;
+ }
+}
+
+
+//
+// Code
+//
+
+pre,
+code,
+kbd,
+samp {
+ font-family: $font-family-monospace;
+ font-size: 1em; // Correct the odd `em` font sizing in all browsers.
+}
+
+pre {
+ // Remove browser default top margin
+ margin-top: 0;
+ // Reset browser default of `1em` to use `rem`s
+ margin-bottom: 1rem;
+ // Don't allow content to break outside
+ overflow: auto;
+ // We have @viewport set which causes scrollbars to overlap content in IE11 and Edge, so
+ // we force a non-overlapping, non-auto-hiding scrollbar to counteract.
+ -ms-overflow-style: scrollbar;
+}
+
+
+//
+// Figures
+//
+
+figure {
+ // Apply a consistent margin strategy (matches our type styles).
+ margin: 0 0 1rem;
+}
+
+
+//
+// Images and content
+//
+
+img {
+ vertical-align: middle;
+ border-style: none; // Remove the border on images inside links in IE 10-.
+}
+
+svg {
+ // Workaround for the SVG overflow bug in IE10/11 is still required.
+ // See https://github.com/twbs/bootstrap/issues/26878
+ overflow: hidden;
+ vertical-align: middle;
+}
+
+
+//
+// Tables
+//
+
+table {
+ border-collapse: collapse; // Prevent double borders
+}
+
+caption {
+ padding-top: $table-cell-padding;
+ padding-bottom: $table-cell-padding;
+ color: $table-caption-color;
+ text-align: left;
+ caption-side: bottom;
+}
+
+th {
+ // Matches default ` | ` alignment by inheriting from the ``, or the
+ // closest parent with a set `text-align`.
+ text-align: inherit;
+}
+
+
+//
+// Forms
+//
+
+label {
+ // Allow labels to use `margin` for spacing.
+ display: inline-block;
+ margin-bottom: $label-margin-bottom;
+}
+
+// Remove the default `border-radius` that macOS Chrome adds.
+//
+// Details at https://github.com/twbs/bootstrap/issues/24093
+button {
+ border-radius: 0;
+}
+
+// Work around a Firefox/IE bug where the transparent `button` background
+// results in a loss of the default `button` focus styles.
+//
+// Credit: https://github.com/suitcss/base/
+button:focus {
+ outline: 1px dotted;
+ outline: 5px auto -webkit-focus-ring-color;
+}
+
+input,
+button,
+select,
+optgroup,
+textarea {
+ margin: 0; // Remove the margin in Firefox and Safari
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+}
+
+button,
+input {
+ overflow: visible; // Show the overflow in Edge
+}
+
+button,
+select {
+ text-transform: none; // Remove the inheritance of text transform in Firefox
+}
+
+// 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
+// controls in Android 4.
+// 2. Correct the inability to style clickable types in iOS and Safari.
+button,
+html [type="button"], // 1
+[type="reset"],
+[type="submit"] {
+ -webkit-appearance: button; // 2
+}
+
+// Remove inner border and padding from Firefox, but don't restore the outline like Normalize.
+button::-moz-focus-inner,
+[type="button"]::-moz-focus-inner,
+[type="reset"]::-moz-focus-inner,
+[type="submit"]::-moz-focus-inner {
+ padding: 0;
+ border-style: none;
+}
+
+input[type="radio"],
+input[type="checkbox"] {
+ box-sizing: border-box; // 1. Add the correct box sizing in IE 10-
+ padding: 0; // 2. Remove the padding in IE 10-
+}
+
+
+input[type="date"],
+input[type="time"],
+input[type="datetime-local"],
+input[type="month"] {
+ // Remove the default appearance of temporal inputs to avoid a Mobile Safari
+ // bug where setting a custom line-height prevents text from being vertically
+ // centered within the input.
+ // See https://bugs.webkit.org/show_bug.cgi?id=139848
+ // and https://github.com/twbs/bootstrap/issues/11266
+ -webkit-appearance: listbox;
+}
+
+textarea {
+ overflow: auto; // Remove the default vertical scrollbar in IE.
+ // Textareas should really only resize vertically so they don't break their (horizontal) containers.
+ resize: vertical;
+}
+
+fieldset {
+ // Browsers set a default `min-width: min-content;` on fieldsets,
+ // unlike e.g. ``s, which have `min-width: 0;` by default.
+ // So we reset that to ensure fieldsets behave more like a standard block element.
+ // See https://github.com/twbs/bootstrap/issues/12359
+ // and https://html.spec.whatwg.org/multipage/#the-fieldset-and-legend-elements
+ min-width: 0;
+ // Reset the default outline behavior of fieldsets so they don't affect page layout.
+ padding: 0;
+ margin: 0;
+ border: 0;
+}
+
+// 1. Correct the text wrapping in Edge and IE.
+// 2. Correct the color inheritance from `fieldset` elements in IE.
+legend {
+ display: block;
+ width: 100%;
+ max-width: 100%; // 1
+ padding: 0;
+ margin-bottom: .5rem;
+ font-size: 1.5rem;
+ line-height: inherit;
+ color: inherit; // 2
+ white-space: normal; // 1
+}
+
+progress {
+ vertical-align: baseline; // Add the correct vertical alignment in Chrome, Firefox, and Opera.
+}
+
+// Correct the cursor style of increment and decrement buttons in Chrome.
+[type="number"]::-webkit-inner-spin-button,
+[type="number"]::-webkit-outer-spin-button {
+ height: auto;
+}
+
+[type="search"] {
+ // This overrides the extra rounded corners on search inputs in iOS so that our
+ // `.form-control` class can properly style them. Note that this cannot simply
+ // be added to `.form-control` as it's not specific enough. For details, see
+ // https://github.com/twbs/bootstrap/issues/11586.
+ outline-offset: -2px; // 2. Correct the outline style in Safari.
+ -webkit-appearance: none;
+}
+
+//
+// Remove the inner padding and cancel buttons in Chrome and Safari on macOS.
+//
+
+[type="search"]::-webkit-search-cancel-button,
+[type="search"]::-webkit-search-decoration {
+ -webkit-appearance: none;
+}
+
+//
+// 1. Correct the inability to style clickable types in iOS and Safari.
+// 2. Change font properties to `inherit` in Safari.
+//
+
+::-webkit-file-upload-button {
+ font: inherit; // 2
+ -webkit-appearance: button; // 1
+}
+
+//
+// Correct element displays
+//
+
+output {
+ display: inline-block;
+}
+
+summary {
+ display: list-item; // Add the correct display in all browsers
+ cursor: pointer;
+}
+
+template {
+ display: none; // Add the correct display in IE
+}
+
+// Always hide an element with the `hidden` HTML attribute (from PureCSS).
+// Needed for proper display in IE 10-.
+[hidden] {
+ display: none !important;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_root.scss b/src/assets/scss/black-dashboard/bootstrap/_root.scss
new file mode 100644
index 0000000..ad550df
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_root.scss
@@ -0,0 +1,19 @@
+:root {
+ // Custom variable values only support SassScript inside `#{}`.
+ @each $color, $value in $colors {
+ --#{$color}: #{$value};
+ }
+
+ @each $color, $value in $theme-colors {
+ --#{$color}: #{$value};
+ }
+
+ @each $bp, $value in $grid-breakpoints {
+ --breakpoint-#{$bp}: #{$value};
+ }
+
+ // Use `inspect` for lists so that quoted items keep the quotes.
+ // See https://github.com/sass/sass/issues/2383#issuecomment-336349172
+ --font-family-sans-serif: #{inspect($font-family-sans-serif)};
+ --font-family-monospace: #{inspect($font-family-monospace)};
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_tables.scss b/src/assets/scss/black-dashboard/bootstrap/_tables.scss
new file mode 100644
index 0000000..5fa6a86
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_tables.scss
@@ -0,0 +1,187 @@
+//
+// Basic Bootstrap table
+//
+
+.table {
+ width: 100%;
+ margin-bottom: $spacer;
+ background-color: $table-bg; // Reset for nesting within parents with `background-color`.
+
+ th,
+ td {
+ padding: $table-cell-padding;
+ vertical-align: top;
+ border-top: $table-border-width solid $table-border-color;
+ }
+
+ thead th {
+ vertical-align: bottom;
+ border-bottom: (2 * $table-border-width) solid $table-border-color;
+ }
+
+ tbody + tbody {
+ border-top: (2 * $table-border-width) solid $table-border-color;
+ }
+
+ .table {
+ background-color: $body-bg;
+ }
+}
+
+
+//
+// Condensed table w/ half padding
+//
+
+.table-sm {
+ th,
+ td {
+ padding: $table-cell-padding-sm;
+ }
+}
+
+
+// Border versions
+//
+// Add or remove borders all around the table and between all the columns.
+
+.table-bordered {
+ border: $table-border-width solid $table-border-color;
+
+ th,
+ td {
+ border: $table-border-width solid $table-border-color;
+ }
+
+ thead {
+ th,
+ td {
+ border-bottom-width: (2 * $table-border-width);
+ }
+ }
+}
+
+.table-borderless {
+ th,
+ td,
+ thead th,
+ tbody + tbody {
+ border: 0;
+ }
+}
+
+// Zebra-striping
+//
+// Default zebra-stripe styles (alternating gray and transparent backgrounds)
+
+.table-striped {
+ tbody tr:nth-of-type(#{$table-striped-order}) {
+ background-color: $table-accent-bg;
+ }
+}
+
+
+// Hover effect
+//
+// Placed here since it has to come after the potential zebra striping
+
+.table-hover {
+ tbody tr {
+ @include hover {
+ background-color: $table-hover-bg;
+ }
+ }
+}
+
+
+// Table backgrounds
+//
+// Exact selectors below required to override `.table-striped` and prevent
+// inheritance to nested tables.
+
+@each $color, $value in $theme-colors {
+ @include table-row-variant($color, theme-color-level($color, -9));
+}
+
+@include table-row-variant(active, $table-active-bg);
+
+
+// Dark styles
+//
+// Same table markup, but inverted color scheme: dark background and light text.
+
+// stylelint-disable-next-line no-duplicate-selectors
+.table {
+ .thead-dark {
+ th {
+ color: $table-dark-color;
+ background-color: $table-dark-bg;
+ border-color: $table-dark-border-color;
+ }
+ }
+
+ .thead-light {
+ th {
+ color: $table-head-color;
+ background-color: $table-head-bg;
+ border-color: $table-border-color;
+ }
+ }
+}
+
+.table-dark {
+ color: $table-dark-color;
+ background-color: $table-dark-bg;
+
+ th,
+ td,
+ thead th {
+ border-color: $table-dark-border-color;
+ }
+
+ &.table-bordered {
+ border: 0;
+ }
+
+ &.table-striped {
+ tbody tr:nth-of-type(odd) {
+ background-color: $table-dark-accent-bg;
+ }
+ }
+
+ &.table-hover {
+ tbody tr {
+ @include hover {
+ background-color: $table-dark-hover-bg;
+ }
+ }
+ }
+}
+
+
+// Responsive tables
+//
+// Generate series of `.table-responsive-*` classes for configuring the screen
+// size of where your table will overflow.
+
+.table-responsive {
+ @each $breakpoint in map-keys($grid-breakpoints) {
+ $next: breakpoint-next($breakpoint, $grid-breakpoints);
+ $infix: breakpoint-infix($next, $grid-breakpoints);
+
+ {$infix} {
+ @include media-breakpoint-down($breakpoint) {
+ display: block;
+ width: 100%;
+ overflow-x: auto;
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar; // See https://github.com/twbs/bootstrap/pull/10057
+
+ // Prevent double border on horizontal scroll due to use of `display: block;`
+ > .table-bordered {
+ border: 0;
+ }
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_tooltip.scss b/src/assets/scss/black-dashboard/bootstrap/_tooltip.scss
new file mode 100644
index 0000000..1286ebf
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_tooltip.scss
@@ -0,0 +1,115 @@
+// Base class
+.tooltip {
+ position: absolute;
+ z-index: $zindex-tooltip;
+ display: block;
+ margin: $tooltip-margin;
+ // Our parent element can be arbitrary since tooltips are by default inserted as a sibling of their target element.
+ // So reset our font and text properties to avoid inheriting weird values.
+ @include reset-text();
+ font-size: $tooltip-font-size;
+ // Allow breaking very long words so they don't overflow the tooltip's bounds
+ word-wrap: break-word;
+ opacity: 0;
+
+ &.show { opacity: $tooltip-opacity; }
+
+ .arrow {
+ position: absolute;
+ display: block;
+ width: $tooltip-arrow-width;
+ height: $tooltip-arrow-height;
+
+ &::before {
+ position: absolute;
+ content: "";
+ border-color: transparent;
+ border-style: solid;
+ }
+ }
+}
+
+.bs-tooltip-top {
+ padding: $tooltip-arrow-height 0;
+
+ .arrow {
+ bottom: 0;
+
+ &::before {
+ top: 0;
+ border-width: $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
+ border-top-color: $tooltip-arrow-color;
+ }
+ }
+}
+
+.bs-tooltip-right {
+ padding: 0 $tooltip-arrow-height;
+
+ .arrow {
+ left: 0;
+ width: $tooltip-arrow-height;
+ height: $tooltip-arrow-width;
+
+ &::before {
+ right: 0;
+ border-width: ($tooltip-arrow-width / 2) $tooltip-arrow-height ($tooltip-arrow-width / 2) 0;
+ border-right-color: $tooltip-arrow-color;
+ }
+ }
+}
+
+.bs-tooltip-bottom {
+ padding: $tooltip-arrow-height 0;
+
+ .arrow {
+ top: 0;
+
+ &::before {
+ bottom: 0;
+ border-width: 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
+ border-bottom-color: $tooltip-arrow-color;
+ }
+ }
+}
+
+.bs-tooltip-left {
+ padding: 0 $tooltip-arrow-height;
+
+ .arrow {
+ right: 0;
+ width: $tooltip-arrow-height;
+ height: $tooltip-arrow-width;
+
+ &::before {
+ left: 0;
+ border-width: ($tooltip-arrow-width / 2) 0 ($tooltip-arrow-width / 2) $tooltip-arrow-height;
+ border-left-color: $tooltip-arrow-color;
+ }
+ }
+}
+
+.bs-tooltip-auto {
+ &[x-placement^="top"] {
+ @extend .bs-tooltip-top;
+ }
+ &[x-placement^="right"] {
+ @extend .bs-tooltip-right;
+ }
+ &[x-placement^="bottom"] {
+ @extend .bs-tooltip-bottom;
+ }
+ &[x-placement^="left"] {
+ @extend .bs-tooltip-left;
+ }
+}
+
+// Wrapper for the tooltip content
+.tooltip-inner {
+ max-width: $tooltip-max-width;
+ padding: $tooltip-padding-y $tooltip-padding-x;
+ color: $tooltip-color;
+ text-align: center;
+ background-color: $tooltip-bg;
+ @include border-radius($tooltip-border-radius);
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_transitions.scss b/src/assets/scss/black-dashboard/bootstrap/_transitions.scss
new file mode 100644
index 0000000..c8d91e2
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_transitions.scss
@@ -0,0 +1,22 @@
+// stylelint-disable selector-no-qualifying-type
+
+.fade {
+ @include transition($transition-fade);
+
+ &:not(.show) {
+ opacity: 0;
+ }
+}
+
+.collapse {
+ &:not(.show) {
+ display: none;
+ }
+}
+
+.collapsing {
+ position: relative;
+ height: 0;
+ overflow: hidden;
+ @include transition($transition-collapse);
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_type.scss b/src/assets/scss/black-dashboard/bootstrap/_type.scss
new file mode 100644
index 0000000..57d610f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_type.scss
@@ -0,0 +1,125 @@
+// stylelint-disable declaration-no-important, selector-list-comma-newline-after
+
+//
+// Headings
+//
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ margin-bottom: $headings-margin-bottom;
+ font-family: $headings-font-family;
+ font-weight: $headings-font-weight;
+ line-height: $headings-line-height;
+ color: $headings-color;
+}
+
+h1, .h1 { font-size: $h1-font-size; }
+h2, .h2 { font-size: $h2-font-size; }
+h3, .h3 { font-size: $h3-font-size; }
+h4, .h4 { font-size: $h4-font-size; }
+h5, .h5 { font-size: $h5-font-size; }
+h6, .h6 { font-size: $h6-font-size; }
+
+.lead {
+ font-size: $lead-font-size;
+ font-weight: $lead-font-weight;
+}
+
+// Type display classes
+.display-1 {
+ font-size: $display1-size;
+ font-weight: $display1-weight;
+ line-height: $display-line-height;
+}
+.display-2 {
+ font-size: $display2-size;
+ font-weight: $display2-weight;
+ line-height: $display-line-height;
+}
+.display-3 {
+ font-size: $display3-size;
+ font-weight: $display3-weight;
+ line-height: $display-line-height;
+}
+.display-4 {
+ font-size: $display4-size;
+ font-weight: $display4-weight;
+ line-height: $display-line-height;
+}
+
+
+//
+// Horizontal rules
+//
+
+hr {
+ margin-top: $hr-margin-y;
+ margin-bottom: $hr-margin-y;
+ border: 0;
+ border-top: $hr-border-width solid $hr-border-color;
+}
+
+
+//
+// Emphasis
+//
+
+small,
+.small {
+ font-size: $small-font-size;
+ font-weight: $font-weight-normal;
+}
+
+mark,
+.mark {
+ padding: $mark-padding;
+ background-color: $mark-bg;
+}
+
+
+//
+// Lists
+//
+
+.list-unstyled {
+ @include list-unstyled;
+}
+
+// Inline turns list items into inline-block
+.list-inline {
+ @include list-unstyled;
+}
+.list-inline-item {
+ display: inline-block;
+
+ &:not(:last-child) {
+ margin-right: $list-inline-padding;
+ }
+}
+
+
+//
+// Misc
+//
+
+// Builds on `abbr`
+.initialism {
+ font-size: 90%;
+ text-transform: uppercase;
+}
+
+// Blockquotes
+.blockquote {
+ margin-bottom: $spacer;
+ font-size: $blockquote-font-size;
+}
+
+.blockquote-footer {
+ display: block;
+ font-size: 80%; // back to default font-size
+ color: $blockquote-small-color;
+
+ &::before {
+ content: "\2014 \00A0"; // em dash, nbsp
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/_utilities.scss b/src/assets/scss/black-dashboard/bootstrap/_utilities.scss
new file mode 100644
index 0000000..6c7a7cd
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_utilities.scss
@@ -0,0 +1,15 @@
+@import "utilities/align";
+@import "utilities/background";
+@import "utilities/borders";
+@import "utilities/clearfix";
+@import "utilities/display";
+@import "utilities/embed";
+@import "utilities/flex";
+@import "utilities/float";
+@import "utilities/position";
+@import "utilities/screenreaders";
+@import "utilities/shadows";
+@import "utilities/sizing";
+@import "utilities/spacing";
+@import "utilities/text";
+@import "utilities/visibility";
diff --git a/src/assets/scss/black-dashboard/bootstrap/_variables.scss b/src/assets/scss/black-dashboard/bootstrap/_variables.scss
new file mode 100644
index 0000000..5cf118f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/_variables.scss
@@ -0,0 +1,952 @@
+// Variables
+//
+// Variables should follow the `$component-state-property-size` formula for
+// consistent naming. Ex: $nav-link-disabled-color and $modal-content-box-shadow-xs.
+
+
+//
+// Color system
+//
+
+$white: #fff !default;
+$gray-100: #f8f9fa !default;
+$gray-200: #e9ecef !default;
+$gray-300: #dee2e6 !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #6c757d !default;
+$gray-700: #495057 !default;
+$gray-800: #343a40 !default;
+$gray-900: #212529 !default;
+$black: #000 !default;
+
+$grays: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$grays: map-merge(
+ (
+ "100": $gray-100,
+ "200": $gray-200,
+ "300": $gray-300,
+ "400": $gray-400,
+ "500": $gray-500,
+ "600": $gray-600,
+ "700": $gray-700,
+ "800": $gray-800,
+ "900": $gray-900
+ ),
+ $grays
+);
+
+
+$blue: #007bff !default;
+$indigo: #6610f2 !default;
+$purple: #6f42c1 !default;
+$pink: #e83e8c !default;
+$red: #dc3545 !default;
+$orange: #fd7e14 !default;
+$yellow: #ffc107 !default;
+$green: #28a745 !default;
+$teal: #20c997 !default;
+$cyan: #17a2b8 !default;
+
+$colors: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$colors: map-merge(
+ (
+ "blue": $blue,
+ "indigo": $indigo,
+ "purple": $purple,
+ "pink": $pink,
+ "red": $red,
+ "orange": $orange,
+ "yellow": $yellow,
+ "green": $green,
+ "teal": $teal,
+ "cyan": $cyan,
+ "white": $white,
+ "gray": $gray-600,
+ "gray-dark": $gray-800
+ ),
+ $colors
+);
+
+$primary: $blue !default;
+$secondary: $gray-600 !default;
+$success: $green !default;
+$info: $cyan !default;
+$warning: $yellow !default;
+$danger: $red !default;
+$light: $gray-100 !default;
+$dark: $gray-800 !default;
+
+$theme-colors: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$theme-colors: map-merge(
+ (
+ "primary": $primary,
+ "secondary": $secondary,
+ "success": $success,
+ "info": $info,
+ "warning": $warning,
+ "danger": $danger,
+ "light": $light,
+ "dark": $dark
+ ),
+ $theme-colors
+);
+
+// Set a specific jump point for requesting color jumps
+$theme-color-interval: 8% !default;
+
+// The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
+$yiq-contrasted-threshold: 150 !default;
+
+// Customize the light and dark text colors for use in our YIQ color contrast function.
+$yiq-text-dark: $gray-900 !default;
+$yiq-text-light: $white !default;
+
+// Options
+//
+// Quickly modify global styling by enabling or disabling optional features.
+
+$enable-caret: true !default;
+$enable-rounded: true !default;
+$enable-shadows: false !default;
+$enable-gradients: false !default;
+$enable-transitions: true !default;
+$enable-hover-media-query: false !default; // Deprecated, no longer affects any compiled CSS
+$enable-grid-classes: true !default;
+$enable-print-styles: true !default;
+
+
+// Spacing
+//
+// Control the default styling of most Bootstrap elements by modifying these
+// variables. Mostly focused on spacing.
+// You can add more entries to the $spacers map, should you need more variation.
+
+$spacer: 1rem !default;
+$spacers: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$spacers: map-merge(
+ (
+ 0: 0,
+ 1: ($spacer * .25),
+ 2: ($spacer * .5),
+ 3: $spacer,
+ 4: ($spacer * 1.5),
+ 5: ($spacer * 3)
+ ),
+ $spacers
+);
+
+// This variable affects the `.h-*` and `.w-*` classes.
+$sizes: () !default;
+// stylelint-disable-next-line scss/dollar-variable-default
+$sizes: map-merge(
+ (
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%,
+ auto: auto
+ ),
+ $sizes
+);
+
+// Body
+//
+// Settings for the `` element.
+
+$body-bg: $white !default;
+$body-color: $gray-900 !default;
+
+// Links
+//
+// Style anchor elements.
+
+$link-color: theme-color("primary") !default;
+$link-decoration: none !default;
+$link-hover-color: darken($link-color, 15%) !default;
+$link-hover-decoration: underline !default;
+
+// Paragraphs
+//
+// Style p element.
+
+$paragraph-margin-bottom: 1rem !default;
+
+
+// Grid breakpoints
+//
+// Define the minimum dimensions at which your layout will change,
+// adapting to different screen sizes, for use in media queries.
+
+$grid-breakpoints: (
+ xs: 0,
+ sm: 576px,
+ md: 768px,
+ lg: 992px,
+ xl: 1200px
+) !default;
+
+@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
+@include _assert-starts-at-zero($grid-breakpoints);
+
+
+// Grid containers
+//
+// Define the maximum width of `.container` for different screen sizes.
+
+$container-max-widths: (
+ sm: 540px,
+ md: 720px,
+ lg: 960px,
+ xl: 1140px
+) !default;
+
+@include _assert-ascending($container-max-widths, "$container-max-widths");
+
+
+// Grid columns
+//
+// Set the number of columns and specify the width of the gutters.
+
+$grid-columns: 12 !default;
+$grid-gutter-width: 30px !default;
+
+// Components
+//
+// Define common padding and border radius sizes and more.
+
+$line-height-lg: 1.5 !default;
+$line-height-sm: 1.5 !default;
+
+$border-width: 1px !default;
+$border-color: $gray-300 !default;
+
+$border-radius: .25rem !default;
+$border-radius-lg: .3rem !default;
+$border-radius-sm: .2rem !default;
+
+$box-shadow-sm: 0 .125rem .25rem rgba($black, .075) !default;
+$box-shadow: 0 .5rem 1rem rgba($black, .15) !default;
+$box-shadow-lg: 0 1rem 3rem rgba($black, .175) !default;
+
+$component-active-color: $white !default;
+$component-active-bg: theme-color("primary") !default;
+
+$caret-width: .3em !default;
+
+$transition-base: all .2s ease-in-out !default;
+$transition-fade: opacity .15s linear !default;
+$transition-collapse: height .35s ease !default;
+
+
+// Fonts
+//
+// Font, line-height, and color for body text, headings, and more.
+
+// stylelint-disable value-keyword-case
+$font-family-sans-serif: -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji" !default;
+$font-family-monospace: SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace !default;
+$font-family-base: $font-family-sans-serif !default;
+// stylelint-enable value-keyword-case
+
+$font-size-base: 1rem !default; // Assumes the browser default, typically `16px`
+$font-size-lg: ($font-size-base * 1.25) !default;
+$font-size-sm: ($font-size-base * .875) !default;
+
+$font-weight-light: 300 !default;
+$font-weight-normal: 400 !default;
+$font-weight-bold: 700 !default;
+
+$font-weight-base: $font-weight-normal !default;
+$line-height-base: 1.5 !default;
+
+$h1-font-size: $font-size-base * 2.5 !default;
+$h2-font-size: $font-size-base * 2 !default;
+$h3-font-size: $font-size-base * 1.75 !default;
+$h4-font-size: $font-size-base * 1.5 !default;
+$h5-font-size: $font-size-base * 1.25 !default;
+$h6-font-size: $font-size-base !default;
+
+$headings-margin-bottom: ($spacer / 2) !default;
+$headings-font-family: inherit !default;
+$headings-font-weight: 500 !default;
+$headings-line-height: 1.2 !default;
+$headings-color: inherit !default;
+
+$display1-size: 6rem !default;
+$display2-size: 5.5rem !default;
+$display3-size: 4.5rem !default;
+$display4-size: 3.5rem !default;
+
+$display1-weight: 300 !default;
+$display2-weight: 300 !default;
+$display3-weight: 300 !default;
+$display4-weight: 300 !default;
+$display-line-height: $headings-line-height !default;
+
+$lead-font-size: ($font-size-base * 1.25) !default;
+$lead-font-weight: 300 !default;
+
+$small-font-size: 80% !default;
+
+$text-muted: $gray-600 !default;
+
+$blockquote-small-color: $gray-600 !default;
+$blockquote-font-size: ($font-size-base * 1.25) !default;
+
+$hr-border-color: rgba($black, .1) !default;
+$hr-border-width: $border-width !default;
+
+$mark-padding: .2em !default;
+
+$dt-font-weight: $font-weight-bold !default;
+
+$kbd-box-shadow: inset 0 -.1rem 0 rgba($black, .25) !default;
+$nested-kbd-font-weight: $font-weight-bold !default;
+
+$list-inline-padding: .5rem !default;
+
+$mark-bg: #fcf8e3 !default;
+
+$hr-margin-y: $spacer !default;
+
+
+// Tables
+//
+// Customizes the `.table` component with basic values, each used across all table variations.
+
+$table-cell-padding: .75rem !default;
+$table-cell-padding-sm: .3rem !default;
+
+$table-bg: transparent !default;
+$table-accent-bg: rgba($black, .05) !default;
+$table-hover-bg: rgba($black, .075) !default;
+$table-active-bg: $table-hover-bg !default;
+
+$table-border-width: $border-width !default;
+$table-border-color: $gray-300 !default;
+
+$table-head-bg: $gray-200 !default;
+$table-head-color: $gray-700 !default;
+
+$table-dark-bg: $gray-900 !default;
+$table-dark-accent-bg: rgba($white, .05) !default;
+$table-dark-hover-bg: rgba($white, .075) !default;
+$table-dark-border-color: lighten($gray-900, 7.5%) !default;
+$table-dark-color: $body-bg !default;
+
+$table-striped-order: odd !default;
+
+$table-caption-color: $text-muted !default;
+
+// Buttons + Forms
+//
+// Shared variables that are reassigned to `$input-` and `$btn-` specific variables.
+
+$input-btn-padding-y: .375rem !default;
+$input-btn-padding-x: .75rem !default;
+$input-btn-line-height: $line-height-base !default;
+
+$input-btn-focus-width: .2rem !default;
+$input-btn-focus-color: rgba($component-active-bg, .25) !default;
+$input-btn-focus-box-shadow: 0 0 0 $input-btn-focus-width $input-btn-focus-color !default;
+
+$input-btn-padding-y-sm: .25rem !default;
+$input-btn-padding-x-sm: .5rem !default;
+$input-btn-line-height-sm: $line-height-sm !default;
+
+$input-btn-padding-y-lg: .5rem !default;
+$input-btn-padding-x-lg: 1rem !default;
+$input-btn-line-height-lg: $line-height-lg !default;
+
+$input-btn-border-width: $border-width !default;
+
+
+// Buttons
+//
+// For each of Bootstrap's buttons, define text, background, and border color.
+
+$btn-padding-y: $input-btn-padding-y !default;
+$btn-padding-x: $input-btn-padding-x !default;
+$btn-line-height: $input-btn-line-height !default;
+
+$btn-padding-y-sm: $input-btn-padding-y-sm !default;
+$btn-padding-x-sm: $input-btn-padding-x-sm !default;
+$btn-line-height-sm: $input-btn-line-height-sm !default;
+
+$btn-padding-y-lg: $input-btn-padding-y-lg !default;
+$btn-padding-x-lg: $input-btn-padding-x-lg !default;
+$btn-line-height-lg: $input-btn-line-height-lg !default;
+
+$btn-border-width: $input-btn-border-width !default;
+
+$btn-font-weight: $font-weight-normal !default;
+$btn-box-shadow: inset 0 1px 0 rgba($white, .15), 0 1px 1px rgba($black, .075) !default;
+$btn-focus-width: $input-btn-focus-width !default;
+$btn-focus-box-shadow: $input-btn-focus-box-shadow !default;
+$btn-disabled-opacity: .65 !default;
+$btn-active-box-shadow: inset 0 3px 5px rgba($black, .125) !default;
+
+$btn-link-disabled-color: $gray-600 !default;
+
+$btn-block-spacing-y: .5rem !default;
+
+// Allows for customizing button radius independently from global border radius
+$btn-border-radius: $border-radius !default;
+$btn-border-radius-lg: $border-radius-lg !default;
+$btn-border-radius-sm: $border-radius-sm !default;
+
+$btn-transition: color .15s ease-in-out, background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+
+// Forms
+
+$label-margin-bottom: .5rem !default;
+
+$input-padding-y: $input-btn-padding-y !default;
+$input-padding-x: $input-btn-padding-x !default;
+$input-line-height: $input-btn-line-height !default;
+
+$input-padding-y-sm: $input-btn-padding-y-sm !default;
+$input-padding-x-sm: $input-btn-padding-x-sm !default;
+$input-line-height-sm: $input-btn-line-height-sm !default;
+
+$input-padding-y-lg: $input-btn-padding-y-lg !default;
+$input-padding-x-lg: $input-btn-padding-x-lg !default;
+$input-line-height-lg: $input-btn-line-height-lg !default;
+
+$input-bg: $white !default;
+$input-disabled-bg: $gray-200 !default;
+
+$input-color: $gray-700 !default;
+$input-border-color: $gray-400 !default;
+$input-border-width: $input-btn-border-width !default;
+$input-box-shadow: inset 0 1px 1px rgba($black, .075) !default;
+
+$input-border-radius: $border-radius !default;
+$input-border-radius-lg: $border-radius-lg !default;
+$input-border-radius-sm: $border-radius-sm !default;
+
+$input-focus-bg: $input-bg !default;
+$input-focus-border-color: lighten($component-active-bg, 25%) !default;
+$input-focus-color: $input-color !default;
+$input-focus-width: $input-btn-focus-width !default;
+$input-focus-box-shadow: $input-btn-focus-box-shadow !default;
+
+$input-placeholder-color: $gray-600 !default;
+$input-plaintext-color: $body-color !default;
+
+$input-height-border: $input-border-width * 2 !default;
+
+$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
+$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
+
+$input-height-inner-sm: ($font-size-sm * $input-btn-line-height-sm) + ($input-btn-padding-y-sm * 2) !default;
+$input-height-sm: calc(#{$input-height-inner-sm} + #{$input-height-border}) !default;
+
+$input-height-inner-lg: ($font-size-lg * $input-btn-line-height-lg) + ($input-btn-padding-y-lg * 2) !default;
+$input-height-lg: calc(#{$input-height-inner-lg} + #{$input-height-border}) !default;
+
+$input-transition: border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$form-text-margin-top: .25rem !default;
+
+$form-check-input-gutter: 1.25rem !default;
+$form-check-input-margin-y: .3rem !default;
+$form-check-input-margin-x: .25rem !default;
+
+$form-check-inline-margin-x: .75rem !default;
+$form-check-inline-input-margin-x: .3125rem !default;
+
+$form-group-margin-bottom: 1rem !default;
+
+$input-group-addon-color: $input-color !default;
+$input-group-addon-bg: $gray-200 !default;
+$input-group-addon-border-color: $input-border-color !default;
+
+$custom-forms-transition: background-color .15s ease-in-out, border-color .15s ease-in-out, box-shadow .15s ease-in-out !default;
+
+$custom-control-gutter: 1.5rem !default;
+$custom-control-spacer-x: 1rem !default;
+
+$custom-control-indicator-size: 1rem !default;
+$custom-control-indicator-bg: $gray-300 !default;
+$custom-control-indicator-bg-size: 50% 50% !default;
+$custom-control-indicator-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
+
+$custom-control-indicator-disabled-bg: $gray-200 !default;
+$custom-control-label-disabled-color: $gray-600 !default;
+
+$custom-control-indicator-checked-color: $component-active-color !default;
+$custom-control-indicator-checked-bg: $component-active-bg !default;
+$custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5) !default;
+$custom-control-indicator-checked-box-shadow: none !default;
+
+$custom-control-indicator-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
+
+$custom-control-indicator-active-color: $component-active-color !default;
+$custom-control-indicator-active-bg: lighten($component-active-bg, 35%) !default;
+$custom-control-indicator-active-box-shadow: none !default;
+
+$custom-checkbox-indicator-border-radius: $border-radius !default;
+$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='#{$custom-control-indicator-checked-color}' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-checkbox-indicator-indeterminate-bg: $component-active-bg !default;
+$custom-checkbox-indicator-indeterminate-color: $custom-control-indicator-checked-color !default;
+$custom-checkbox-indicator-icon-indeterminate: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 4'%3E%3Cpath stroke='#{$custom-checkbox-indicator-indeterminate-color}' d='M0 2h4'/%3E%3C/svg%3E"), "#", "%23") !default;
+$custom-checkbox-indicator-indeterminate-box-shadow: none !default;
+
+$custom-radio-indicator-border-radius: 50% !default;
+$custom-radio-indicator-icon-checked: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='-4 -4 8 8'%3E%3Ccircle r='3' fill='#{$custom-control-indicator-checked-color}'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-select-padding-y: .375rem !default;
+$custom-select-padding-x: .75rem !default;
+$custom-select-height: $input-height !default;
+$custom-select-indicator-padding: 1rem !default; // Extra padding to account for the presence of the background-image based indicator
+$custom-select-line-height: $input-btn-line-height !default;
+$custom-select-color: $input-color !default;
+$custom-select-disabled-color: $gray-600 !default;
+$custom-select-bg: $input-bg !default;
+$custom-select-disabled-bg: $gray-200 !default;
+$custom-select-bg-size: 8px 10px !default; // In pixels because image dimensions
+$custom-select-indicator-color: $gray-800 !default;
+$custom-select-indicator: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 4 5'%3E%3Cpath fill='#{$custom-select-indicator-color}' d='M2 0L0 2h4zm0 5L0 3h4z'/%3E%3C/svg%3E"), "#", "%23") !default;
+$custom-select-border-width: $input-btn-border-width !default;
+$custom-select-border-color: $input-border-color !default;
+$custom-select-border-radius: $border-radius !default;
+$custom-select-box-shadow: inset 0 1px 2px rgba($black, .075) !default;
+
+$custom-select-focus-border-color: $input-focus-border-color !default;
+$custom-select-focus-width: $input-btn-focus-width !default;
+$custom-select-focus-box-shadow: 0 0 0 $custom-select-focus-width rgba($custom-select-focus-border-color, .5) !default;
+
+$custom-select-font-size-sm: 75% !default;
+$custom-select-height-sm: $input-height-sm !default;
+
+$custom-select-font-size-lg: 125% !default;
+$custom-select-height-lg: $input-height-lg !default;
+
+$custom-range-track-width: 100% !default;
+$custom-range-track-height: .5rem !default;
+$custom-range-track-cursor: pointer !default;
+$custom-range-track-bg: $gray-300 !default;
+$custom-range-track-border-radius: 1rem !default;
+$custom-range-track-box-shadow: inset 0 .25rem .25rem rgba($black, .1) !default;
+
+$custom-range-thumb-width: 1rem !default;
+$custom-range-thumb-height: $custom-range-thumb-width !default;
+$custom-range-thumb-bg: $component-active-bg !default;
+$custom-range-thumb-border: 0 !default;
+$custom-range-thumb-border-radius: 1rem !default;
+$custom-range-thumb-box-shadow: 0 .1rem .25rem rgba($black, .1) !default;
+$custom-range-thumb-focus-box-shadow: 0 0 0 1px $body-bg, $input-btn-focus-box-shadow !default;
+$custom-range-thumb-focus-box-shadow-width: $input-btn-focus-width !default; // For focus box shadow issue in IE/Edge
+$custom-range-thumb-active-bg: lighten($component-active-bg, 35%) !default;
+
+$custom-file-height: $input-height !default;
+$custom-file-height-inner: $input-height-inner !default;
+$custom-file-focus-border-color: $input-focus-border-color !default;
+$custom-file-focus-box-shadow: $input-btn-focus-box-shadow !default;
+$custom-file-disabled-bg: $input-disabled-bg !default;
+
+$custom-file-padding-y: $input-btn-padding-y !default;
+$custom-file-padding-x: $input-btn-padding-x !default;
+$custom-file-line-height: $input-btn-line-height !default;
+$custom-file-color: $input-color !default;
+$custom-file-bg: $input-bg !default;
+$custom-file-border-width: $input-btn-border-width !default;
+$custom-file-border-color: $input-border-color !default;
+$custom-file-border-radius: $input-border-radius !default;
+$custom-file-box-shadow: $input-box-shadow !default;
+$custom-file-button-color: $custom-file-color !default;
+$custom-file-button-bg: $input-group-addon-bg !default;
+$custom-file-text: (
+ en: "Browse"
+) !default;
+
+
+// Form validation
+$form-feedback-margin-top: $form-text-margin-top !default;
+$form-feedback-font-size: $small-font-size !default;
+$form-feedback-valid-color: theme-color("success") !default;
+$form-feedback-invalid-color: theme-color("danger") !default;
+
+
+// Dropdowns
+//
+// Dropdown menu container and contents.
+
+$dropdown-min-width: 10rem !default;
+$dropdown-padding-y: .5rem !default;
+$dropdown-spacer: .125rem !default;
+$dropdown-bg: $white !default;
+$dropdown-border-color: rgba($black, .15) !default;
+$dropdown-border-radius: $border-radius !default;
+$dropdown-border-width: $border-width !default;
+$dropdown-divider-bg: $gray-200 !default;
+$dropdown-box-shadow: 0 .5rem 1rem rgba($black, .175) !default;
+
+$dropdown-link-color: $gray-900 !default;
+$dropdown-link-hover-color: darken($gray-900, 5%) !default;
+$dropdown-link-hover-bg: $gray-100 !default;
+
+$dropdown-link-active-color: $component-active-color !default;
+$dropdown-link-active-bg: $component-active-bg !default;
+
+$dropdown-link-disabled-color: $gray-600 !default;
+
+$dropdown-item-padding-y: .25rem !default;
+$dropdown-item-padding-x: 1.5rem !default;
+
+$dropdown-header-color: $gray-600 !default;
+
+
+// Z-index master list
+//
+// Warning: Avoid customizing these values. They're used for a bird's eye view
+// of components dependent on the z-axis and are designed to all work together.
+
+$zindex-dropdown: 1000 !default;
+$zindex-sticky: 1020 !default;
+$zindex-fixed: 1030 !default;
+$zindex-modal-backdrop: 1040 !default;
+$zindex-modal: 1050 !default;
+$zindex-popover: 1060 !default;
+$zindex-tooltip: 1070 !default;
+
+// Navs
+
+$nav-link-padding-y: .5rem !default;
+$nav-link-padding-x: 1rem !default;
+$nav-link-disabled-color: $gray-600 !default;
+
+$nav-tabs-border-color: $gray-300 !default;
+$nav-tabs-border-width: $border-width !default;
+$nav-tabs-border-radius: $border-radius !default;
+$nav-tabs-link-hover-border-color: $gray-200 $gray-200 $nav-tabs-border-color !default;
+$nav-tabs-link-active-color: $gray-700 !default;
+$nav-tabs-link-active-bg: $body-bg !default;
+$nav-tabs-link-active-border-color: $gray-300 $gray-300 $nav-tabs-link-active-bg !default;
+
+$nav-pills-border-radius: $border-radius !default;
+$nav-pills-link-active-color: $component-active-color !default;
+$nav-pills-link-active-bg: $component-active-bg !default;
+
+$nav-divider-color: $gray-200 !default;
+$nav-divider-margin-y: ($spacer / 2) !default;
+
+// Navbar
+
+$navbar-padding-y: ($spacer / 2) !default;
+$navbar-padding-x: $spacer !default;
+
+$navbar-nav-link-padding-x: .5rem !default;
+
+$navbar-brand-font-size: $font-size-lg !default;
+// Compute the navbar-brand padding-y so the navbar-brand will have the same height as navbar-text and nav-link
+$nav-link-height: ($font-size-base * $line-height-base + $nav-link-padding-y * 2) !default;
+$navbar-brand-height: $navbar-brand-font-size * $line-height-base !default;
+$navbar-brand-padding-y: ($nav-link-height - $navbar-brand-height) / 2 !default;
+
+$navbar-toggler-padding-y: .25rem !default;
+$navbar-toggler-padding-x: .75rem !default;
+$navbar-toggler-font-size: $font-size-lg !default;
+$navbar-toggler-border-radius: $btn-border-radius !default;
+
+$navbar-dark-color: rgba($white, .5) !default;
+$navbar-dark-hover-color: rgba($white, .75) !default;
+$navbar-dark-active-color: $white !default;
+$navbar-dark-disabled-color: rgba($white, .25) !default;
+$navbar-dark-toggler-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-dark-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-dark-toggler-border-color: rgba($white, .1) !default;
+
+$navbar-light-color: rgba($black, .5) !default;
+$navbar-light-hover-color: rgba($black, .7) !default;
+$navbar-light-active-color: rgba($black, .9) !default;
+$navbar-light-disabled-color: rgba($black, .3) !default;
+$navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-light-toggler-border-color: rgba($black, .1) !default;
+
+// Pagination
+
+$pagination-padding-y: .5rem !default;
+$pagination-padding-x: .75rem !default;
+$pagination-padding-y-sm: .25rem !default;
+$pagination-padding-x-sm: .5rem !default;
+$pagination-padding-y-lg: .75rem !default;
+$pagination-padding-x-lg: 1.5rem !default;
+$pagination-line-height: 1.25 !default;
+
+$pagination-color: $link-color !default;
+$pagination-bg: $white !default;
+$pagination-border-width: $border-width !default;
+$pagination-border-color: $gray-300 !default;
+
+$pagination-focus-box-shadow: $input-btn-focus-box-shadow !default;
+$pagination-focus-outline: 0 !default;
+
+$pagination-hover-color: $link-hover-color !default;
+$pagination-hover-bg: $gray-200 !default;
+$pagination-hover-border-color: $gray-300 !default;
+
+$pagination-active-color: $component-active-color !default;
+$pagination-active-bg: $component-active-bg !default;
+$pagination-active-border-color: $pagination-active-bg !default;
+
+$pagination-disabled-color: $gray-600 !default;
+$pagination-disabled-bg: $white !default;
+$pagination-disabled-border-color: $gray-300 !default;
+
+
+// Jumbotron
+
+$jumbotron-padding: 2rem !default;
+$jumbotron-bg: $gray-200 !default;
+
+
+// Cards
+
+$card-spacer-y: .75rem !default;
+$card-spacer-x: 1.25rem !default;
+$card-border-width: $border-width !default;
+$card-border-radius: $border-radius !default;
+$card-border-color: rgba($black, .125) !default;
+$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width}) !default;
+$card-cap-bg: rgba($black, .03) !default;
+$card-bg: $white !default;
+
+$card-img-overlay-padding: 1.25rem !default;
+
+$card-group-margin: ($grid-gutter-width / 2) !default;
+$card-deck-margin: $card-group-margin !default;
+
+$card-columns-count: 3 !default;
+$card-columns-gap: 1.25rem !default;
+$card-columns-margin: $card-spacer-y !default;
+
+
+// Tooltips
+
+$tooltip-font-size: $font-size-sm !default;
+$tooltip-max-width: 200px !default;
+$tooltip-color: $white !default;
+$tooltip-bg: $black !default;
+$tooltip-border-radius: $border-radius !default;
+$tooltip-opacity: .9 !default;
+$tooltip-padding-y: .25rem !default;
+$tooltip-padding-x: .5rem !default;
+$tooltip-margin: 0 !default;
+
+$tooltip-arrow-width: .8rem !default;
+$tooltip-arrow-height: .4rem !default;
+$tooltip-arrow-color: $tooltip-bg !default;
+
+
+// Popovers
+
+$popover-font-size: $font-size-sm !default;
+$popover-bg: $white !default;
+$popover-max-width: 276px !default;
+$popover-border-width: $border-width !default;
+$popover-border-color: rgba($black, .2) !default;
+$popover-border-radius: $border-radius-lg !default;
+$popover-box-shadow: 0 .25rem .5rem rgba($black, .2) !default;
+
+$popover-header-bg: darken($popover-bg, 3%) !default;
+$popover-header-color: $headings-color !default;
+$popover-header-padding-y: .5rem !default;
+$popover-header-padding-x: .75rem !default;
+
+$popover-body-color: $body-color !default;
+$popover-body-padding-y: $popover-header-padding-y !default;
+$popover-body-padding-x: $popover-header-padding-x !default;
+
+$popover-arrow-width: 1rem !default;
+$popover-arrow-height: .5rem !default;
+$popover-arrow-color: $popover-bg !default;
+
+$popover-arrow-outer-color: fade-in($popover-border-color, .05) !default;
+
+
+// Badges
+
+$badge-font-size: 75% !default;
+$badge-font-weight: $font-weight-bold !default;
+$badge-padding-y: .25em !default;
+$badge-padding-x: .4em !default;
+$badge-border-radius: $border-radius !default;
+
+$badge-pill-padding-x: .6em !default;
+// Use a higher than normal value to ensure completely rounded edges when
+// customizing padding or font-size on labels.
+$badge-pill-border-radius: 10rem !default;
+
+
+// Modals
+
+// Padding applied to the modal body
+$modal-inner-padding: 1rem !default;
+
+$modal-dialog-margin: .5rem !default;
+$modal-dialog-margin-y-sm-up: 1.75rem !default;
+
+$modal-title-line-height: $line-height-base !default;
+
+$modal-content-bg: $white !default;
+$modal-content-border-color: rgba($black, .2) !default;
+$modal-content-border-width: $border-width !default;
+$modal-content-border-radius: $border-radius-lg !default;
+$modal-content-box-shadow-xs: 0 .25rem .5rem rgba($black, .5) !default;
+$modal-content-box-shadow-sm-up: 0 .5rem 1rem rgba($black, .5) !default;
+
+$modal-backdrop-bg: $black !default;
+$modal-backdrop-opacity: .5 !default;
+$modal-header-border-color: $gray-200 !default;
+$modal-footer-border-color: $modal-header-border-color !default;
+$modal-header-border-width: $modal-content-border-width !default;
+$modal-footer-border-width: $modal-header-border-width !default;
+$modal-header-padding: 1rem !default;
+
+$modal-lg: 800px !default;
+$modal-md: 500px !default;
+$modal-sm: 300px !default;
+
+$modal-transition: transform .3s ease-out !default;
+
+
+// Alerts
+//
+// Define alert colors, border radius, and padding.
+
+$alert-padding-y: .75rem !default;
+$alert-padding-x: 1.25rem !default;
+$alert-margin-bottom: 1rem !default;
+$alert-border-radius: $border-radius !default;
+$alert-link-font-weight: $font-weight-bold !default;
+$alert-border-width: $border-width !default;
+
+$alert-bg-level: -10 !default;
+$alert-border-level: -9 !default;
+$alert-color-level: 6 !default;
+
+
+// Progress bars
+
+$progress-height: 1rem !default;
+$progress-font-size: ($font-size-base * .75) !default;
+$progress-bg: $gray-200 !default;
+$progress-border-radius: $border-radius !default;
+$progress-box-shadow: inset 0 .1rem .1rem rgba($black, .1) !default;
+$progress-bar-color: $white !default;
+$progress-bar-bg: theme-color("primary") !default;
+$progress-bar-animation-timing: 1s linear infinite !default;
+$progress-bar-transition: width .6s ease !default;
+
+// List group
+
+$list-group-bg: $white !default;
+$list-group-border-color: rgba($black, .125) !default;
+$list-group-border-width: $border-width !default;
+$list-group-border-radius: $border-radius !default;
+
+$list-group-item-padding-y: .75rem !default;
+$list-group-item-padding-x: 1.25rem !default;
+
+$list-group-hover-bg: $gray-100 !default;
+$list-group-active-color: $component-active-color !default;
+$list-group-active-bg: $component-active-bg !default;
+$list-group-active-border-color: $list-group-active-bg !default;
+
+$list-group-disabled-color: $gray-600 !default;
+$list-group-disabled-bg: $list-group-bg !default;
+
+$list-group-action-color: $gray-700 !default;
+$list-group-action-hover-color: $list-group-action-color !default;
+
+$list-group-action-active-color: $body-color !default;
+$list-group-action-active-bg: $gray-200 !default;
+
+
+// Image thumbnails
+
+$thumbnail-padding: .25rem !default;
+$thumbnail-bg: $body-bg !default;
+$thumbnail-border-width: $border-width !default;
+$thumbnail-border-color: $gray-300 !default;
+$thumbnail-border-radius: $border-radius !default;
+$thumbnail-box-shadow: 0 1px 2px rgba($black, .075) !default;
+
+
+// Figures
+
+$figure-caption-font-size: 90% !default;
+$figure-caption-color: $gray-600 !default;
+
+
+// Breadcrumbs
+
+$breadcrumb-padding-y: .75rem !default;
+$breadcrumb-padding-x: 1rem !default;
+$breadcrumb-item-padding: .5rem !default;
+
+$breadcrumb-margin-bottom: 1rem !default;
+
+$breadcrumb-bg: $gray-200 !default;
+$breadcrumb-divider-color: $gray-600 !default;
+$breadcrumb-active-color: $gray-600 !default;
+$breadcrumb-divider: quote("/") !default;
+
+$breadcrumb-border-radius: $border-radius !default;
+
+
+// Carousel
+
+$carousel-control-color: $white !default;
+$carousel-control-width: 15% !default;
+$carousel-control-opacity: .5 !default;
+
+$carousel-indicator-width: 30px !default;
+$carousel-indicator-height: 3px !default;
+$carousel-indicator-spacer: 3px !default;
+$carousel-indicator-active-bg: $white !default;
+
+$carousel-caption-width: 70% !default;
+$carousel-caption-color: $white !default;
+
+$carousel-control-icon-width: 20px !default;
+
+$carousel-control-prev-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M5.25 0l-4 4 4 4 1.5-1.5-2.5-2.5 2.5-2.5-1.5-1.5z'/%3E%3C/svg%3E"), "#", "%23") !default;
+$carousel-control-next-icon-bg: str-replace(url("data:image/svg+xml;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='#{$carousel-control-color}' viewBox='0 0 8 8'%3E%3Cpath d='M2.75 0l-1.5 1.5 2.5 2.5-2.5 2.5 1.5 1.5 4-4-4-4z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$carousel-transition: transform .6s ease !default; // Define transform transition first if using multiple transitions (e.g., `transform 2s ease, opacity .5s ease-out`)
+
+
+// Close
+
+$close-font-size: $font-size-base * 1.5 !default;
+$close-font-weight: $font-weight-bold !default;
+$close-color: $black !default;
+$close-text-shadow: 0 1px 0 $white !default;
+
+// Code
+
+$code-font-size: 87.5% !default;
+$code-color: $pink !default;
+
+$kbd-padding-y: .2rem !default;
+$kbd-padding-x: .4rem !default;
+$kbd-font-size: $code-font-size !default;
+$kbd-color: $white !default;
+$kbd-bg: $gray-900 !default;
+
+$pre-color: $gray-900 !default;
+$pre-scrollable-max-height: 340px !default;
+
+
+// Printing
+$print-page-size: a3 !default;
+$print-body-min-width: map-get($grid-breakpoints, "lg") !default;
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_alert.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_alert.scss
new file mode 100644
index 0000000..db5a7eb
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_alert.scss
@@ -0,0 +1,13 @@
+@mixin alert-variant($background, $border, $color) {
+ color: $color;
+ @include gradient-bg($background);
+ border-color: $border;
+
+ hr {
+ border-top-color: darken($border, 5%);
+ }
+
+ .alert-link {
+ color: darken($color, 10%);
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_background-variant.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_background-variant.scss
new file mode 100644
index 0000000..494439d
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_background-variant.scss
@@ -0,0 +1,21 @@
+// stylelint-disable declaration-no-important
+
+// Contextual backgrounds
+
+@mixin bg-variant($parent, $color) {
+ #{$parent} {
+ background-color: $color !important;
+ }
+ a#{$parent},
+ button#{$parent} {
+ @include hover-focus {
+ background-color: darken($color, 10%) !important;
+ }
+ }
+}
+
+@mixin bg-gradient-variant($parent, $color) {
+ #{$parent} {
+ background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x !important;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_badge.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_badge.scss
new file mode 100644
index 0000000..eeca0b4
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_badge.scss
@@ -0,0 +1,12 @@
+@mixin badge-variant($bg) {
+ color: color-yiq($bg);
+ background-color: $bg;
+
+ &[href] {
+ @include hover-focus {
+ color: color-yiq($bg);
+ text-decoration: none;
+ background-color: darken($bg, 10%);
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_border-radius.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_border-radius.scss
new file mode 100644
index 0000000..2024feb
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_border-radius.scss
@@ -0,0 +1,35 @@
+// Single side border-radius
+
+@mixin border-radius($radius: $border-radius) {
+ @if $enable-rounded {
+ border-radius: $radius;
+ }
+}
+
+@mixin border-top-radius($radius) {
+ @if $enable-rounded {
+ border-top-left-radius: $radius;
+ border-top-right-radius: $radius;
+ }
+}
+
+@mixin border-right-radius($radius) {
+ @if $enable-rounded {
+ border-top-right-radius: $radius;
+ border-bottom-right-radius: $radius;
+ }
+}
+
+@mixin border-bottom-radius($radius) {
+ @if $enable-rounded {
+ border-bottom-right-radius: $radius;
+ border-bottom-left-radius: $radius;
+ }
+}
+
+@mixin border-left-radius($radius) {
+ @if $enable-rounded {
+ border-top-left-radius: $radius;
+ border-bottom-left-radius: $radius;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_box-shadow.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_box-shadow.scss
new file mode 100644
index 0000000..b2410e5
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_box-shadow.scss
@@ -0,0 +1,5 @@
+@mixin box-shadow($shadow...) {
+ @if $enable-shadows {
+ box-shadow: $shadow;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_breakpoints.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_breakpoints.scss
new file mode 100644
index 0000000..59f25a2
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_breakpoints.scss
@@ -0,0 +1,123 @@
+// Breakpoint viewport sizes and media queries.
+//
+// Breakpoints are defined as a map of (name: minimum width), order from small to large:
+//
+// (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px)
+//
+// The map defined in the `$grid-breakpoints` global variable is used as the `$breakpoints` argument by default.
+
+// Name of the next breakpoint, or null for the last breakpoint.
+//
+// >> breakpoint-next(sm)
+// md
+// >> breakpoint-next(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// md
+// >> breakpoint-next(sm, $breakpoint-names: (xs sm md lg xl))
+// md
+@function breakpoint-next($name, $breakpoints: $grid-breakpoints, $breakpoint-names: map-keys($breakpoints)) {
+ $n: index($breakpoint-names, $name);
+ @return if($n < length($breakpoint-names), nth($breakpoint-names, $n + 1), null);
+}
+
+// Minimum breakpoint width. Null for the smallest (first) breakpoint.
+//
+// >> breakpoint-min(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// 576px
+@function breakpoint-min($name, $breakpoints: $grid-breakpoints) {
+ $min: map-get($breakpoints, $name);
+ @return if($min != 0, $min, null);
+}
+
+// Maximum breakpoint width. Null for the largest (last) breakpoint.
+// The maximum value is calculated as the minimum of the next one less 0.02px
+// to work around the limitations of `min-` and `max-` prefixes and viewports with fractional widths.
+// See https://www.w3.org/TR/mediaqueries-4/#mq-min-max
+// Uses 0.02px rather than 0.01px to work around a current rounding bug in Safari.
+// See https://bugs.webkit.org/show_bug.cgi?id=178261
+//
+// >> breakpoint-max(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// 767.98px
+@function breakpoint-max($name, $breakpoints: $grid-breakpoints) {
+ $next: breakpoint-next($name, $breakpoints);
+ @return if($next, breakpoint-min($next, $breakpoints) - .02px, null);
+}
+
+// Returns a blank string if smallest breakpoint, otherwise returns the name with a dash in front.
+// Useful for making responsive utilities.
+//
+// >> breakpoint-infix(xs, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// "" (Returns a blank string)
+// >> breakpoint-infix(sm, (xs: 0, sm: 576px, md: 768px, lg: 992px, xl: 1200px))
+// "-sm"
+@function breakpoint-infix($name, $breakpoints: $grid-breakpoints) {
+ @return if(breakpoint-min($name, $breakpoints) == null, "", "-#{$name}");
+}
+
+// Media of at least the minimum breakpoint width. No query for the smallest breakpoint.
+// Makes the @content apply to the given breakpoint and wider.
+@mixin media-breakpoint-up($name, $breakpoints: $grid-breakpoints) {
+ $min: breakpoint-min($name, $breakpoints);
+ @if $min {
+ @media (min-width: $min) {
+ @content;
+ }
+ } @else {
+ @content;
+ }
+}
+
+// Media of at most the maximum breakpoint width. No query for the largest breakpoint.
+// Makes the @content apply to the given breakpoint and narrower.
+@mixin media-breakpoint-down($name, $breakpoints: $grid-breakpoints) {
+ $max: breakpoint-max($name, $breakpoints);
+ @if $max {
+ @media (max-width: $max) {
+ @content;
+ }
+ } @else {
+ @content;
+ }
+}
+
+// Media that spans multiple breakpoint widths.
+// Makes the @content apply between the min and max breakpoints
+@mixin media-breakpoint-between($lower, $upper, $breakpoints: $grid-breakpoints) {
+ $min: breakpoint-min($lower, $breakpoints);
+ $max: breakpoint-max($upper, $breakpoints);
+
+ @if $min != null and $max != null {
+ @media (min-width: $min) and (max-width: $max) {
+ @content;
+ }
+ } @else if $max == null {
+ @include media-breakpoint-up($lower, $breakpoints) {
+ @content;
+ }
+ } @else if $min == null {
+ @include media-breakpoint-down($upper, $breakpoints) {
+ @content;
+ }
+ }
+}
+
+// Media between the breakpoint's minimum and maximum widths.
+// No minimum for the smallest breakpoint, and no maximum for the largest one.
+// Makes the @content apply only to the given breakpoint, not viewports any wider or narrower.
+@mixin media-breakpoint-only($name, $breakpoints: $grid-breakpoints) {
+ $min: breakpoint-min($name, $breakpoints);
+ $max: breakpoint-max($name, $breakpoints);
+
+ @if $min != null and $max != null {
+ @media (min-width: $min) and (max-width: $max) {
+ @content;
+ }
+ } @else if $max == null {
+ @include media-breakpoint-up($name, $breakpoints) {
+ @content;
+ }
+ } @else if $min == null {
+ @include media-breakpoint-down($name, $breakpoints) {
+ @content;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_buttons.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_buttons.scss
new file mode 100644
index 0000000..06ad677
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_buttons.scss
@@ -0,0 +1,109 @@
+// Button variants
+//
+// Easily pump out default styles, as well as :hover, :focus, :active,
+// and disabled options for all buttons
+
+@mixin button-variant($background, $border, $hover-background: darken($background, 7.5%), $hover-border: darken($border, 10%), $active-background: darken($background, 10%), $active-border: darken($border, 12.5%)) {
+ color: color-yiq($background);
+ @include gradient-bg($background);
+ border-color: $border;
+ @include box-shadow($btn-box-shadow);
+
+ @include hover {
+ color: color-yiq($hover-background);
+ @include gradient-bg($hover-background);
+ border-color: $hover-border;
+ }
+
+ &:focus,
+ &.focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
+ } @else {
+ box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
+ }
+ }
+
+ // Disabled comes first so active can properly restyle
+ &.disabled,
+ &:disabled {
+ color: color-yiq($background);
+ background-color: $background;
+ border-color: $border;
+ }
+
+ &:not(:disabled):not(.disabled):active,
+ &:not(:disabled):not(.disabled).active,
+ .show > &.dropdown-toggle {
+ color: color-yiq($active-background);
+ background-color: $active-background;
+ @if $enable-gradients {
+ background-image: none; // Remove the gradient for the pressed/active state
+ }
+ border-color: $active-border;
+
+ &:focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
+ } @else {
+ box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
+ }
+ }
+ }
+}
+
+@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
+ color: $color;
+ background-color: transparent;
+ background-image: none;
+ border-color: $color;
+
+ &:hover {
+ color: $color-hover;
+ background-color: $active-background;
+ border-color: $active-border;
+ }
+
+ &:focus,
+ &.focus {
+ box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
+ }
+
+ &.disabled,
+ &:disabled {
+ color: $color;
+ background-color: transparent;
+ }
+
+ &:not(:disabled):not(.disabled):active,
+ &:not(:disabled):not(.disabled).active,
+ .show > &.dropdown-toggle {
+ color: color-yiq($active-background);
+ background-color: $active-background;
+ border-color: $active-border;
+
+ &:focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows and $btn-active-box-shadow != none {
+ box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
+ } @else {
+ box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
+ }
+ }
+ }
+}
+
+// Button sizes
+@mixin button-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
+ padding: $padding-y $padding-x;
+ font-size: $font-size;
+ line-height: $line-height;
+ // Manually declare to provide an override to the browser default
+ @if $enable-rounded {
+ border-radius: $border-radius;
+ } @else {
+ border-radius: 0;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_caret.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_caret.scss
new file mode 100644
index 0000000..82aea42
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_caret.scss
@@ -0,0 +1,66 @@
+@mixin caret-down {
+ border-top: $caret-width solid;
+ border-right: $caret-width solid transparent;
+ border-bottom: 0;
+ border-left: $caret-width solid transparent;
+}
+
+@mixin caret-up {
+ border-top: 0;
+ border-right: $caret-width solid transparent;
+ border-bottom: $caret-width solid;
+ border-left: $caret-width solid transparent;
+}
+
+@mixin caret-right {
+ border-top: $caret-width solid transparent;
+ border-right: 0;
+ border-bottom: $caret-width solid transparent;
+ border-left: $caret-width solid;
+}
+
+@mixin caret-left {
+ border-top: $caret-width solid transparent;
+ border-right: $caret-width solid;
+ border-bottom: $caret-width solid transparent;
+}
+
+@mixin caret($direction: down) {
+ @if $enable-caret {
+ &::after {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: $caret-width * .85;
+ vertical-align: $caret-width * .85;
+ content: "";
+ @if $direction == down {
+ @include caret-down;
+ } @else if $direction == up {
+ @include caret-up;
+ } @else if $direction == right {
+ @include caret-right;
+ }
+ }
+
+ @if $direction == left {
+ &::after {
+ display: none;
+ }
+
+ &::before {
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-right: $caret-width * .85;
+ vertical-align: $caret-width * .85;
+ content: "";
+ @include caret-left;
+ }
+ }
+
+ &:empty::after {
+ margin-left: 0;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_clearfix.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_clearfix.scss
new file mode 100644
index 0000000..11a977b
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_clearfix.scss
@@ -0,0 +1,7 @@
+@mixin clearfix() {
+ &::after {
+ display: block;
+ clear: both;
+ content: "";
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_float.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_float.scss
new file mode 100644
index 0000000..48fa8b6
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_float.scss
@@ -0,0 +1,11 @@
+// stylelint-disable declaration-no-important
+
+@mixin float-left {
+ float: left !important;
+}
+@mixin float-right {
+ float: right !important;
+}
+@mixin float-none {
+ float: none !important;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_forms.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_forms.scss
new file mode 100644
index 0000000..3a61878
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_forms.scss
@@ -0,0 +1,147 @@
+// Form control focus state
+//
+// Generate a customized focus state and for any input with the specified color,
+// which defaults to the `$input-focus-border-color` variable.
+//
+// We highly encourage you to not customize the default value, but instead use
+// this to tweak colors on an as-needed basis. This aesthetic change is based on
+// WebKit's default styles, but applicable to a wider range of browsers. Its
+// usability and accessibility should be taken into account with any change.
+//
+// Example usage: change the default blue border and shadow to white for better
+// contrast against a dark gray background.
+@mixin form-control-focus() {
+ &:focus {
+ color: $input-focus-color;
+ background-color: $input-focus-bg;
+ border-color: $input-focus-border-color;
+ outline: 0;
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $input-box-shadow, $input-focus-box-shadow;
+ } @else {
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+}
+
+
+@mixin form-validation-state($state, $color) {
+ .#{$state}-feedback {
+ display: none;
+ width: 100%;
+ margin-top: $form-feedback-margin-top;
+ font-size: $form-feedback-font-size;
+ color: $color;
+ }
+
+ .#{$state}-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%; // Contain to parent when possible
+ padding: $tooltip-padding-y $tooltip-padding-x;
+ margin-top: .1rem;
+ font-size: $tooltip-font-size;
+ line-height: $line-height-base;
+ color: color-yiq($color);
+ background-color: rgba($color, $tooltip-opacity);
+ @include border-radius($tooltip-border-radius);
+ }
+
+ .form-control,
+ .custom-select {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ border-color: $color;
+
+ &:focus {
+ border-color: $color;
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+ }
+
+ .form-control-file {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+ }
+
+ .form-check-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .form-check-label {
+ color: $color;
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+ }
+
+ .custom-control-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .custom-control-label {
+ color: $color;
+
+ &::before {
+ background-color: lighten($color, 25%);
+ }
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+
+ &:checked {
+ ~ .custom-control-label::before {
+ @include gradient-bg(lighten($color, 10%));
+ }
+ }
+
+ &:focus {
+ ~ .custom-control-label::before {
+ box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);
+ }
+ }
+ }
+ }
+
+ // custom file
+ .custom-file-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .custom-file-label {
+ border-color: $color;
+
+ &::after { border-color: inherit; }
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+
+ &:focus {
+ ~ .custom-file-label {
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
+ }
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_gradients.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_gradients.scss
new file mode 100644
index 0000000..88c4d64
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_gradients.scss
@@ -0,0 +1,45 @@
+// Gradients
+
+@mixin gradient-bg($color) {
+ @if $enable-gradients {
+ background: $color linear-gradient(180deg, mix($body-bg, $color, 15%), $color) repeat-x;
+ } @else {
+ background-color: $color;
+ }
+}
+
+// Horizontal gradient, from left to right
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+@mixin gradient-x($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
+ background-image: linear-gradient(to right, $start-color $start-percent, $end-color $end-percent);
+ background-repeat: repeat-x;
+}
+
+// Vertical gradient, from top to bottom
+//
+// Creates two color stops, start and end, by specifying a color and position for each color stop.
+@mixin gradient-y($start-color: $gray-700, $end-color: $gray-800, $start-percent: 0%, $end-percent: 100%) {
+ background-image: linear-gradient(to bottom, $start-color $start-percent, $end-color $end-percent);
+ background-repeat: repeat-x;
+}
+
+@mixin gradient-directional($start-color: $gray-700, $end-color: $gray-800, $deg: 45deg) {
+ background-image: linear-gradient($deg, $start-color, $end-color);
+ background-repeat: repeat-x;
+}
+@mixin gradient-x-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
+ background-image: linear-gradient(to right, $start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-y-three-colors($start-color: $blue, $mid-color: $purple, $color-stop: 50%, $end-color: $red) {
+ background-image: linear-gradient($start-color, $mid-color $color-stop, $end-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-radial($inner-color: $gray-700, $outer-color: $gray-800) {
+ background-image: radial-gradient(circle, $inner-color, $outer-color);
+ background-repeat: no-repeat;
+}
+@mixin gradient-striped($color: rgba($white, .15), $angle: 45deg) {
+ background-image: linear-gradient($angle, $color 25%, transparent 25%, transparent 50%, $color 50%, $color 75%, transparent 75%, transparent);
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_grid-framework.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_grid-framework.scss
new file mode 100644
index 0000000..7b37f86
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_grid-framework.scss
@@ -0,0 +1,67 @@
+// Framework grid generation
+//
+// Used only by Bootstrap to generate the correct number of grid classes given
+// any value of `$grid-columns`.
+
+@mixin make-grid-columns($columns: $grid-columns, $gutter: $grid-gutter-width, $breakpoints: $grid-breakpoints) {
+ // Common properties for all breakpoints
+ %grid-column {
+ position: relative;
+ width: 100%;
+ min-height: 1px; // Prevent columns from collapsing when empty
+ padding-right: ($gutter / 2);
+ padding-left: ($gutter / 2);
+ }
+
+ @each $breakpoint in map-keys($breakpoints) {
+ $infix: breakpoint-infix($breakpoint, $breakpoints);
+
+ // Allow columns to stretch full width below their breakpoints
+ @for $i from 1 through $columns {
+ .col#{$infix}-#{$i} {
+ @extend %grid-column;
+ }
+ }
+ .col#{$infix},
+ .col#{$infix}-auto {
+ @extend %grid-column;
+ }
+
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ // Provide basic `.col-{bp}` classes for equal-width flexbox columns
+ .col#{$infix} {
+ flex-basis: 0;
+ flex-grow: 1;
+ max-width: 100%;
+ }
+ .col#{$infix}-auto {
+ flex: 0 0 auto;
+ width: auto;
+ max-width: none; // Reset earlier grid tiers
+ }
+
+ @for $i from 1 through $columns {
+ .col#{$infix}-#{$i} {
+ @include make-col($i, $columns);
+ }
+ }
+
+ .order#{$infix}-first { order: -1; }
+
+ .order#{$infix}-last { order: $columns + 1; }
+
+ @for $i from 0 through $columns {
+ .order#{$infix}-#{$i} { order: $i; }
+ }
+
+ // `$columns - 1` because offsetting by the width of an entire row isn't possible
+ @for $i from 0 through ($columns - 1) {
+ @if not ($infix == "" and $i == 0) { // Avoid emitting useless .offset-0
+ .offset#{$infix}-#{$i} {
+ @include make-col-offset($i, $columns);
+ }
+ }
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_grid.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_grid.scss
new file mode 100644
index 0000000..b75ebcb
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_grid.scss
@@ -0,0 +1,52 @@
+/// Grid system
+//
+// Generate semantic grid columns with these mixins.
+
+@mixin make-container() {
+ width: 100%;
+ padding-right: ($grid-gutter-width / 2);
+ padding-left: ($grid-gutter-width / 2);
+ margin-right: auto;
+ margin-left: auto;
+}
+
+
+// For each breakpoint, define the maximum width of the container in a media query
+@mixin make-container-max-widths($max-widths: $container-max-widths, $breakpoints: $grid-breakpoints) {
+ @each $breakpoint, $container-max-width in $max-widths {
+ @include media-breakpoint-up($breakpoint, $breakpoints) {
+ max-width: $container-max-width;
+ }
+ }
+}
+
+@mixin make-row() {
+ display: flex;
+ flex-wrap: wrap;
+ margin-right: ($grid-gutter-width / -2);
+ margin-left: ($grid-gutter-width / -2);
+}
+
+@mixin make-col-ready() {
+ position: relative;
+ // Prevent columns from becoming too narrow when at smaller grid tiers by
+ // always setting `width: 100%;`. This works because we use `flex` values
+ // later on to override this initial width.
+ width: 100%;
+ min-height: 1px; // Prevent collapsing
+ padding-right: ($grid-gutter-width / 2);
+ padding-left: ($grid-gutter-width / 2);
+}
+
+@mixin make-col($size, $columns: $grid-columns) {
+ flex: 0 0 percentage($size / $columns);
+ // Add a `max-width` to ensure content within each column does not blow out
+ // the width of the column. Applies to IE10+ and Firefox. Chrome and Safari
+ // do not appear to require this.
+ max-width: percentage($size / $columns);
+}
+
+@mixin make-col-offset($size, $columns: $grid-columns) {
+ $num: $size / $columns;
+ margin-left: if($num == 0, 0, percentage($num));
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_hover.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_hover.scss
new file mode 100644
index 0000000..192f847
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_hover.scss
@@ -0,0 +1,37 @@
+// Hover mixin and `$enable-hover-media-query` are deprecated.
+//
+// Originally added during our alphas and maintained during betas, this mixin was
+// designed to prevent `:hover` stickiness on iOS-an issue where hover styles
+// would persist after initial touch.
+//
+// For backward compatibility, we've kept these mixins and updated them to
+// always return their regular pseudo-classes instead of a shimmed media query.
+//
+// Issue: https://github.com/twbs/bootstrap/issues/25195
+
+@mixin hover {
+ &:hover { @content; }
+}
+
+@mixin hover-focus {
+ &:hover,
+ &:focus {
+ @content;
+ }
+}
+
+@mixin plain-hover-focus {
+ &,
+ &:hover,
+ &:focus {
+ @content;
+ }
+}
+
+@mixin hover-focus-active {
+ &:hover,
+ &:focus,
+ &:active {
+ @content;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_image.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_image.scss
new file mode 100644
index 0000000..0544f0d
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_image.scss
@@ -0,0 +1,36 @@
+// Image Mixins
+// - Responsive image
+// - Retina image
+
+
+// Responsive image
+//
+// Keep images from scaling beyond the width of their parents.
+
+@mixin img-fluid {
+ // Part 1: Set a maximum relative to the parent
+ max-width: 100%;
+ // Part 2: Override the height to auto, otherwise images will be stretched
+ // when setting a width and height attribute on the img element.
+ height: auto;
+}
+
+
+// Retina image
+//
+// Short retina mixin for setting background-image and -size.
+
+// stylelint-disable indentation, media-query-list-comma-newline-after
+@mixin img-retina($file-1x, $file-2x, $width-1x, $height-1x) {
+ background-image: url($file-1x);
+
+ // Autoprefixer takes care of adding -webkit-min-device-pixel-ratio and -o-min-device-pixel-ratio,
+ // but doesn't convert dppx=>dpi.
+ // There's no such thing as unprefixed min-device-pixel-ratio since it's nonstandard.
+ // Compatibility info: https://caniuse.com/#feat=css-media-resolution
+ @media only screen and (min-resolution: 192dpi), // IE9-11 don't support dppx
+ only screen and (min-resolution: 2dppx) { // Standardized
+ background-image: url($file-2x);
+ background-size: $width-1x $height-1x;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_list-group.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_list-group.scss
new file mode 100644
index 0000000..cd47a4e
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_list-group.scss
@@ -0,0 +1,21 @@
+// List Groups
+
+@mixin list-group-item-variant($state, $background, $color) {
+ .list-group-item-#{$state} {
+ color: $color;
+ background-color: $background;
+
+ &.list-group-item-action {
+ @include hover-focus {
+ color: $color;
+ background-color: darken($background, 5%);
+ }
+
+ &.active {
+ color: $white;
+ background-color: $color;
+ border-color: $color;
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_lists.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_lists.scss
new file mode 100644
index 0000000..2518562
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_lists.scss
@@ -0,0 +1,7 @@
+// Lists
+
+// Unstyled keeps list items block level, just removes default browser padding and list-style
+@mixin list-unstyled {
+ padding-left: 0;
+ list-style: none;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_nav-divider.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_nav-divider.scss
new file mode 100644
index 0000000..4fb37b6
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_nav-divider.scss
@@ -0,0 +1,10 @@
+// Horizontal dividers
+//
+// Dividers (basically an hr) within dropdowns and nav lists
+
+@mixin nav-divider($color: $nav-divider-color, $margin-y: $nav-divider-margin-y) {
+ height: 0;
+ margin: $margin-y 0;
+ overflow: hidden;
+ border-top: 1px solid $color;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_pagination.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_pagination.scss
new file mode 100644
index 0000000..ff36eb6
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_pagination.scss
@@ -0,0 +1,22 @@
+// Pagination
+
+@mixin pagination-size($padding-y, $padding-x, $font-size, $line-height, $border-radius) {
+ .page-link {
+ padding: $padding-y $padding-x;
+ font-size: $font-size;
+ line-height: $line-height;
+ }
+
+ .page-item {
+ &:first-child {
+ .page-link {
+ @include border-left-radius($border-radius);
+ }
+ }
+ &:last-child {
+ .page-link {
+ @include border-right-radius($border-radius);
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_reset-text.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_reset-text.scss
new file mode 100644
index 0000000..71edb00
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_reset-text.scss
@@ -0,0 +1,17 @@
+@mixin reset-text {
+ font-family: $font-family-base;
+ // We deliberately do NOT reset font-size or word-wrap.
+ font-style: normal;
+ font-weight: $font-weight-normal;
+ line-height: $line-height-base;
+ text-align: left; // Fallback for where `start` is not supported
+ text-align: start; // stylelint-disable-line declaration-block-no-duplicate-properties
+ text-decoration: none;
+ text-shadow: none;
+ text-transform: none;
+ letter-spacing: normal;
+ word-break: normal;
+ word-spacing: normal;
+ white-space: normal;
+ line-break: auto;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_resize.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_resize.scss
new file mode 100644
index 0000000..66f233a
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_resize.scss
@@ -0,0 +1,6 @@
+// Resize anything
+
+@mixin resizable($direction) {
+ overflow: auto; // Per CSS3 UI, `resize` only applies when `overflow` isn't `visible`
+ resize: $direction; // Options: horizontal, vertical, both
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_screen-reader.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_screen-reader.scss
new file mode 100644
index 0000000..812591b
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_screen-reader.scss
@@ -0,0 +1,33 @@
+// Only display content to screen readers
+//
+// See: https://a11yproject.com/posts/how-to-hide-content/
+// See: https://hugogiraudel.com/2016/10/13/css-hide-and-seek/
+
+@mixin sr-only {
+ position: absolute;
+ width: 1px;
+ height: 1px;
+ padding: 0;
+ overflow: hidden;
+ clip: rect(0, 0, 0, 0);
+ white-space: nowrap;
+ border: 0;
+}
+
+// Use in conjunction with .sr-only to only display content when it's focused.
+//
+// Useful for "Skip to main content" links; see https://www.w3.org/TR/2013/NOTE-WCAG20-TECHS-20130905/G1
+//
+// Credit: HTML5 Boilerplate
+
+@mixin sr-only-focusable {
+ &:active,
+ &:focus {
+ position: static;
+ width: auto;
+ height: auto;
+ overflow: visible;
+ clip: auto;
+ white-space: normal;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_size.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_size.scss
new file mode 100644
index 0000000..b9dd48e
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_size.scss
@@ -0,0 +1,6 @@
+// Sizing shortcuts
+
+@mixin size($width, $height: $width) {
+ width: $width;
+ height: $height;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_table-row.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_table-row.scss
new file mode 100644
index 0000000..84f1d30
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_table-row.scss
@@ -0,0 +1,30 @@
+// Tables
+
+@mixin table-row-variant($state, $background) {
+ // Exact selectors below required to override `.table-striped` and prevent
+ // inheritance to nested tables.
+ .table-#{$state} {
+ &,
+ > th,
+ > td {
+ background-color: $background;
+ }
+ }
+
+ // Hover states for `.table-hover`
+ // Note: this is not available for cells or rows within `thead` or `tfoot`.
+ .table-hover {
+ $hover-background: darken($background, 5%);
+
+ .table-#{$state} {
+ @include hover {
+ background-color: $hover-background;
+
+ > td,
+ > th {
+ background-color: $hover-background;
+ }
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_text-emphasis.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_text-emphasis.scss
new file mode 100644
index 0000000..58db3e0
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_text-emphasis.scss
@@ -0,0 +1,14 @@
+// stylelint-disable declaration-no-important
+
+// Typography
+
+@mixin text-emphasis-variant($parent, $color) {
+ #{$parent} {
+ color: $color !important;
+ }
+ a#{$parent} {
+ @include hover-focus {
+ color: darken($color, 10%) !important;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_text-hide.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_text-hide.scss
new file mode 100644
index 0000000..9ffab16
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_text-hide.scss
@@ -0,0 +1,13 @@
+// CSS image replacement
+@mixin text-hide($ignore-warning: false) {
+ // stylelint-disable-next-line font-family-no-missing-generic-family-keyword
+ font: 0/0 a;
+ color: transparent;
+ text-shadow: none;
+ background-color: transparent;
+ border: 0;
+
+ @if ($ignore-warning != true) {
+ @warn "The `text-hide()` mixin has been deprecated as of v4.1.0. It will be removed entirely in v5.";
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_text-truncate.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_text-truncate.scss
new file mode 100644
index 0000000..3504bb1
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_text-truncate.scss
@@ -0,0 +1,8 @@
+// Text truncate
+// Requires inline-block or block for proper styling
+
+@mixin text-truncate() {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_transition.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_transition.scss
new file mode 100644
index 0000000..f853821
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_transition.scss
@@ -0,0 +1,13 @@
+@mixin transition($transition...) {
+ @if $enable-transitions {
+ @if length($transition) == 0 {
+ transition: $transition-base;
+ } @else {
+ transition: $transition;
+ }
+ }
+
+ @media screen and (prefers-reduced-motion: reduce) {
+ transition: none;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/mixins/_visibility.scss b/src/assets/scss/black-dashboard/bootstrap/mixins/_visibility.scss
new file mode 100644
index 0000000..fe523d0
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/mixins/_visibility.scss
@@ -0,0 +1,7 @@
+// stylelint-disable declaration-no-important
+
+// Visibility
+
+@mixin invisible($visibility) {
+ visibility: $visibility !important;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_align.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_align.scss
new file mode 100644
index 0000000..8b7df9f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_align.scss
@@ -0,0 +1,8 @@
+// stylelint-disable declaration-no-important
+
+.align-baseline { vertical-align: baseline !important; } // Browser default
+.align-top { vertical-align: top !important; }
+.align-middle { vertical-align: middle !important; }
+.align-bottom { vertical-align: bottom !important; }
+.align-text-bottom { vertical-align: text-bottom !important; }
+.align-text-top { vertical-align: text-top !important; }
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_background.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_background.scss
new file mode 100644
index 0000000..1f18b2f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_background.scss
@@ -0,0 +1,19 @@
+// stylelint-disable declaration-no-important
+
+@each $color, $value in $theme-colors {
+ @include bg-variant(".bg-#{$color}", $value);
+}
+
+@if $enable-gradients {
+ @each $color, $value in $theme-colors {
+ @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
+ }
+}
+
+.bg-white {
+ background-color: $white !important;
+}
+
+.bg-transparent {
+ background-color: transparent !important;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_borders.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_borders.scss
new file mode 100644
index 0000000..b8832ef
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_borders.scss
@@ -0,0 +1,59 @@
+// stylelint-disable declaration-no-important
+
+//
+// Border
+//
+
+.border { border: $border-width solid $border-color !important; }
+.border-top { border-top: $border-width solid $border-color !important; }
+.border-right { border-right: $border-width solid $border-color !important; }
+.border-bottom { border-bottom: $border-width solid $border-color !important; }
+.border-left { border-left: $border-width solid $border-color !important; }
+
+.border-0 { border: 0 !important; }
+.border-top-0 { border-top: 0 !important; }
+.border-right-0 { border-right: 0 !important; }
+.border-bottom-0 { border-bottom: 0 !important; }
+.border-left-0 { border-left: 0 !important; }
+
+@each $color, $value in $theme-colors {
+ .border-#{$color} {
+ border-color: $value !important;
+ }
+}
+
+.border-white {
+ border-color: $white !important;
+}
+
+//
+// Border-radius
+//
+
+.rounded {
+ border-radius: $border-radius !important;
+}
+.rounded-top {
+ border-top-left-radius: $border-radius !important;
+ border-top-right-radius: $border-radius !important;
+}
+.rounded-right {
+ border-top-right-radius: $border-radius !important;
+ border-bottom-right-radius: $border-radius !important;
+}
+.rounded-bottom {
+ border-bottom-right-radius: $border-radius !important;
+ border-bottom-left-radius: $border-radius !important;
+}
+.rounded-left {
+ border-top-left-radius: $border-radius !important;
+ border-bottom-left-radius: $border-radius !important;
+}
+
+.rounded-circle {
+ border-radius: 50% !important;
+}
+
+.rounded-0 {
+ border-radius: 0 !important;
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_clearfix.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_clearfix.scss
new file mode 100644
index 0000000..e92522a
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_clearfix.scss
@@ -0,0 +1,3 @@
+.clearfix {
+ @include clearfix();
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_display.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_display.scss
new file mode 100644
index 0000000..20aeeb5
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_display.scss
@@ -0,0 +1,38 @@
+// stylelint-disable declaration-no-important
+
+//
+// Utilities for common `display` values
+//
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .d#{$infix}-none { display: none !important; }
+ .d#{$infix}-inline { display: inline !important; }
+ .d#{$infix}-inline-block { display: inline-block !important; }
+ .d#{$infix}-block { display: block !important; }
+ .d#{$infix}-table { display: table !important; }
+ .d#{$infix}-table-row { display: table-row !important; }
+ .d#{$infix}-table-cell { display: table-cell !important; }
+ .d#{$infix}-flex { display: flex !important; }
+ .d#{$infix}-inline-flex { display: inline-flex !important; }
+ }
+}
+
+
+//
+// Utilities for toggling `display` in print
+//
+
+@media print {
+ .d-print-none { display: none !important; }
+ .d-print-inline { display: inline !important; }
+ .d-print-inline-block { display: inline-block !important; }
+ .d-print-block { display: block !important; }
+ .d-print-table { display: table !important; }
+ .d-print-table-row { display: table-row !important; }
+ .d-print-table-cell { display: table-cell !important; }
+ .d-print-flex { display: flex !important; }
+ .d-print-inline-flex { display: inline-flex !important; }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_embed.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_embed.scss
new file mode 100644
index 0000000..d3362b6
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_embed.scss
@@ -0,0 +1,52 @@
+// Credit: Nicolas Gallagher and SUIT CSS.
+
+.embed-responsive {
+ position: relative;
+ display: block;
+ width: 100%;
+ padding: 0;
+ overflow: hidden;
+
+ &::before {
+ display: block;
+ content: "";
+ }
+
+ .embed-responsive-item,
+ iframe,
+ embed,
+ object,
+ video {
+ position: absolute;
+ top: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ border: 0;
+ }
+}
+
+.embed-responsive-21by9 {
+ &::before {
+ padding-top: percentage(9 / 21);
+ }
+}
+
+.embed-responsive-16by9 {
+ &::before {
+ padding-top: percentage(9 / 16);
+ }
+}
+
+.embed-responsive-4by3 {
+ &::before {
+ padding-top: percentage(3 / 4);
+ }
+}
+
+.embed-responsive-1by1 {
+ &::before {
+ padding-top: percentage(1 / 1);
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_flex.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_flex.scss
new file mode 100644
index 0000000..3d4266e
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_flex.scss
@@ -0,0 +1,51 @@
+// stylelint-disable declaration-no-important
+
+// Flex variation
+//
+// Custom styles for additional flex alignment options.
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .flex#{$infix}-row { flex-direction: row !important; }
+ .flex#{$infix}-column { flex-direction: column !important; }
+ .flex#{$infix}-row-reverse { flex-direction: row-reverse !important; }
+ .flex#{$infix}-column-reverse { flex-direction: column-reverse !important; }
+
+ .flex#{$infix}-wrap { flex-wrap: wrap !important; }
+ .flex#{$infix}-nowrap { flex-wrap: nowrap !important; }
+ .flex#{$infix}-wrap-reverse { flex-wrap: wrap-reverse !important; }
+ .flex#{$infix}-fill { flex: 1 1 auto !important; }
+ .flex#{$infix}-grow-0 { flex-grow: 0 !important; }
+ .flex#{$infix}-grow-1 { flex-grow: 1 !important; }
+ .flex#{$infix}-shrink-0 { flex-shrink: 0 !important; }
+ .flex#{$infix}-shrink-1 { flex-shrink: 1 !important; }
+
+ .justify-content#{$infix}-start { justify-content: flex-start !important; }
+ .justify-content#{$infix}-end { justify-content: flex-end !important; }
+ .justify-content#{$infix}-center { justify-content: center !important; }
+ .justify-content#{$infix}-between { justify-content: space-between !important; }
+ .justify-content#{$infix}-around { justify-content: space-around !important; }
+
+ .align-items#{$infix}-start { align-items: flex-start !important; }
+ .align-items#{$infix}-end { align-items: flex-end !important; }
+ .align-items#{$infix}-center { align-items: center !important; }
+ .align-items#{$infix}-baseline { align-items: baseline !important; }
+ .align-items#{$infix}-stretch { align-items: stretch !important; }
+
+ .align-content#{$infix}-start { align-content: flex-start !important; }
+ .align-content#{$infix}-end { align-content: flex-end !important; }
+ .align-content#{$infix}-center { align-content: center !important; }
+ .align-content#{$infix}-between { align-content: space-between !important; }
+ .align-content#{$infix}-around { align-content: space-around !important; }
+ .align-content#{$infix}-stretch { align-content: stretch !important; }
+
+ .align-self#{$infix}-auto { align-self: auto !important; }
+ .align-self#{$infix}-start { align-self: flex-start !important; }
+ .align-self#{$infix}-end { align-self: flex-end !important; }
+ .align-self#{$infix}-center { align-self: center !important; }
+ .align-self#{$infix}-baseline { align-self: baseline !important; }
+ .align-self#{$infix}-stretch { align-self: stretch !important; }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_float.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_float.scss
new file mode 100644
index 0000000..01655e9
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_float.scss
@@ -0,0 +1,9 @@
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .float#{$infix}-left { @include float-left; }
+ .float#{$infix}-right { @include float-right; }
+ .float#{$infix}-none { @include float-none; }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_position.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_position.scss
new file mode 100644
index 0000000..9ecdeeb
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_position.scss
@@ -0,0 +1,37 @@
+// stylelint-disable declaration-no-important
+
+// Common values
+
+// Sass list not in variables since it's not intended for customization.
+// stylelint-disable-next-line scss/dollar-variable-default
+$positions: static, relative, absolute, fixed, sticky;
+
+@each $position in $positions {
+ .position-#{$position} { position: $position !important; }
+}
+
+// Shorthand
+
+.fixed-top {
+ position: fixed;
+ top: 0;
+ right: 0;
+ left: 0;
+ z-index: $zindex-fixed;
+}
+
+.fixed-bottom {
+ position: fixed;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: $zindex-fixed;
+}
+
+.sticky-top {
+ @supports (position: sticky) {
+ position: sticky;
+ top: 0;
+ z-index: $zindex-sticky;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_screenreaders.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_screenreaders.scss
new file mode 100644
index 0000000..9f26fde
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_screenreaders.scss
@@ -0,0 +1,11 @@
+//
+// Screenreaders
+//
+
+.sr-only {
+ @include sr-only();
+}
+
+.sr-only-focusable {
+ @include sr-only-focusable();
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_shadows.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_shadows.scss
new file mode 100644
index 0000000..f5d03fc
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_shadows.scss
@@ -0,0 +1,6 @@
+// stylelint-disable declaration-no-important
+
+.shadow-sm { box-shadow: $box-shadow-sm !important; }
+.shadow { box-shadow: $box-shadow !important; }
+.shadow-lg { box-shadow: $box-shadow-lg !important; }
+.shadow-none { box-shadow: none !important; }
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_sizing.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_sizing.scss
new file mode 100644
index 0000000..e95a4db
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_sizing.scss
@@ -0,0 +1,12 @@
+// stylelint-disable declaration-no-important
+
+// Width and height
+
+@each $prop, $abbrev in (width: w, height: h) {
+ @each $size, $length in $sizes {
+ .#{$abbrev}-#{$size} { #{$prop}: $length !important; }
+ }
+}
+
+.mw-100 { max-width: 100% !important; }
+.mh-100 { max-height: 100% !important; }
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_spacing.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_spacing.scss
new file mode 100644
index 0000000..b2e2354
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_spacing.scss
@@ -0,0 +1,51 @@
+// stylelint-disable declaration-no-important
+
+// Margin and Padding
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ @each $prop, $abbrev in (margin: m, padding: p) {
+ @each $size, $length in $spacers {
+
+ .#{$abbrev}#{$infix}-#{$size} { #{$prop}: $length !important; }
+ .#{$abbrev}t#{$infix}-#{$size},
+ .#{$abbrev}y#{$infix}-#{$size} {
+ #{$prop}-top: $length !important;
+ }
+ .#{$abbrev}r#{$infix}-#{$size},
+ .#{$abbrev}x#{$infix}-#{$size} {
+ #{$prop}-right: $length !important;
+ }
+ .#{$abbrev}b#{$infix}-#{$size},
+ .#{$abbrev}y#{$infix}-#{$size} {
+ #{$prop}-bottom: $length !important;
+ }
+ .#{$abbrev}l#{$infix}-#{$size},
+ .#{$abbrev}x#{$infix}-#{$size} {
+ #{$prop}-left: $length !important;
+ }
+ }
+ }
+
+ // Some special margin utils
+ .m#{$infix}-auto { margin: auto !important; }
+ .mt#{$infix}-auto,
+ .my#{$infix}-auto {
+ margin-top: auto !important;
+ }
+ .mr#{$infix}-auto,
+ .mx#{$infix}-auto {
+ margin-right: auto !important;
+ }
+ .mb#{$infix}-auto,
+ .my#{$infix}-auto {
+ margin-bottom: auto !important;
+ }
+ .ml#{$infix}-auto,
+ .mx#{$infix}-auto {
+ margin-left: auto !important;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_text.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_text.scss
new file mode 100644
index 0000000..9d96c46
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_text.scss
@@ -0,0 +1,58 @@
+// stylelint-disable declaration-no-important
+
+//
+// Text
+//
+
+.text-monospace { font-family: $font-family-monospace; }
+
+// Alignment
+
+.text-justify { text-align: justify !important; }
+.text-nowrap { white-space: nowrap !important; }
+.text-truncate { @include text-truncate; }
+
+// Responsive alignment
+
+@each $breakpoint in map-keys($grid-breakpoints) {
+ @include media-breakpoint-up($breakpoint) {
+ $infix: breakpoint-infix($breakpoint, $grid-breakpoints);
+
+ .text#{$infix}-left { text-align: left !important; }
+ .text#{$infix}-right { text-align: right !important; }
+ .text#{$infix}-center { text-align: center !important; }
+ }
+}
+
+// Transformation
+
+.text-lowercase { text-transform: lowercase !important; }
+.text-uppercase { text-transform: uppercase !important; }
+.text-capitalize { text-transform: capitalize !important; }
+
+// Weight and italics
+
+.font-weight-light { font-weight: $font-weight-light !important; }
+.font-weight-normal { font-weight: $font-weight-normal !important; }
+.font-weight-bold { font-weight: $font-weight-bold !important; }
+.font-italic { font-style: italic !important; }
+
+// Contextual colors
+
+.text-white { color: $white !important; }
+
+@each $color, $value in $theme-colors {
+ @include text-emphasis-variant(".text-#{$color}", $value);
+}
+
+.text-body { color: $body-color !important; }
+.text-muted { color: $text-muted !important; }
+
+.text-black-50 { color: rgba($black, .5) !important; }
+.text-white-50 { color: rgba($white, .5) !important; }
+
+// Misc
+
+.text-hide {
+ @include text-hide($ignore-warning: true);
+}
diff --git a/src/assets/scss/black-dashboard/bootstrap/utilities/_visibility.scss b/src/assets/scss/black-dashboard/bootstrap/utilities/_visibility.scss
new file mode 100644
index 0000000..823406d
--- /dev/null
+++ b/src/assets/scss/black-dashboard/bootstrap/utilities/_visibility.scss
@@ -0,0 +1,11 @@
+//
+// Visibility utilities
+//
+
+.visible {
+ @include invisible(visible);
+}
+
+.invisible {
+ @include invisible(hidden);
+}
diff --git a/src/assets/scss/black-dashboard/custom/_alerts.scss b/src/assets/scss/black-dashboard/custom/_alerts.scss
new file mode 100644
index 0000000..4ba45ef
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_alerts.scss
@@ -0,0 +1,89 @@
+.alert{
+ border: 0;
+ color: $white;
+
+ .alert-link{
+ color: $white;
+ }
+
+ &.alert-success{
+ background-color: darken($success, 10%);
+ }
+
+ i.fa,
+ i.tim-icons{
+ font-size: $font-paragraph;
+ }
+
+ .close{
+ color: $white;
+ opacity: .9;
+ text-shadow: none;
+ line-height: 0;
+ outline: 0;
+ }
+
+ span[data-notify="icon"]{
+ font-size: 22px;
+ display: block;
+ left: 19px;
+ position: absolute;
+ top: 50%;
+ margin-top: -11px;
+ }
+
+ button.close{
+ position: absolute;
+ right: 15px;
+ top: 50%;
+ margin-top: -13px;
+ width: 25px;
+ height: 25px;
+ padding: 3px;
+ }
+
+ .close ~ span{
+ display: block;
+ max-width: 89%;
+ }
+
+ &.alert-with-icon{
+ padding-left: 65px;
+ }
+}
+
+.alert-dismissible {
+ .close {
+ top: 50%;
+ right: $alert-padding-x;
+ padding: 0;
+ transform: translateY(-50%);
+ color: rgba($white, .6);
+ opacity: 1;
+
+ &:hover,
+ &:focus {
+ color: rgba($white, .9);
+ opacity: 1 !important;
+ }
+
+ @include media-breakpoint-down(xs) {
+ top: 1rem;
+ right: .5rem;
+ }
+
+ &>span:not(.sr-only) {
+ font-size: 1.5rem;
+ background-color: transparent;
+ color: rgba($white, .6);
+ }
+
+ &:hover,
+ &:focus {
+ &>span:not(.sr-only) {
+ background-color: transparent;
+ color: rgba($white, .9);
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_buttons.scss b/src/assets/scss/black-dashboard/custom/_buttons.scss
new file mode 100644
index 0000000..2b396e0
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_buttons.scss
@@ -0,0 +1,238 @@
+.btn,
+.navbar .navbar-nav > a.btn{
+ border-width: $border-thick;
+ border: none;
+ position: relative;
+ overflow: hidden;
+ margin:4px 1px;
+ border-radius: $border-radius-lg;
+ cursor: pointer;
+
+ @include btn-styles($default, $default-states);
+
+ &:hover,
+ &:focus{
+ @include opacity(1);
+ outline: 0 !important;
+ }
+ &:active,
+ &.active,
+ .open > &.dropdown-toggle {
+ @include box-shadow(none);
+ outline: 0 !important;
+ }
+
+ .badge{
+ margin: 0;
+ }
+
+ &.btn-icon {
+ // see above for color variations
+ height: $icon-size-regular;
+ min-width: $icon-size-regular;
+ width: $icon-size-regular;
+ padding: 0;
+ font-size: $icon-font-size-regular;
+ overflow: hidden;
+ position: relative;
+ line-height: normal;
+
+ &.btn-simple{
+ padding: 0;
+ }
+
+ &.btn-sm{
+ height: $icon-size-sm;
+ min-width: $icon-size-sm;
+ width: $icon-size-sm;
+
+ .fa,
+ .far,
+ .fas,
+ .tim-icons{
+ font-size: $icon-font-size-sm;
+ }
+ }
+
+ &.btn-lg{
+ height: $icon-size-lg;
+ min-width: $icon-size-lg;
+ width: $icon-size-lg;
+
+ .fa,
+ .far,
+ .fas,
+ .tim-icons{
+ font-size: $icon-font-size-lg;
+ }
+ }
+
+ &:not(.btn-footer) .tim-icons,
+ &:not(.btn-footer) .fa,
+ &:not(.btn-footer) .far,
+ &:not(.btn-footer) .fas{
+ position: absolute;
+ font-size: 1em;
+ top: 50%;
+ left: 50%;
+ transform: translate(-12px, -12px);
+ line-height: 1.5626rem;
+ width: 24px;
+ }
+
+ }
+
+ &:not(.btn-icon) .tim-icons{
+ position: relative;
+ top: 1px;
+ }
+
+ span{
+ position: relative;
+ display: block;
+ }
+
+ &.btn-link.dropdown-toggle {
+ color: $dark-gray;
+ }
+
+ &.dropdown-toggle:after {
+ margin-left: 30px !important;
+ }
+}
+
+// Apply the mixin to the buttons
+// .btn-default { @include btn-styles($default-color, $default-states-color); }
+.btn-primary { @include btn-styles($primary, $primary-states);
+
+ }
+.btn-success { @include btn-styles($success, $success-states);
+
+ }
+.btn-info { @include btn-styles($info, $info-states);
+
+ }
+.btn-warning { @include btn-styles($warning, $warning-states);
+ &:not(:disabled):not(.disabled):active{
+ color: $white;
+ }
+ }
+.btn-danger { @include btn-styles($danger, $danger-states);
+
+ }
+.btn-neutral { @include btn-styles($white, $white); }
+
+.btn{
+ &:disabled,
+ &[disabled],
+ &.disabled{
+ @include opacity(.5);
+ pointer-events: none;
+ }
+}
+.btn-simple{
+ border: $border;
+ border-color: $default;
+ box-shadow: none;
+ padding: $padding-btn-vertical - 1 $padding-round-horizontal - 1;
+ background-color: $transparent-bg;
+}
+
+.btn-simple,
+.btn-link{
+ &.disabled,
+ &:disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background: $transparent-bg;
+ }
+ }
+}
+
+.btn:not(:disabled):not(.disabled):active, .btn:not(:disabled):not(.disabled).active{
+ box-shadow: 2px 2px 6px rgba(0,0,0,.4);
+}
+.btn-link{
+ border: $none;
+ box-shadow: none;
+ padding: $padding-base-vertical $padding-base-horizontal;
+ background: $transparent-bg;
+ color: $gray-300;
+ font-weight: $font-weight-bold;
+
+ &:hover {
+ box-shadow: none !important;
+ transform: none !important;
+ }
+}
+
+.btn-lg{
+ @include btn-size($btn-padding-y-lg, $btn-padding-x-lg, $font-size-base, $border-radius-lg);
+}
+.btn-sm{
+ @include btn-size($btn-padding-y-sm, $btn-padding-x-sm, $font-size-base, $border-radius-sm);
+}
+
+.btn-wd {
+ min-width: 140px;
+}
+.btn-group.select{
+ width: 100%;
+}
+
+.btn-group {
+ .btn.active {
+ box-shadow: 2px 2px 6px rgba(0,0,0,.4);
+ transform: translateY(-1px);
+ -webkit-transform: translateY(-1px);
+ }
+}
+
+
+.btn-group.select .btn{
+ text-align: left;
+}
+.btn-group.select .caret{
+ position: absolute;
+ top: 50%;
+ margin-top: -1px;
+ right: 8px;
+}
+
+.btn-group .btn.active {
+ box-shadow: 2px 2px 6px rgba(0,0,0,.4);
+ transform: translateY(-1px);
+ -webkit-transform: translateY(-1px);
+}
+
+.btn-round{
+ border-width: $border-thin;
+ border-radius: $btn-round-radius;
+
+ &.btn-simple{
+ padding: $padding-btn-vertical - 1 $padding-round-horizontal - 1;
+ }
+}
+
+.no-caret {
+ &.dropdown-toggle::after {
+ display: none;
+ }
+}
+
+.btn-secondary:not(:disabled):not(.disabled):active,
+.btn-secondary:not(:disabled):not(.disabled).active,
+.show > .btn-secondary.dropdown-toggle {
+ color: $white;
+}
+
+.btn-group label.btn.active {
+ transform: translateY(0);
+ -webkit-transform: translateY(0);
+}
diff --git a/src/assets/scss/black-dashboard/custom/_card.scss b/src/assets/scss/black-dashboard/custom/_card.scss
new file mode 100644
index 0000000..ba1a203
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_card.scss
@@ -0,0 +1,232 @@
+.card{
+ background: $card-black-background;
+ border: 0;
+ position: relative;
+ width: 100%;
+ margin-bottom: 30px;
+ box-shadow: $box-shadow;
+
+
+ label{
+ color: rgba($white, 0.6);
+ }
+
+ .card-title {
+ margin-bottom: .75rem;
+ }
+
+ .card-body{
+ padding: 15px;
+
+ &.table-full-width{
+ padding-left: 0;
+ padding-right: 0;
+ }
+
+ .card-title{
+ color: $white;
+ text-transform: inherit;
+ font-weight: $font-weight-light;
+ margin-bottom: .75rem;
+ }
+
+ .card-description, .card-category{
+ color: rgba($white, 0.6);
+ }
+
+ }
+
+ .card-header{
+ &:not([data-background-color]){
+ background-color: transparent;
+ }
+ padding: 15px 15px 0;
+ border: 0;
+ color: rgba($white,0.8);
+
+ .card-title{
+ color: $white;
+ font-weight: 100;
+ }
+
+ .card-category{
+ color: $dark-gray;
+ margin-bottom: 5px;
+ font-weight: 300;
+ }
+ }
+
+ .map{
+ border-radius: $border-radius-sm;
+
+ &.map-big{
+ height: 420px;
+ }
+ }
+
+ &.card-white{
+ background: $white;
+
+ .card-title{
+ color: $black;
+ }
+ .card-category, .stats{
+ color: $card-stats-gray;
+ }
+
+ //style for inputs
+
+ @include form-control-placeholder(rgba($black,0.4), 1);
+ .has-danger{
+ .form-control, .input-group-prepend .input-group-text{
+ border-color: $danger-states;
+ }
+ }
+
+ .input-group-prepend .input-group-text{
+ border-color: rgba($black-states,0.2);
+ color: $black-states;
+ }
+
+ .form-control{
+ color: $black;
+ border-color: rgba($black-states,0.2);
+ &:focus{
+ border-color: $primary;
+ }
+ }
+ label:not(.btn){
+ color: $default;
+ }
+
+ .form-group.no-border,
+ .input-group.no-border {
+ .form-control,
+ .form-control + .input-group-prepend .input-group-text,
+ .form-control + .input-group-append .input-group-text,
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: $opacity-gray-3;
+ &:focus,
+ &:active,
+ &:active{
+ background-color: $opacity-gray-5;
+ }
+ }
+
+ .form-control {
+ &:focus {
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ background-color: $transparent-bg;
+ }
+ }
+ }
+
+
+ }
+
+ .input-group[disabled]{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: $black;
+ }
+ }
+
+ .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{
+ background: $light-gray;
+ border-color: rgba($black-states,0.3);
+ }
+
+ .input-group-focus{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text,
+ .form-control{
+ background-color: $white;
+ border-color: $primary;
+ }
+
+ &.no-border{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+
+ background-color: $opacity-gray-5;
+ }
+ }
+ }
+ .input-group-prepend .input-group-text {
+ border-right: none;
+ }
+
+ .input-group-append .input-group-text {
+ border-left: none;
+ }
+
+ .has-danger .form-control:focus, .has-success.input-group-focus .input-group-append .input-group-text, .has-success.input-group-focus .input-group-prepend .input-group-text {
+ border-color: $danger-states;
+ }
+
+ .has-success .form-control:focus, .has-success.input-group-focus .input-group-append .input-group-text, .has-success.input-group-focus .input-group-prepend .input-group-text {
+ border-color: darken($success, 10%);
+ }
+ }
+
+
+ &.card-plain {
+ background: transparent;
+ box-shadow: none;
+ }
+
+ .image{
+ overflow: hidden;
+ height: 200px;
+ position: relative;
+ }
+
+ .avatar{
+ width: 30px;
+ height: 30px;
+ overflow: hidden;
+ border-radius: 50%;
+ margin-bottom: 15px;
+ }
+
+ label{
+ font-size: $font-size-sm;
+ margin-bottom: 5px;
+
+ }
+
+ .card-footer{
+ background-color: transparent;
+ border: 0;
+ padding: 15px;
+
+
+ .stats{
+ i{
+ margin-right: 5px;
+ position: relative;
+
+ }
+ }
+
+ h6{
+ margin-bottom: 0;
+ padding: 7px 0;
+ }
+ }
+}
+
+.card-body{
+ padding: $card-spacer-y;
+}
+
+@include media-breakpoint-down(sm) {
+ .card.card-chart .card-header {
+ .btn-group-toggle .tim-icons {
+ font-size: .875rem;
+ top: -1px;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_checkboxes-radio.scss b/src/assets/scss/black-dashboard/custom/_checkboxes-radio.scss
new file mode 100644
index 0000000..68e3683
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_checkboxes-radio.scss
@@ -0,0 +1,154 @@
+.form-check{
+ margin-top: .5rem;
+ padding-left: 0;
+}
+
+.form-check .form-check-label{
+ display: inline-block;
+ position: relative;
+ cursor: pointer;
+ padding-left: 25px;
+ line-height: 18px;
+ margin-bottom: 0;
+ -webkit-transition: color 0.3s linear;
+ -moz-transition: color 0.3s linear;
+ -o-transition: color 0.3s linear;
+ -ms-transition: color 0.3s linear;
+ transition: color 0.3s linear;
+}
+.radio .form-check-sign{
+ padding-left: 28px;
+}
+
+.form-check-radio.form-check-inline .form-check-label {
+ padding-left: 5px;
+ margin-right: 10px;
+}
+
+.form-check .form-check-sign::before,
+.form-check .form-check-sign::after{
+ content: " ";
+ display: inline-block;
+ position: absolute;
+ width: 17px;
+ height: 17px;
+ left: 0;
+ cursor: pointer;
+ border-radius: 3px;
+ top: 0;
+ border: 1px solid darken($dark-gray,10%);
+ -webkit-transition: opacity 0.3s linear;
+ -moz-transition: opacity 0.3s linear;
+ -o-transition: opacity 0.3s linear;
+ -ms-transition: opacity 0.3s linear;
+ transition: opacity 0.3s linear;
+}
+
+.form-check input[type="checkbox"]:checked + .form-check-sign::before,
+.form-check input[type="checkbox"]:checked + .form-check-sign::before{
+ border: none;
+ background-color: $primary;
+}
+
+ .form-check .form-check-sign::after{
+ font-family: 'nucleo';
+ content: "\ea1b";
+ top: 0px;
+ text-align: center;
+ font-size: 14px;
+ opacity: 0;
+ color: $white;
+ font-weight: $font-weight-bold;
+ border: 0;
+ background-color: inherit;
+}
+
+.form-check.disabled .form-check-label,
+.form-check.disabled .form-check-label {
+ color: $dark-gray;
+ opacity: .5;
+ cursor: not-allowed;
+}
+
+.form-check input[type="checkbox"],
+.radio input[type="radio"]{
+ opacity: 0;
+ position: absolute;
+ visibility: hidden;
+}
+.form-check input[type="checkbox"]:checked + .form-check-sign::after{
+ opacity: 1;
+ font-size: 10px;
+ margin-top: 0;
+}
+
+
+.form-check input[type="checkbox"]+ .form-check-sign::after{
+ opacity: 0;
+ font-size: 10px;
+ margin-top: 0;
+}
+
+.form-control input[type="checkbox"]:disabled + .form-check-sign::before,
+.checkbox input[type="checkbox"]:disabled + .form-check-sign::after{
+ cursor: not-allowed;
+}
+
+.form-check input[type="checkbox"]:disabled + .form-check-sign,
+.form-check input[type="radio"]:disabled + .form-check-sign{
+ pointer-events: none;
+}
+
+.form-check-radio .form-check-label{
+ padding-top: 3px;
+}
+.form-check-radio .form-check-sign::before,
+.form-check-radio .form-check-sign::after{
+ content: " ";
+ width: 18px;
+ height: 18px;
+ border-radius: 50%;
+ border: 1px solid darken($dark-gray,10%);
+ display: inline-block;
+ position: absolute;
+ left: 0px;
+ top: 3px;
+ padding: 1px;
+ -webkit-transition: opacity 0.3s linear;
+ -moz-transition: opacity 0.3s linear;
+ -o-transition: opacity 0.3s linear;
+ -ms-transition: opacity 0.3s linear;
+ transition: opacity 0.3s linear;
+}
+
+.form-check-radio input[type="radio"] + .form-check-sign:after,
+.form-check-radio input[type="radio"] {
+ opacity: 0;
+}
+.form-check-radio input[type="radio"]:checked + .form-check-sign::after {
+ width: 6px;
+ height: 6px;
+ background-color: $primary;
+ border-color: $primary;
+ top: 9px;
+ left: 6px;
+ opacity: 1;
+}
+
+.form-check-radio input[type="radio"]:checked + .form-check-sign::before {
+ border-color: $primary;
+}
+
+
+.form-check-radio input[type="radio"]:checked + .form-check-sign::after{
+ opacity: 1;
+}
+
+.form-check-radio input[type="radio"]:disabled + .form-check-sign {
+ color: $dark-gray;
+}
+
+.form-check-radio input[type="radio"]:disabled + .form-check-sign::before,
+.form-check-radio input[type="radio"]:disabled + .form-check-sign::after {
+ color: $dark-gray;
+}
diff --git a/src/assets/scss/black-dashboard/custom/_dropdown.scss b/src/assets/scss/black-dashboard/custom/_dropdown.scss
new file mode 100644
index 0000000..34f555c
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_dropdown.scss
@@ -0,0 +1,359 @@
+.dropdown-menu {
+ border: 0;
+ box-shadow: 0px 10px 50px 0px rgba(0, 0, 0, 0.2);
+ border-radius: $border-radius-xs;
+ @include transitions($fast-transition-time, $transition-linear);
+
+ &.dropdown-menu-right {
+ &:before, &:after {
+ left:auto;
+ right: 10px;
+ }
+ }
+
+ &.dropdown-black {
+ background: linear-gradient(to bottom, $black 0%, $black-states 100%);
+ border: 1px solid $default;
+ .dropdown-item {
+ color: rgba(255, 255, 255, 0.7);
+ }
+
+ .dropdown-divider {
+ border-color: $default;
+ }
+
+ &:before {
+ color: $black;
+ z-index: 2;
+ }
+
+ &:after {
+ display: inline-block;
+ position: absolute;
+ width: 0;
+ height: 0;
+ z-index: 1;
+ vertical-align: middle;
+ content: "";
+ top: -6px;
+ left: 10px;
+ right: auto;
+ color: $default;
+ border-bottom: .4em solid;
+ border-right: .4em solid transparent;
+ border-left: .4em solid transparent;
+ }
+
+ &.dropdown-menu-right {
+ &:after {
+ left: auto;
+ right: 10px;
+ }
+ }
+
+ .dropup & {
+ &:after {
+ color: $black-states;
+ z-index: 2;
+ }
+
+ &:before {
+ display: inline-block;
+ position: absolute;
+ width: 0;
+ height: 0;
+ vertical-align: middle;
+ content: "";
+ top: auto;
+ bottom: -6px;
+ right: auto;
+ left: 10px;
+ color: $dark-background;
+ border-top: .4em solid;
+ border-right: .4em solid transparent;
+ border-left: .4em solid transparent;
+ border-bottom: none;
+ z-index: 1;
+ }
+ }
+ }
+
+ i {
+ margin-right: 5px;
+ position: relative;
+ top: 1px;
+ }
+
+ .tim-icons {
+ margin-right: 10px;
+ position: relative;
+ top: 4px;
+ font-size: 18px;
+ margin-top: -5px;
+ opacity: .5;
+ }
+
+ .dropdown-item {
+ &.active,
+ &:active{
+ color: inherit;
+ }
+ }
+
+ .dropup & {
+ &:before {
+ display: none;
+ }
+
+ &:after {
+ display: inline-block;
+ position: absolute;
+ width: 0;
+ height: 0;
+ vertical-align: middle;
+ content: "";
+ top: auto;
+ bottom: -5px;
+ right: auto;
+ left: 10px;
+ color: $white;
+ border-top: .4em solid;
+ border-right: .4em solid transparent;
+ border-left: .4em solid transparent;
+ border-bottom: none;
+ }
+
+ &.dropdown-menu-right {
+ &:after, &:before {
+ right: 10px;
+ left: auto;
+ }
+ }
+ }
+
+
+
+ &:before {
+ display: inline-block;
+ position: absolute;
+ width: 0;
+ height: 0;
+ vertical-align: middle;
+ content: "";
+ top: -5px;
+ left: 10px;
+ right: auto;
+ color: $white;
+ border-bottom: .4em solid;
+ border-right: .4em solid transparent;
+ border-left: .4em solid transparent;
+ }
+
+
+
+ &.dropdown-menu-right {
+ right: 0 !important;
+ left: auto !important;
+ }
+
+ .dropdown-item,
+ .bootstrap-select &.inner li a {
+ font-size: $font-size-sm;
+ padding-top: .6rem;
+ padding-bottom: .6rem;
+ margin-top: 5px;
+ @include transitions($fast-transition-time, $transition-linear);
+
+ &:hover,
+ &:focus {
+ background-color: $opacity-gray-3;
+ }
+
+ &.disabled,
+ &:disabled {
+ color: $default-opacity;
+
+ &:hover,
+ &:focus {
+ background-color: transparent;
+ box-shadow: none;
+ }
+ }
+ }
+
+
+ .dropdown-divider {
+ background-color: $opacity-gray-5;
+ }
+
+ .dropdown-header:not([href]):not([tabindex]) {
+ color: $default-opacity;
+ font-size: $font-size-xs;
+ text-transform: uppercase;
+ font-weight: $font-weight-bold;
+ }
+
+ &.dropdown-primary {
+ @include dropdown-colors(darken($primary, 3%),$opacity-8,$white, $opacity-2);
+ }
+
+ &.dropdown-info {
+ @include dropdown-colors(darken($info, 3%),$opacity-8,$white, $opacity-2);
+ }
+
+ &.dropdown-danger {
+ @include dropdown-colors(darken($danger, 3%),$opacity-8,$white, $opacity-2);
+ }
+
+ &.dropdown-success {
+ @include dropdown-colors(darken($success, 3%),$opacity-8,$white, $opacity-2);
+ }
+
+ &.dropdown-warning {
+ @include dropdown-colors(darken($warning, 3%),$opacity-8,$white, $opacity-2);
+ }
+
+ .dropdown &,
+ .dropup:not(.bootstrap-select) &,
+ .bootstrap-select &:not(.inner),
+ &.bootstrap-datetimepicker-widget.bottom {
+ @include transform-translate-y-dropdown(-20px);
+ visibility: hidden;
+ display: block;
+ @include opacity(0);
+ top: 100% !important;
+ }
+
+ &.bootstrap-datetimepicker-widget.top {
+ @include transform-translate-y-dropdown(-20px);
+ visibility: hidden;
+ display: block;
+ @include opacity(0);
+ }
+
+ &.bootstrap-datetimepicker-widget.top,
+ &.bootstrap-datetimepicker-widget.bottom {
+ @include transform-translate-y-dropdown(-20px);
+ }
+
+ .bootstrap-select.dropup &:not(.inner){
+ @include transform-translate-y-dropdown(25px);
+ }
+
+ .dropup:not(.bootstrap-select) &{
+ @include transform-translate-y-dropdown(20px);
+ top: auto !important;
+ bottom: 100%;
+ }
+
+ .dropdown.show &,
+ .bootstrap-select.show &:not(.inner),
+ &.bootstrap-datetimepicker-widget.top.open,
+ &.bootstrap-datetimepicker-widget.bottom.open,
+ .dropup.show:not(.bootstrap-select) &,
+ .navbar .dropdown.show &{
+ @include opacity(1);
+ visibility: visible;
+ @include transform-translate-y-dropdown(1px);
+ }
+
+ &.bootstrap-datetimepicker-widget.top.open,
+ &.bootstrap-datetimepicker-widget.bottom.open{
+ @include transform-translate-y-dropdown(0px);
+ }
+
+ .dropup.show:not(.bootstrap-select) &{
+ @include transform-translate-y-dropdown(-2px);
+ }
+
+ &.dropdown-navbar{
+ left: -80px;
+ &:before, &:after{
+ left: auto;
+ right: 17px;
+ }
+ }
+
+
+}
+
+.btn{
+ cursor: pointer;
+
+ &.dropdown-toggle[data-toggle="dropdown"]{
+ padding:10px;
+ margin: 0;
+ margin-bottom: 5px;
+
+ &:after{
+ content: "";
+ margin-left: 5px;
+ }
+
+ }
+
+ span.bs-caret{
+ display: none;
+ }
+
+ &.btn-link{
+ &.dropdown-toggle{
+ height: 22px;
+ padding: 0;
+ margin-right: 5px;
+ }
+ }
+}
+
+.dropdown-toggle:after{
+
+ content: unset;
+
+}
+
+.btn:not(:disabled):not(.disabled).active:focus,
+ .btn:not(:disabled):not(.disabled):active:focus,
+ .show>.btn.dropdown-toggle:focus{
+ box-shadow: none;
+ }
+
+
+// Dropown: Sizes
+
+.dropdown-menu-sm {
+ min-width: 100px;
+ border: $border-radius-lg;
+}
+
+.dropdown-menu-lg {
+ min-width: 260px;
+ border-radius: $border-radius-lg;
+}
+
+.dropdown-menu-xl {
+ min-width: 450px;
+ border-radius: $border-radius-lg;
+}
+
+@media screen and (max-width: 991px){
+ .dropdown-toggle:after{
+ display: inline-block;
+ width: 0;
+ height: 0;
+ margin-left: .255em;
+ vertical-align: .255em;
+ content: "";
+ border-top: .3em solid;
+ border-right: .3em solid transparent;
+ border-bottom: 0;
+ border-left: .3em solid transparent;
+ }
+
+}
+
+
+@media screen and (min-width: 992px){
+ .dropdown-menu .dropdown-item{
+ color: $dark-gray;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_fixed-plugin.scss b/src/assets/scss/black-dashboard/custom/_fixed-plugin.scss
new file mode 100644
index 0000000..74eb284
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_fixed-plugin.scss
@@ -0,0 +1,324 @@
+.fixed-plugin{
+ position: fixed;
+ right: 0;
+ width: 64px;
+ background: rgba(0,0,0,.3);
+ z-index: 1031;
+ border-radius: 8px 0 0 8px;
+ text-align: center;
+ top: 130px;
+
+ li > a,
+ .badge{
+ transition: all .34s;
+ -webkit-transition: all .34s;
+ -moz-transition: all .34s;
+ }
+
+ .fa-cog{
+ color: $white;
+ padding: 10px;
+ border-radius: 0 0 6px 6px;
+ width: auto;
+ }
+
+ .dropdown-menu{
+ right: 80px;
+ left: auto !important;
+ top: -52px !important;
+ width: 290px;
+ border-radius: 0.1875rem;
+ padding: 0 10px;
+ background: linear-gradient($black, $black-states);
+ }
+
+ .dropdown .dropdown-menu .tim-icons{
+ top: 5px;
+ }
+
+ .dropdown-menu:after,
+ .dropdown-menu:before{
+ right: 10px;
+ margin-left: auto;
+ left: auto;
+ }
+
+ .fa-circle-thin{
+ color: $white;
+ }
+
+ .active .fa-circle-thin{
+ color: $active-blue;
+ }
+
+ .dropdown-menu > .active > a,
+ .dropdown-menu > .active > a:hover,
+ .dropdown-menu > .active > a:focus{
+ color: $active-gray;
+ text-align: center;
+ }
+
+ img{
+ border-radius: 0;
+ width: 100%;
+ height: 100px;
+ margin: 0 auto;
+ }
+
+ .dropdown-menu li > a:hover,
+ .dropdown-menu li > a:focus{
+ box-shadow: none;
+ }
+
+ .badge{
+ border: 2px solid $white;
+ border-radius: 50%;
+ cursor: pointer;
+ display: inline-block;
+ height: 23px;
+ margin-right: 5px;
+ position: relative;
+ width: 23px;
+ }
+
+ .badge.active,
+ .badge:hover{
+ border-color: $black-states;
+ }
+
+ .light-badge, .dark-badge{
+ margin:0;
+ border: 1px solid $info;
+ &:hover{
+ border: 1px solid $info;
+ }
+ }
+
+ .light-badge{
+ background: $white;
+ &:hover{
+ background: $white;
+ }
+ }
+
+ .dark-badge{
+ background: $black;
+ &:hover{
+ background: $black;
+ }
+ }
+
+ h5{
+ margin: 10px;
+ }
+
+ .dropdown-menu li{
+ display: block;
+ padding: 18px 2px;
+ width: 25%;
+ float: left;
+ }
+
+ li.adjustments-line,
+ li.header-title,
+ li.button-container{
+ width: 100%;
+ height: 50px;
+ min-height: inherit;
+ }
+
+ li.button-container{
+ height: auto;
+
+ div{
+ margin-bottom: 5px;
+ }
+ }
+
+ #sharrreTitle{
+ text-align: center;
+ padding: 10px 0;
+ height: 50px;
+ }
+
+ li.header-title{
+ color: $white;
+ height: 30px;
+ line-height: 25px;
+ font-size: 12px;
+ font-weight: 600;
+ text-align: center;
+ text-transform: uppercase;
+ }
+
+ .adjustments-line{
+
+ a{
+ color: transparent;
+
+ .badge-colors{
+ position: relative;
+ top: -2px;
+ }
+
+ a:hover,
+ a:focus{
+ color: transparent;
+ }
+ }
+
+ .togglebutton{
+ text-align: center;
+
+ .label-switch{
+ position: relative;
+ left: -10px;
+ font-size: $font-size-xs;
+ color: $white;
+
+ &.label-right{
+ left: 10px;
+ }
+ }
+
+ .toggle{
+ margin-right: 0;
+ }
+ }
+
+ .color-label{
+ position: relative;
+ top: -7px;
+ font-size: $font-size-xs;
+ color: $white;
+ }
+
+ .dropdown-menu > li.adjustments-line > a{
+ padding-right: 0;
+ padding-left: 0;
+ border-bottom: 1px solid #ddd;
+ border-radius: 0;
+ margin: 0;
+ }
+ }
+
+
+
+ .dropdown-menu{
+ > li{
+ & > a.img-holder{
+ font-size: $font-paragraph;
+ text-align: center;
+ border-radius: 10px;
+ background-color: $white;
+ border: 3px solid $white;
+ padding-left: 0;
+ padding-right: 0;
+ opacity: 1;
+ cursor: pointer;
+ display: block;
+ max-height: 100px;
+ overflow: hidden;
+ padding: 0;
+
+ img{
+ margin-top: auto;
+ }
+ }
+
+ a.switch-trigger:hover,
+ & > a.switch-trigger:focus{
+ background-color: transparent;
+ }
+
+ &:hover,
+ &:focus{
+ > a.img-holder{
+ border-color: rgba(0, 187, 255, 0.53);;
+ }
+ }
+ }
+
+ > .active > a.img-holder,
+ > .active > a.img-holder{
+ border-color: $active-blue;
+ background-color: $white;
+ }
+
+ }
+
+ .btn-social{
+ width: 50%;
+ display: block;
+ width: 48%;
+ float: left;
+ font-weight: 600;
+ }
+
+ .btn-social{
+ i{
+ margin-right: 5px;
+ }
+
+ &:first-child{
+ margin-right: 2%;
+ }
+ }
+
+ .dropdown{
+ .dropdown-menu{
+ -webkit-transform: translateY(-15%);
+ -moz-transform: translateY(-15%);
+ -o-transform: translateY(-15%);
+ -ms-transform: translateY(-15%);
+ transform: translateY(-15%);
+ top: 27px;
+ opacity: 0;
+
+ transform-origin: 0 0;
+
+ &:before{
+ border-bottom: .4em solid rgba(0, 0, 0, 0);
+ border-left: .4em solid rgba(0,0,0,0.2);
+ border-top: .4em solid rgba(0,0,0,0);
+ right: -16px;
+ top: 46px;
+ }
+
+ &:after{
+ border-bottom: .4em solid rgba(0, 0, 0, 0);
+ border-left: .4em solid $black;
+ border-top: .4em solid rgba(0,0,0,0);
+ right: -16px;
+ }
+
+ &:before,
+ &:after{
+ content: "";
+ display: inline-block;
+ position: absolute;
+ top: 74px;
+ width: 16px;
+ transform: translateY(-50%);
+ -webkit-transform: translateY(-50%);
+ -moz-transform: translateY(-50%);
+ }
+ }
+
+ &.show .dropdown-menu{
+ opacity: 1;
+
+ -webkit-transform: translateY(-13%);
+ -moz-transform: translateY(-13%);
+ -o-transform: translateY(-13%);
+ -ms-transform: translateY(-13%);
+ transform: translateY(-13%);
+
+ transform-origin: 0 0;
+ }
+ }
+
+ .bootstrap-switch{
+ margin:0;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_footer.scss b/src/assets/scss/black-dashboard/custom/_footer.scss
new file mode 100644
index 0000000..6935af1
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_footer.scss
@@ -0,0 +1,94 @@
+.footer{
+ padding: 24px 0 24px 250px;
+
+ [class*="container-"] {
+ padding: 0;
+ }
+
+ .nav{
+ display: inline-block;
+ float: left;
+ margin-bottom: 0;
+ padding-left: 30px;
+ list-style: none;
+ }
+
+ .nav-item{
+ display: inline-block;
+
+ &:first-child a {
+ padding-left: 0;
+ }
+ }
+
+ .nav-link {
+ color: $white;
+ padding: 0 $padding-base-vertical;
+ font-size: $font-size-sm;
+ text-transform: uppercase;
+ text-decoration: none;
+
+ &:hover{
+ text-decoration: none;
+ }
+ }
+
+
+
+ .copyright{
+ font-size: $font-size-sm;
+ line-height: 1.8;
+ color: $white;
+ }
+
+ &:after{
+ display: table;
+ clear: both;
+ content: " ";
+ }
+}
+
+
+@media screen and (max-width: 991px){
+ .footer {
+ padding-left: 0px;
+
+ .copyright {
+ text-align: right;
+ margin-right: 15px;
+ }
+ }
+}
+
+@media screen and (min-width: 992px){
+ .footer {
+ .copyright {
+ float: right;
+ padding-right: 30px;
+ }
+ }
+}
+
+@media screen and (max-width: 768px){
+ .footer {
+ nav {
+ display: block;
+ margin-bottom: 5px;
+ float: none;
+ }
+ }
+}
+
+@media screen and (max-width: 576px){
+ .footer {
+ text-align: center;
+ .copyright {
+ text-align: center;
+ }
+
+ .nav{
+ float: none;
+ padding-left: 0;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_forms.scss b/src/assets/scss/black-dashboard/custom/_forms.scss
new file mode 100644
index 0000000..9236dc3
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_forms.scss
@@ -0,0 +1,133 @@
+/* Form controls */
+@include form-control-placeholder(#6c757c, 1);
+
+.form-control{
+ border-color: lighten($black,5%);
+ border-radius: $border-radius-lg;
+ font-size: $font-size-sm;
+ @include transition-input-focus-color();
+
+
+ &:focus{
+ border-color: $primary;
+ background-color: $input-bg;
+ @include box-shadow(none);
+
+ & + .input-group-append .input-group-text,
+ & ~ .input-group-append .input-group-text,
+ & + .input-group-prepend .input-group-text,
+ & ~ .input-group-prepend .input-group-text{
+ border: 1px solid $primary;
+ border-left: none;
+ background-color: $transparent-bg;
+ }
+ }
+
+ .has-success &,
+ .has-error &,
+ .has-success &:focus,
+ .has-error &:focus{
+ @include box-shadow(none);
+ }
+
+ .has-danger &,
+ .has-success &{
+ &.form-control-success,
+ &.form-control-danger{
+ background-image: none;
+ }
+ }
+
+ & + .form-control-feedback{
+ border-radius: $border-radius-lg;
+ margin-top: -7px;
+ position: absolute;
+ right: 10px;
+ top: 50%;
+ vertical-align: middle;
+ }
+
+ .open &{
+ border-radius: $border-radius-lg $border-radius-lg 0 0;
+ border-bottom-color: $transparent-bg;
+ }
+
+ & + .input-group-append .input-group-text,
+ & + .input-group-prepend .input-group-text{
+ background-color: $white;
+ }
+
+}
+
+.has-success .input-group-append .input-group-text,
+.has-success .input-group-prepend .input-group-text,
+.has-success .form-control{
+ border-color: lighten($black,5%);
+}
+
+.has-success .form-control:focus,
+.has-success.input-group-focus .input-group-append .input-group-text,
+.has-success.input-group-focus .input-group-prepend .input-group-text{
+ border-color: darken($success, 10%);
+}
+
+.has-danger .form-control,
+.has-danger .input-group-append .input-group-text,
+.has-danger .input-group-prepend .input-group-text,
+.has-danger.input-group-focus .input-group-prepend .input-group-text,
+.has-danger.input-group-focus .input-group-append .input-group-text{
+ border-color: lighten($danger-states,5%);
+ color: $danger-states;
+ background-color: rgba(222,222,222, .1);
+
+ &:focus{
+ background-color: $transparent-bg;
+ }
+}
+
+.has-success,
+.has-danger{
+ &:after{
+ font-family: 'nucleo';
+ content: "\ea1b";
+ display: inline-block;
+ position: absolute;
+ right: 20px;
+ top: 13px;
+ color: $success;
+ font-size: 11px;
+ }
+
+ &.form-control-lg{
+ &:after{
+ font-size: 13px;
+ top: 24px;
+ }
+ }
+
+ &.has-label{
+ &:after{
+ top: 37px;
+ }
+ }
+
+
+ &.form-check:after{
+ display: none !important;
+ }
+
+ &.form-check .form-check-label{
+ color: $success;
+ }
+}
+
+.has-danger{
+ &:after{
+ content: "\ea48";
+ color: $danger-states;
+ }
+
+ &.form-check .form-check-label{
+ color: $danger-states;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_functions.scss b/src/assets/scss/black-dashboard/custom/_functions.scss
new file mode 100644
index 0000000..99ef591
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_functions.scss
@@ -0,0 +1,23 @@
+// Retrieve color Sass maps
+
+@function section-color($key: "primary") {
+ @return map-get($section-colors, $key);
+}
+
+// Lines colors
+
+@function shapes-primary-color($key: "step-1-gradient-bg") {
+ @return map-get($shapes-primary-colors, $key);
+}
+
+@function shapes-default-color($key: "step-1-gradient-bg") {
+ @return map-get($shapes-default-colors, $key);
+}
+
+@function lines-light-color($key: "step-1-gradient-bg") {
+ @return map-get($shapes-light-colors, $key);
+}
+
+@function shapes-dark-color($key: "step-1-gradient-bg") {
+ @return map-get($shapes-dark-colors, $key);
+}
\ No newline at end of file
diff --git a/src/assets/scss/black-dashboard/custom/_images.scss b/src/assets/scss/black-dashboard/custom/_images.scss
new file mode 100644
index 0000000..99a06c3
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_images.scss
@@ -0,0 +1,7 @@
+img{
+ max-width: 100%;
+ border-radius: $border-radius-sm;
+}
+.img-raised{
+ box-shadow: $box-shadow-raised;
+}
diff --git a/src/assets/scss/black-dashboard/custom/_input-group.scss b/src/assets/scss/black-dashboard/custom/_input-group.scss
new file mode 100644
index 0000000..9f99990
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_input-group.scss
@@ -0,0 +1,343 @@
+.form-group.has-danger .error,
+.input-group.has-danger .error {
+ color: $danger-states;
+}
+
+
+.form-group.has-success .error,
+.input-group.has-success .error {
+ color: $success;
+}
+
+@include form-control-lg-padding($padding-lg-vertical, $padding-input-horizontal);
+@include input-base-padding($padding-input-vertical, $padding-input-horizontal);
+
+.form-group.no-border,
+.input-group.no-border{
+ .form-control,
+ .form-control + .input-group-prepend .input-group-text,
+ .form-control + .input-group-append .input-group-text{
+
+ background-color: lighten($black,1%);
+ border: medium none;
+ &:focus,
+ &:active,
+ &:active{
+ border: medium none;
+ background-color: lighten($black,2%);
+ }
+ }
+
+ .form-control{
+ &:focus{
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ background-color: lighten($black,2%);
+ }
+ }
+ }
+
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: lighten($black,1%);;
+ border: none;
+ }
+}
+
+.has-error{
+ .form-control-feedback, .control-label{
+ color: $danger-states;
+ }
+}
+.has-success{
+ .form-control-feedback, .control-label{
+ color: $success;
+ }
+}
+
+.input-group-append .input-group-text,
+.input-group-prepend .input-group-text {
+ background-color: transparent;
+ border: 1px solid lighten($black,5%);
+ border-radius: $border-radius-lg;
+ color: $white;
+
+ & i{
+ opacity: .5;
+ }
+
+ @include transition-input-focus-color();
+
+ .has-danger.input-group-focus &{
+ background-color: $transparent-bg;
+ }
+
+ .has-success &{
+ background-color: $transparent-bg;
+ }
+ .has-danger .form-control:focus + &{
+ color: $danger-states;
+ }
+ .has-success .form-control:focus + &{
+ color: $success;
+ }
+
+ & + .form-control,
+ & ~ .form-control{
+ @include input-size($padding-base-vertical - 1, $padding-base-horizontal);
+ padding-left: 18px;
+ }
+
+ i{
+ width: 17px;
+ }
+}
+
+.input-group-append,
+.input-group-prepend .input-group-text,
+.input-group-prepend .input-group-text {
+ background-color: transparent;
+ border: 1px solid lighten($black,5%);
+ border-radius: $border-radius-lg;
+ color: $white;
+ margin: 0;
+}
+
+.input-group-append .input-group-text{
+ border-left: none;
+}
+.input-group-prepend .input-group-text{
+ border-right: none;
+}
+
+.input-group-focus{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: $white;
+ border-color: $primary;
+ background-color: $transparent-bg;
+ border-color: $primary;
+ }
+
+ &.no-border{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: lighten($black,2%);
+ }
+ }
+}
+
+.input-group,
+.form-group{
+ margin-bottom: 10px;
+ position: relative;
+
+ .form-control-static{
+ margin-top: 9px;
+ }
+}
+
+.input-group[disabled]{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: $light-gray;
+ }
+}
+
+.input-group .form-control:not(:first-child):not(:last-child), .input-group-btn:not(:first-child):not(:last-child){
+ border-radius: $border-radius-lg;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ border-left: 0 none;
+}
+
+.input-group .form-control:first-child,
+.input-group-btn:first-child > .dropdown-toggle,
+.input-group-btn:last-child > .btn:not(:last-child):not(.dropdown-toggle) {
+ border-right: 0 none;
+}
+.input-group .form-control:last-child,
+.input-group-btn:last-child > .dropdown-toggle,
+.input-group-btn:first-child > .btn:not(:first-child) {
+ border-left: 0 none;
+}
+.form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control {
+ background-color: $black-states;
+ color: $default;
+ cursor: not-allowed;
+}
+
+.input-group-btn .btn{
+ border-width: $border-thin;
+ padding: $padding-btn-vertical $padding-base-horizontal;
+}
+.input-group-btn .btn-default:not(.btn-fill){
+ border-color: $medium-gray;
+}
+
+.input-group-btn:last-child > .btn{
+ margin-left: 0;
+}
+
+textarea.form-control{
+ max-width: 100%;
+ max-height: 80px;
+ padding: 10px 10px 0 0;
+ resize: none;
+ border: none;
+ border-bottom: 1px solid lighten($black,5%);
+ border-radius: 0;
+ line-height: 2;
+
+ &:focus,
+ &:active{
+ border-left: none;
+ border-top: none;
+ border-right: none;
+ }
+}
+
+.has-success,
+.has-danger{
+
+ &.form-group .form-control,
+ &.form-group.no-border .form-control{
+ padding-right: $input-padding-horizontal + 21;
+ }
+}
+
+.form.form-newsletter .form-group{
+ float: left;
+ width: 78%;
+ margin-right: 2%;
+ margin-top: 9px;
+}
+
+.input-group .input-group-btn{
+ padding: 0 12px;
+}
+
+// Input files - hide actual input - requires specific markup in the sample.
+.form-group input[type=file] {
+ opacity: 0;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ z-index: 100;
+}
+
+.form-text{
+ font-size: $font-size-sm;
+ color: rgba($white,0.8);
+}
+
+.form-control-lg{
+ padding: 0;
+ font-size: inherit;
+ line-height: 0;
+ border-radius: 0;
+
+ .form-control {
+ height: calc(2.875rem + 2px);
+ }
+}
+
+.form-horizontal{
+ .col-form-label,
+ .label-on-right{
+ padding: 10px 5px 0 15px;
+ text-align: right;
+ max-width: 180px;
+ }
+
+ .checkbox-radios{
+ margin-bottom: 15px;
+
+ .form-check:first-child{
+ margin-top: 8px;
+ }
+ }
+
+ .label-on-right{
+ text-align: left;
+ padding: 10px 15px 0 5px;
+ }
+
+ .form-check-inline{
+ margin-top: 6px;
+ .form-check-label{
+ margin-right: 1.5rem;
+ }
+ }
+}
+
+.search-bar{
+ margin-left: $margin-lg-vertical;
+ .btn{
+ margin: 0;
+ }
+ &.input-group{
+ border-radius: 25px;
+ z-index: 4;
+ margin-bottom: 0;
+ height: 43px;
+ padding-right: 5px;
+ .input-group-addon{
+ padding: 10px;
+ background: transparent;
+ border: none;
+ color: rgba(255, 255, 255, 0.7);
+
+ }
+
+ i{
+ font-size: 20px;
+ color: $white;
+ margin-top: 0 !important;
+ }
+ input{
+ background: transparent;
+ border:none !important;
+ border-radius: 0;
+ padding: 12px !important;
+ font-size: 12px;
+ opacity: 0.5;
+ &:focus{
+ background: transparent;
+ }
+ }
+ .form-control{
+ opacity: 1;
+ color: $white;
+ &::placeholder{
+ color: white;
+ }
+ }
+ }
+ }
+
+ .modal-search .modal-dialog{
+ max-width: 1000px;
+ margin: 20px auto;
+ .form-control{
+ border: none;
+ color: $black;
+ &::placeholder{
+ color: $black;
+ }
+ }
+ }
+
+.input-group-prepend{
+ margin-right: 0;
+}
+.input-group-prepend,
+.input-group-append {
+ .tim-icons {
+ font-size: $font-paragraph;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_misc.scss b/src/assets/scss/black-dashboard/custom/_misc.scss
new file mode 100644
index 0000000..cd588ee
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_misc.scss
@@ -0,0 +1,229 @@
+
+/* Animations */
+.nav-pills .nav-link,
+.navbar,
+.nav-tabs .nav-link,
+.sidebar .nav a,
+.sidebar .nav a i,
+.sidebar .nav p,
+.navbar-collapse .navbar-nav .nav-link,
+.animation-transition-general,
+.tag,
+.tag [data-role="remove"],
+.animation-transition-general{
+ @include transitions($general-transition-time, $transition-ease);
+}
+
+//transition for dropdown caret
+.bootstrap-switch-label:before,
+.caret{
+ @include transitions($fast-transition-time, $transition-ease);
+}
+
+.dropdown-toggle[aria-expanded="true"]:after,
+a[data-toggle="collapse"][aria-expanded="true"] .caret,
+.card-collapse .card a[data-toggle="collapse"][aria-expanded="true"] i,
+.card-collapse .card a[data-toggle="collapse"].expanded i{
+ @include rotate-180();
+}
+
+.caret{
+ width: 0;
+ height: 0;
+ vertical-align: middle;
+ border-top: 4px dashed;
+ border-right: 4px solid transparent;
+ border-left: 4px solid transparent;
+ margin-top: -5px;
+ position: absolute;
+ top: 30px;
+ margin-left: 5px;
+}
+
+.pull-left{
+ float: left;
+}
+.pull-right{
+ float: right;
+}
+
+
+// card user profile page
+
+.card {
+ form {
+ label + .form-control {
+ margin-bottom: 20px;
+ }
+ }
+}
+
+.card {
+ .map-title {
+ color: $white;
+ }
+
+ &.card-chart {
+ .gmnoprint,
+ .gm-style-cc {
+ display: none !important;
+ }
+ }
+}
+
+// documentation
+
+.bd-docs {
+
+ h1,h2,h3,h4,h5,h6,p,ul li,ol li{
+ color:#2c2c2c;
+ }
+
+
+ .bd-content>table>thead>tr>th {
+ color: $black;
+
+ }
+
+ .blockquote, .blockquote p, .card p{
+ color: rgba($white,0.8);
+ }
+ .bd-example {
+ background: linear-gradient(#1e1e2f,#1e1e24);
+
+ }
+
+ .navbar {
+ border-top: none;
+
+ .navbar-nav .nav-link {
+ color: rgba(255,255,255,.8) !important;
+ }
+ }
+
+ .bd-example {
+
+ .btn{
+ margin: 4px 0;
+ }
+ .btn .badge {
+ display: inline-block;
+ }
+
+ .tim-icons{
+ color: $white;
+ }
+
+ .popover .popover-header {
+ color: hsla(0,0%,71%,.6);
+ }
+
+
+ .popover-body {
+ p {
+ color: $gray-900;
+ }
+ }
+
+ &.tooltip-demo p{
+ color: rgba($white,.8);
+ }
+ }
+
+ .card.card-body,
+ .card .card-body {
+ color: hsla(0,0%,100%,.8);
+ }
+
+ label,
+ .form-check {
+ color: hsla(0,0%,100%,.8);
+ }
+
+ .form-check + .btn {
+ margin-top: 20px;
+ }
+
+ .bd-example,
+ table {
+ thead th {
+ color: hsla(0,0%,100%,.8);
+ }
+
+ h1, h2, h3, h4, h5, h6,
+ .h1, .h2, .h3, .h4, .h5, .h6 {
+ color: hsla(0,0%,100%,.8);
+ }
+
+ .datepicker{
+ thead th, table thead th,.tim-icons{
+ color: $primary;
+ }
+
+ }
+
+ .picker-switch .tim-icons{
+ color: $primary;
+ }
+ }
+
+ .footer {
+ .container-fluid > nav {
+ display: inline-block;
+ }
+ }
+}
+.modal.show .modal-dialog {
+ -webkit-transform: translate(0,30%);
+ transform: translate(0,30%);
+}
+
+code {
+ color: $pink;
+}
+
+@media screen and (max-width: 991px){
+ .profile-photo .profile-photo-small{
+ margin-left: -2px;
+ }
+
+ .button-dropdown{
+ display: none;
+ }
+
+ #searchModal .modal-dialog{
+ margin: 20px;
+ }
+
+ #minimizeSidebar{
+ display: none;
+ }
+
+}
+
+
+@media screen and (max-width: 768px){
+
+ .landing-page .section-story-overview .image-container:nth-child(2){
+ margin-left: 0;
+ margin-bottom: 30px;
+ }
+
+}
+
+@media screen and (max-width: 576px){
+ .page-header{
+ .container h6.category-absolute{
+ width: 90%;
+ }
+ }
+
+ .form-horizontal .col-form-label, .form-horizontal .label-on-right{
+ text-align: inherit;
+ padding-top: 0;
+ code{
+ padding: 0 10px;
+ }
+ }
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/_mixins.scss b/src/assets/scss/black-dashboard/custom/_mixins.scss
new file mode 100644
index 0000000..a378598
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_mixins.scss
@@ -0,0 +1,15 @@
+@import "mixins/alert.scss";
+@import "mixins/badges.scss";
+@import "mixins/background-variant.scss";
+@import "mixins/buttons.scss";
+@import "mixins/forms.scss";
+@import "mixins/icon.scss";
+@import "mixins/modals.scss";
+@import "mixins/popovers.scss";
+@import "mixins/page-header.scss";
+@import "mixins/vendor-prefixes.scss";
+@import "mixins/opacity.scss";
+@import "mixins/modals.scss";
+@import "mixins/inputs.scss";
+@import "mixins/dropdown.scss";
+@import "mixins/wizard.scss";
diff --git a/src/assets/scss/black-dashboard/custom/_modal.scss b/src/assets/scss/black-dashboard/custom/_modal.scss
new file mode 100644
index 0000000..e43c32f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_modal.scss
@@ -0,0 +1,161 @@
+// Modals
+// Design element Dialogs
+// --------------------------------------------------
+.modal-content {
+ border: 0;
+
+ // Modal header
+ // Top section of the modal w/ title and dismiss
+
+ .modal-header {
+ border-bottom: none;
+
+ & button {
+ position: absolute;
+ right: 27px;
+ top: 24px;
+ outline: 0;
+ padding: 1rem;
+ margin: -1rem -1rem -1rem auto;
+ }
+ .title{
+ color: $black;
+ margin-top: 5px;
+ margin-bottom: 0;
+ }
+
+ .modal-title{
+ color: $black;
+ }
+
+ i.tim-icons {
+ font-size: 16px;
+ }
+ }
+
+
+ // Modal body
+ // Where all modal content resides (sibling of .modal-header and .modal-footer)
+ .modal-body {
+ line-height: 1.9;
+
+ p{
+ color: $black;
+ }
+ }
+ // Footer (for actions)
+ .modal-footer {
+ border-top: 0;
+ -webkit-justify-content: space-between; /* Safari 6.1+ */
+ justify-content: space-between;
+
+ button {
+ margin: 0;
+ padding-left: 16px;
+ padding-right: 16px;
+ width: auto;
+
+ &.pull-left {
+ padding-left: 5px;
+ padding-right: 5px;
+ position: relative;
+ left: -5px;
+ }
+ }
+
+ }
+ .modal-body + .modal-footer {
+ padding-top: 0;
+ }
+}
+.modal-backdrop {
+ background: rgba(0,0,0,0.3);
+}
+
+.modal{
+
+ &.modal-default{
+ @include modal-colors($white, $black);
+ }
+
+ &.modal-primary{
+ @include modal-colors($primary, $white);
+ }
+
+ &.modal-danger{
+ @include modal-colors($danger, $white);
+ }
+
+ &.modal-warning{
+ @include modal-colors($warning, $white);
+ }
+
+ &.modal-success{
+ @include modal-colors($success, $white);
+ }
+
+ &.modal-info{
+ @include modal-colors($info, $white);
+ }
+
+ .modal-header .close{
+ color: $danger;
+ text-shadow: none;
+
+ &:hover,
+ &:focus{
+ opacity: 1;
+ }
+ }
+
+ &.modal-black{
+ .modal-content{
+ background: linear-gradient(to bottom, $black 0%, $black-states 100%);
+ color: rgba($white, 0.8);
+ .modal-header{
+ .modal-title, .title{
+ color: rgba($white, 0.9);
+ }
+ }
+ .modal-body{
+ p{
+ color: rgba($white, 0.8);
+ }
+ }
+ }
+ h1, h2, h3, h4, h5, h6, p{
+ color: $white;
+ }
+ }
+}
+
+.modal-search{
+ .modal-dialog{
+ margin: 20px auto;
+ max-width: 650px;
+ input{
+ border: none;
+ font-size: 17px;
+ font-weight: 100;
+ }
+ span{
+ font-size: 35px;
+ color: $search-gray;
+ }
+ }
+ .modal-content{
+ .modal-header{
+ padding: 24px;
+ }
+ }
+
+ .modal-header .close{
+ color: $dark-background;
+ top: 30px !important;
+ }
+
+ .modal-footer{
+ border-top: 2px solid #f9f9f9;
+ margin: 0px 25px 20px;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_navbar.scss b/src/assets/scss/black-dashboard/custom/_navbar.scss
new file mode 100644
index 0000000..b5d9402
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_navbar.scss
@@ -0,0 +1,413 @@
+.navbar {
+ padding: 10px 30px 10px 15px;
+ width: 100%;
+ z-index: 1050;
+ background: $navbar-color;
+
+ .photo {
+ display: inline-block;
+ height: 30px;
+ width: 30px;
+ border-radius: 50%;
+ vertical-align: middle;
+ overflow: hidden;
+ img{
+ width: 100%;
+ }
+ }
+
+ .navbar-wrapper {
+ display: flex;
+ align-items: center;
+ }
+
+ .navbar-text {
+ color: $white;
+ }
+
+ .btn{
+ margin: 0 5px 0 10px;
+ }
+
+ &.navbar-absolute{
+ position: absolute;
+ z-index: 1050;
+ }
+
+
+ &.navbar-transparent{
+ background: transparent !important;
+ }
+
+ &.bg-white{
+ .navbar-nav{
+ .search-bar.input-group{
+ i{
+ color: $black;
+ }
+ }
+
+ .search-bar.input-group .form-control{
+ background: rgba($black,0.1);
+ border-radius: 4px;
+ }
+
+ a.nav-link{
+ color: $black !important;
+ p{
+ color: $black;
+ }
+ }
+
+ }
+
+ .navbar-text, .navbar-brand{
+ color: $black;
+ }
+
+ .form-control {
+ color: $black !important;
+ }
+
+ .form-control::placeholder {
+ color: $dark-gray !important;
+ }
+
+ }
+
+ &.bg-dark {
+ background: $black !important;
+ }
+
+ &.bg-primary {
+ background-color: $primary !important;
+ }
+
+ &.bg-warning {
+ background-color: $warning !important;
+ }
+
+ &.bg-info {
+ background-color: $info !important;
+ }
+
+ &.bg-success {
+ background-color: darken($success, 10%) !important;
+ }
+
+ &.bg-danger {
+ background-color: $danger !important;
+ }
+
+ .navbar-brand {
+ position: fixed;
+ padding-top: .3125rem;
+ padding-bottom: .3125rem;
+ color: $white;
+ margin-left: 17px;
+ margin-top: 3px;
+ text-transform: uppercase;
+ font-size: $font-paragraph;
+ }
+
+ .navbar-toggle button:focus, .navbar-toggler{
+ outline: none;
+ }
+
+}
+
+.navbar-minimize-fixed {
+ position: fixed;
+ margin-left: 40px;
+ margin-top: 14px;
+ transition: 0.3s ease;
+ color: white;
+ z-index: 20;
+ opacity: 0;
+ transition: 0.2s ease;
+ button{
+ i {
+ font-size: 20px;
+ }
+ }
+}
+
+.notification {
+ background: $danger;
+ color: $white;
+ border-radius: $border-radius-xl;
+ height: 6px;
+ width: 6px;
+ position: absolute;
+ text-align: center;
+ font-size: 12px;
+ font-weight: 800;
+ top: 10px;
+ right: 10px;
+ border: 1px solid $danger;
+}
+
+.navbar-nav li{
+ padding: 0 10px;
+ a{
+ color: $white;
+ }
+ i{
+ vertical-align: middle;
+ font-size: 20px;
+ }
+}
+
+@media screen and (max-width: 991px){
+ .navbar{
+ .container-fluid{
+ padding-right: 15px;
+ padding-left: 15px;
+ }
+
+ .navbar-collapse{
+ .input-group{
+ margin: 0;
+ margin-top: 5px;
+ }
+ }
+
+ .navbar-nav{
+
+ .btn{
+ margin-left: -3px;
+ display: flex;
+
+ i {
+ margin-right: 12px;
+ }
+
+ span {
+ margin: 0;
+ text-transform: uppercase;
+ font-weight: 300;
+
+ &,
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus {
+ color: $black !important;
+ }
+ }
+ }
+
+ a.nav-link{
+ i{
+ opacity: 1;
+ margin-left: 4px;
+ margin-right: 5px;
+ }
+ p{
+ display: inline-block;
+ text-transform: uppercase;
+ margin-left: 7px;
+ }
+ }
+
+ .modal-search .modal-dialog{
+ padding: 0 40px;
+ }
+ .dropdown{
+ margin: 5px 0;
+ .nav-link{
+ padding-bottom: 0;
+ }
+ .dropdown-menu{
+ .dropdown-item{
+ margin-top: 0;
+ padding-left: 24px;
+ }
+ }
+ }
+ }
+
+ .dropdown.show .dropdown-menu{
+ display: block;
+
+ }
+
+ .dropdown .dropdown-menu{
+ display: none;
+ li a{
+ color: $black;
+ }
+ }
+
+ .dropdown.show .dropdown-menu,
+ .dropdown .dropdown-menu{
+ background-color: transparent;
+ border: 0;
+ transition: none;
+ -webkit-box-shadow: none;
+ box-shadow: none;
+ width: auto;
+ margin: 0px 1rem;
+ margin-top: 0px;
+
+ &:before{
+ display: none;
+ }
+ }
+
+ .dropdown-menu .dropdown-item:focus,
+ .dropdown-menu .dropdown-item:hover{
+ color: $white;
+ }
+
+ &.bg-white .dropdown-menu .dropdown-item:focus,
+ &.bg-white .dropdown-menu .dropdown-item:hover{
+ color: $default;
+ }
+
+ button.navbar-toggler[data-target="#navigation"]{
+ padding-top: 0;
+ }
+
+ .navbar-toggler-bar{
+ display: block;
+ position: relative;
+ width: 22px;
+ height: 1px;
+ border-radius: 1px;
+ background: $white;
+
+ &.navbar-kebab{
+ height: 4px;
+ width: 4px;
+ margin-bottom: 3px;
+ border-radius: 50%;
+ }
+
+ & + .navbar-toggler-bar{
+ margin-top: 7px;
+ }
+
+ & + .navbar-toggler-bar.navbar-kebab{
+ margin-top: 0px;
+ }
+
+ &.bar2{
+ width: 17px;
+ transition: width .2s linear;
+ }
+ }
+
+ &.bg-white:not(.navbar-transparent) .navbar-toggler-bar{
+ background-color: $default;
+ }
+
+ & .toggled .navbar-toggler-bar{
+ width: 24px;
+
+ & + .navbar-toggler-bar{
+ margin-top: 5px;
+ }
+ }
+
+ .navbar-brand{
+ margin-left: 20px;
+ position: relative;
+ }
+ }
+
+ .navbar-nav{
+ .nav-link{
+ i.fa,
+ i.tim-icons{
+ opacity: .5;
+ }
+ }
+ }
+
+ .bar1,
+ .bar2,
+ .bar3 {
+ outline: 1px solid transparent;
+ }
+ .bar1 {
+ top: 0px;
+ @include bar-animation($topbar-back);
+ }
+ .bar2 {
+ opacity: 1;
+ }
+ .bar3 {
+ bottom: 0px;
+ @include bar-animation($bottombar-back);
+ }
+ .toggled .bar1 {
+ top: 6px;
+ @include bar-animation($topbar-x);
+ }
+ .toggled .bar2 {
+ opacity: 0;
+ }
+ .toggled .bar3 {
+ bottom: 6px;
+ @include bar-animation($bottombar-x);
+ }
+
+ @include topbar-x-rotation();
+ @include topbar-back-rotation();
+ @include bottombar-x-rotation();
+ @include bottombar-back-rotation();
+
+ @-webkit-keyframes fadeIn {
+ 0% {opacity: 0;}
+ 100% {opacity: 1;}
+ }
+ @-moz-keyframes fadeIn {
+ 0% {opacity: 0;}
+ 100% {opacity: 1;}
+ }
+ @keyframes fadeIn {
+ 0% {opacity: 0;}
+ 100% {opacity: 1;}
+ }
+
+}
+
+@media screen and (min-width: 992px) {
+ .navbar-collapse {
+ background: none !important;
+ }
+
+ .navbar .navbar-toggle {
+ display: none;
+ }
+
+ .navbar-nav {
+ .nav-link {
+ &.profile-photo {
+ padding: 0;
+ margin: 7px $padding-base-horizontal;
+ }
+ }
+ }
+
+ .navbar {
+ .caret {
+ position: absolute;
+ left: 80%;
+ top: 55%;
+ margin-left: 0;
+ }
+ }
+ .navbar-expand-lg .navbar-nav .nav-link {
+ padding-right: 0.5rem;
+ padding-left: 0.5rem;
+ }
+}
+
+@media screen and (max-width: 576px){
+ .navbar[class*='navbar-toggleable-'] .container{
+ margin-left: 0;
+ margin-right: 0;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_rtl.scss b/src/assets/scss/black-dashboard/custom/_rtl.scss
new file mode 100644
index 0000000..fe6d047
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_rtl.scss
@@ -0,0 +1,215 @@
+.rtl {
+ .sidebar,
+ .bootstrap-navbar{
+ right: 0;
+ left: auto;
+ margin-right: 20px;
+ margin-left: 0;
+
+ .nav{
+ i{
+ float: right;
+ margin-left: 15px;
+ margin-right: 0;
+ }
+
+ p{
+ margin-right: 45px;
+ text-align: right;
+ }
+
+ .caret{
+ left: 11px;
+ right: auto;
+ }
+ }
+
+ .logo{
+ a.logo-mini{
+ float: right;
+ margin-right: 20px;
+ margin-left: 10px;
+ }
+
+ .simple-text{
+ text-align: right;
+ }
+ }
+
+ .sidebar-wrapper .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-mini-icon,
+ .sidebar-wrapper .user .info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-mini-icon{
+ float: right;
+ margin-left: 15px;
+ margin-right: 0;
+ }
+
+ .sidebar-wrapper > .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
+ .sidebar-wrapper .user .info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal{
+ text-align: right;
+ }
+
+ &:before{
+ right: 30px;
+ left: auto;
+ }
+ }
+
+ .main-panel .content{
+ padding: 80px 280px 30px 30px;
+ }
+
+ .footer{
+ padding: 24px 300px 24px 0;
+ }
+
+ .dropdown-toggle:after{
+ margin-right: .255em;
+ margin-left: 0;
+ }
+
+ .dropdown-menu.dropdown-menu-right.dropdown-navbar{
+ right: -220px !important;
+ left: auto;
+
+ &:before{
+ right: auto;
+ left: 35px;
+ }
+ }
+
+ .notification{
+ left: 40px;
+ right: auto;
+ }
+
+ .dropdown-menu{
+ right: auto;
+ left: 0;
+ }
+
+
+ .minimize-sidebar{
+ float: right;
+ }
+
+ .alert{
+ left: 0;
+ margin-left: 0;
+ margin-right: 0;
+ button.close{
+ left: 10px !important;
+ right: auto !important;
+ }
+
+ span[data-notify="icon"]{
+ right: 15px;
+ left: auto;
+ }
+
+
+
+ &.alert-with-icon{
+ padding-right: 65px;
+ padding-left: 15px;
+ }
+
+ &.alert-with-icon i[data-notify="icon"]{
+ right: 15px;
+ left: auto;
+ }
+ }
+
+ .search-bar{
+ margin-left: 0;
+ }
+
+ .modal-search .modal-header .close{
+ margin-right: auto;
+ left: 10px;
+ }
+
+
+ @media (min-width: 991px){
+ &.sidebar-mini .main-panel .content {
+ padding-right: 130px;
+ padding-left: 50px;
+ }
+
+ &.sidebar-mini footer{
+ padding-right: 130px;
+ padding-left: 50px;
+ }
+
+ .navbar-minimize button{
+ margin-right: -5px;
+ }
+ }
+
+
+
+ @media screen and (max-width: 991px){
+
+ .sidebar{
+ margin-right: 0;
+ }
+ .main-panel .content{
+ padding-right: 50px;
+ }
+
+ #bodyClick{
+ right: 260px;
+ left: auto;
+ }
+
+ .footer{
+ padding-right: 15px;
+ }
+ }
+
+ .navbar {
+ .navbar-nav {
+ padding-right: 0;
+ a.nav-link {
+ text-align: right;
+ p{
+ margin-right: 7px;
+ }
+ }
+
+ .btn {
+ margin-right: 0;
+ padding: 0;
+ i{
+ margin-left: 4px;
+ margin-right: 5px;
+ }
+ }
+
+ .search-bar span{
+ margin-right: 10px;
+ }
+ }
+ }
+
+ .ps__rail-y {
+ right: auto !important;
+ left: 0;
+ }
+
+ .main-panel {
+ position: fixed;
+ height: 100%;
+ overflow-y: scroll;
+ overflow-x: hidden;
+ }
+}
+
+
+@media screen and (max-width: 768px){
+
+ .rtl .main-panel .content{
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/_sidebar-and-main-panel.scss b/src/assets/scss/black-dashboard/custom/_sidebar-and-main-panel.scss
new file mode 100644
index 0000000..2638400
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_sidebar-and-main-panel.scss
@@ -0,0 +1,732 @@
+.wrapper{
+ position: relative;
+ top: 0;
+ height: 100vh;
+
+ &.wrapper-full-page{
+ min-height: 100vh;
+ height: auto;
+ }
+}
+
+.sidebar-wrapper ul li div.collapse ul li div.collapse ul li a,
+.sidebar-wrapper ul li div.collapse ul li div.collapsing ul li a,
+.sidebar-wrapper ul li div.collapsing ul li div.collapse ul li a{
+
+ margin-left: 25px;
+
+}
+.sidebar,
+.off-canvas-sidebar{
+ @include linear-gradient($primary-states, $primary);
+ height: calc(100vh - 90px);
+ width: 230px;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 1;
+ background-size: cover;
+ background-position: center center;
+ display: block;
+ box-shadow: 0px 0px 45px 0px rgba(0,0,0,0.6);
+ margin-top: 80px;
+ margin-left: 20px;
+ border-radius: 5px;
+
+ .sidebar-wrapper{
+ width: $full-width;
+ min-height: 100%;
+ max-height: calc(100vh - 705px);
+ z-index: 4;
+ position: relative;
+ overflow: auto;
+
+ .dropdown .dropdown-backdrop{
+ display: none !important;
+ }
+
+ .navbar-form{
+ border: none;
+ }
+
+ > .nav,
+ .user .info{
+ [data-toggle="collapse"] ~ div > ul > li > a{
+ span{
+ display: inline-block;
+ // @extend .animation-transition-general;
+ }
+
+ .sidebar-normal{
+ margin: 0;
+ position: relative;
+ transform: translateX(0px);
+ opacity: 1;
+ white-space: nowrap;
+ display: block;
+ line-height: 23px;
+ z-index: 1;
+ color: $opacity-8;
+ }
+
+ .sidebar-mini-icon{
+ text-transform: uppercase;
+ width: 34px;
+ margin-right: 10px;
+ margin-left: 0px;
+ font-size: 12px;
+ text-align: center;
+ line-height: 25px;
+ position: relative;
+ float: left;
+ z-index: 1;
+ display: inherit;
+ line-height: 24px;
+ color: $opacity-8;
+ }
+
+ i{
+ font-size: 17px;
+ line-height: 20px;
+ width: 26px;
+ }
+ }
+ }
+
+
+
+ [data-toggle="collapse"] ~ div > ul > li:hover > a{
+ .sidebar-mini-icon, .sidebar-normal{
+ color: $white;
+ }
+
+ }
+
+ .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-mini-icon{
+ opacity: 0;
+ }
+
+
+ }
+
+ .navbar-minimize{
+ position: absolute;
+ right: 20px;
+ top: 2px;
+ opacity: 1;
+
+ // @extend .animation-transition-general;
+ }
+ .logo-tim{
+ border-radius: 50%;
+ border: 1px solid #333;
+ display: block;
+ height: 61px;
+ width: 61px;
+ float: left;
+ overflow: hidden;
+
+ img{
+ width: 60px;
+ height: 60px;
+ }
+ }
+
+ .nav{
+ margin-top: 20px;
+ display: block;
+
+ .caret{
+ top: 14px;
+ position: absolute;
+ right: 10px;
+ }
+
+ li{
+ > a + div .nav{
+ margin-top: 5px;
+ li > a{
+ margin-top: 0px;
+ padding: 8px 8px;
+ }
+ }
+
+ > a{
+ margin: 10px 15px 0;
+ border-radius: $btn-round-radius;
+ color: $white;
+ display: block;
+ text-decoration: none;
+ position: relative;
+ text-transform: uppercase;
+ cursor: pointer;
+ font-size: $font-size-xs;
+ padding: 10px 8px;
+ line-height: $line-height-lg;
+ }
+
+ &:first-child > a{
+ margin: 0 15px;
+
+ }
+
+ &:hover:not(.active) > a,
+ &:focus:not(.active) > a{
+ p,i{
+ color: $white;
+ }
+ }
+
+ &:hover:not(.active) > a i,
+ &:focus:not(.active) > a i{
+ color: $white;
+ }
+
+ &.active > a:not([data-toggle="collapse"]){
+ background: transparent;
+
+ i,p{
+ color: white;
+ }
+
+ &:before{
+ content: " ";
+ position: absolute;
+ height: 6px;
+ width: 6px;
+ top: 22px;
+ left: -4px;
+ background: $white;
+ border-radius: 50%;
+ }
+ }
+
+ &.active > a[data-toggle="collapse"]{
+ background: transparent;
+ box-shadow: none;
+ color: $white;
+
+ i{
+ color: $white;
+ }
+
+ & + div .nav .active a{
+
+ box-shadow: none;
+ .sidebar-mini-icon, .sidebar-normal{
+ color: $white;
+ font-weight: $font-weight-normal;
+ }
+
+ &:before{
+ content: " ";
+ position: absolute;
+ height: 6px;
+ width: 6px;
+ top: 17px;
+ left: -4px;
+ background: $white;
+ border-radius: 50%;
+ }
+ }
+ &:before{
+ content: " ";
+ position: absolute;
+ height: 6px;
+ width: 6px;
+ top: 22px;
+ left: -4px;
+ background: rgba($white,0.6);
+ border-radius: 50%;
+ }
+ }
+ }
+
+ p{
+ margin: 0;
+ line-height: 30px;
+ position: relative;
+ display: block;
+ height: auto;
+ white-space: nowrap;
+ @extend .animation-transition-general;
+ }
+
+ i{
+ font-size: 20px;
+ float: left;
+ margin-right: 12px;
+ line-height: 30px;
+ width: 34px;
+ text-align: center;
+ color: $opacity-8;
+ position: relative;
+ }
+ }
+
+ .logo{
+ position: relative;
+ padding: $padding-base-vertical $padding-base-horizontal;
+ z-index: 4;
+
+ a.logo-mini,
+ a.logo-normal{
+ @extend .animation-transition-general;
+ }
+
+ a.logo-mini{
+ opacity: 1;
+ float: left;
+ width: 34px;
+ text-align: center;
+ margin-left: 10px;
+ margin-right: 12px;
+ }
+
+ a.logo-normal{
+ display: block;
+ opacity: 1;
+ @include transform-translate-x(0px);
+ }
+
+ &:after{
+ content: '';
+ position: absolute;
+ bottom: 0;
+ right: 15px;
+ height: 1px;
+ width: calc(100% - 30px);
+ background: $opacity-5;
+
+ }
+
+ p{
+ float: left;
+ font-size: 20px;
+ margin: 10px 10px;
+ color: $white;
+ line-height: 20px;
+ font-family: "Helvetica Neue", Helvetica, Arial, sans-serif;
+ }
+
+ .simple-text{
+ text-transform: uppercase;
+ padding: $padding-base-vertical 0;
+ display: block;
+ white-space: nowrap;
+ // font-size: $font-size-base;
+ color: $white;
+ text-decoration: none;
+ font-weight: $font-weight-normal;
+ line-height: 30px;
+ overflow: hidden;
+ }
+ }
+
+ .logo-tim{
+ border-radius: 50%;
+ border: 1px solid #333;
+ display: block;
+ height: 61px;
+ width: 61px;
+ float: left;
+ overflow: hidden;
+
+ img{
+ width: 60px;
+ height: 60px;
+ }
+ }
+
+ &[data="blue"]{
+ @include linear-gradient($info-states, $info);
+ }
+ &[data="green"]{
+ @include linear-gradient($success-states, $success);
+ }
+
+ .user{
+ padding-bottom: 20px;
+ margin:20px auto 0;
+ position: relative;
+
+ &:after{
+ content: '';
+ position: absolute;
+ bottom: 0;
+ right: 15px;
+ height: 1px;
+ width: calc(100% - 30px);
+ background: $opacity-5;
+ }
+
+ .photo{
+ width: 34px;
+ height: 34px;
+ overflow: hidden;
+ float: left;
+ z-index: 5;
+ margin-right: 10px;
+ border-radius: 50%;
+ margin-left: 23px;
+ box-shadow: $box-shadow-raised;
+ @extend .animation-transition-general;
+
+ img{
+ width: $full-width;
+ }
+ }
+
+ a{
+ color: $white;
+ text-decoration: none;
+ padding: $padding-base-vertical 15px;
+ white-space: nowrap;
+ @extend .animation-transition-general;
+ }
+
+ .info{
+ > a{
+ display: block;
+ line-height: 18px;
+
+ > span{
+ @extend .animation-transition-general;
+ display: block;
+ position: relative;
+ opacity: 1;
+ }
+ }
+
+ .caret{
+ position: absolute;
+ top: 8px;
+ right: 18px;
+ }
+ }
+ }
+
+ transition: 0.5s cubic-bezier(0.685, 0.0473, 0.346, 1);
+
+}
+
+
+.visible-on-sidebar-regular{
+ display: inline-block !important;
+}
+.visible-on-sidebar-mini{
+ display: none !important;
+}
+
+.off-canvas-sidebar{
+ .nav {
+ > li > a,
+ > li > a:hover{
+ color: $white;
+ }
+
+ > li > a:focus{
+ background: rgba(200, 200, 200, 0.2);
+ }
+ }
+}
+
+
+.main-panel {
+ position: relative;
+ float: right;
+ width: $full-width;
+ min-height: 100vh;
+ border-top: 2px solid $primary;
+ background: linear-gradient($background-black, $background-states-black);
+
+ @include transitions (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1));
+
+ &[data="blue"]{
+ border-top: 2px solid $info;
+ }
+
+ &[data="green"]{
+ border-top: 2px solid $success;
+ }
+
+ &[data="primary"]{
+ border-top: 2px solid $primary;
+ }
+
+ > .content {
+ padding: 78px 30px 30px 280px;
+ min-height: calc(100vh - 70px);
+ }
+
+ > .navbar {
+ margin-bottom: 0;
+ }
+
+
+ .header {
+ margin-bottom: 50px;
+ }
+}
+
+
+.perfect-scrollbar-on{
+ .sidebar,
+ .main-panel{
+ height: 100%;
+ max-height: 100%;
+ }
+}
+
+
+@media (min-width: 991px) {
+ .sidebar,
+ .main-panel,
+ .sidebar-wrapper{
+ -webkit-transition-property: top,bottom,width;
+ transition-property: top,bottom, width;
+ -webkit-transition-duration: .2s,.2s, .35s;
+ transition-duration: .2s,.2s, .35s;
+ -webkit-transition-timing-function: linear,linear,ease;
+ transition-timing-function: linear,linear,ease;
+ -webkit-overflow-scrolling: touch;
+ }
+
+
+ .sidebar-mini{
+ .visible-on-sidebar-regular{
+ display: none !important;
+ }
+ .visible-on-sidebar-mini{
+ display: inline-block !important;
+ }
+
+ .sidebar{
+ width: 80px;
+
+ .sidebar-wrapper{
+ width: 100% !important;
+ }
+ }
+
+
+ .sidebar{
+ display: block;
+ z-index: 1030;
+ box-shadow: $sidebar-box-shadow;
+
+ .logo{
+ a.logo-normal{
+ opacity: 0;
+ @include transform-translate-x(-25px);
+ }
+ }
+
+ .sidebar-wrapper{
+ > .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
+ .user .info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
+ .user .info > a > span,
+ > .nav li > a p{
+ @include transform-translate-x(-25px);
+ opacity: 0;
+ }
+ }
+
+ .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-mini-icon{
+ opacity: 1;
+ }
+ }
+
+ .sidebar:hover {
+ width: 260px;
+
+ .logo {
+ a.logo-normal {
+ opacity: 1;
+ @include transform-translate-x(0);
+ }
+
+ }
+
+ .navbar-minimize{
+ opacity: 1;
+ }
+ .sidebar-wrapper{
+ width: 260px;
+
+ > .nav li > a p,
+ > .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
+ .user .info [data-toggle="collapse"] ~ div > ul > li > a .sidebar-normal,
+ .user .info > a > span{
+ @include transform-translate-x(0px);
+ opacity: 1;
+ }
+ }
+
+ .nav [data-toggle="collapse"] ~ div > ul > li > a .sidebar-mini-icon{
+ opacity: 0;
+ }
+
+
+
+ }
+
+ .main-panel{
+ > .content{
+ padding-left: 130px;
+ }
+ }
+
+ footer{
+ padding-left: 130px;
+ }
+ }
+
+ .navbar-minimize{
+ button {
+ margin-left: 10px;
+ i{
+ color: $white;
+ font-size: 20px;
+ }
+ }
+ }
+
+}
+
+.panel-header {
+ height: 260px;
+ padding-top: 80px;
+ padding-bottom: 45px;
+ background: #141E30; /* fallback for old browsers */
+ background: -webkit-gradient(linear, left top, right top, from(#0c2646), color-stop(60%, #204065), to(#2a5788));
+ background: linear-gradient(to right, #0c2646 0%, #204065 60%, #2a5788 100%);
+ position: relative;
+ overflow: hidden;
+
+ .header{
+ .title{
+ color: $white;
+ }
+ .category{
+ max-width: 600px;
+ color: $opacity-5;
+ margin: 0 auto;
+ font-size: 13px;
+
+ a{
+ color: $white;
+ }
+ }
+ }
+}
+
+.panel-header-sm{
+ height: 135px;
+}
+
+.panel-header-lg{
+ height: 380px
+}
+
+@media screen and (max-width: 991px){
+ .sidebar{
+ position: fixed;
+ display: block;
+ top: 0;
+ height: 100%;
+ width: 260px;
+ right: auto;
+ left: 0;
+ margin: 0;
+ border-radius: 0;
+ z-index: 1032;
+ visibility: visible;
+ overflow-y: visible;
+ padding: 0;
+ @include transition(0.5s cubic-bezier(0.685, 0.0473, 0.346, 1));
+ @include transform-translate-x(-260px);
+ }
+
+ .wrapper{
+ @include transition (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1));
+ }
+
+ .main-panel {
+ width: 100%;
+ .content {
+ padding-left: 30px;
+ }
+ }
+
+ .nav-open{
+ .main-panel{
+ right: 0;
+ @include transform-translate-x(260px);
+ }
+
+ .sidebar{
+
+ @include transition(0.5s cubic-bezier(0.685, 0.0473, 0.346, 1));
+ @include transform-translate-x(0px);
+ &:before{
+ content: unset;
+ }
+ }
+
+ body{
+ position: relative;
+ overflow-x: hidden;
+ }
+
+ .menu-on-right{
+
+ .main-panel{
+ @include transform-translate-x(-260px);
+ }
+
+ .navbar-collapse,
+ .sidebar{
+ @include transform-translate-x(0px);
+ }
+
+ #bodyClick{
+ right: 260px;
+ left: auto;
+ }
+ }
+ }
+
+ .menu-on-right{
+ .sidebar{
+ left: auto;
+ right: 0;
+ @include transform-translate-x(260px);
+ }
+ }
+
+ #bodyClick{
+ height: 100%;
+ width: 100%;
+ position: fixed;
+ opacity: 1;
+ top: 0;
+ right: 0;
+ left: 260px;
+ content: "";
+ z-index: 9999;
+ overflow-x: hidden;
+ background-color: transparent;
+ @include transition (0.50s, cubic-bezier(0.685, 0.0473, 0.346, 1));
+ }
+
+}
+
+@media screen and (max-width: 768px){
+
+ .main-panel .content {
+ padding-left: 15px;
+ padding-right: 15px;
+ }
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/_tables.scss b/src/assets/scss/black-dashboard/custom/_tables.scss
new file mode 100644
index 0000000..416bafe
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_tables.scss
@@ -0,0 +1,191 @@
+.table{
+ > tbody > tr > td {
+ color: rgba(255, 255, 255, 0.7) !important;
+
+ .photo {
+ height: 30px;
+ width: 30px;
+ border-radius: 50%;
+ overflow: hidden;
+ margin: 0 auto;
+
+ img {
+ width: 100%;
+ }
+ }
+ }
+
+ > tbody > tr.table-success > td{
+ background-color: darken($success,10%);
+ }
+
+ > tbody > tr.table-info > td{
+ background-color: $info;
+ }
+
+ > tbody > tr.table-primary > td{
+ background-color: $primary;
+ }
+
+ > tbody > tr.table-warning > td{
+ background-color: $warning;
+ }
+ > tbody > tr.table-danger > td{
+ background-color: $danger;
+ }
+
+ .img-wrapper{
+ width: 40px;
+ height: 40px;
+ border-radius: 50%;
+ overflow: hidden;
+ margin: 0 auto;
+ }
+
+ .img-row{
+ max-width: 60px;
+ width: 60px;
+ }
+
+ .form-check{
+ margin: 0;
+ margin-top: 5px;
+
+ & label .form-check-sign::before,
+ & label .form-check-sign::after{
+ top: -17px;
+ left: 4px;
+ }
+ }
+
+ .btn{
+ margin: 0;
+ }
+
+ small,.small{
+ font-weight: 300;
+ }
+
+ .card-tasks .card-body &{
+ margin-bottom: 0;
+
+ > thead > tr > th,
+ > tbody > tr > th,
+ > tfoot > tr > th,
+ > thead > tr > td,
+ > tbody > tr > td,
+ > tfoot > tr > td{
+ padding-top: 5px;
+ padding-bottom: 5px;
+ }
+ }
+
+ > thead > tr > th{
+ border-bottom-width: 1px;
+ font-size: 12px;
+ text-transform: uppercase;
+ font-weight: $font-weight-extra-bold;
+ border: 0;
+ color: rgba($white, 0.7);
+ }
+
+ .radio,
+ .checkbox{
+ margin-top: 0;
+ margin-bottom: 0;
+ padding: 0;
+ width: 15px;
+
+ .icons{
+ position: relative;
+ }
+
+ label{
+ &:after,
+ &:before{
+ top: -17px;
+ left: -3px;
+ }
+ }
+ }
+ > thead > tr > th,
+ > tbody > tr > th,
+ > tfoot > tr > th,
+ > thead > tr > td,
+ > tbody > tr > td,
+ > tfoot > tr > td{
+ border-color: rgba(255, 255, 255, 0.1);
+ padding: 12px 7px;
+ vertical-align: middle;
+ }
+
+ &.table-shopping tbody tr:last-child td{
+ border: none;
+ }
+
+ .th-description{
+ max-width: 150px;
+ }
+ .td-price{
+ font-size: 26px;
+ font-weight: $font-weight-light;
+ margin-top: 5px;
+ position: relative;
+ top: 4px;
+ text-align: right;
+ }
+ .td-total{
+ font-weight: $font-weight-bold;
+ font-size: $h5-font-size;
+ padding-top: 20px;
+ text-align: right;
+ }
+
+ .td-actions .btn{
+ margin: 0px;
+ }
+
+ > tbody > tr{
+ position: relative;
+ }
+
+ > tfoot > tr {
+ color: hsla(0,0%,100%,.7);
+ text-transform: uppercase;
+ }
+}
+
+.table-responsive{
+ overflow: scroll;
+ padding-bottom: 10px;
+}
+
+#tables .table-responsive{
+ margin-bottom: 30px;
+}
+
+table.tablesorter thead tr .header{
+ // background-image: url("../img/bg.gif");
+ background-repeat: no-repeat;
+ background-position: center right;
+ cursor: pointer;
+}
+
+table.tablesorter thead tr .headerSortUp {
+ // background-image: url("../img/asc.gif");
+}
+table.tablesorter thead tr .headerSortDown {
+ // background-image: url("../img/desc.gif");
+}
+
+// datatables
+
+.dataTables_wrapper {
+ .table-striped tbody tr:nth-of-type(odd) {
+ background-color: rgba(0,0,0,.05);
+ }
+
+ .form-control-sm {
+ font-size: 10px;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/_type.scss b/src/assets/scss/black-dashboard/custom/_type.scss
new file mode 100644
index 0000000..e718195
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_type.scss
@@ -0,0 +1,174 @@
+body {
+ -moz-osx-font-smoothing: grayscale;
+ -webkit-font-smoothing: antialiased;
+}
+
+h1, h2, h3, h4, h5, h6,
+.h1, .h2, .h3, .h4, .h5, .h6 {
+ line-height: $headings-line-height;
+
+}
+p{
+ font-weight: $font-weight-light;
+}
+
+button,
+input,
+optgroup,
+select,
+textarea{
+ font-family: $font-family-base;
+}
+.card{
+ h1,h2,h3,h4,h5,h6,p{
+ color: $opacity-8;
+ }
+}
+h1,h2,h3,h4,h5,h6{
+ font-weight: $font-weight-normal;
+ color: $opacity-8;
+}
+
+a{
+ color: $primary-states;
+ font-weight: $font-weight-light;
+ &:hover,
+ &:focus{
+ color: $primary;
+ }
+}
+h1, .h1 {
+ line-height: 1.05;
+ margin-bottom: $margin-base-vertical * 2;
+
+ small{
+ font-weight: $font-weight-bold;
+ text-transform: uppercase;
+ opacity: .8;
+ }
+
+}
+h2, .h2{
+ margin-bottom: $margin-base-vertical * 2;
+ line-height: 1.2;
+
+}
+h3, .h3{
+ margin-bottom: $margin-base-vertical * 2;
+ line-height: 1.4em;
+}
+h4, .h4{
+ line-height: 1.45em;
+ margin-bottom: $margin-base-vertical;
+
+ & + .category,
+ &.title + .category{
+ margin-top: -10px;
+ }
+}
+h5, .h5 {
+ line-height: 1.4em;
+ margin-bottom: 15px;
+}
+h6, .h6{
+ text-transform: uppercase;
+ font-weight: $font-weight-bold;
+}
+p{
+ color: $opacity-8;
+ margin-bottom: 5px;
+
+ &.description{
+ font-size: 1.14em;
+ }
+}
+
+
+.title{
+ font-weight: $font-weight-bold;
+ &.title-up{
+ text-transform: uppercase;
+
+ a{
+ color: $black;
+ text-decoration: none;
+ }
+ }
+ & + .category{
+ margin-top: -10px;
+ }
+}
+
+.description,
+.card-description,
+.footer-big p,
+.card .footer .stats{
+ color: $dark-gray;
+ font-weight: $font-weight-light;
+}
+.category,
+.card-category{
+ text-transform: capitalize;
+ font-weight: $font-weight-normal;
+ color: rgba($white, 0.6);
+ font-size: $font-size-sm;
+}
+
+.card-category{
+ font-size: $font-size-sm;
+}
+
+.blockquote{
+ border-left: none;
+ border: 1px solid $default;
+ padding: 20px;
+ font-size: $blockquote-font-size;
+ line-height: 1.8;
+
+ small{
+ color: $default;
+ font-size: $font-size-sm;
+ text-transform: uppercase;
+ }
+
+ &.blockquote-primary{
+ border-color: $primary;
+ color: $primary;
+
+ small{
+ color: $primary;
+ }
+ }
+
+ &.blockquote-danger{
+ border-color: $danger;
+ color: $danger;
+
+ small{
+ color: $danger;
+ }
+ }
+
+ &.blockquote-white{
+ border-color: $opacity-8;
+ color: $white;
+
+ small{
+ color: $opacity-8;
+ }
+ }
+}
+
+ul li, ol li{
+ color: $white;
+}
+
+pre{
+ color: $opacity-8;
+}
+
+hr{
+ border-top: 1px solid rgba(0,0,0,0.1);
+ margin-top: $spacer;
+ margin-bottom: $spacer;
+}
diff --git a/src/assets/scss/black-dashboard/custom/_utilities.scss b/src/assets/scss/black-dashboard/custom/_utilities.scss
new file mode 100644
index 0000000..e111620
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_utilities.scss
@@ -0,0 +1,9 @@
+@import "utilities/backgrounds.scss";
+@import "utilities/floating.scss";
+@import "utilities/helper.scss";
+@import "utilities/position.scss";
+@import "utilities/sizing.scss";
+@import "utilities/spacing.scss";
+@import "utilities/shadows.scss";
+@import "utilities/text.scss";
+@import "utilities/transform.scss";
diff --git a/src/assets/scss/black-dashboard/custom/_variables.scss b/src/assets/scss/black-dashboard/custom/_variables.scss
new file mode 100644
index 0000000..326af19
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_variables.scss
@@ -0,0 +1,993 @@
+
+// Global settings
+
+$enable-caret: true !default;
+$enable-rounded: true !default;
+$enable-shadows: true !default;
+$enable-gradients: false !default;
+$enable-transitions: true !default;
+$enable-grid-classes: true !default;
+$enable-print-styles: true !default;
+
+
+// Color system
+
+$white: #ffffff !default;
+$gray-100: #f6f9fc !default;
+$gray-200: #e9ecef !default;
+$gray-300: #e3e3e3 !default;
+$gray-400: #ced4da !default;
+$gray-500: #adb5bd !default;
+$gray-600: #6c757d !default; // Line footer color
+$gray-700: #525f7f !default; // Line p color
+$gray-800: #32325d !default; // Line heading color
+$gray-900: #212529 !default;
+$link-disabled: #666666 !default;
+$transparent-bg: transparent !default;
+$light-bg: #f5f6fa !default;
+$dark-background: #555555 !default;
+
+
+$grays: () !default;
+$grays: map-merge((
+ "100": $gray-100,
+ "200": $gray-200,
+ "300": $gray-300,
+ "400": $gray-400,
+ "500": $gray-500,
+ "600": $gray-600,
+ "700": $gray-700,
+ "800": $gray-800,
+ "900": $gray-900
+), $grays);
+
+$blue: #5e72e4 !default;
+$indigo: #5603ad !default;
+$purple: #8965e0 !default;
+$pink: #f3a4b5 !default;
+$red: #f5365c !default;
+$orange: #fb6340 !default;
+$yellow: #ffd600 !default;
+$green: #2dce89 !default;
+$teal: #11cdef !default;
+$cyan: #2bffc6 !default;
+
+$line-height-lg: 1.625rem !default;
+$line-height-sm: 1.5 !default;
+$line-height: 1.35em !default;
+
+
+$opacity-gray-3: rgba(222,222,222, .3) !default;
+$opacity-gray-5: rgba(222,222,222, .5) !default;
+$opacity-gray-8: rgba(222,222,222, .8) !default;
+
+
+$opacity-5: rgba(255,255,255, .5) !default;
+$opacity-6: rgba(255,255,255, .6) !default;
+$opacity-8: rgba(255,255,255, .8) !default;
+
+
+
+$opacity-1: rgba(255,255,255, .1) !default;
+$opacity-2: rgba(255,255,255, .2) !default;
+
+
+// end beniamin
+
+$colors: () !default;
+$colors: map-merge((
+ "blue": $blue,
+ "indigo": $indigo,
+ "purple": $purple,
+ "pink": $pink,
+ "red": $red,
+ "orange": $orange,
+ "yellow": $yellow,
+ "green": $green,
+ "teal": $teal,
+ "cyan": $cyan,
+ "white": $white,
+ "gray": $gray-600,
+ "light": $gray-400,
+ "lighter": $gray-200,
+ "gray-dark": $gray-800
+), $colors);
+
+$default-color-opacity: rgba(182, 182, 182, .6) !default;
+$orange-color: #f96332 !default;
+
+$default: #344675 !default;
+$primary: #e14eca !default;
+$secondary: #f4f5f7 !default;
+$success: #00f2c3 !default;
+$info: #1d8cf8 !default;
+$warning: #ff8d72 !default;
+$danger: #fd5d93 !default;
+$black: #222a42 !default;
+
+
+// gradient
+$default-states: #263148 !default;
+$primary-states: #ba54f5 !default;
+$success-states: #0098f0 !default;
+$info-states: #3358f4 !default;
+$warning-states: #ff6491 !default;
+$danger-states: #ec250d !default;
+$black-states: #1d253b !default;
+
+$background-black: #1e1e2f !default;
+$background-states-black: #1e1e24 !default;
+
+// opacity
+$default-opacity: rgba(182, 182, 182, .6) !default;
+$primary-opacity: rgba(249, 99, 50, .3) !default;
+$success-opacity: rgba(24, 206, 15, .3) !default;
+$info-opacity: rgba(44, 168, 255, .3) !default;
+$warning-opacity: rgba(255, 178, 54, .3) !default;
+$danger-opacity: rgba(255, 54, 54, .3) !default;
+
+$light-gray: #E3E3E3 !default;
+$medium-gray: #DDDDDD !default;
+$dark-gray: #9A9A9A !default;
+$card-stats-gray: #808080 !default;
+$active-gray: #777777 !default;
+$nav-gray: #444444 !default;
+$search-gray: #b7b7b7 !default;
+$calendar-gray: #9499a7 !default;
+$active-blue: #00bbff !default;
+
+
+
+$light: $gray-500 !default;
+$dark: $gray-900 !default;
+$darker: darken($gray-900, 15%) !default;
+
+$facebook: #3b5998 !default;
+$facebook-states: darken($facebook, 5%) !default;
+$twitter: #55acee !default;
+$twitter-states: darken($twitter, 5%) !default;
+$google-plus: #dd4b39 !default;
+$google-plus-states: darken($google-plus, 5%) !default;
+$instagram: #125688 !default;
+$instagram-states: lighten($instagram, 6%) !default;
+$linkedin: #0077B5 !default;
+$linkedin-states: darken($linkedin, 5%) !default;
+$pinterest: #cc2127 !default;
+$pinterest-states: lighten($pinterest, 6%) !default;
+$youtube: #e52d27 !default;
+$youtube-states: lighten($youtube, 6%) !default;
+$dribbble: #ea4c89 !default;
+$dribbble-states: lighten($dribbble, 6%) !default;
+$github: #333333 !default;
+$github-states: #ccc !default;
+$reddit: #ff4500 !default;
+$reddit-states: lighten($reddit, 6%) !default;
+$tumblr: #35465c !default;
+$tumblr-states: lighten($tumblr, 6%) !default;
+$behance: #1769ff !default;
+$behance-states: lighten($behance, 6%) !default;
+
+$theme-colors: () !default;
+$theme-colors: map-merge((
+ "default": $default,
+ "primary": $primary,
+ "secondary": $secondary,
+ "success": $success,
+ "info": $info,
+ "warning": $warning,
+ "danger": $danger,
+ "white": $white,
+ "neutral": $white,
+ "dark": $dark,
+ "darker": $darker
+), $theme-colors);
+
+$brand-colors: () !default;
+$brand-colors: map-merge((
+ "facebook": $facebook,
+ "twitter": $twitter,
+ "google-plus": $google-plus,
+ "instagram": $instagram,
+ "pinterest": $pinterest,
+ "youtube": $youtube,
+ "dribbble": $dribbble,
+ "github": $github,
+ "reddit": $reddit,
+ "behance": $behance,
+ "tumblr": $tumblr,
+ "linkedin": $linkedin,
+), $brand-colors);
+
+
+/* brand Colors */
+$brand-primary: $primary !default;
+$brand-info: $info !default;
+$brand-success: $success !default;
+$brand-warning: $warning !default;
+$brand-danger: $danger !default;
+$brand-inverse: $black !default;
+
+$topbar-x: topbar-x !default;
+$topbar-back: topbar-back !default;
+$bottombar-x: bottombar-x !default;
+$bottombar-back: bottombar-back !default;
+
+// Set a specific jump point for requesting color jumps
+$theme-color-interval: 8% !default;
+
+// The yiq lightness value that determines when the lightness of color changes from "dark" to "light". Acceptable values are between 0 and 255.
+$yiq-contrasted-threshold: 200 !default;
+
+// Customize the light and dark text colors for use in our YIQ color contrast function.
+$yiq-text-dark: $gray-900 !default;
+$yiq-text-light: $white !default;
+
+// Action colors
+
+$star-rating-color: $gray-400 !default;
+$star-rating-color-active: $yellow !default;
+
+$favorite-color: $yellow !default;
+$like-color: $blue !default;
+$love-color: $red !default;
+
+
+// Body
+
+$body-bg: $background-black !default;
+$body-color: $gray-700 !default;
+
+
+// Sections
+
+$section-colors: () !default;
+$section-colors: map-merge((
+ "primary": $body-bg,
+ "secondary": $secondary,
+ "light": $gray-400,
+ "dark": $dark,
+ "darker": $darker
+), $section-colors);
+
+// Links
+
+$link-color: $primary !default;
+$link-decoration: none !default;
+$link-hover-color: darken($link-color, 15%);
+$link-hover-decoration: none !default;
+
+// Grid breakpoints
+
+$grid-breakpoints: (
+ xs: 0,
+ sm: 576px,
+ md: 768px,
+ lg: 992px,
+ xl: 1200px
+);
+
+@include _assert-ascending($grid-breakpoints, "$grid-breakpoints");
+@include _assert-starts-at-zero($grid-breakpoints);
+
+
+// Grid containers
+//
+// Define the maximum width of `.container` for different screen sizes.
+
+
+// Spacing
+
+$spacer: 1rem !default;
+$spacers: () !default;
+$spacers: map-merge((
+ 0: 0,
+ 1: ($spacer * .25),
+ 2: ($spacer * .5),
+ 3: $spacer,
+ 4: ($spacer * 1.5),
+ 5: ($spacer * 3),
+ 'sm': ($spacer * 2),
+ 'md': ($spacer * 4),
+ 'lg': ($spacer * 6),
+ 'xl': ($spacer * 8)
+), $spacers);
+
+$padding-base-vertical: .5rem !default;
+$padding-base-horizontal: .7rem !default;
+
+$padding-btn-vertical: 11px !default;
+$padding-btn-horizontal: 40px !default;
+
+$padding-round-horizontal: 23px !default;
+
+$padding-lg-vertical: 15px !default;
+
+$padding-input-vertical: 11px !default;
+$padding-input-horizontal: 19px !default;
+
+
+$margin-lg-vertical: 30px !default;
+$margin-base-vertical: 15px !default;
+
+// This variable affects the `.h-*` and `.w-*` classes.
+
+$sizes: () !default;
+$sizes: map-merge((
+ 25: 25%,
+ 50: 50%,
+ 75: 75%,
+ 100: 100%
+), $sizes);
+
+// Components
+
+$shape-height-xl: 1.5 !default;
+$shape-height-lg: 1.5 !default;
+$shape-height-sm: 1.5 !default;
+
+// border
+$none: 0 !default;
+$border-thin: 1px !default;
+$border-thick: 2px !default;
+$border-width: .0625rem !default;
+$border-color: $gray-200 !default;
+
+$border-radius: .25rem !default;
+$border-radius-xl: 0.875rem !default;
+$border-radius-lg: 0.4285rem !default;
+$border-radius-sm: 0.2857rem !default;
+$border-radius-xs: 0.1428rem !default;
+
+$margin-bottom: 10px !default;
+$border: 1px solid !default;
+
+$box-shadow-sm: 0 .125rem .25rem rgba($black, .075);
+$box-shadow: 0 15px 35px rgba(50,50,93,.1), 0 5px 15px rgba(0,0,0,.07);
+$box-shadow-lg: 0 1rem 3rem rgba($black, .175);
+
+$dropdown-shadow: 1px 2px 3px 0px rgba(0, 0, 0, 0.125);
+$box-shadow-raised: 0px 10px 25px 0px rgba(0, 0, 0, 0.3);
+$box-shadow: 0 1px 20px 0px rgba(0, 0, 0, 0.1);
+$sidebar-box-shadow: 0px 2px 22px 0 rgba(0, 0, 0,.20), 0px 2px 30px 0 rgba(0, 0, 0,.35);
+
+$component-active-color: $white !default;
+$component-active-bg: theme-color("primary") !default;
+$component-active-border-color: theme-color("primary") !default;
+
+$component-hover-color: $gray-300 !default;
+$component-hover-bg: $gray-300 !default;
+$component-hover-border-color: $gray-300 !default;
+
+$caret-width: .3em !default;
+
+$transition-base: all .15s ease !default;
+$transition-fade: opacity .15s linear !default;
+$transition-collapse: height .35s ease !default;
+
+$fast-transition-time: 150ms !default;
+
+$transition-linear: linear !default;
+$transition-bezier: cubic-bezier(0.34, 1.61, 0.7, 1) !default;
+$transition-ease: ease 0s;
+
+$select-coordinates: 50% -40px !default;
+$general-transition-time: 300ms !default;
+
+
+// Fonts
+
+$font-family-base: 'Poppins', sans-serif !default;
+$font-family-alt: 'Poppins', sans-serif !default;
+
+$font-size-dash: .875rem !default;
+
+$font-size-base: $font-size-dash !default; // Assumes the browser default, typically `16px`
+$font-size-xl: ($font-size-base * 1.428);
+$font-size-lg: ($font-size-base * 1.142);
+$font-size-sm: ($font-size-base * .85714286);
+$font-size-xs: ($font-size-base * .714);
+
+$h1-font-size: $font-size-base * 2.35714285 !default; //2.1875rem
+$h2-font-size: $font-size-base * 1.9285714 !default;
+$h3-font-size: $font-size-base * 1.642857 !default;
+$h4-font-size: $font-size-base * 1.2142857 !default;
+$h5-font-size: $font-size-base * 0.9285714 !default;
+$h6-font-size: $font-size-base * 0.8571428 !default;
+
+$font-weight-light: 300 !default;
+$font-weight-normal: 400 !default;
+$font-weight-bold: 600 !default;
+$font-weight-extra-bold: 700 !default;
+
+$font-paragraph: 1rem !default;
+
+$font-weight-base: $font-weight-normal !default;
+$shape-height-base: 1.428571 !default;
+
+$headings-margin-bottom: ($spacer / 2);
+$headings-font-family: inherit !default;
+$headings-font-weight: $font-weight-normal !default;
+$headings-line-height: 1.2 !default;
+$headings-color: $gray-800 !default;
+
+$heading-letter-spacing: .025em !default;
+$heading-font-size: .95rem !default;
+$heading-text-transform: uppercase !default;
+$heading-font-weight: $headings-font-weight !default;
+
+$heading-title-letter-spacing: .025em !default;
+$heading-title-font-size: 1.375rem !default;
+$heading-title-font-weight: $font-weight-bold !default;
+$heading-title-text-transform: uppercase !default;
+
+$heading-section-letter-spacing: .025em !default;
+$heading-section-font-size: 1.375rem !default;
+$heading-section-font-weight: $font-weight-bold !default;
+$heading-section-text-transform: uppercase !default;
+
+$display1-size: 3.3rem !default;
+$display2-size: 2.75rem !default;
+$display3-size: 2.1875rem !default;
+$display4-size: 1.6275rem !default;
+
+$display1-weight: $font-weight-bold !default;
+$display2-weight: $font-weight-bold !default;
+$display3-weight: $font-weight-bold !default;
+$display4-weight: $font-weight-bold !default;
+$display-line-height: $headings-line-height !default;
+
+$paragraph-font-size: 0.625rem !default;
+$paragraph-font-weight: 300 !default;
+$paragraph-line-height: 1.7 !default;
+
+$lead-font-size: ($paragraph-font-size * 1.25);
+$lead-font-weight: 300 !default;
+
+$small-font-size: 80% !default;
+
+$text-muted: $gray-600 !default;
+
+$blockquote-small-color: $gray-600 !default;
+$blockquote-font-size: ($font-size-base * 1.1);
+
+$hr-border-color: rgba($black, .1);
+$hr-border-width: $border-width !default;
+
+$mark-padding: .2em !default;
+
+$dt-font-weight: $font-weight-bold !default;
+
+$list-inline-padding: .5rem !default;
+
+$mark-bg: #fcf8e3 !default;
+
+$hr-margin-y: $spacer * 2 !default;
+
+
+// Icons
+
+$icon-size: auto !default;
+$icon-size-regular: 2.375rem !default;
+$icon-font-size-regular: 0.9375rem !default;
+$icon-font-size-sm: 0.6875rem !default;
+$icon-size-sm: 1.875rem !default;
+$icon-font-size-lg: 1.325rem !default;
+$icon-size-lg: 3.6rem !default;
+$icon-size-xl: 5rem !default;
+
+
+// Tables
+
+$table-cell-padding: 1rem !default;
+$table-cell-padding-sm: .3rem !default;
+
+$table-bg: transparent !default;
+$table-accent-bg: rgba($black, .05);
+$table-hover-bg: rgba($black, .075);
+$table-active-bg: $table-hover-bg !default;
+
+$table-border-width: $border-width !default;
+$table-border-color: $gray-300 !default;
+
+$table-head-bg: $gray-200 !default;
+$table-head-color: $gray-700 !default;
+
+$table-dark-bg: $gray-900 !default;
+$table-dark-accent-bg: rgba($white, .05);
+$table-dark-hover-bg: rgba($white, .075);
+$table-dark-border-color: lighten($gray-900, 7.5%);
+$table-dark-color: $body-bg !default;
+
+
+// Buttons + Forms
+
+$input-btn-padding-y: .5rem !default;
+$input-btn-padding-x: .7rem !default;
+$input-btn-line-height: $shape-height-base !default;
+
+$input-btn-focus-width: 0 !default;
+$input-btn-focus-color: rgba($component-active-bg, 1);
+//$input-btn-focus-box-shadow: 0 4px 10px 0 rgba(0, 0, 0, 0.04);
+$input-btn-focus-box-shadow: none !default;
+
+$input-btn-padding-y-sm: .25rem !default;
+$input-btn-padding-x-sm: .5rem !default;
+$input-btn-line-height-sm: 1.35 !default;
+
+$input-btn-padding-y-lg: .875rem !default;
+$input-btn-padding-x-lg: 1rem !default;
+$input-btn-line-height-lg: 1.35 !default;
+
+$input-btn-border-width: 1px !default;
+
+$input-btn-font-size-sm: .75rem !default;
+$input-btn-font-size: .875rem !default;
+$input-btn-font-size-lg: .875rem !default;
+
+$input-padding-vertical: 11px !default;
+$input-padding-horizontal: 19px !default;
+
+// Buttons
+
+$btn-padding-y: 11px !default;
+$btn-padding-x: 40px !default;
+$btn-line-height: $line-height !default;
+
+$btn-padding-y-sm: 5px !default;
+$btn-padding-x-sm: 15px !default;
+$btn-line-height-sm: $input-btn-line-height-sm !default;
+
+$btn-padding-y-lg: 15px !default;
+$btn-padding-x-lg: 48px !default;
+$btn-line-height-lg: $input-btn-line-height-lg !default;
+
+$btn-border-width: $input-btn-border-width !default;
+
+$btn-font-size-lg: 1em !default;
+$btn-font-weight: 600 !default;
+$btn-text-transform: uppercase !default;
+$btn-letter-spacing: .025em !default;
+$btn-box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);
+$btn-hover-box-shadow: 0 7px 14px rgba(50,50,93,.1), 0 3px 6px rgba(0,0,0,.08);
+$btn-focus-box-shadow: $btn-hover-box-shadow !default;
+$btn-focus-width: $input-btn-focus-width !default;
+
+
+$btn-active-box-shadow: none !default;
+$btn-round-radius: 30px !default;
+
+
+
+// Forms
+
+$input-padding-y: $input-btn-padding-y !default;
+$input-padding-x: $input-btn-padding-x !default;
+$input-line-height: $input-btn-line-height !default;
+
+$input-padding-y-sm: $input-btn-padding-y-sm !default;
+$input-padding-x-sm: $input-btn-padding-x-sm !default;
+$input-line-height-sm: $input-btn-line-height-sm !default;
+
+$input-padding-y-lg: $input-btn-padding-y-lg !default;
+$input-padding-x-lg: $input-btn-padding-x-lg !default;
+$input-line-height-lg: $input-btn-line-height-lg !default;
+
+$input-border-radius: $border-radius !default;
+$input-border-radius-xl: $border-radius-xl !default;
+$input-border-radius-lg: $border-radius-lg !default;
+$input-border-radius-sm: $border-radius-sm !default;
+
+$input-bg: $transparent-bg !default;
+$input-disabled-bg: $gray-200 !default;
+
+$input-muted-bg: #EDF0F5 !default;
+
+$input-alternative-box-shadow: 0 1px 3px rgba(50,50,93,.15), 0 1px 0 rgba(0,0,0,.02);
+$input-focus-alternative-box-shadow: 0 4px 6px rgba(50,50,93,.11),0 1px 3px rgba(0,0,0,.08);
+
+$input-color: $opacity-8 !default;
+$input-border-color: #cad1d7 !default;
+$input-border-width: $input-btn-border-width !default;
+$input-box-shadow: none !default; // 0 1px 3px 0 $gray-400 !default;
+
+$input-focus-bg: $white !default;
+$input-focus-border-color: rgba(50,151,211,.25);
+$input-focus-color: $input-color !default;
+$input-focus-width: 0 !default;
+$input-focus-box-shadow: none !default; //0 1px 3px 0 $gray-500 !default;
+
+$input-placeholder-color: $gray-500 !default;
+$input-focus-placeholder-color: $gray-500 !default;
+
+$input-height-border: $input-border-width * 2 !default;
+$input-height-inner: ($font-size-base * $input-btn-line-height) + ($input-btn-padding-y * 2) !default;
+$input-height: calc(#{$input-height-inner} + #{$input-height-border}) !default;
+
+$input-transition: all .2s cubic-bezier(0.68, -0.55, 0.265, 1.55);
+
+
+// Input groups
+
+$input-group-addon-color: $input-placeholder-color !default;
+$input-group-addon-bg: $input-bg !default;
+$input-group-addon-border-color: $input-border-color !default;
+
+$input-group-addon-focus-color: $input-focus-color !default;
+$input-group-addon-focus-bg: $input-focus-bg !default;
+$input-group-addon-focus-border-color: $input-focus-border-color !default;
+
+
+// Custom forms
+
+$custom-control-gutter: 1.75rem !default;
+$custom-control-spacer-x: 1rem !default;
+$custom-control-indicator-size: 1.25rem !default;
+
+$custom-control-indicator-bg: $input-bg !default;
+$custom-control-indicator-border-width: 1px !default;
+$custom-control-indicator-border-color: $input-border-color !default;
+$custom-control-indicator-box-shadow: none !default;
+
+$custom-control-indicator-focus-box-shadow: $custom-control-indicator-box-shadow !default;
+
+$custom-control-indicator-hover-color: $component-hover-color !default;
+$custom-control-indicator-hover-bg: $component-hover-bg !default;
+$custom-control-indicator-hover-border-color: $component-hover-border-color !default;
+
+$custom-control-indicator-active-color: $component-active-color !default;
+$custom-control-indicator-active-bg: $component-active-bg !default;
+$custom-control-indicator-active-border-color: $component-active-border-color !default;
+$custom-control-indicator-active-box-shadow: $custom-control-indicator-box-shadow !default;
+
+$custom-control-indicator-checked-color: $component-active-color !default;
+$custom-control-indicator-checked-bg: $component-active-bg !default;
+$custom-control-indicator-checked-border-color: $component-active-border-color !default;
+$custom-control-indicator-checked-box-shadow: $custom-control-indicator-box-shadow !default;
+$custom-control-indicator-checked-disabled-bg: rgba(theme-color("primary"), .5);
+
+$custom-control-indicator-disabled-bg: $gray-200 !default;
+$custom-control-label-disabled-color: $gray-600 !default;
+
+$custom-checkbox-indicator-border-radius: $border-radius-sm !default;
+//$custom-checkbox-indicator-icon-checked: str-replace(url("data:image/svg+xml !default;charset=utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 8 8'%3E%3Cpath fill='%23fff' d='M6.564.75l-3.59 3.612-1.538-1.55L0 4.26 2.974 7.25 8 2.193z'/%3E%3C/svg%3E"), "#", "%23") !default;
+
+$custom-toggle-slider-bg: #ddd !default;
+$custom-toggle-checked-bg: theme-color("primary") !default;
+
+// Form validation
+
+$form-feedback-valid-bg: lighten($success, 15%);
+$form-feedback-valid-color: theme-color("success") !default;
+$form-feedback-invalid-bg: lighten($warning, 15%);
+$form-feedback-invalid-color: theme-color("warning") !default;
+
+
+// Allows for customizing button radius independently from global border radius
+
+$btn-border-radius: $input-border-radius !default;
+$btn-border-radius-xl: $input-border-radius-xl !default;
+$btn-border-radius-lg: $input-border-radius-lg !default;
+$btn-border-radius-sm: $input-border-radius !default;
+
+
+// No UI Slider
+
+$noui-target-bg: #eceeef !default;
+$noui-target-thickness: 5px !default;
+$noui-target-border-radius: 5px !default;
+$noui-target-border-color: 0 !default;
+$noui-target-box-shadow: inset 0 1px 2px rgba(90,97,105,.1);
+
+$noui-slider-connect-bg: $primary !default;
+$noui-slider-connect-disabled-bg: #b2b2b2 !default;
+
+$noui-handle-width: 15px !default;
+$noui-handle-bg: theme-color("primary") !default;
+$noui-handle-border: 0 !default;
+$noui-handle-border-radius: 100% !default;
+
+$noui-origin-border-radius: 2px !default;
+
+
+// Dropdown
+
+$dropdown-bg: $white !default;
+$dropdown-border-width: 0 !default;
+$dropdown-border-color: rgba($black, .15);
+$dropdown-border-radius: $border-radius-xs !default;
+$dropdown-box-shadow: 0 50px 100px rgba(50, 50, 93, .1), 0 15px 35px rgba(50, 50, 93, .15), 0 5px 15px rgba(0, 0, 0, .1);
+
+$dropdown-link-active-color: $component-active-color !default;
+$dropdown-link-active-bg: $component-active-bg !default;
+
+// Navs
+
+$nav-link-padding-y: .5rem !default;
+$nav-link-padding-x: 1rem !default;
+$nav-link-color: $gray-700 !default;
+$nav-link-disabled-color: $gray-600 !default;
+
+$nav-pills-padding-y: .75rem !default;
+$nav-pills-padding-x: 1rem !default;
+
+$nav-pills-space-x: 1rem !default;
+
+$nav-pills-bg: $white;
+$nav-pills-border-width: 1px !default;
+$nav-pills-border-color: theme-color("primary") !default;
+$nav-pills-border-radius: $border-radius !default;
+
+$nav-pills-link-color: theme-color("primary") !default;
+$nav-pills-link-hover-color: darken(theme-color("primary"), 5%);
+$nav-pills-link-active-color: color-yiq(theme-color("primary"));
+$nav-pills-link-active-bg: theme-color("primary") !default;
+$nav-pills-box-shadow: $btn-box-shadow !default;
+
+// Navbar
+
+$navbar-transition: all .15s linear !default;
+$navbar-padding-y: .625rem !default;
+$navbar-padding-x: .9375rem !default;
+
+$navbar-nav-link-padding-x: 1rem !default;
+$navbar-nav-link-padding-y: 1rem !default;
+
+$navbar-nav-link-font-family: $font-family-alt !default;
+$navbar-nav-link-font-size: .9rem !default;
+$navbar-nav-link-font-weight: 400 !default;
+$navbar-nav-link-text-transform: normal !default;
+$navbar-nav-link-letter-spacing: 0 !default;
+$navbar-nav-link-border-radius: $border-radius !default;
+
+/* navbar color */
+$navbar-color: #1a1e34 !default;
+$navbar-dark-bg: transparent !default;
+$navbar-dark-hover-bg: rgba(255, 255, 255, .1);
+$navbar-dark-active-bg: rgba(255, 255, 255, .1);
+$navbar-dark-color: rgba($white, .95);
+$navbar-dark-hover-color: rgba($white, .65);
+$navbar-dark-active-color: rgba($white, .65);
+$navbar-dark-disabled-color: rgba($white, .25);
+$navbar-dark-toggler-border-color: transparent !default;
+
+$navbar-light-bg: transparent !default;
+$navbar-light-hover-bg: rgba(0, 0, 0, .1);
+$navbar-light-active-bg: rgba(0, 0, 0, .1);
+$navbar-light-color: rgba($black, .5);
+$navbar-light-hover-color: rgba($black, .7);
+$navbar-light-active-color: rgba($black, .9);
+$navbar-light-disabled-color: rgba($black, .3);
+$navbar-light-toggler-icon-bg: str-replace(url("data:image/svg+xml !default;charset=utf8,%3Csvg viewBox='0 0 30 30' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='#{$navbar-light-color}' stroke-width='2' stroke-linecap='round' stroke-miterlimit='10' d='M4 7h22M4 15h22M4 23h22'/%3E%3C/svg%3E"), "#", "%23") !default;
+$navbar-light-toggler-border-color: transparent !default;
+$full-width: 100% !default;
+$navbar-padding: 10px 15px !default;
+
+
+// Alerts
+
+$alert-padding-y: .9rem !default;
+$alert-padding-x: 1.25rem !default;
+$alert-border-radius: $border-radius-sm !default;
+
+$alert-bg-level: -2 !default;
+$alert-border-level: -2 !default;
+$alert-color-level: 0 !default;
+
+
+// List group
+
+$list-group-bg: $white !default;
+$list-group-border-color: $border-color !default; //rgba($black, .125);
+$list-group-border-width: $border-width !default;
+$list-group-border-radius: $border-radius !default;
+
+$list-group-item-padding-y: 1rem !default;
+$list-group-item-padding-x: 1rem !default;
+
+$list-group-hover-bg: $gray-100 !default;
+$list-group-active-color: $component-active-color !default;
+$list-group-active-bg: $component-active-bg !default;
+$list-group-active-border-color: $list-group-active-bg !default;
+
+$list-group-disabled-color: $gray-600 !default;
+$list-group-disabled-bg: $list-group-bg !default;
+
+$list-group-action-color: $gray-700 !default;
+$list-group-action-hover-color: $list-group-action-color !default;
+
+$list-group-action-active-color: $list-group-action-color !default;
+$list-group-action-active-bg: $gray-200 !default;
+
+
+// Close
+
+$close-font-size: $font-size-base * 1.5 !default;
+$close-font-weight: $font-weight-bold !default;
+$close-bg: transparent !default;
+$close-hover-bg: transparent !default;
+$close-color: rgba(0, 0, 0, .6);
+$close-hover-color: rgba(0, 0, 0, .9);
+$close-text-shadow: none !default;
+
+
+// Popovers
+
+$popover-font-size: $font-size-sm !default;
+$popover-bg: $white !default;
+$popover-max-width: 276px !default;
+$popover-border-width: 1px !default;
+$popover-border-color: rgba($black, .05);
+$popover-border-radius: $border-radius-lg !default;
+$popover-box-shadow: 0px .5rem 2rem 0px rgba($black, .2);
+
+$popover-header-bg: $popover-bg !default;
+$popover-header-color: $headings-color !default;
+$popover-header-padding-y: .75rem !default;
+$popover-header-padding-x: .75rem !default;
+
+$popover-body-color: $body-color !default;
+$popover-body-padding-y: $popover-header-padding-y !default;
+$popover-body-padding-x: $popover-header-padding-x !default;
+
+$popover-arrow-width: 1.5rem !default;
+$popover-arrow-height: .75rem !default;
+$popover-arrow-color: $popover-bg !default;
+
+$popover-arrow-outer-color: transparent !default;
+
+// Breadcrumbs
+
+$breadcrumb-bg: $black-states !default;
+$breadcrumb-divider-color: $white !default;
+$breadcrumb-active-color: $white !default;
+
+
+
+
+// Badges
+
+$badge-font-size: $font-size-xs !default;
+$badge-font-weight: $font-weight-extra-bold !default;
+$badge-padding-y: .25rem !default;
+$badge-padding-x: .5rem !default;
+$badge-border-radius: $border-radius !default;
+$badge-text-transfom: uppercase;
+
+$badge-pill-padding-x: .875em !default;
+$badge-pill-border-radius: $border-radius-xl !default;
+
+$badge-circle-size: 2rem;
+
+// Pagination
+
+$pagination-padding-y: 0 !default;
+$pagination-padding-x: .6875rem !default;
+
+
+$pagination-color: $white !default;
+$pagination-bg: transparent !default;
+$pagination-border-width: $border-width !default;
+$pagination-border-color: $gray-300 !default;
+
+//$pagination-focus-box-shadow: $btn-hover-box-shadow !default;
+
+$pagination-hover-color: $gray-600 !default;
+$pagination-hover-bg: $gray-300 !default;
+$pagination-hover-border-color: $gray-300 !default;
+
+$pagination-active-color: $component-active-color !default;
+$pagination-active-bg: $component-active-bg !default;
+$pagination-active-border-color: $pagination-active-bg !default;
+$pagination-active-box-shadow: $btn-hover-box-shadow !default;
+
+$pagination-disabled-color: $gray-600 !default;
+$pagination-disabled-bg: transparent !default;
+$pagination-disabled-border-color: $gray-300 !default;
+
+
+// Cards
+
+$card-spacer-y: 1.25rem !default;
+$card-spacer-x: 1.5rem !default;
+$card-border-width: $border-width !default;
+$card-border-radius: $border-radius-sm !default;
+$card-border-color: rgba($black, .05);
+$card-inner-border-radius: calc(#{$card-border-radius} - #{$card-border-width});
+$card-cap-bg: $gray-100 !default;
+$card-bg: $white !default;
+$card-black-background: #27293d !default;
+$card-img-overlay-padding: 1.25rem !default;
+
+//$card-group-margin: ($grid-gutter-width / 2);
+//$card-deck-margin: $card-group-margin !default;
+
+$card-columns-count: 3 !default;
+$card-columns-gap: 1.25rem !default;
+$card-columns-margin: $card-spacer-y !default;
+
+// Tooltips
+
+$tooltip-font-size: $font-size-sm !default;
+$tooltip-max-width: 200px !default;
+$tooltip-color: $black !default;
+$tooltip-bg: $white !default;
+$tooltip-border-radius: $border-radius !default;
+$tooltip-opacity: .9 !default;
+$tooltip-padding-y: .25rem !default;
+$tooltip-padding-x: .5rem !default;
+$tooltip-margin: 0 !default;
+
+$tooltip-arrow-width: .8rem !default;
+$tooltip-arrow-height: .4rem !default;
+$tooltip-arrow-color: $tooltip-bg !default;
+
+// Modals
+
+$modal-inner-padding: 24px 24px 16px 24px !default;
+
+$modal-lg: 800px !default;
+$modal-md: 500px !default;
+$modal-sm: 380px !default;
+$modal-title-line-height: 1.1;
+$modal-content-bg: $white !default;
+$modal-content-border-color: rgba($black, .2);
+$modal-content-border-width: 1px !default;
+$modal-content-border-radius: $border-radius-sm !default;
+$modal-content-box-shadow-xs: 0px 10px 50px 0px rgba(0, 0, 0, 0.5);
+$modal-content-box-shadow-sm-up: 0 15px 35px rgba(50,50,93,.2), 0 5px 15px rgba(0,0,0,.17);
+
+$modal-backdrop-bg: $black !default;
+$modal-backdrop-opacity: .16 !default;
+$modal-header-border-color: $gray-200 !default;
+$modal-footer-border-color: $modal-header-border-color !default;
+$modal-header-border-width: $modal-content-border-width !default;
+$modal-footer-border-width: $modal-header-border-width !default;
+$modal-header-padding: 24px 24px 0 24px !default;
+
+// Progress bars
+
+$progress-height: .5rem !default;
+$progress-bg: rgba(0, 0, 0, 0.3) !default;
+$progress-border-radius: $border-radius-xl !default;
+$progress-box-shadow: 0px 0px 0px 3px rgba(0, 0, 0, 0.3) !default;
+$progress-bar-color: $white !default;
+
+// Datepicker
+
+$datepicker-border-radius: $card-border-radius !default;
+$datepicker-dropdown-padding: 20px 22px !default;
+
+$datepicker-cell-transition: $transition-base !default;
+$datepicker-cell-hover-background: lighten($gray-400, 55%);
+$datepicker-cell-border-radius: 50% !default;
+$datepicker-cell-width: 36px !default;
+$datepicker-cell-height: 36px !default;
+
+$datepicker-disabled-cell-color: $gray-300 !default;
+$datepicker-disabled-old-new-color: $gray-500 !default;
+
+$datepicker-header-cell-border-radius: $border-radius !default;
+
+$datepicker-active-color: $white !default;
+$datepicker-active-background: theme-color("primary") !default;
+$datepicker-active-box-shadow: none !default;
+
+$datepicker-range-background: theme-color("primary") !default;
+$datepicker-range-cell-focused-background: darken($datepicker-range-background, 5%);
+$datepicker-range-color: $white !default;
+$datepicker-range-highlighted-bg: $gray-200 !default;
+
+$datepicker-dropdown-border: lighten($gray-400, 40%);
+$datepicker-dropdown-bg: $white !default;
+$datepicker-highlighted-bg: $datepicker-active-background !default;
+
+
+// Footer
+
+$footer-link-font-size: .85rem !default;
+$footer-bg: theme-color("secondary") !default;
+$footer-color: $gray-600 !default;
+$footer-link-color: $gray-600 !default;
+$footer-link-hover-color: $gray-700 !default;
+$footer-heading-color: $gray-600 !default;
+$footer-heading-font-size: $font-size-sm !default;
diff --git a/src/assets/scss/black-dashboard/custom/_white-content.scss b/src/assets/scss/black-dashboard/custom/_white-content.scss
new file mode 100644
index 0000000..cbe626e
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/_white-content.scss
@@ -0,0 +1,299 @@
+.white-content{
+
+ background: $light-bg;
+
+ .navbar.navbar-transparent .navbar-brand{
+ color: $black-states;
+ }
+
+ .navbar.navbar-transparent .navbar-toggler-bar{
+ background: $black-states;
+ }
+ .navbar.navbar-transparent .navbar-nav li a:not(.dropdown-item){
+ color: $black-states;
+ & i{
+ color: $black-states;
+ }
+ }
+
+ .navbar.navbar-transparent .navbar-minimize button i{
+ color: $black-states;
+ }
+
+ .navbar.navbar-transparent .search-bar.input-group i{
+ color: $black-states;
+ }
+ .navbar.navbar-transparent .search-bar.input-group .form-control{
+ color: $default;
+ &::placeholder{
+ color: $dark-gray;
+ }
+ }
+
+ .sidebar{
+ box-shadow: 0 2px 22px 0 rgba(0,0,0,.1), 0 4px 20px 0 rgba(0,0,0,.15);
+ p{
+ color: $opacity-8;
+ }
+ }
+
+ .main-panel{
+ background: $light-bg;
+ }
+
+ h1, h2, h3, h4, h5, h6, p, ol li, ul li, pre {
+ color: $black-states;
+ }
+
+ .font-icon-detail i{
+ color: $black;
+ }
+
+ .btn:not([data-action]):hover{
+ box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);
+ }
+
+ .btn-neutral.btn-link{
+ color: rgba($black, 0.7);
+ }
+
+ //style for inputs
+
+ @include form-control-placeholder(rgba($black,0.4), 1);
+ .has-danger{
+ .form-control, .input-group-prepend .input-group-text{
+ border-color: $danger-states;
+ }
+ }
+
+ .input-group-prepend .input-group-text{
+ border-color: rgba($black-states,0.5);
+ color: $black-states;
+ }
+
+ .form-control{
+ color: $black;
+ border-color: rgba($black-states,0.5);
+ &:focus{
+ border-color: $primary;
+ }
+ }
+
+ .form-group.no-border,
+ .input-group.no-border{
+ .form-control,
+ .form-control + .input-group-prepend .input-group-text,
+ .form-control + .input-group-append .input-group-text,
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: $opacity-gray-3;
+ &:focus,
+ &:active,
+ &:active{
+ background-color: $opacity-gray-5;
+ }
+ }
+
+ .form-control{
+ &:focus{
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+
+ background-color: $transparent-bg;
+ }
+ }
+ }
+
+
+ }
+
+ .input-group[disabled]{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: $black;
+ }
+ }
+
+ .form-control[disabled], .form-control[readonly], fieldset[disabled] .form-control{
+ background: $light-gray;
+ border-color: rgba($black-states,0.3);
+ }
+
+ .input-group-focus{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text,
+ .form-control{
+ border-color: $primary;
+ }
+
+ &.no-border{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+
+ background-color: $opacity-gray-5;
+ }
+ }
+ }
+ .input-group-prepend .input-group-text {
+ border-right: none;
+ }
+
+ .input-group-append .input-group-text {
+ border-left: none;
+ }
+
+ .has-danger .form-control:focus, .has-success.input-group-focus .input-group-append .input-group-text, .has-success.input-group-focus .input-group-prepend .input-group-text {
+ border-color: $danger-states;
+ }
+
+ .has-success .form-control:focus, .has-success.input-group-focus .input-group-append .input-group-text, .has-success.input-group-focus .input-group-prepend .input-group-text {
+ border-color: darken($success, 10%);
+ }
+
+ .btn.btn-link{
+ &:hover,&:active, &:focus{
+ color: $dark-gray !important;
+ }
+ }
+
+ .btn-group .btn.active{
+ box-shadow: 0 4px 6px rgba(50,50,93,.11), 0 1px 3px rgba(0,0,0,.08);
+ }
+
+ .card:not(.card-white){
+ background: $white;
+ box-shadow: 0 1px 15px 0 rgba(123, 123, 123, 0.05);
+ .card-header{
+ color: $black;
+ a[data-toggle="collapse"]{
+ color: $black;
+ }
+ }
+ .card-header .card-title, .card-body .card-title{
+ color: $black-states;
+ }
+
+ .card-body{
+ .card-category, .card-description{
+ color: $black-states;
+ }
+ }
+
+
+ label:not(.btn){
+ color: $default;
+ }
+
+
+ &.nav-pills .nav-item .nav-link {
+ color: $nav-gray;
+ background-color: hsla(0,0%,87%,.3);
+ &:not(.active):hover{
+ background: hsla(0,0%,87%,.5);
+ }
+ &.active{
+ color: $white;
+
+ }
+ }
+
+ .tab-content .tab-pane {
+ color: $nav-gray;
+ }
+
+
+ .card{
+ box-shadow: none;
+ }
+
+ &.card-plain{
+ background: $transparent-bg;
+ box-shadow: none;
+ }
+
+ &.card-tasks{
+ .card-body{
+ i{
+ color: rgba(34,42,66,0.7);
+ &:hover{
+ color: $black;
+ }
+ }
+ }
+ }
+ }
+
+ .table{
+
+ > tbody > tr > td {
+ color: rgba($black, 0.7) !important;
+
+ }
+
+ > thead > tr > th,
+ > tbody > tr > th,
+ > tfoot > tr > th,
+ > thead > tr > td,
+ > tbody > tr > td,
+ > tfoot > tr > td{
+ border-color: rgba($black, 0.2);
+ padding: 12px 7px;
+ vertical-align: middle;
+ }
+
+ > thead > tr > th, button.btn-neutral.btn-link{
+ color: rgba($black, 0.7);
+ }
+ }
+
+ .footer ul li a{
+ color: $black-states;
+ }
+
+ .footer .copyright{
+ color: $black-states;
+ }
+
+ .progress-container, .progress-container.progress.sm{
+ .progress{
+ background: rgba($black,0.1);
+ box-shadow: 0 0 0 3px rgba($black,0.1);
+ .progress-value{
+ color: $default;
+ }
+ }
+
+ .progress-badge{
+ color: $black-states;
+ }
+ }
+
+ .full-page{
+ background: $light-bg;
+
+ h1, h2, h3, h4, h5, h6, p, ol li, ul li, pre {
+ color: $black-states;
+ }
+
+ .description{
+ color: $dark-gray;
+ }
+
+ .footer ul li a{
+ color: $black-states;
+ }
+
+ .footer .copyright{
+ color: $black-states;
+ }
+ }
+
+ .nav-pills .nav-item .nav-link:not(.active){
+ background: darken($light-bg,10%);
+ color: $black-states;
+ &:hover{
+ background: darken($white,20%);
+
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/cards/_card-chart.scss b/src/assets/scss/black-dashboard/custom/cards/_card-chart.scss
new file mode 100644
index 0000000..3eb2c82
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/cards/_card-chart.scss
@@ -0,0 +1,73 @@
+.card-chart {
+ overflow: hidden;
+ .card-header{
+ .card-title{
+ i{
+ font-size: 16px;
+ margin-right: 5px;
+ margin-bottom: 3px;
+ }
+ }
+ .card-category{
+ margin-bottom: 5px;
+ }
+ }
+ .card-body{
+ padding-left: 5px;
+ padding-right: 5px;
+ .tab-space{
+ padding: 0;
+ }
+ }
+ .table{
+ margin-bottom: 0;
+
+ td{
+ border-top: none;
+ border-bottom: 1px solid rgba($white,0.1);
+ }
+ }
+
+ .card-progress {
+ margin-top: 30px;
+ padding: 0 10px;
+ }
+
+ .chart-area {
+ height: 220px;
+ width: 100%;
+ }
+ .card-footer {
+ margin-top: 15px;
+
+ .stats{
+ color: $dark-gray;
+ }
+ }
+
+ .dropdown{
+ position: absolute;
+ right: 20px;
+ top: 20px;
+
+ .btn{
+ margin: 0;
+ }
+ }
+
+ &.card-chart-pie{
+ .chart-area{
+ padding: 10px 0 25px;
+ height: auto;
+ }
+
+ .card-title{
+ margin-bottom: 10px;
+ i{
+ font-size: 1rem;
+ }
+ }
+
+ }
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/cards/_card-map.scss b/src/assets/scss/black-dashboard/custom/cards/_card-map.scss
new file mode 100644
index 0000000..063a6c5
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/cards/_card-map.scss
@@ -0,0 +1,3 @@
+.map {
+ height: 500px;
+}
diff --git a/src/assets/scss/black-dashboard/custom/cards/_card-plain.scss b/src/assets/scss/black-dashboard/custom/cards/_card-plain.scss
new file mode 100644
index 0000000..3406628
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/cards/_card-plain.scss
@@ -0,0 +1,16 @@
+.card-plain {
+ background: transparent;
+ box-shadow: none;
+
+ .card-header,
+ .card-footer {
+ margin-left: 0;
+ margin-right: 0;
+ background-color: transparent;
+ }
+
+ &:not(.card-subcategories).card-body {
+ padding-left: 0;
+ padding-right: 0;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/cards/_card-task.scss b/src/assets/scss/black-dashboard/custom/cards/_card-task.scss
new file mode 100644
index 0000000..dcad08d
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/cards/_card-task.scss
@@ -0,0 +1,30 @@
+.card-tasks {
+ height: 473px;
+
+ .table-full-width {
+ max-height: 410px;
+ position: relative;
+ }
+
+ .card-header {
+ .title {
+ margin-right: 20px;
+ font-weight: $font-weight-normal;
+ }
+
+ .dropdown {
+ float: right;
+ color: darken($white, 20%);
+ }
+ }
+
+ .card-body {
+ i {
+ color: $dark-gray;
+ font-size: 1.4em;
+ &:hover {
+ color: $white;
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/cards/_card-user.scss b/src/assets/scss/black-dashboard/custom/cards/_card-user.scss
new file mode 100644
index 0000000..aa2ab39
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/cards/_card-user.scss
@@ -0,0 +1,77 @@
+.card-user {
+ overflow: hidden;
+ .image {
+ height: 120px;
+ }
+
+ .author {
+ text-align: center;
+ text-transform: none;
+ margin-top: 25px;
+
+ a + p.description {
+ margin-top: -7px;
+ }
+
+ .block {
+ position: absolute;
+ height: 100px;
+ width: 250px;
+ &.block-one {
+ @include linear-gradient-right(rgba($primary,0.6), rgba($primary,0));
+ @include nc-rotate(150deg,10);
+ margin-top: -90px;
+ margin-left: -50px;
+ }
+
+ &.block-two {
+ @include linear-gradient-right(rgba($primary,0.6), rgba($primary,0));
+ @include nc-rotate(30deg,10);
+ margin-top: -40px;
+ margin-left: -100px;
+ }
+
+ &.block-three {
+ @include linear-gradient-right(rgba($primary,0.6), rgba($primary,0));
+ @include nc-rotate(170deg,10);
+ margin-top: -70px;
+ right: -45px;
+
+ }
+
+ &.block-four {
+ @include linear-gradient-right(rgba($primary,0.6), rgba($primary,0));
+ @include nc-rotate(150deg,10);
+ margin-top: -25px;
+ right: -45px;
+
+ }
+ }
+ }
+
+ .avatar {
+ width: 124px;
+ height: 124px;
+ border: 5px solid lighten($black,5%);
+ border-bottom-color: $transparent-bg;
+ background-color: $transparent-bg;
+ position: relative;
+ }
+
+ .card-body {
+ min-height: 240px;
+ }
+
+ hr {
+ margin: 5px 15px;
+ }
+
+ .button-container {
+ margin-bottom: 6px;
+ text-align: center;
+ }
+
+ .card-description {
+ margin-top: 30px;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_alert.scss b/src/assets/scss/black-dashboard/custom/mixins/_alert.scss
new file mode 100644
index 0000000..5fc4057
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_alert.scss
@@ -0,0 +1,14 @@
+@mixin alert-variant($background, $border, $color) {
+ color: color-yiq($background);
+ // @include gradient-bg($background);
+ background-color: lighten($background, 5%);
+ border-color: $border;
+
+ hr {
+ border-top-color: darken($border, 5%);
+ }
+
+ .alert-link {
+ color: darken($color, 10%);
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_background-variant.scss b/src/assets/scss/black-dashboard/custom/mixins/_background-variant.scss
new file mode 100644
index 0000000..d6bc3c0
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_background-variant.scss
@@ -0,0 +1,18 @@
+// Contextual backgrounds
+@mixin bg-variant($parent, $color) {
+ #{$parent} {
+ background-color: $color !important;
+ }
+ a#{$parent},
+ button#{$parent} {
+ @include hover-focus {
+ background-color: darken($color, 10%) !important;
+ }
+ }
+}
+
+@mixin bg-gradient-variant($parent, $color) {
+ #{$parent} {
+ background: linear-gradient(87deg, $color 0, adjust-hue($color, 25%) 100%) !important;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_badges.scss b/src/assets/scss/black-dashboard/custom/mixins/_badges.scss
new file mode 100644
index 0000000..c54fd89
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_badges.scss
@@ -0,0 +1,15 @@
+@mixin badge-variant($bg) {
+ color: color-yiq($bg);
+ background-color: $bg;
+
+ &[href] {
+ @include hover-focus {
+ color: color-yiq($bg);
+ text-decoration: none;
+ background-color: darken($bg, 3%);
+ }
+ }
+ .tagsinput-remove-link{
+ color: $white;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_buttons.scss b/src/assets/scss/black-dashboard/custom/mixins/_buttons.scss
new file mode 100644
index 0000000..54f0fd9
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_buttons.scss
@@ -0,0 +1,343 @@
+@mixin btn-styles($btn-color, $btn-states-color) {
+ @include diagonal-gradient($btn-color, $btn-states-color);
+ background-color: $btn-color;
+ transition: all 0.15s ease;
+ box-shadow: none;
+ &.animation-on-hover:hover{
+ background-position: bottom left;
+ transition:0.3s ease-in-out;
+ }
+
+ &:hover,
+ &:focus,
+ &:active,
+ &.active,
+ &:active:focus,
+ &:active:hover,
+ &.active:focus,
+ &.active:hover
+ {
+ background-color: $btn-states-color !important;
+ background-image: linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-image: -webkit-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-image: -o-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-image: -moz-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ color: $white;
+ box-shadow: none;
+ }
+
+ &:active{
+ box-shadow: none !important;
+ transform: translateY(1px) !important;
+ transition: all .15s ease;
+ }
+
+ &:not([data-action]):hover{
+
+ box-shadow: 2px 2px 6px rgba(0,0,0,0.4);
+ transform: translateY(-1px);
+ -webkit-transform: translateY(-1px);
+ }
+
+ &.disabled,
+ &:disabled,
+ &[disabled],
+ fieldset[disabled] & {
+ &,
+ &:hover,
+ &:focus,
+ &.focus,
+ &:active,
+ &.active {
+ background-color: $btn-color;
+ border-color: $btn-color;
+ }
+ }
+
+ // btn-neutral style
+ @if $btn-color == $white{
+ color: $primary;
+
+ &.btn-danger{
+ color: $danger;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus{
+ color: $danger-states;
+ }
+ }
+
+ &.btn-info{
+ color: $info;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus{
+ color: $info-states;
+ }
+ }
+
+ &.btn-warning{
+ color: $warning;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus{
+ color: $warning-states;
+ }
+ }
+
+ &.btn-success{
+ color: $success;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus{
+ color: $success-states;
+ }
+ }
+
+ &.btn-default{
+ color: $default;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:active:focus{
+ color: $default-states;
+ }
+ }
+
+ &.active,
+ &:active,
+ &:active:focus,
+ &:active:hover,
+ &.active:focus,
+ &.active:hover,
+ .show > &.dropdown-toggle,
+ .show > &.dropdown-toggle:focus,
+ .show > &.dropdown-toggle:hover {
+ background-color: $white;
+ color: $primary-states;
+ box-shadow: none;
+ }
+
+ &:hover,
+ &:focus{
+ color: $primary-states;
+
+ &:not(.nav-link){
+ box-shadow: none;
+ }
+
+ }
+
+ } @else {
+ color: $white;
+ }
+
+ &.btn-simple{
+ color: $btn-color;
+ border-color: $btn-color;
+ background: $transparent-bg;
+
+ &:hover,
+ &:focus,
+ &:active,
+ &:not(:disabled):not(.disabled):active{
+ color: $btn-color;
+ border-color: $btn-color;
+ background-color: $transparent-bg !important;
+ background-image: none !important;
+ box-shadow: none;
+ }
+
+ &.active{
+ border-color: $btn-color !important;
+ &:hover,
+ &:focus,
+ &:active,
+ &:not(:disabled):not(.disabled):active{
+ color: $white;
+ border-color: $btn-color;
+ background-image: linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-image: -webkit-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-image: -o-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-image: -moz-linear-gradient(to bottom left, $btn-color, $btn-states-color, $btn-color) !important;
+ background-color: $btn-states-color !important;
+ box-shadow: none;
+ }
+ }
+ }
+
+ &.btn-link{
+ color: $btn-color;
+ &:hover,
+ &:focus,
+ &:active{
+ background-color: $transparent-bg !important;
+ background-image: none !important;
+ color: $white !important;
+ text-decoration: none;
+ box-shadow: none;
+ }
+ }
+}
+
+@mixin button-variant($background, $border, $hover-background: darken($background, 0%), $hover-border: darken($border, 0%), $active-background: darken($background, 10%), $active-border: darken($border, 0%)) {
+ color: color-yiq($background);
+ @include gradient-bg($background);
+ border-color: $border;
+ @include box-shadow($btn-box-shadow);
+
+ @include hover {
+ color: color-yiq($hover-background);
+ @include gradient-bg($hover-background);
+ border-color: $hover-border;
+ }
+
+ &:focus,
+ &.focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $btn-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
+ }
+ @else {
+ box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
+ }
+ } // Disabled comes first so active can properly restyle
+ &.disabled,
+ &:disabled {
+ color: color-yiq($background);
+ background-color: $background;
+ border-color: $border;
+ }
+
+ &:not(:disabled):not(.disabled):active,
+ &:not(:disabled):not(.disabled).active,
+ .show>&.dropdown-toggle {
+ color: color-yiq($active-background);
+ background-color: $active-background;
+ @if $enable-gradients {
+ background-image: none; // Remove the gradient for the pressed/active state
+ }
+ border-color: $active-border;
+
+ &:focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($border, .5);
+ }
+ @else {
+ box-shadow: 0 0 0 $btn-focus-width rgba($border, .5);
+ }
+ }
+ }
+}
+
+@mixin button-outline-variant($color, $color-hover: color-yiq($color), $active-background: $color, $active-border: $color) {
+ color: $color;
+ background-color: transparent;
+ background-image: none;
+ border-color: $color;
+
+ &:hover {
+ color: $color-hover;
+ background-color: $active-background;
+ border-color: $active-border;
+ }
+
+ &:focus,
+ &.focus {
+ box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
+ }
+
+ &.disabled,
+ &:disabled {
+ color: $color;
+ background-color: transparent;
+ }
+
+ &:not(:disabled):not(.disabled):active,
+ &:not(:disabled):not(.disabled).active,
+ .show>&.dropdown-toggle {
+ color: color-yiq($active-background);
+ background-color: $active-background;
+ border-color: $active-border;
+
+ &:focus {
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows and $btn-active-box-shadow !=none {
+ box-shadow: $btn-active-box-shadow, 0 0 0 $btn-focus-width rgba($color, .5);
+ }
+ @else {
+ box-shadow: 0 0 0 $btn-focus-width rgba($color, .5);
+ }
+ }
+ }
+}
+
+// Button sizes
+@mixin btn-size($padding-vertical, $padding-horizontal, $font-size, $border){
+ font-size: $font-size;
+ border-radius: $border;
+ padding: $padding-vertical $padding-horizontal;
+
+ &.btn-simple{
+ padding: $padding-vertical - 1 $padding-horizontal - 1;
+ }
+
+}
+
+// for social buttons
+@mixin social-buttons-color ($color, $state-color){
+ @include diagonal-gradient($color, darken($color,20%));
+ //background-color: $color;
+ color: $white;
+ background-size: 210% 210%;
+ background-position: top right;
+ background-repeat: space;
+
+ &:focus,
+ &:active,
+ &:hover{
+ background-color: $state-color;
+ background-image: linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
+ background-image: -webkit-linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
+ background-image: -o-linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
+ background-image: -moz-linear-gradient(to bottom left, $color, darken($color,20%), $color) !important;
+ color: $white;
+ }
+
+ &.btn-simple{
+ color: $state-color;
+ background-color: $transparent-bg;
+ background-image: none !important;
+ box-shadow: none;
+ border-color: $state-color;
+
+ &:hover,
+ &:focus,
+ &:active{
+ color: $state-color;
+ border-color: $state-color;
+ }
+ }
+
+ &.btn-neutral{
+ color: $color;
+ background-color: $white;
+
+
+ &:hover,
+ &:focus,
+ &:active{
+ color: $state-color;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_dropdown.scss b/src/assets/scss/black-dashboard/custom/mixins/_dropdown.scss
new file mode 100644
index 0000000..101e525
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_dropdown.scss
@@ -0,0 +1,26 @@
+@mixin dropdown-colors($brand-color, $dropdown-header-color, $dropdown-color, $background-color ) {
+ background-color: $brand-color;
+
+ &:before{
+ color: $brand-color;
+ }
+
+ .dropdown-header:not([href]):not([tabindex]){
+ color: $dropdown-header-color;
+ }
+
+ .dropdown-item{
+ color: $dropdown-color;
+
+ &:hover,
+ &:focus{
+ background-color: $background-color;
+ }
+ }
+
+ .dropdown-divider{
+ background-color: $background-color;
+ }
+
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_forms.scss b/src/assets/scss/black-dashboard/custom/mixins/_forms.scss
new file mode 100644
index 0000000..0cee9d9
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_forms.scss
@@ -0,0 +1,127 @@
+@mixin form-control-focus() {
+ &:focus {
+ color: $input-focus-color;
+ background-color: $input-focus-bg;
+ border-color: $input-focus-border-color;
+ outline: 0;
+ // Avoid using mixin so we can pass custom focus shadow properly
+ @if $enable-shadows {
+ box-shadow: $input-box-shadow, $input-focus-box-shadow;
+ } @else {
+ box-shadow: $input-focus-box-shadow;
+ }
+ }
+}
+
+
+@mixin form-validation-state($state, $color) {
+ .#{$state}-feedback {
+ display: none;
+ width: 100%;
+ margin-top: $form-feedback-margin-top;
+ font-size: $form-feedback-font-size;
+ color: $color;
+ }
+
+ .#{$state}-tooltip {
+ position: absolute;
+ top: 100%;
+ z-index: 5;
+ display: none;
+ max-width: 100%; // Contain to parent when possible
+ padding: .5rem;
+ margin-top: .1rem;
+ font-size: .875rem;
+ line-height: 1;
+ color: $white;
+ background-color: rgba($color, .8);
+ border-radius: .2rem;
+ }
+
+ .form-control,
+ .custom-select {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ border-color: $color;
+
+ &:focus {
+ border-color: $color;
+ //box-shadow: 0 1px $input-focus-width 0 rgba($color, .75);
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+ }
+
+ .form-check-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .form-check-label {
+ color: $color;
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+ }
+ }
+
+ .custom-control-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .custom-control-label {
+ color: $color;
+
+ &::before {
+ background-color: lighten($color, 25%);
+ border-color: lighten($color, 25%);
+ }
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+
+ &:checked {
+ ~ .custom-control-label::before {
+ @include gradient-bg(lighten($color, 10%));
+ border-color: lighten($color, 25%);
+ }
+ }
+
+ &:focus {
+ ~ .custom-control-label::before {
+ box-shadow: 0 0 0 1px $body-bg, 0 0 0 $input-focus-width rgba($color, .25);
+ }
+ }
+ }
+ }
+
+ // custom file
+ .custom-file-input {
+ .was-validated &:#{$state},
+ &.is-#{$state} {
+ ~ .custom-file-label {
+ border-color: $color;
+
+ &::before { border-color: inherit; }
+ }
+
+ ~ .#{$state}-feedback,
+ ~ .#{$state}-tooltip {
+ display: block;
+ }
+
+ &:focus {
+ ~ .custom-file-label {
+ box-shadow: 0 0 0 $input-focus-width rgba($color, .25);
+ }
+ }
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_icon.scss b/src/assets/scss/black-dashboard/custom/mixins/_icon.scss
new file mode 100644
index 0000000..8819985
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_icon.scss
@@ -0,0 +1,4 @@
+@mixin icon-shape-variant($color) {
+ color: saturate(darken($color, 10%), 10);
+ background-color: transparentize(lighten($color, 10%), .5);
+}
\ No newline at end of file
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_inputs.scss b/src/assets/scss/black-dashboard/custom/mixins/_inputs.scss
new file mode 100644
index 0000000..ee1e4a9
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_inputs.scss
@@ -0,0 +1,234 @@
+@mixin input-size($padding-vertical, $padding-horizontal){
+ padding: $padding-vertical $padding-horizontal;
+}
+
+@mixin form-control-placeholder($color, $opacity){
+ .form-control::-moz-placeholder{
+ color: $color;
+ @include opacity(1);
+ }
+ .form-control:-moz-placeholder{
+ color: $color;
+ @include opacity(1);
+ }
+ .form-control::-webkit-input-placeholder{
+ color: $color;
+ @include opacity(1);
+ }
+ .form-control:-ms-input-placeholder{
+ color: $color;
+ @include opacity(1);
+ }
+}
+
+@mixin placeholder() {
+ &::-moz-placeholder {@content; } // Firefox
+ &:-ms-input-placeholder {@content; } // Internet Explorer 10+
+ &::-webkit-input-placeholder {@content; } // Safari and Chrome
+}
+
+@mixin light-form(){
+ border-radius: 0;
+ border:0;
+ padding: 0;
+ background-color: transparent;
+
+}
+
+
+@mixin form-control-lg-padding($padding-vertical, $padding-horizontal) {
+ .form-group.no-border.form-control-lg,
+ .input-group.no-border.form-control-lg{
+ .input-group-append .input-group-text{
+ padding: $padding-vertical 0 $padding-vertical $padding-horizontal;
+ }
+
+ .form-control{
+ padding: $padding-vertical $padding-horizontal;
+
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ padding: $padding-vertical $padding-horizontal $padding-vertical 0;
+ }
+
+
+ }
+ }
+
+ .form-group.form-control-lg,
+ .input-group.form-control-lg{
+ .form-control{
+ padding: $padding-vertical - 1 $padding-horizontal - 1;
+ height: 100%;
+
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;
+ }
+ }
+
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ padding: $padding-vertical - 1 0 $padding-vertical $padding-horizontal - 1;
+
+ & + .form-control{
+ padding: $padding-vertical $padding-horizontal - 1 $padding-vertical $padding-horizontal - 3;
+ }
+ }
+ }
+}
+
+
+
+@mixin input-base-padding($padding-vertical, $padding-horizontal) {
+ .form-group.no-border,
+ .input-group.no-border{
+ .form-control{
+ padding: $padding-vertical $padding-horizontal;
+
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ padding: $padding-vertical $padding-horizontal $padding-vertical 0;
+ }
+ }
+
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ padding: $padding-vertical 0 $padding-vertical $padding-horizontal;
+ }
+ }
+
+ .form-group,
+ .input-group{
+ .form-control{
+ padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 $padding-horizontal - 1;
+
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ padding: $padding-vertical - 1 $padding-horizontal - 1 $padding-vertical - 1 0;
+ }
+ }
+
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ padding: $padding-vertical - 1 0 $padding-vertical - 1 $padding-horizontal - 1;
+
+ & + .form-control,
+ & ~ .form-control{
+ padding:$padding-vertical - 1 $padding-horizontal $padding-vertical $padding-horizontal - 3;
+ }
+ }
+ }
+}
+
+
+//color1 = $opacity-5
+//color2 = $opacity-8
+//color3 = $white-color
+//color4 = $transparent-bg
+//color5 = $opacity-1
+//color6 = $opacity-2
+
+
+@mixin input-coloured-bg($color1, $color2, $color3, $color4, $color5, $color6) {
+ @include form-control-placeholder(rgba($white, 0.4), 1);
+
+ .form-control{
+ border-color: $color1;
+ color: $color2;
+
+ &:focus{
+ border-color: $color3;
+ background-color: $color4;
+ color: $color3;
+ }
+ }
+
+ .has-success,
+ .has-danger{
+ &:after{
+ color: $color3;
+ }
+ }
+
+ .has-danger{
+ .form-control{
+ background-color: $color4;
+ }
+ }
+
+ .input-group-prepend{
+ margin-right: 0;
+ }
+
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: rgba($background-black, 0.2);
+ border-color: $color1;
+ color: $color2;
+
+
+ }
+
+ .input-group-focus{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: rgba($background-black, 0.3);
+ border-color: $color3;
+ color: $color3;
+ }
+ }
+
+ .form-group.no-border,
+ .input-group.no-border{
+ .form-control{
+ background-color: rgba($background-black,0.2);
+ color: $color2;
+
+ &:focus,
+ &:active,
+ &:active{
+ background-color: rgba($background-black,0.3);
+ color: $color3;
+ }
+ }
+
+ .form-control + .input-group-prepend .input-group-text,
+ .form-control + .input-group-append .input-group-text{
+ background-color: rgba($background-black,0.2);;
+
+ &:focus,
+ &:active,
+ &:active{
+ background-color: rgba($background-black,0.3);
+ color: $color3;
+ }
+ }
+
+ .form-control{
+ &:focus{
+ & + .input-group-prepend .input-group-text,
+ & + .input-group-append .input-group-text{
+ background-color: rgba($background-black, 0.3);
+ color: $color3;
+ }
+ }
+ }
+
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: rgba($background-black, 0.2);
+ border: none;
+ color: $color2;
+ }
+
+ &.input-group-focus{
+ .input-group-prepend .input-group-text,
+ .input-group-append .input-group-text{
+ background-color: rgba($background-black, 0.3);
+ color: $color3;
+ }
+ }
+ }
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_modals.scss b/src/assets/scss/black-dashboard/custom/mixins/_modals.scss
new file mode 100644
index 0000000..7886994
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_modals.scss
@@ -0,0 +1,15 @@
+@mixin modal-colors($bg-color, $color) {
+ .modal-content{
+ background-color: $bg-color;
+ color: $color;
+ }
+
+ .modal-body p{
+ color: rgba($white, 0.8);
+ }
+
+ //inputs
+ @include input-coloured-bg($opacity-5, $white, $white, $transparent-bg, $opacity-1, $opacity-2);
+
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_page-header.scss b/src/assets/scss/black-dashboard/custom/mixins/_page-header.scss
new file mode 100644
index 0000000..713dfd3
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_page-header.scss
@@ -0,0 +1,7 @@
+@mixin linear-gradient($color1, $color2){
+ background: $color1; /* For browsers that do not support gradients */
+ background: -webkit-linear-gradient(90deg, $color1 , $color2); /* For Safari 5.1 to 6.0 */
+ background: -o-linear-gradient(90deg, $color1, $color2); /* For Opera 11.1 to 12.0 */
+ background: -moz-linear-gradient(90deg, $color1, $color2); /* For Firefox 3.6 to 15 */
+ background: linear-gradient(0deg, $color1 , $color2); /* Standard syntax */
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_popovers.scss b/src/assets/scss/black-dashboard/custom/mixins/_popovers.scss
new file mode 100644
index 0000000..3734e26
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_popovers.scss
@@ -0,0 +1,41 @@
+@mixin popover-variant($background) {
+ background-color: $background;
+
+ .popover-header {
+ background-color: $background;
+ color: color-yiq($background);
+ opacity: .6;
+ }
+
+ .popover-body {
+ color: color-yiq($background);
+ }
+
+ .popover-header{
+ border-color: rgba(color-yiq($background), .2);
+ }
+
+ &.bs-popover-top {
+ .arrow::after {
+ border-top-color: $background;
+ }
+ }
+
+ &.bs-popover-right {
+ .arrow::after {
+ border-right-color: $background;
+ }
+ }
+
+ &.bs-popover-bottom {
+ .arrow::after {
+ border-bottom-color: $background;
+ }
+ }
+
+ &.bs-popover-left {
+ .arrow::after {
+ border-left-color: $background;
+ }
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_vendor-prefixes.scss b/src/assets/scss/black-dashboard/custom/mixins/_vendor-prefixes.scss
new file mode 100644
index 0000000..aab5e88
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_vendor-prefixes.scss
@@ -0,0 +1,202 @@
+
+@mixin transform-translate-x($value){
+ -webkit-transform: translate3d($value, 0, 0);
+ -moz-transform: translate3d($value, 0, 0);
+ -o-transform: translate3d($value, 0, 0);
+ -ms-transform: translate3d($value, 0, 0);
+ transform: translate3d($value, 0, 0);
+}
+
+@mixin transform-translate-y($value){
+ -webkit-transform: translate3d(0,$value,0);
+ -moz-transform: translate3d(0,$value,0);
+ -o-transform: translate3d(0,$value,0);
+ -ms-transform: translate3d(0,$value,0);
+ transform: translate3d(0,$value,0);
+}
+
+@mixin transitions($time, $type){
+ -webkit-transition: all $time $type;
+ -moz-transition: all $time $type;
+ -o-transition: all $time $type;
+ -ms-transition: all $time $type;
+ transition: all $time $type;
+}
+
+@mixin diagonal-gradient($start-color, $end-color){
+ background: $start-color;
+ background-image: -webkit-linear-gradient(to bottom left, $start-color, $end-color, $start-color);
+ background-image: -o-linear-gradient(to bottom left, $start-color, $end-color, $start-color);
+ background-image: -moz-linear-gradient(to bottom left, $start-color, $end-color, $start-color);
+ background-image: linear-gradient(to bottom left, $start-color, $end-color, $start-color);
+ background-size: 210% 210%;
+ background-position: top right;
+}
+
+@mixin bar-animation($type){
+ -webkit-animation: $type 500ms linear 0s;
+ -moz-animation: $type 500ms linear 0s;
+ animation: $type 500ms 0s;
+ -webkit-animation-fill-mode: forwards;
+ -moz-animation-fill-mode: forwards;
+ animation-fill-mode: forwards;
+}
+
+@mixin rotate-180(){
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=2);
+ -webkit-transform: rotate(180deg);
+ -ms-transform: rotate(180deg);
+ transform: rotate(180deg);
+}
+
+@mixin transform-translate-y-dropdown($value) {
+ -webkit-transform: translate3d(0,$value,0) !important;
+ -moz-transform: translate3d(0,$value,0) !important;
+ -o-transform: translate3d(0,$value,0) !important;
+ -ms-transform: translate3d(0,$value,0) !important;
+ transform: translate3d(0,$value,0) !important;
+}
+
+@mixin linear-gradient($color, $states-color){
+ background: $color;
+ background: -webkit-linear-gradient(0deg, $color 0%, $states-color 100%);
+ background: -o-linear-gradient(0deg, $color 0%, $states-color 100%);
+ background: -moz-linear-gradient(0deg, $color 0%, $states-color 100%);
+ background: linear-gradient(0deg, $color 0%, $states-color 100%);
+}
+
+@mixin linear-gradient-right($color, $states-color){
+ background: $color;
+ background: -webkit-linear-gradient(to right, $color 0%, $states-color 100%);
+ background: -o-linear-gradient(to right, $color 0%, $states-color 100%);
+ background: -moz-linear-gradient(to right, $color 0%, $states-color 100%);
+ background: linear-gradient(to right, $color 0%, $states-color 100%);
+}
+
+@mixin sidebar-color($color){
+ &:after{
+ background: $color;
+ }
+
+ .nav li.active > a{
+ color: $color;
+
+ i{
+ color: $color;
+ }
+ }
+}
+
+@mixin transition-input-focus-color() {
+ -webkit-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
+ -moz-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
+ -o-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
+ -ms-transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
+ transition: color 0.3s ease-in-out, border-color 0.3s ease-in-out, background-color 0.3s ease-in-out;
+}
+
+@mixin topbar-x-rotation(){
+ @keyframes topbar-x {
+ 0% {top: 0px; transform: rotate(0deg); }
+ 45% {top: 6px; transform: rotate(145deg); }
+ 75% {transform: rotate(130deg); }
+ 100% {transform: rotate(135deg); }
+ }
+ @-webkit-keyframes topbar-x {
+ 0% {top: 0px; -webkit-transform: rotate(0deg); }
+ 45% {top: 6px; -webkit-transform: rotate(145deg); }
+ 75% {-webkit-transform: rotate(130deg); }
+ 100% { -webkit-transform: rotate(135deg); }
+ }
+ @-moz-keyframes topbar-x {
+ 0% {top: 0px; -moz-transform: rotate(0deg); }
+ 45% {top: 6px; -moz-transform: rotate(145deg); }
+ 75% {-moz-transform: rotate(130deg); }
+ 100% { -moz-transform: rotate(135deg); }
+ }
+}
+
+@mixin topbar-back-rotation(){
+ @keyframes topbar-back {
+ 0% { top: 6px; transform: rotate(135deg); }
+ 45% { transform: rotate(-10deg); }
+ 75% { transform: rotate(5deg); }
+ 100% { top: 0px; transform: rotate(0); }
+ }
+
+ @-webkit-keyframes topbar-back {
+ 0% { top: 6px; -webkit-transform: rotate(135deg); }
+ 45% { -webkit-transform: rotate(-10deg); }
+ 75% { -webkit-transform: rotate(5deg); }
+ 100% { top: 0px; -webkit-transform: rotate(0); }
+ }
+
+ @-moz-keyframes topbar-back {
+ 0% { top: 6px; -moz-transform: rotate(135deg); }
+ 45% { -moz-transform: rotate(-10deg); }
+ 75% { -moz-transform: rotate(5deg); }
+ 100% { top: 0px; -moz-transform: rotate(0); }
+ }
+}
+
+@mixin bottombar-x-rotation(){
+ @keyframes bottombar-x {
+ 0% {bottom: 0px; transform: rotate(0deg);}
+ 45% {bottom: 6px; transform: rotate(-145deg);}
+ 75% {transform: rotate(-130deg);}
+ 100% {transform: rotate(-135deg);}
+ }
+ @-webkit-keyframes bottombar-x {
+ 0% {bottom: 0px; -webkit-transform: rotate(0deg);}
+ 45% {bottom: 6px; -webkit-transform: rotate(-145deg);}
+ 75% {-webkit-transform: rotate(-130deg);}
+ 100% {-webkit-transform: rotate(-135deg);}
+ }
+ @-moz-keyframes bottombar-x {
+ 0% {bottom: 0px; -moz-transform: rotate(0deg);}
+ 45% {bottom: 6px; -moz-transform: rotate(-145deg);}
+ 75% {-moz-transform: rotate(-130deg);}
+ 100% {-moz-transform: rotate(-135deg);}
+ }
+}
+
+@mixin bottombar-back-rotation{
+ @keyframes bottombar-back {
+ 0% { bottom: 6px;transform: rotate(-135deg);}
+ 45% { transform: rotate(10deg);}
+ 75% { transform: rotate(-5deg);}
+ 100% { bottom: 0px;transform: rotate(0);}
+ }
+ @-webkit-keyframes bottombar-back {
+ 0% {bottom: 6px;-webkit-transform: rotate(-135deg);}
+ 45% {-webkit-transform: rotate(10deg);}
+ 75% {-webkit-transform: rotate(-5deg);}
+ 100% {bottom: 0px;-webkit-transform: rotate(0);}
+ }
+ @-moz-keyframes bottombar-back {
+ 0% {bottom: 6px;-moz-transform: rotate(-135deg);}
+ 45% {-moz-transform: rotate(10deg);}
+ 75% {-moz-transform: rotate(-5deg);}
+ 100% {bottom: 0px;-moz-transform: rotate(0);}
+ }
+
+}
+
+
+@mixin nc-rotate($degrees, $rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+ -webkit-transform: rotate($degrees);
+ -moz-transform: rotate($degrees);
+ -ms-transform: rotate($degrees);
+ -o-transform: rotate($degrees);
+ transform: rotate($degrees);
+}
+
+@mixin nc-flip($horiz, $vert, $rotation) {
+ filter: progid:DXImageTransform.Microsoft.BasicImage(rotation=#{$rotation});
+ -webkit-transform: scale($horiz, $vert);
+ -moz-transform: scale($horiz, $vert);
+ -ms-transform: scale($horiz, $vert);
+ -o-transform: scale($horiz, $vert);
+ transform: scale($horiz, $vert);
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/_wizard.scss b/src/assets/scss/black-dashboard/custom/mixins/_wizard.scss
new file mode 100644
index 0000000..211a51c
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/_wizard.scss
@@ -0,0 +1,26 @@
+@mixin set-wizard-color($color) {
+ .progress-with-circle .progress-bar{
+ background: $color;
+ }
+
+ .nav-pills .nav-item .nav-link{
+ color: $color;
+
+ &.checked, &.active{
+ background: $color;
+ color: white;
+ }
+ &:hover{
+ background: $white;
+ }
+ }
+
+ .nav-pills .nav-item .nav-link.active,
+ .nav-pills .nav-item .nav-link.checked:focus,
+ .nav-pills .nav-item .nav-link.checked:hover,
+ .nav-pills .nav-item .nav-link.active:focus,
+ .nav-pills .nav-item .nav-link.active:hover{
+ background: $color;
+ }
+
+}
diff --git a/src/assets/scss/black-dashboard/custom/mixins/opacity.scss b/src/assets/scss/black-dashboard/custom/mixins/opacity.scss
new file mode 100644
index 0000000..df088ad
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/mixins/opacity.scss
@@ -0,0 +1,8 @@
+// Opacity
+
+@mixin opacity($opacity) {
+ opacity: $opacity;
+ // IE8 filter
+ $opacity-ie: ($opacity * 100);
+ filter: #{alpha(opacity=$opacity-ie)};
+}
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_backgrounds.scss b/src/assets/scss/black-dashboard/custom/utilities/_backgrounds.scss
new file mode 100644
index 0000000..037d12f
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_backgrounds.scss
@@ -0,0 +1,42 @@
+@each $color, $value in $colors {
+ @include bg-variant(".bg-#{$color}", $value);
+}
+
+@each $color, $value in $theme-colors {
+ @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
+}
+
+@each $color, $value in $colors {
+ @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
+}
+
+
+// Sections
+
+section {
+ //background-color: section-color("primary");
+}
+
+@each $color, $value in $section-colors {
+ @include bg-variant(".section-#{$color}", $value);
+}
+
+@each $color, $value in $theme-colors {
+ @include bg-gradient-variant(".bg-gradient-#{$color}", $value);
+}
+
+
+// Shape (svg) fill colors
+@each $color, $value in $theme-colors {
+ .fill-#{$color} {
+ fill: $value;
+ }
+
+ .stroke-#{$color} {
+ stroke: $value;
+ }
+}
+
+.fill-opacity-8 {
+ fill-opacity: .8;
+}
\ No newline at end of file
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_floating.scss b/src/assets/scss/black-dashboard/custom/utilities/_floating.scss
new file mode 100644
index 0000000..357a2dc
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_floating.scss
@@ -0,0 +1,54 @@
+.floating {
+ animation: floating 3s ease infinite;
+ will-change: transform;
+
+ &:hover {
+ animation-play-state: paused;
+ }
+}
+
+.floating-lg {
+ animation: floating-lg 3s ease infinite;
+}
+
+.floating-sm {
+ animation: floating-sm 3s ease infinite;
+}
+
+// Keyframes
+
+@keyframes floating-lg {
+ 0% {
+ transform: translateY(0px)
+ }
+ 50% {
+ transform: translateY(15px)
+ }
+ 100% {
+ transform: translateY(0px)
+ }
+}
+
+@keyframes floating {
+ 0% {
+ transform: translateY(0px)
+ }
+ 50% {
+ transform: translateY(10px)
+ }
+ 100% {
+ transform: translateY(0px)
+ }
+}
+
+@keyframes floating-sm {
+ 0% {
+ transform: translateY(0px)
+ }
+ 50% {
+ transform: translateY(5px)
+ }
+ 100% {
+ transform: translateY(0px)
+ }
+}
\ No newline at end of file
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_helper.scss b/src/assets/scss/black-dashboard/custom/utilities/_helper.scss
new file mode 100644
index 0000000..f0faa58
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_helper.scss
@@ -0,0 +1,62 @@
+// Image
+
+.img-center {
+ display: block;
+ margin-left: auto;
+ margin-right: auto;
+}
+
+// Clearfix
+
+.floatfix {
+ &:before,
+ &:after {
+ content: '';
+ display: table;
+ }
+ &:after {
+ clear: both;
+ }
+}
+
+// Overflows
+
+.overflow-visible {
+ overflow: visible !important;
+}
+.overflow-hidden {
+ overflow: hidden !important;
+}
+
+// Opacity classes
+
+.opacity-1 {
+ opacity: .1 !important;
+}
+.opacity-2 {
+ opacity: .2 !important;
+}
+.opacity-3 {
+ opacity: .3 !important;
+}
+.opacity-4 {
+ opacity: .4 !important;
+}
+.opacity-5 {
+ opacity: .5 !important;
+}
+.opacity-6 {
+ opacity: .6 !important;
+}
+.opacity-7 {
+ opacity: .7 !important;
+}
+.opacity-8 {
+ opacity: .8 !important;
+}
+.opacity-8 {
+ opacity: .9 !important;
+}
+.opacity-10 {
+ opacity: 1 !important;
+}
\ No newline at end of file
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_position.scss b/src/assets/scss/black-dashboard/custom/utilities/_position.scss
new file mode 100644
index 0000000..d7aa5a9
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_position.scss
@@ -0,0 +1,19 @@
+@each $size, $value in $spacers {
+ .top-#{$size} {
+ top: $value;
+ }
+ .right-#{$size} {
+ right: $value;
+ }
+ .bottom-#{$size} {
+ bottom: $value;
+ }
+ .left-#{$size} {
+ left: $value;
+ }
+}
+
+.center {
+ left: 50%;
+ transform: translateX(-50%);
+}
\ No newline at end of file
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_shadows.scss b/src/assets/scss/black-dashboard/custom/utilities/_shadows.scss
new file mode 100644
index 0000000..01f4f3c
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_shadows.scss
@@ -0,0 +1,10 @@
+[class*="shadow"] {
+ @if $enable-transitions {
+ transition: $transition-base;
+ }
+}
+
+.shadow-sm--hover:hover { box-shadow: $box-shadow-sm !important; }
+.shadow--hover:hover { box-shadow: $box-shadow !important; }
+.shadow-lg--hover:hover { box-shadow: $box-shadow-lg !important; }
+.shadow-none--hover:hover { box-shadow: none !important; }
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_sizing.scss b/src/assets/scss/black-dashboard/custom/utilities/_sizing.scss
new file mode 100644
index 0000000..4361abf
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_sizing.scss
@@ -0,0 +1,5 @@
+// Height values in vh
+
+.h-100vh {
+ height: 100vh !important;
+}
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_spacing.scss b/src/assets/scss/black-dashboard/custom/utilities/_spacing.scss
new file mode 100644
index 0000000..32a0061
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_spacing.scss
@@ -0,0 +1,105 @@
+// Spacing columns vertically
+
+.row.row-grid > [class*="col-"] + [class*="col-"] {
+ margin-top: 3rem;
+}
+
+@include media-breakpoint-up(lg) {
+ .row.row-grid > [class*="col-lg-"] + [class*="col-lg-"] {
+ margin-top: 0;
+ }
+}
+@include media-breakpoint-up(md) {
+ .row.row-grid > [class*="col-md-"] + [class*="col-md-"] {
+ margin-top: 0;
+ }
+}
+@include media-breakpoint-up(sm) {
+ .row.row-grid > [class*="col-sm-"] + [class*="col-sm-"] {
+ margin-top: 0;
+ }
+}
+
+.row-grid + .row-grid {
+ margin-top: 3rem;
+}
+
+// Negative margins and paddings
+
+@media(min-width: 992px) {
+ [class*="mt--"],
+ [class*="mr--"],
+ [class*="mb--"],
+ [class*="ml--"] {
+ position: relative;
+ z-index: 5;
+ }
+
+
+ // Large negative margins in pixels
+
+ .mt--100 {
+ margin-top: -100px !important;
+ }
+ .mr--100 {
+ margin-right: -100px !important;
+ }
+ .mb--100 {
+ margin-bottom: -100px !important;
+ }
+ .ml--100 {
+ margin-left: -100px !important;
+ }
+ .mt--150 {
+ margin-top: -150px !important;
+ }
+ .mb--150 {
+ margin-bottom: -150px !important;
+ }
+ .mt--200 {
+ margin-top: -200px !important;
+ }
+ .mb--200 {
+ margin-bottom: -200px !important;
+ }
+ .mt--300 {
+ margin-top: -300px !important;
+ }
+ .mb--300 {
+ margin-bottom: -300px !important;
+ }
+
+
+ // Large margins in pixels
+
+ .pt-100 {
+ padding-top: 100px !important;
+ }
+ .pb-100 {
+ padding-bottom: 100px !important;
+ }
+ .pt-150 {
+ padding-top: 150px !important;
+ }
+ .pb-150 {
+ padding-bottom: 150px !important;
+ }
+ .pt-200 {
+ padding-top: 200px !important;
+ }
+ .pb-200 {
+ padding-bottom: 200px !important;
+ }
+ .pt-250 {
+ padding-top: 250px !important;
+ }
+ .pb-250 {
+ padding-bottom: 250px !important;
+ }
+ .pt-300 {
+ padding-top: 300px!important;
+ }
+ .pb-300 {
+ padding-bottom: 300px!important;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_text.scss b/src/assets/scss/black-dashboard/custom/utilities/_text.scss
new file mode 100644
index 0000000..417d21a
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_text.scss
@@ -0,0 +1,40 @@
+// Weight and italics
+
+.font-weight-300 { font-weight: 300 !important; }
+.font-weight-400 { font-weight: 400 !important; }
+.font-weight-500 { font-weight: 500 !important; }
+.font-weight-600 { font-weight: 600 !important; }
+.font-weight-700 { font-weight: 700 !important; }
+.font-weight-800 { font-weight: 800 !important; }
+.font-weight-900 { font-weight: 900 !important; }
+
+
+// Text decorations
+
+.text-underline { text-decoration: underline; }
+.text-through { text-decoration: line-through; }
+
+
+// Line heights
+
+.lh-100 { line-height: 1; }
+.lh-110 { line-height: 1.1; }
+.lh-120 { line-height: 1.2; }
+.lh-130 { line-height: 1.3; }
+.lh-140 { line-height: 1.4; }
+.lh-150 { line-height: 1.5; }
+.lh-160 { line-height: 1.6; }
+.lh-170 { line-height: 1.7; }
+.lh-180 { line-height: 1.8; }
+
+//Contextual colors
+
+.text-muted { color: $text-muted !important; }
+
+
+
+// Letter spacings
+
+.ls-1 { letter-spacing: .0625rem; }
+.ls-15 { letter-spacing: .09375rem; }
+.ls-2 { letter-spacing: 0.125rem; }
diff --git a/src/assets/scss/black-dashboard/custom/utilities/_transform.scss b/src/assets/scss/black-dashboard/custom/utilities/_transform.scss
new file mode 100644
index 0000000..1f0d4b1
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/utilities/_transform.scss
@@ -0,0 +1,8 @@
+@include media-breakpoint-up(lg) {
+ .transform-perspective-right {
+ transform: scale(1) perspective(1040px) rotateY(-11deg) rotateX(2deg) rotate(2deg);
+ }
+ .transform-perspective-left{
+ transform: scale(1) perspective(2000px) rotateY(11deg) rotateX(2deg) rotate(-2deg)
+ }
+}
diff --git a/src/assets/scss/black-dashboard/custom/vendor/_plugin-animate-bootstrap-notify.scss b/src/assets/scss/black-dashboard/custom/vendor/_plugin-animate-bootstrap-notify.scss
new file mode 100644
index 0000000..387d152
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/vendor/_plugin-animate-bootstrap-notify.scss
@@ -0,0 +1,227 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+// This file was modified by Creative Tim to keep only the animation that we need for Bootstrap Notify
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+@charset "UTF-8";
+
+/*!
+Animate.css - http://daneden.me/animate
+Licensed under the MIT license - http://opensource.org/licenses/MIT
+
+Copyright (c) 2015 Daniel Eden
+*/
+
+.animated {
+ -webkit-animation-duration: 1s;
+ animation-duration: 1s;
+ -webkit-animation-fill-mode: both;
+ animation-fill-mode: both;
+}
+
+.animated.infinite {
+ -webkit-animation-iteration-count: infinite;
+ animation-iteration-count: infinite;
+}
+
+.animated.hinge {
+ -webkit-animation-duration: 2s;
+ animation-duration: 2s;
+}
+
+.animated.bounceIn,
+.animated.bounceOut {
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s;
+}
+
+.animated.flipOutX,
+.animated.flipOutY {
+ -webkit-animation-duration: .75s;
+ animation-duration: .75s;
+}
+
+@-webkit-keyframes shake {
+ from, to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+}
+
+@keyframes shake {
+ from, to {
+ -webkit-transform: translate3d(0, 0, 0);
+ transform: translate3d(0, 0, 0);
+ }
+
+ 10%, 30%, 50%, 70%, 90% {
+ -webkit-transform: translate3d(-10px, 0, 0);
+ transform: translate3d(-10px, 0, 0);
+ }
+
+ 20%, 40%, 60%, 80% {
+ -webkit-transform: translate3d(10px, 0, 0);
+ transform: translate3d(10px, 0, 0);
+ }
+}
+
+.shake {
+ -webkit-animation-name: shake;
+ animation-name: shake;
+}
+
+
+
+@-webkit-keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+@keyframes fadeInDown {
+ from {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+
+ to {
+ opacity: 1;
+ -webkit-transform: none;
+ transform: none;
+ }
+}
+
+.fadeInDown {
+ -webkit-animation-name: fadeInDown;
+ animation-name: fadeInDown;
+}
+
+
+@-webkit-keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+@keyframes fadeOut {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ }
+}
+
+.fadeOut {
+ -webkit-animation-name: fadeOut;
+ animation-name: fadeOut;
+}
+
+@-webkit-keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+@keyframes fadeOutDown {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, 100%, 0);
+ transform: translate3d(0, 100%, 0);
+ }
+}
+
+.fadeOutDown {
+ -webkit-animation-name: fadeOutDown;
+ animation-name: fadeOutDown;
+}
+
+@-webkit-keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+@keyframes fadeOutUp {
+ from {
+ opacity: 1;
+ }
+
+ to {
+ opacity: 0;
+ -webkit-transform: translate3d(0, -100%, 0);
+ transform: translate3d(0, -100%, 0);
+ }
+}
+
+.fadeOutUp {
+ -webkit-animation-name: fadeOutUp;
+ animation-name: fadeOutUp;
+}
diff --git a/src/assets/scss/black-dashboard/custom/vendor/_plugin-perfect-scrollbar.scss b/src/assets/scss/black-dashboard/custom/vendor/_plugin-perfect-scrollbar.scss
new file mode 100644
index 0000000..b486392
--- /dev/null
+++ b/src/assets/scss/black-dashboard/custom/vendor/_plugin-perfect-scrollbar.scss
@@ -0,0 +1,116 @@
+/*
+ * Container style
+ */
+.ps {
+ overflow: hidden !important;
+ overflow-anchor: none;
+ -ms-overflow-style: none;
+ touch-action: auto;
+ -ms-touch-action: auto;
+}
+
+/*
+ * Scrollbar rail styles
+ */
+.ps__rail-x {
+ display: none;
+ opacity: 0;
+ transition: background-color .2s linear, opacity .2s linear;
+ -webkit-transition: background-color .2s linear, opacity .2s linear;
+ height: 15px;
+ /* there must be 'bottom' or 'top' for ps__rail-x */
+ bottom: 0px;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps__rail-y {
+ display: none;
+ opacity: 0;
+ transition: background-color .2s linear, opacity .2s linear;
+ -webkit-transition: background-color .2s linear, opacity .2s linear;
+ width: 15px;
+ /* there must be 'right' or 'left' for ps__rail-y */
+ right: 0;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps--active-x > .ps__rail-x,
+.ps--active-y > .ps__rail-y {
+ display: block;
+ background-color: transparent;
+}
+
+.ps:hover > .ps__rail-x,
+.ps:hover > .ps__rail-y,
+.ps--focus > .ps__rail-x,
+.ps--focus > .ps__rail-y,
+.ps--scrolling-x > .ps__rail-x,
+.ps--scrolling-y > .ps__rail-y {
+ opacity: 0.6;
+}
+
+.ps .ps__rail-x:hover,
+.ps .ps__rail-y:hover,
+.ps .ps__rail-x:focus,
+.ps .ps__rail-y:focus,
+.ps .ps__rail-x.ps--clicking,
+.ps .ps__rail-y.ps--clicking {
+ background-color: #eee;
+ opacity: 0.9;
+}
+
+/*
+ * Scrollbar thumb styles
+ */
+.ps__thumb-x {
+ background-color: #aaa;
+ border-radius: 6px;
+ transition: background-color .2s linear, height .2s ease-in-out;
+ -webkit-transition: background-color .2s linear, height .2s ease-in-out;
+ height: 6px;
+ /* there must be 'bottom' for ps__thumb-x */
+ bottom: 2px;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps__thumb-y {
+ background-color: #aaa;
+ border-radius: 6px;
+ transition: background-color .2s linear, width .2s ease-in-out;
+ -webkit-transition: background-color .2s linear, width .2s ease-in-out;
+ width: 6px;
+ /* there must be 'right' for ps__thumb-y */
+ right: 2px;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps__rail-x:hover > .ps__thumb-x,
+.ps__rail-x:focus > .ps__thumb-x,
+.ps__rail-x.ps--clicking .ps__thumb-x {
+ background-color: #999;
+ height: 11px;
+}
+
+.ps__rail-y:hover > .ps__thumb-y,
+.ps__rail-y:focus > .ps__thumb-y,
+.ps__rail-y.ps--clicking .ps__thumb-y {
+ background-color: #999;
+ width: 11px;
+}
+
+/* MS supports */
+@supports (-ms-overflow-style: none) {
+ .ps {
+ overflow: auto !important;
+ }
+}
+
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .ps {
+ overflow: auto !important;
+ }
+}
diff --git a/src/assets/scss/black-dashboard/plugins/_plugin-perfect-scrollbar.scss b/src/assets/scss/black-dashboard/plugins/_plugin-perfect-scrollbar.scss
new file mode 100644
index 0000000..b486392
--- /dev/null
+++ b/src/assets/scss/black-dashboard/plugins/_plugin-perfect-scrollbar.scss
@@ -0,0 +1,116 @@
+/*
+ * Container style
+ */
+.ps {
+ overflow: hidden !important;
+ overflow-anchor: none;
+ -ms-overflow-style: none;
+ touch-action: auto;
+ -ms-touch-action: auto;
+}
+
+/*
+ * Scrollbar rail styles
+ */
+.ps__rail-x {
+ display: none;
+ opacity: 0;
+ transition: background-color .2s linear, opacity .2s linear;
+ -webkit-transition: background-color .2s linear, opacity .2s linear;
+ height: 15px;
+ /* there must be 'bottom' or 'top' for ps__rail-x */
+ bottom: 0px;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps__rail-y {
+ display: none;
+ opacity: 0;
+ transition: background-color .2s linear, opacity .2s linear;
+ -webkit-transition: background-color .2s linear, opacity .2s linear;
+ width: 15px;
+ /* there must be 'right' or 'left' for ps__rail-y */
+ right: 0;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps--active-x > .ps__rail-x,
+.ps--active-y > .ps__rail-y {
+ display: block;
+ background-color: transparent;
+}
+
+.ps:hover > .ps__rail-x,
+.ps:hover > .ps__rail-y,
+.ps--focus > .ps__rail-x,
+.ps--focus > .ps__rail-y,
+.ps--scrolling-x > .ps__rail-x,
+.ps--scrolling-y > .ps__rail-y {
+ opacity: 0.6;
+}
+
+.ps .ps__rail-x:hover,
+.ps .ps__rail-y:hover,
+.ps .ps__rail-x:focus,
+.ps .ps__rail-y:focus,
+.ps .ps__rail-x.ps--clicking,
+.ps .ps__rail-y.ps--clicking {
+ background-color: #eee;
+ opacity: 0.9;
+}
+
+/*
+ * Scrollbar thumb styles
+ */
+.ps__thumb-x {
+ background-color: #aaa;
+ border-radius: 6px;
+ transition: background-color .2s linear, height .2s ease-in-out;
+ -webkit-transition: background-color .2s linear, height .2s ease-in-out;
+ height: 6px;
+ /* there must be 'bottom' for ps__thumb-x */
+ bottom: 2px;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps__thumb-y {
+ background-color: #aaa;
+ border-radius: 6px;
+ transition: background-color .2s linear, width .2s ease-in-out;
+ -webkit-transition: background-color .2s linear, width .2s ease-in-out;
+ width: 6px;
+ /* there must be 'right' for ps__thumb-y */
+ right: 2px;
+ /* please don't change 'position' */
+ position: absolute;
+}
+
+.ps__rail-x:hover > .ps__thumb-x,
+.ps__rail-x:focus > .ps__thumb-x,
+.ps__rail-x.ps--clicking .ps__thumb-x {
+ background-color: #999;
+ height: 11px;
+}
+
+.ps__rail-y:hover > .ps__thumb-y,
+.ps__rail-y:focus > .ps__thumb-y,
+.ps__rail-y.ps--clicking .ps__thumb-y {
+ background-color: #999;
+ width: 11px;
+}
+
+/* MS supports */
+@supports (-ms-overflow-style: none) {
+ .ps {
+ overflow: auto !important;
+ }
+}
+
+@media screen and (-ms-high-contrast: active), (-ms-high-contrast: none) {
+ .ps {
+ overflow: auto !important;
+ }
+}
diff --git a/src/index.html b/src/index.html
index 506492d..f02b301 100644
--- a/src/index.html
+++ b/src/index.html
@@ -1,14 +1,18 @@
-
-
- Frontend
-
-
-
-
-
-
-
-
+
+
+ Frontend
+
+
+
+
+
+
+
+
+
+
+
+
|