Files
edx-platform/lms/static/sass/multicourse/_dashboard.scss

935 lines
19 KiB
SCSS

// lms - views - user/student dashboard
// ====================
.dashboard {
@include clearfix;
padding: 60px 0 0 0;
.dashboard-banner {
background: $yellow;
border: 1px solid rgb(200,200,200);
box-shadow: 0 1px 0 0 rgba(255,255,255, 0.6);
padding: 10px;
margin-bottom: 30px;
&:empty {
display: none;
background-color: #FFF;
}
h2 {
margin-bottom: 0;
}
p {
margin-bottom: 0;
}
}
.profile-sidebar {
background: transparent;
float: left;
margin-right: flex-gutter();
width: flex-grid(3);
header.profile {
@include background-image($dashboard-profile-header-image);
background-color: $dashboard-profile-header-color;
border: 1px solid $border-color-2;
border-radius: 4px;
@include box-sizing(border-box);
width: flex-grid(12);
h1.user-name {
color: $base-font-color;
font: 700 1.2em/1.2em $sans-serif;
margin: 0px;
overflow: hidden;
padding: 15px 10px 17px;
text-wrap: nowrap;
text-overflow: ellipsis;
text-transform: none;
}
}
.user-info {
@include clearfix;
padding: 0px 10px;
> ul {
background: $dashboard-profile-color;
border: 1px solid $border-color-2;
border-top: none;
//@include border-bottom-radius(4px);
@include box-sizing(border-box);
box-shadow: inset 0 0 3px 0 rgba(0,0,0, 0.15);
@include clearfix;
margin: 0px;
padding: 20px 10px 10px;
width: flex-grid(12);
li {
@include clearfix;
border-bottom: 1px dotted $border-color-2;
list-style: none;
margin-bottom: 15px;
padding-bottom: 17px;
&:last-child {
border-bottom: none;
margin-bottom: 0;
padding-bottom: 0;
}
&:hover, &:focus {
.title .icon {
opacity: 1.0;
}
}
span {
display: block;
}
span.title {
color: $lighter-base-font-color;
font-family: $sans-serif;
font-size: 13px;
.icon {
background-size: cover;
float: left;
height: 19px;
margin: 0 6px 0 0;
opacity: 0.6;
@include transition(all 0.15s linear 0s);
width: 19px;
&.email-icon {
@include background-image(url('../images/portal-icons/email-icon.png'));
}
&.name-icon {
@include background-image(url('../images/portal-icons/course-info-icon.png'));
}
&.location-icon {
@include background-image(url('../images/portal-icons/home-icon.png'));
}
&.language-icon {
@include background-image(url('../images/portal-icons/language-icon.png'));
}
}
}
span.data {
color: $lighter-base-font-color;
font-weight: 700;
margin-left: 26px;
white-space: nowrap;
text-overflow: ellipsis;
overflow: hidden;
}
}
}
}
.news-carousel {
@include clearfix;
margin: 30px 10px 0;
border: 1px solid $border-color-2;
background: $dashboard-profile-color;
box-shadow: inset 0 0 3px 0 rgba(0,0,0, 0.15);
* {
font-family: $sans-serif;
}
header {
@include clearfix;
height: 50px;
}
.page-dots {
float: right;
margin: 18px 15px 0 0;
li {
float: left;
margin-left: 6px;
}
}
.page-dot {
display: block;
width: 11px;
height: 11px;
border-radius: 11px;
background: $dot-color;
&:hover, &:focus {
background: $lighter-base-font-color;
}
&.current {
background: $link-color;
}
}
h4 {
float: left;
margin-left: 15px;
font-size: 15px;
line-height: 48px;
font-weight: 700;
text-transform: uppercase;
}
.pages {
position: relative;
}
.page {
display: none;
position: absolute;
top: 0;
left: 0;
&:first-child {
display: block;
}
}
section {
padding: 0 10px;
}
.news-image {
height: 180px;
margin-bottom: 15px;
img {
width: 100%;
border: 1px solid $border-color-1;
}
}
h5 {
margin-bottom: 8px;
margin-left: 5px;
a {
font-size: 16px;
font-weight: 700;
}
}
.excerpt {
margin-left: 5px;
font-size: 13px;
padding-bottom: 40px;
}
}
}
// ====================
// course listings
.my-courses {
float: left;
margin: 0px;
width: flex-grid(9);
> header {
border-bottom: 1px solid $border-color-2;
margin-bottom: 30px;
}
.empty-dashboard-message {
padding: 60px 0px;
text-align: center;
p {
color: $lighter-base-font-color;
font-style: italic;
margin-bottom: 20px;
text-shadow: 0 1px rgba(255,255,255, 0.6);
}
a {
background: rgb(240,240,240);
@include background-image($button-bg-image);
background-color: $button-bg-color;
border: 1px solid $border-color-2;
border-radius: 4px;
box-shadow: 0 1px 8px 0 rgba(0,0,0, 0.1);
@include box-sizing(border-box);
color: $base-font-color;
font-family: $sans-serif;
@include inline-block;
letter-spacing: 1px;
margin-left: 5px;
padding: 5px 10px;
text-shadow: 0 1px rgba(255,255,255, 0.6);
&:hover, &:focus {
color: $link-color;
text-decoration: none;
}
}
}
// ====================
// UI: course list
.listing-courses {
@extend %ui-no-list;
.course-item {
margin-bottom: ($baseline*2.5);
border-bottom: 4px solid $border-color-l4;
padding-bottom: ($baseline*2.5);
&:last-child {
margin-bottom: 0;
border-bottom: none;
padding-bottom: 0;
}
}
}
// ====================
// UI: individual course item
.course {
@include box-sizing(box);
@include transition(all 0.15s linear 0s);
@include clearfix();
@extend %ui-depth2;
position: relative;
.cover {
@include box-sizing(border-box);
float: left;
height: 100%;
max-height: 100%;
margin: 0px;
overflow: hidden;
position: relative;
@include transition(all 0.15s linear 0s);
width: 200px;
height: 120px;
img {
width: 100%;
}
}
.info {
@include clearfix;
padding: 0 10px 0 230px;
> hgroup {
padding: 0;
width: 100%;
.university {
color: $lighter-base-font-color;
font-family: $sans-serif;
font-size: 16px;
font-weight: 400;
margin: 0 0 6px;
text-transform: none;
letter-spacing: 0;
}
.date-block {
position: absolute;
top: 0;
right: 0;
font-family: $sans-serif;
font-size: 13px;
font-style: italic;
color: $lighter-base-font-color;
}
h3 a, h3 span {
display: block;
margin-bottom: 10px;
font-family: $sans-serif;
font-size: 34px;
line-height: 42px;
font-weight: 300;
&:hover, &:focus {
text-decoration: none;
}
}
}
.course-status {
background: $yellow;
border: 1px solid $border-color-2;
box-shadow: 0 1px 0 0 rgba(255,255,255, 0.6);
margin-top: 17px;
margin-right: flex-gutter();
padding: 5px;
width: flex-grid(8);
float: left;
@include box-sizing(border-box);
p {
color: $lighter-base-font-color;
font-style: italic;
letter-spacing: 1px;
text-align: center;
}
}
.course-status-completed {
background: #ccc;
color: $very-light-text;
p {
color: #222;
span {
font-weight: bold;
}
}
}
.enter-course {
@include button(simple, $button-color);
@include box-sizing(border-box);
border-radius: 3px;
display: block;
float: left;
font: normal 15px/1.6rem $sans-serif;
letter-spacing: 0;
padding: 6px 32px 7px;
text-align: center;
margin-top: 16px;
&.archived {
@include button(simple, $button-archive-color);
font: normal 15px/1.6rem $sans-serif;
padding: 6px 32px 7px;
&:hover, &:focus {
text-decoration: none;
}
}
&:hover, &:focus {
text-decoration: none;
}
}
}
// ====================
// STATE: course mode - verified
&.verified {
@extend %ui-depth2;
position: relative;
.cover {
border-radius: ($baseline/10);
border: 1px solid $verified-color-lvl3;
border-bottom: 4px solid $verified-color-lvl3;
padding: ($baseline/10);
}
// course enrollment status message
.sts-enrollment {
display: inline-block;
position: absolute;
top: 105px;
left: 55px;
bottom: ($baseline/2);
text-align: center;
.label {
@extend %text-sr;
}
.deco-graphic {
@extend %ui-depth3;
width: 40px;
position: absolute;
left: -30px;
top: -10px;
}
.sts-enrollment-value {
@extend %ui-depth1;
@extend %copy-badge;
border-radius: 0;
padding: ($baseline/4) ($baseline/2) ($baseline/4) $baseline;
background: $verified-color-lvl3;
color: $white;
}
}
}
}
// ====================
// UI: message
.message {
@include clearfix;
border-radius: 3px;
display: none;
z-index: 10;
margin: $baseline 0 ($baseline/2) 0;
padding: ($baseline*0.75) $baseline;
font-family: $sans-serif;
background: tint($yellow,70%);
border: 1px solid #ccc;
// STATE: shown
&.is-shown {
display: block;
}
a {
font-family: $sans-serif;
}
strong {
font-weight: 700;
a {
font-weight: 700;
}
}
.actions {
@include clearfix;
list-style: none;
margin: 0;
padding: 0;
}
.message-title,
.message-copy .title {
@extend %t-title5;
@extend %t-weight4;
margin-bottom: ($baseline/4);
}
.message-copy,
.message-copy .copy {
@extend %t-copy-sub1;
margin: 0;
}
// CASE: expandable
&.is-expandable {
.wrapper-tip {
.message-title, .message-copy {
@include transition(color 0.25s ease-in-out 0);
margin-bottom: 0;
}
// STATE: hover
&:hover {
cursor: pointer;
.message-title, .message-copy {
color: $link-color;
}
}
}
.wrapper-extended {
@include transition(opacity 0.25s ease-in-out 0);
display: none;
opacity: 0.0;
}
// STATE: is expanded
&.is-expanded {
.wrapper-extended {
display: block;
opacity: 1.0;
}
}
}
}
// TYPE: upsell
.message-upsell {
.wrapper-tip {
@include clearfix();
.message-title {
float: left;
}
.message-copy {
float: right;
}
}
.wrapper-extended {
padding: ($baseline/2) 0;
.message-copy {
margin-bottom: $baseline;
}
}
.action-upgrade {
@extend %btn-primary-green;
@include clearfix();
position: relative;
left: ($baseline/2);
padding: 8px $baseline 8px ($baseline*2);
.deco-graphic {
position: absolute;
top: -($baseline/4);
left: -($baseline*0.75);
width: ($baseline*2);
}
span {
color: $white; // nasty but needed override for poor <span> styling
}
.copy, .copy-sub {
display: inline-block;
vertical-align: middle;
}
.copy {
@extend %t-action3;
@extend %t-weight4;
margin-right: $baseline;
}
.copy-sub {
@extend %t-action4;
opacity: 0.875;
}
}
}
// TYPE: status
.message-status {
background: tint($yellow,70%);
border-color: #ccc;
.message-copy {
@extend %t-copy-sub1;
margin: 0;
.grade-value {
font-size: 1.2rem;
font-weight: bold;
}
}
.actions {
.action {
float: left;
margin: 0 15px 0 0;
.btn, .cta {
display: inline-block;
}
.btn {
@include box-sizing(border-box);
border-radius: 3px;
float: left;
font: normal 0.8rem/1.2rem $sans-serif;
letter-spacing: 1px;
padding: 6px 12px;
text-align: center;
&.disabled {
cursor: default !important;
&:hover, &:focus {
background: #eee;
background-image: -webkit-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
background-image: -moz-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
background-image: -ms-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
background-image: -o-linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
background-image: linear-gradient(top, #EEE 0%, #C2C2C2 50%, #ABABAB 50%, #B0B0B0 100%);
}
}
}
.cta {
float: left;
font: normal 0.8rem/1.2rem $sans-serif;
letter-spacing: 1px;
padding: 6px 12px;
text-align: center;
}
}
}
.exam-registration-number {
font-family: $sans-serif;
font-size: 18px;
a {
font-family: $sans-serif;
}
}
&.exam-register {
.message-copy {
margin-top: 5px;
width: 55%;
}
}
&.exam-schedule {
.exam-button {
margin-top: 5px;
}
}
.exam-button {
@include button(simple, $pink);
margin-top: 0;
float: right;
}
.contact-button {
@include button(simple, $pink);
}
.button {
display: inline-block;
margin-top: 10px;
padding: 9px 18px 10px;
font-size: 13px;
font-weight: bold;
letter-spacing: 0;
&:hover, &:focus {
text-decoration: none;
}
}
&.course-status-processing {
}
&.course-status-certnotavailable {
// background: #fee8d6;
}
&.course-status-certrendering {
// background: #d9e7db;
.cta {
margin-top: 2px;
}
}
&.course-status-certavailable {
// background: #d9e7db;
}
}
a.unenroll {
float: right;
display: block;
font-style: italic;
color: $lighter-base-font-color;
text-decoration: underline;
font-size: .8em;
margin-top: 32px;
&:hover, &:focus {
color: #333;
}
}
a.email-settings {
@extend a.unenroll;
margin-right: 10px;
}
}
// account-related
.user-info {
// status
.status {
.list--nav {
margin: ($baseline/2) 0 0 0;
padding: 0;
}
.nav__item {
@extend %t-weight4;
@include font-size(13);
margin-left: 26px;
}
}
}
// status - verification
.status-verification {
.status-title {
margin: 0 0 ($baseline/4) 26px;
}
.status-data {
margin: 0 0 ($baseline/2) 26px;
width: 80%;
}
.status-data-message {
@extend %t-copy-sub1;
@extend %t-weight4;
margin-bottom: ($baseline/2);
}
.list-actions {
@extend %ui-no-list;
.action {
@extend %t-weight4;
display: block;
@include font-size(14);
}
}
.status-note {
@extend %t-copy-sub2;
position: relative;
margin-top: $baseline;
border-top: 1px solid $black-t0;
padding-top: ($baseline/2);
p {
@extend %t-copy-sub2;
}
.deco-arrow {
@include triangle(($baseline/2), $m-gray-d3, up);
position: absolute;
left: 45%;
top: -($baseline/2);
}
}
// CASE: is denied
&.is-denied {
.status-data-message {
color: $error-color;
border-bottom-color: rgba($error-color, 0.25);
}
.status-note {
color: desaturate($error-color, 65%);
border-top-color: rgba($error-color, 0.25);
}
.action-reverify {
@extend %btn-primary-error;
@extend %t-weight4;
display: block;
@include font-size(14);
}
.deco-arrow {
@include triangle(($baseline/2), $error-color, up);
}
}
// CASE: is accepted
&.is-accepted {
.status-data-message {
color: $verified-color-lvl1;
border-bottom-color: $verified-color-lvl4;
}
.status-note {
color: $m-gray-l1;
border-top-color: $verified-color-lvl4;
}
.deco-arrow {
@include triangle(($baseline/2), $verified-color-lvl4, up);
}
}
// CASE: is pending
&.is-pending {
.status-data-message {
color: $m-gray-d3;
border-bottom-color: $m-gray-l4;
}
.status-note {
color: $m-gray-l1;
border-top-color: $m-gray-d3;
}
}
}
// status - verification
.status--verification {
.data {
white-space: normal !important;
text-overflow: no !important;
overflow: visible !important;
}
.list--nav {
margin-left: 26px;
}
// STATE: is denied
&.is-denied {
.data {
color: $error-color !important;
}
}
}
// message
.msg {
margin: ($baseline/2) 0 ($baseline/2) 26px;
}
.msg__title {
@extend %hd-lv5;
color: $lighter-base-font-color;
}
.msg__copy {
@extend %copy-metadata;
color: $lighter-base-font-color;
p {
@extend %t-copy;
}
}
}