NuchaSkillLLM / style.css
Nucha's picture
Update style.css
82a8012 verified
// Sass tils
$color-fiord: #394263; // sidenav bg & dark text
$color-white: #FFF; // card bg
$color-athens-gray: #EAEDF1; // content bg
$color-catskill-white: #F9FAFC; // top nav bg
$color-abbey: #777; // gray text
$color-mischka: #DADAE3; // light gray for menu icon
$color-java: #1BBAE1; // blue text
$color-mine-shaft: #333; // main section header bg
$color-zest: #e67e22; // document icon bg
$color-jungle-green: #27ae60; // calendar icon bg
$color-cinnabar: #e74c3c; // main icon bg, red
$color-amethyst: #af64cc; // main photo icon bg
$color-transparent: rgba(255, 255, 255, .5);
$color-alto: #D3D3D3;
$height-header: 50px;
$height-footer: 50px;
$width-sidenav: 240px;
@mixin profile-avatar {
background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/1609106/headshot.png");
background-size: cover;
background-repeat: no-repeat;
border-radius: 50%;
border: 2px solid rgba(255, 255, 255, .2);
}
@mixin box-shadow {
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.08);
}
// Resets
html, body {
margin: 0;
padding: 0;
box-sizing: border-box;
font-family: "Open Sans","Helvetica Neue",Helvetica,Arial,sans-serif
}
a {
text-decoration: none;
}
// Util classes
.text-light {
font-weight: 300;
}
.text-bold {
font-weight: bold;
}
.row {
display: flex;
&--align-v-center {
align-items: center;
}
&--align-h-center {
justify-content: center;
}
}
// Establish dashboard css grid layout - mobile
.grid {
position: relative;
display: grid;
grid-template-columns: 100%; // Charts responsiveness won't work with fr units
grid-template-rows: $height-header 1fr $height-footer;
grid-template-areas:
'header'
'main'
'footer';
height: 100vh;
overflow-x: hidden; // Prevent overflow scroll from hidden sidenav
&--noscroll {
overflow-y: hidden;
}
}
.header {
grid-area: header;
display: flex;
align-items: center;
justify-content: space-between;
background-color: $color-catskill-white;
&__menu {
position: fixed; // Needs to stay visible for all mobile scrolling
padding: 13px;
left: 12px;
background-color: $color-mischka;
border-radius: 50%;
z-index: 1;
&:hover {
cursor: pointer;
}
}
&__search {
margin-left: 55px;
font-size: 20px;
color: $color-abbey;
}
&__input {
border: none;
background: transparent;
padding: 12px;
font-size: 20px;
color: $color-abbey;
&:focus {
outline: none;
border: none;
}
}
&__avatar {
@include profile-avatar;
position: relative;
margin: 0 26px;
width: 35px;
height: 35px;
cursor: pointer;
&:after {
position: absolute;
content: "";
width: 6px;
height: 6px;
background: none;
border-left: 2px solid $color-abbey;
border-bottom: 2px solid $color-abbey;
transform: rotate(-45deg) translateY(-50%);
top: 50%;
right: -18px;
}
}
}
.dropdown {
position: absolute;
top: 54px;
right: -16px;
width: 220px;
height: auto;
z-index: 1;
background-color: #fff;
border-radius: 4px;
visibility: hidden;
opacity: 0;
transform: translateY(-10px);
transition: all .3s;
@include box-shadow;
&__list {
margin: 0;
padding: 0;
list-style-type: none;
}
&__list-item {
padding: 12px 24px;
color: $color-abbey;
text-transform: capitalize;
&:hover {
background-color: rgba(0,0,0, .1);
}
}
&__icon {
color: $color-java;
}
&__title {
margin-left: 10px;
}
&:before {
position: absolute;
content: "";
top: -6px;
right: 30px;
width: 0;
height: 0;
border-left: 4px solid transparent;
border-right: 4px solid transparent;
border-bottom: 6px solid #FFF;
}
&--active {
visibility: visible;
opacity: 1;
transform: translateY(0);
}
}
.sidenav {
position: fixed; // Access sidenav at any scroll position; relatively positioned on medium + screens
grid-area: sidenav;
height: 100%;
overflow-y: auto;
background-color: $color-fiord;
color: $color-white;
width: $width-sidenav; // Will match grid area on medium + screens
transform: translateX(-245px);
transition: all .6s ease-in-out;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.16), 0 0 0 1px rgba(0, 0, 0, 0.08);
z-index: 2; // Needs to sit above the hamburger menu icon
&__brand {
position: relative;
display: flex;
align-items: center;
padding: 0 16px;
height: $height-header;
background-color: rgba(0, 0, 0, .15);
&-icon {
margin-top: 2px;
font-size: 14px;
color: $color-transparent;
}
&-close {
position: absolute;
right: 8px;
top: 8px;
visibility: visible;
color: $color-transparent;
cursor: pointer;
}
&-link {
font-size: 18px;
font-weight: bold;
color: $color-white;
margin: 0 15px;
letter-spacing: 1.5px;
}
}
&__profile {
display: flex;
align-items: center;
min-height: 90px;
background-color: rgba(255, 255, 255, .1);
&-avatar {
@include profile-avatar;
height: 64px;
width: 64px;
margin: 0 15px;
}
&-title {
font-size: 17px;
letter-spacing: 1px;
}
}
&__arrow {
position: absolute;
content: "";
width: 6px;
height: 6px;
top: 50%;
right: 20px;
border-left: 2px solid rgba(255,255,255,.5);
border-bottom: 2px solid rgba(255,255,255,.5);
transform: translateY(-50%) rotate(225deg);
}
&__sublist {
list-style-type: none;
margin: 0;
padding: 10px 0 0;
}
&--active {
transform: translateX(0);
}
}
.navList {
width: $width-sidenav;
padding: 0;
margin: 0;
background-color: $color-fiord;
list-style-type: none;
&__heading {
position: relative;
display: flex;
align-items: center;
justify-content: space-between;
padding: 16px 16px 3px;
color: $color-transparent;
text-transform: uppercase;
font-size: 15px;
}
&__subheading {
position: relative;
padding: 10px 30px;
color: #fff;
font-size: 16px;
text-transform: capitalize;
&-icon {
display: flex;
align-items: center;
justify-content: center;
font-size: 12px;
color: $color-transparent;
width: 12px; // Keep spacing consistent
}
&-title {
margin: 0 15px;
}
&:after {
position: absolute;
content: "";
height: 6px;
width: 6px;
top: 17px;
right: 25px;
border-left: 1px solid $color-transparent;
border-bottom: 1px solid $color-transparent;
transform: rotate(225deg);
transition: all .2s;
}
&:hover {
background-color: darken($color-fiord, 5%);
cursor: pointer;
}
&--open {
background-color: darken($color-fiord, 5%);
&:after {
transform: rotate(315deg);
}
}
}
.subList {
padding: 0;
margin: 0;
list-style-type: none;
background-color: darken($color-fiord, 10%);
visibility: visible;
overflow: hidden;
max-height: 200px;
transition: all .4s ease-in-out;
&__item {
padding: 8px;
text-transform: capitalize;
padding: 8px 30px;
color: $color-alto;
&:first-child {
padding-top: 15px;
}
&:hover {
background-color: rgba(255, 255, 255, .1);
cursor: pointer;
}
}
&--hidden {
visibility: hidden;
max-height: 0;
}
}
}
// Dashboard content wrapper
.main {
grid-area: main;
background-color: $color-athens-gray;
color: $color-fiord;
&__cards {
display: block;
column-count: 1;
column-gap: 20px;
margin: 20px;
}
}
.main-header {
position: relative;
display: flex;
justify-content: space-between;
height: 250px;
color: $color-white;
background-size: cover;
background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/1609106/lake-shadow-water.jpg");
margin-bottom: 20px;
&__intro-wrapper {
display: flex;
flex: 1;
flex-direction: column; // Mobile-first; break out to row on medium + screens
align-items: center;
justify-content: space-between;
height: 160px;
padding: 12px 30px;
background: rgba(255,255,255,.12);
font-size: 26px;
letter-spacing: 1px;
}
&__welcome {
display: flex;
flex-direction: column;
align-items: center;
&-title {
margin-bottom: 8px;
font-size: 26px;
}
&-subtitle {
font-size: 18px;
}
}
}
// Main header quick view update items
.quickview {
display: grid;
grid-auto-flow: column;
grid-gap: 60px;
&__item {
display: flex;
align-items: center;
flex-direction: column;
&-total {
margin-bottom: 2px;
font-size: 32px;
}
&-description {
font-size: 16px;
text-align: center;
}
}
}
// Overview quicklink cards container
.main-overview {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(265px, 1fr));
grid-auto-rows: 94px;
grid-gap: 30px;
margin: 20px;
}
.overviewCard {
display: flex;
align-items: center;
justify-content: space-between;
padding: 12px;
background-color: $color-white;
transform: translateY(0);
transition: all .3s;
&-icon {
display: flex;
align-items: center;
justify-content: center;
height: 60px;
width: 60px;
border-radius: 50%;
font-size: 21px;
color: #fff;
&--document {
background-color: $color-zest;
}
&--calendar {
background-color: $color-jungle-green;
}
&--mail {
background-color: $color-cinnabar;
}
&--photo {
background-color: $color-amethyst;
}
}
&-description {
display: flex;
flex-direction: column;
align-items: center;
}
&-title {
font-size: 18px;
color: $color-java;
margin: 0;
}
&-subtitle {
margin: 2px;
color: $color-abbey;
}
&:hover {
transform: translateY(-3px);
box-shadow: 0 5px 5px rgba(0,0,0,.1);
cursor: pointer;
}
}
.card {
display: flex;
flex-direction: column;
width: 100%;
background-color: #fff;
margin-bottom: 20px;
-webkit-column-break-inside: avoid;
&__header {
display: flex;
align-items: center;
justify-content: space-between;
height: 50px;
background-color: $color-fiord;
color: $color-white;
&-title {
margin: 0 20px;
font-size: 20px;
letter-spacing: 1.2px;
}
&-link {
font-size: 16px;
color: $color-java;
letter-spacing: normal;
display: inline-block;
}
}
&__main {
position: relative;
padding-right: 20px;
background-color: $color-white;
&:after {
content: "";
position: absolute;
top:0;
left: 120px;
bottom: 0;
width: 2px;
background-color: #f0f0f0;
}
}
&__secondary {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(100px, 1fr));
grid-auto-rows: 100px;
grid-gap: 25px;
padding: 20px;
background-color: $color-white;
}
&__photo {
background-image: url('../../img/pumpkin-carving.jpg');
background-size: cover;
background-repeat: no-repeat;
background-color: slategray;
// overflow: hidden;
transform: scale(1);
transition: transform .3s ease-in-out;
width: 100%;
height: 100%;
&:hover {
transform: scale(1.1);
cursor: pointer;
}
}
&__photo-wrapper {
overflow: hidden;
}
&__row {
position: relative;
display: flex;
flex: 1;
margin: 15px 0 20px;
}
&__icon {
position: absolute;
display: flex;
align-items: center;
justify-content: center;
content: "";
width: 30px;
height: 30px;
top: 0;
left: 121px;
transform: translateX(-50%);
border-radius: 50%;
color: $color-white;
background-color: $color-java;
z-index: 1;
}
&__row:nth-child(even) {
.card__icon {
background-color: $color-cinnabar;
}
}
&__time {
display: flex;
flex: 1;
justify-content: flex-end;
max-width: 80px;
margin-left: 15px;
text-align: right;
font-size: 14px;
line-height: 2;
}
&__detail {
display: flex;
flex: 1;
flex-direction: column;
padding-left: 12px;
margin-left: 48px;
transform: translateX(0);
transition: all .3s;
&:hover {
background-color: #f0f0f0;
transform: translateX(4px);
cursor: pointer;
}
}
&__source {
line-height: 1.8;
color: $color-java;
}
&__description {
}
&__note {
margin: 10px 0;
color: $color-abbey;
}
&--finance {
position: relative;
}
}
// Card header settings icons
.settings {
display: flex;
margin: 8px;
align-self: flex-start;
background-color: $color-transparent;
border: 1px solid rgba(0,0,0,.1);
border-radius: 2px;
&__block {
display: flex;
align-items: center;
justify-content: center;
padding: 4px;
color: $color-fiord;
font-size: 11px;
&:not(:last-child) {
border-right: 1px solid rgba(0,0,0,.1);
}
}
&__icon {
padding: 0px 3px;
font-size: 12px;
&:hover {
background-color: rgba(255,255,255,.8);
cursor: pointer;
}
}
&:hover {
background-color: #fff;
cursor: pointer;
}
}
.documents {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(105px, 1fr));
grid-auto-rows: 214px;
grid-gap: 12px;
height: auto;
background-color: $color-white;
}
.document {
display: flex;
align-items: center;
justify-content: center;
margin: 15px 0 0;
flex-direction: column;
&__img {
width: 105px;
height: 136px;
background-image: url("https://s3-us-west-2.amazonaws.com/s.cdpn.io/1609106/doc-1.png");
background-size: cover;
box-shadow: 0 2px 2px 0 rgba(0, 0, 0, 0.14), 0 3px 1px -2px rgba(0, 0, 0, 0.12), 0 1px 5px 0 rgba(0, 0, 0, 0.2);
cursor: pointer;
transition: transform .3s ease;
&:hover {
transform: translateY(-4px);
}
}
&__title {
margin: 8px 0 2px;
color: $color-abbey;
}
&__date {
font-size: 10px;
}
}
// Styles for example chart
#chartdiv {
width: 100%;
height: 300px;
font-size: 11px;
min-width: 0;
}
.footer {
grid-area: footer;
display: flex;
align-items: center;
justify-content: space-between;
padding: 0 16px;
color: $color-abbey;
background-color: $color-white;
&__copyright {
color: $color-java;
}
&__icon {
color: $color-cinnabar;
}
&__signature {
color: $color-java;
cursor: pointer;
font-weight: bold;
}
}
// Mobile screen breakpoints (750px)
@media only screen and (min-width: 46.875em) {
// Break out to sidenav grid layout on medium + screens
.grid {
display: grid;
grid-template-columns: $width-sidenav calc(100% - 240px); // Charts responsiveness won't work with fr units
grid-template-rows: $height-header 1fr $height-footer;
grid-template-areas:
'sidenav header'
'sidenav main'
'sidenav footer';
height: 100vh;
}
.sidenav {
position: relative;
transform: translateX(0);
&__brand-close {
visibility: hidden;
}
}
.main-header {
&__intro-wrapper {
padding: 0 30px;
}
}
.header {
&__menu {
display: none;
}
&__search {
margin-left: 20px; // No menu icon; move 'er back over
}
&__avatar {
width: 40px;
height: 40px;
}
}
}
// Medium screens breakpoint (1050px)
@media only screen and (min-width: 65.625em) {
.main {
&__cards {
column-count: 2;
}
}
.main-header {
&__intro-wrapper {
flex-direction: row;
}
&__welcome {
align-items: flex-start;
}
}
}