@import 'svg-url-encoder.scss';
@import 'variables-custom.scss';
/*===================================
= Main navbar =
===================================*/
@function get-color($colorName) {
@return map-get($colors, $colorName);
}
#website-navbar {
font-family: 'Roboto Condensed';
box-shadow: 0 0.5rem 1rem rgba(0, 0, 0, 0.15);
.navbar-nav {
display: flex;
flex-wrap: nowrap;
align-items: stretch;
width: 100%;
margin-top: 1rem;
.nav-item {
line-height: 1.25rem;
justify-content: center;
align-items: stretch;
flex-grow: 1;
}
.nav-link {
display: flex;
align-items: center;
justify-content: center;
flex-direction: column;
text-align: center;
text-transform: uppercase;
font-size: 0.875rem;
padding-left: $nav-link-padding-x;
padding-right: $nav-link-padding-x;
padding-top: $nav-link-padding-y;
padding-bottom: $nav-link-padding-y;
&:hover,
&:focus,
&.active {
text-decoration: none;
background-color: get-color(gray-700);
}
}
}
}
@include media-breakpoint-up(lg) {
#website-navbar {
box-shadow: 0px 2px 1px rgba(0, 0, 0, 0.12), 0px 1px 1px rgba(0, 0, 0, 0.24);
.navbar-nav {
margin-top: 0;
.nav-link {
font-size: 0.8125rem;
padding-left: 0.75rem;
padding-right: 0.75rem;
height: 100%;
}
}
.navbar-brand {
margin-bottom: 0;
font-size: 1.0625rem;
}
}
}
/*===============================
= Sidebar =
===============================*/
@function get-color($colorName) {
@return map-get($colors, $colorName);
}
$navbar-height: 72px;
$navbar-left-width: 230px;
$navbar-left-color: #fff;
$navbar-left-background: $gray-800;
$navbar-left-active-background: get-color(red-600);
#navbar-left-wrapper {
display: none;
position: fixed;
top: $navbar-height;
padding-right: 0;
width: $navbar-left-width;
height: 100%;
background-color: $navbar-left-background;
z-index: 2;
box-shadow: 2px 0px 1px rgba(0, 0, 0, 0.12), 1px 0px 1px rgba(0, 0, 0, 0.24);
#navbar-left-collapse {
display: none;
}
~ .container {
padding-left: $navbar-left-width;
}
@include media-breakpoint-up(lg) {
display: block;
~ .container-fluid {
padding-left: $navbar-left-width + $grid-gutter-width / 2;
}
}
}
/* navbar-left md, sm & xs devices*/
@include media-breakpoint-down(md) {
#navbar-left-wrapper {
#navbar-left-collapse {
display: block;
}
~ .container {
padding-left: 15px;
}
}
.w3-animate-left {
position: relative;
animation: animateleft 0.4s;
}
@keyframes animateleft {
from {
left: -$navbar-left-width;
opacity: 0;
}
to {
left: 0;
opacity: 1;
}
}
}
#navbar-left {
z-index: 100;
position: relative;
width: 100%;
color: $navbar-left-color;
background-color: $navbar-left-background;
box-shadow: 0 1px 0 rgba(3, 3, 3, 1);
ul,
li {
margin: 0;
padding: 0;
}
> li {
/* main links*/
> a {
padding: 12px 20px 12px 18px;
border-top: 1px solid lighten($navbar-left-background, 10%);
border-bottom: 1px solid darken($navbar-left-background, 8%);
text-shadow: 1px 1px 0 lighten($navbar-left-background, 10%);
color: $navbar-left-color;
background-color: lighten($navbar-left-background, 5%);
font-size: 13px;
font-weight: 400;
i {
line-height: 20px;
}
/* active main links*/
&:hover,
&.active {
background-color: darken($navbar-left-active-background, 5%);
}
}
a[aria-expanded='true'],
a[aria-expanded='false'] {
i {
transition: all 0.3s ease-in;
}
&[aria-expanded='true'] {
i {
rotate: -180deg;
}
~ ul {
border-top: 1px solid #494f4f;
border-bottom: 1px solid #212424;
}
}
}
/* 2nd level*/
> ul {
> li {
/* all secondary levels links*/
width: 100%;
a {
font-size: 13px;
font-weight: 300;
line-height: 20px;
display: block;
padding: 5px 22px 5px 30px;
text-decoration: none;
text-shadow: none;
border-top: 1px solid lighten($navbar-left-background, 15%);
border-bottom: 1px solid darken($navbar-left-background, 5%);
text-shadow: 1px 1px 0 lighten($navbar-left-background, 10%);
color: $navbar-left-color;
background-color: lighten($navbar-left-background, 8%);
.badge {
text-shadow: none;
text-transform: uppercase;
}
i {
line-height: 20px;
font-size: 18px;
}
&:hover,
&.active {
background-color: $navbar-left-active-background;
}
}
&:first-child a {
border-top: none;
}
&:last-child a {
border-bottom: none;
}
/* 3rd level*/
> ul {
li {
/* all secondary levels links*/
width: 100%;
list-style-type: square;
a {
font-size: 13px;
line-height: 20px;
display: block;
padding: 5px 22px 5px 40px;
text-decoration: none;
text-shadow: none;
color: transparentize($navbar-left-color, 0.25);
background-color: lighten($navbar-left-background, 10%);
i {
line-height: 20px;
font-size: 18px;
}
&:before {
display: inline-block;
content: '■';
padding-right: 7px;
}
&:hover,
&.active {
background-color: lighten($navbar-left-active-background, 10%);
}
}
}
}
}
}
}
}
/*====================================================
= timeline list + badge-circle =
====================================================*/
$tl-circle-size: 50px;
$tl-line-height: 1.5em;
$tl-border-width: 4px;
.badge-circle {
display: flex;
justify-content: center;
align-items: center;
position: relative;
left: -($tl-circle-size + $tl-border-width)/2;
top: -($tl-circle-size + $tl-border-width)/2 + 1px;
height: $tl-circle-size;
width: $tl-circle-size;
min-width: $tl-circle-size;
font-size: $tl-circle-size/3;
border-radius: 50%;
}
.list-timeline {
padding-left: $tl-circle-size/2;
padding-top: $tl-circle-size/2;
> li {
border-left: $tl-border-width solid #ddd;
.timeline-content {
position: relative;
top: -$tl-line-height/2;
}
&:last-child {
border-left: $tl-border-width solid transparent;
}
}
}
/* Cards (template isotope grid) */
.grid {
.card {
display: block;
position: relative;
margin: 0 0 2rem 0;
transition: box-shadow 0.25s;
border-radius: 2px;
padding: 20px;
display: block;
color: $gray-dark;
min-height: 60px;
.badge {
position: absolute;
right: 20px;
font-size: 12px;
top: 50%;
margin-top: -9px;
}
&.card-indigo {
background-color: $indigo;
.badge {
background: darken($indigo, 15%);
}
}
&.card-pink {
background-color: $pink;
.badge {
background: darken($pink, 15%);
}
}
&.card-info {
background-color: get-color(info-500);
.badge {
background: darken(get-color(info-500), 15%);
}
}
&.card-primary {
background-color: get-color(primary-500);
&.deprecated {
background-color: transparentize(get-color(primary-500), 0.2);
}
.badge {
background: darken(get-color(primary-500), 15%);
}
}
&.card-success {
background-color: get-color(success-500);
.badge {
background: darken(get-color(success-500), 15%);
}
}
.item {
color: #fff;
font-size: 1.0625rem;
}
&:hover {
text-decoration: none;
}
box-shadow: 0 2px 5px 0 rgba(0, 0, 0, 0.16), 0 2px 10px 0 rgba(0, 0, 0, 0.12);
&.has-icon {
padding-left: 85px;
padding-right: 95px;
&:before {
font-family: 'icomoon';
display: flex;
justify-content: center;
align-items: center;
font-size: 1.75rem;
color: #fff;
border-radius: $border-radius 0 0 $border-radius;
width: 54px;
height: 100%;
}
&:after {
content: ' ';
position: absolute;
top: calc(50% - 6px);
left: 54px;
width: 0;
height: 0;
border-style: solid;
border-width: 6px 0 6px 6px;
}
&.card-indigo {
&:before {
text-shadow: 1px 1px 3px darken($indigo, 30%);
background: darken($indigo, 15%);
}
&:after {
border-color: transparent transparent transparent darken($indigo, 15%);
}
&:hover {
background: lighten($indigo, 7.5%);
&:before {
background: darken($indigo, 20%);
}
&:after {
border-color: transparent transparent transparent darken($indigo, 20%);
}
}
}
&.card-pink {
&:before {
text-shadow: 1px 1px 3px darken($pink, 30%);
background: darken($pink, 15%);
}
&:after {
border-color: transparent transparent transparent darken($pink, 15%);
}
&:hover {
background: lighten($pink, 7.5%);
&:before {
background: darken($pink, 20%);
}
&:after {
border-color: transparent transparent transparent darken($pink, 20%);
}
}
}
&.card-info {
&:before {
text-shadow: 1px 1px 3px darken(get-color(info-500), 30%);
background: darken(get-color(info-500), 15%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(info-500), 15%);
}
&:hover {
background: lighten(get-color(info-500), 7.5%);
&:before {
background: darken(get-color(info-500), 20%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(info-500), 20%);
}
}
}
&.card-primary {
&:before {
text-shadow: 1px 1px 3px darken(get-color(primary-500), 30%);
background: darken(get-color(primary-500), 15%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(primary-500), 15%);
}
&:hover {
background: lighten(get-color(primary-500), 15%);
&:before {
background: darken(get-color(primary-500), 25%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(primary-500), 25%);
}
}
}
&.card-success {
&:before {
text-shadow: 1px 1px 3px darken(get-color(success-500), 30%);
background: darken(get-color(success-500), 15%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(success-500), 15%);
}
&:hover {
background: lighten(get-color(success-500), 7.5%);
&:before {
background: darken(get-color(success-500), 20%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(success-500), 20%);
}
}
}
}
}
.deprecated {
.card {
&.card-indigo,
&.card-info,
&.card-primary,
&.card-success {
h4 {
color: darken(get-color(gray-200), 20%);
}
background-color: get-color(gray-200);
.label {
background: darken(get-color(gray-200), 15%);
}
&.has-icon {
&:before {
text-shadow: 1px 1px 3px darken(get-color(gray-200), 30%);
background: darken(get-color(gray-200), 15%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(gray-200), 15%);
}
&:hover {
background: lighten(get-color(gray-200), 7.5%);
&:before {
background: darken(get-color(gray-200), 20%);
}
&:after {
border-color: transparent transparent transparent darken(get-color(gray-200), 20%);
}
}
}
}
}
}
}
/*============================================
= responsive card-deck =
============================================*/
/* Bootstrap 4 breakpoints & gutter*/
$card-grid-breakpoints: (xs: 0, md: 768px, lg: 992px) !default;
/* $grid-gutter-width: 30px !default;*/
/* number of cards per line for each breakpoint*/
$cards-per-line: (
xs: 1,
md: 2,
lg: 3
);
@each $name, $breakpoint in $card-grid-breakpoints {
@media (min-width: $breakpoint) {
.card-deck .card {
flex: 0 0 calc(#{100/map-get($cards-per-line, $name)}% - #{$grid-gutter-width});
}
}
}
/*=============================================
= Global caret settings =
=============================================*/
%dropdown-toggle-after {
line-height: $font-size-base * 1.5;
position: absolute;
top: calc(50% - 7px);
right: $spacer;
display: block;
width: 7px;
height: 14px;
margin: 0;
content: ' ';
transition: transform 0.2s ease-in-out;
transform: rotate(0deg);
border: none;
background-repeat: no-repeat;
}
.dropdown-toggle {
position: relative;
padding-right: $spacer * 2.5 !important;
&:not(.sidebar-toggler):after {
@extend %dropdown-toggle-after;
}
&:not(.dropdown-light):after {
@include background-svg('');
}
&.dropdown-light:after {
@include background-svg('');
}
&[aria-expanded='true']:after {
transform: rotate(90deg);
}
}
/*==========================================================================
= Filetree (http://jsfiddle.net/mehmetatas/fXzHS/2/) =
==========================================================================*/
.tree li {
margin: 0 0 !important;
list-style-type: none;
position: relative;
padding: 20px 5px 0px 5px;
small {
display: inline-block;
}
}
.tree li::before {
content: '';
position: absolute;
top: 0;
width: 1px;
height: 100%;
right: auto;
left: -20px;
border-left: 1px solid #ccc;
bottom: 50px;
}
.tree li::after {
content: '';
position: absolute;
top: 30px;
width: 25px;
height: 20px;
right: auto;
left: -20px;
border-top: 1px solid #ccc;
}
.tree li a[href='#'] {
display: inline-block;
vertical-align: top;
padding: 5px 10px;
text-decoration: none;
color: #666;
font-family: arial, verdana, tahoma;
font-size: 11px;
border-radius: 3px;
-webkit-border-radius: 3px;
-moz-border-radius: 3px;
&.folder {
background: #ffe79c;
border: 1px solid darken(#ffe79c, 30%);
}
~ ul li a.folder ~ ul li a.folder {
background: lighten(#ffe79c, 10%);
border: 1px solid darken(#ffe79c, 10%);
~ ul li a.folder {
background: lighten(#ffe79c, 18%);
border: 1px solid #ffe79c;
}
}
&.file {
background: lighten(desaturate(get-color(info-500), 20%), 40%);
border: 1px solid darken(get-color(info-500), 10%);
}
~ ul li a.folder ~ ul li a.folder ~ ul li a.file {
background: lighten(desaturate(get-color(info-500), 20%), 55%);
border: 1px solid lighten(get-color(info-500), 18%);
}
}
/*Remove connectors before root*/
.tree > ul > li::before,
.tree > ul > li::after {
border: 0;
}
/*Remove connectors after last child*/
.tree li:last-child::before {
height: 30px;
}
/*Time for some hover effects*/
/*We will apply the hover effect the the lineage of the element also*/
.tree li a:hover,
.tree li a:hover + ul li a {
&.folder {
background: darken(#ffe79c, 10%);
border: 1px solid darken(#ffe79c, 40%);
}
&.file {
background: lighten(desaturate(get-color(info-500), 20%), 30%);
border: 1px solid darken(get-color(info-500), 20%);
}
color: #000;
}
/*Connector styles on hover*/
.tree li a:hover + ul li::after,
.tree li a:hover + ul li::before,
.tree li a:hover + ul::before,
.tree li a:hover + ul ul::before {
border-color: #94a0b4;
}
/*==============================
= icomoon =
==============================*/
@font-face {
font-family: 'icomoon';
src: url('../fonts/icomoon.eot?rnh868');
src: url('../fonts/icomoon.eot?rnh868#iefix') format('embedded-opentype'), url('../fonts/icomoon.ttf?rnh868') format('truetype'), url('../fonts/icomoon.woff?rnh868') format('woff'),
url('../fonts/icomoon.svg?rnh868#icomoon') format('svg');
font-weight: normal;
font-style: normal;
}
[class^='icon-'],
[class*=' icon-'] {
font-family: 'icomoon';
speak: none;
font-style: normal;
font-weight: normal;
font-variant: normal;
text-transform: none;
line-height: 1;
/* Better Font Rendering =========== */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
.icon-toggle-on:before {
content: '\e902';
}
.icon-home:before {
content: '\e901';
}
.icon-pencil2:before {
content: '\e906';
}
.icon-eyedropper:before {
content: '\e90a';
}
.icon-paint-format:before {
content: '\e90c';
}
.icon-images:before {
content: '\e90e';
}
.icon-cart:before {
content: '\e93a';
}
.icon-coin-dollar:before {
content: '\e93b';
}
.icon-lifebuoy:before {
content: '\e941';
}
.icon-compass2:before {
content: '\e94a';
}
.icon-calendar:before {
content: '\e953';
}
.icon-user:before {
content: '\e971';
}
.icon-users:before {
content: '\e972';
}
.icon-user-check:before {
content: '\e975';
}
.icon-spinner4:before {
content: '\e97d';
}
.icon-search2:before {
content: '\e986';
}
.icon-key2:before {
content: '\e98e';
}
.icon-cog:before {
content: '\e994';
}
.icon-hammer:before {
content: '\e996';
}
.icon-glass:before {
content: '\e9a0';
}
.icon-spoon-knife:before {
content: '\e9a3';
}
.icon-airplane:before {
content: '\e9af';
}
.icon-truck:before {
content: '\e9b0';
}
.icon-switch:before {
content: '\e9b6';
}
.icon-power-cord:before {
content: '\e9b7';
}
.icon-earth:before {
content: '\e9ca';
}
.icon-eye:before {
content: '\e9ce';
}
.icon-eye-plus:before {
content: '\e9cf';
}
.icon-eye-minus:before {
content: '\e9d0';
}
.icon-eye-blocked:before {
content: '\e9d1';
}
.icon-star-empty:before {
content: '\e9d7';
}
.icon-star-half:before {
content: '\e9d8';
}
.icon-star-full:before {
content: '\e9d9';
}
.icon-plus:before {
content: '\ea0a';
}
.icon-minus:before {
content: '\ea0b';
}
.icon-info:before {
content: '\ea0c';
}
.icon-cancel-circle:before {
content: '\ea0d';
}
.icon-loop2:before {
content: '\ea2e';
}
.icon-radio-checked:before {
content: '\ea54';
}
.icon-mail:before {
content: '\f03b';
}
.icon-mail-read:before {
content: '\f03c';
}
.icon-search:before {
content: '\f02e';
}
.icon-newspaper:before {
content: '\e904';
}
.icon-profile:before {
content: '\e923';
}
.icon-address-book:before {
content: '\e944';
}
.icon-user-plus:before {
content: '\e973';
}
.icon-gift:before {
content: '\e99f';
}
.icon-arrow-right:before {
content: '\ea34';
}
.icon-checkbox-unchecked:before {
content: '\ea53';
}
.icon-upload:before {
content: '\e961';
}
.icon-database:before {
content: '\e964';
}
.icon-dynamic:before {
content: '\e982';
}
.icon-stack:before {
content: '\e92e';
}
.icon-bubble2:before {
content: '\e96e';
}
.icon-tree:before {
content: '\e9bc';
}
.icon-food:before {
content: '\e600';
}
.icon-phone:before {
content: '\e601';
}
.icon-car:before {
content: '\e602';
}
.icon-rocket:before {
content: '\e603';
}
.icon-chart:before {
content: '\e604';
}
.icon-comments:before {
content: '\e605';
}
.icon-check:before {
content: '\e900';
}
.icon-tag:before {
content: '\f02b';
}
.icon-check-square-o:before {
content: '\f046';
}
.icon-chevron-up:before {
content: '\f077';
}
.icon-chevron-down:before {
content: '\f078';
}
.icon-key:before {
content: '\f084';
}
.icon-unlock-alt:before {
content: '\f13e';
}
.icon-bed:before {
content: '\f236';
}
.icon-hotel:before {
content: '\f236';
}
/*==============================
= alerts =
==============================*/
.has-icon {
position: relative;
&.alert {
padding-left: 70px;
&:before {
padding: 13px 0 0 13px;
content: ' ';
}
}
&:before {
position: absolute;
top: 0;
left: 0;
display: inline-block;
width: 50px;
height: 100%;
border-radius: 3px 0 0 3px;
background-repeat: no-repeat;
background-position: center center;
}
&.alert:after {
position: absolute;
top: calc(50% - 6px);
left: 50px;
width: 0;
height: 0;
content: ' ';
border-width: 6px 0 6px 6px;
border-style: solid;
}
&.has-icon-success {
&:before {
background-color: #{$success};
/* check-circle*/
@include background-svg('');
background-size: 30%;
}
}
&.alert-success {
&:before {
background-color: #{$success};
/* check*/
@include background-svg('');
background-size: 30%;
}
&:after {
border-color: transparent transparent transparent #{$success};
}
.var-value,
.file-path {
color: white;
background-color: #{$success};
}
}
&.alert-info {
&:before {
color: #{$info};
background-color: #{$info};
@include background-svg('');
background-size: 11.25%; /* 30% * 192/512*/
}
&:after {
border-color: transparent transparent transparent #{$info};
}
.var-value,
.file-path {
background-color: #{$info};
}
}
&.alert-warning {
&:before {
background-color: #{$warning};
@include background-svg('');
background-size: 33.75%; /* 30% * 576/512*/
}
&:after {
border-color: transparent transparent transparent #{$warning};
}
}
&.alert-danger {
&:before {
background-color: #{$danger};
@include background-svg('');
background-size: 30%;
}
&:after {
border-color: transparent transparent transparent #{$danger};
}
}
}
.alert {
position: relative;
border: none;
:first-child {
margin-top: 0;
}
p {
margin-bottom: 0.5em;
&:last-child {
margin-bottom: 0;
}
}
a {
text-decoration: underline;
}
}