505 lines
8.2 KiB
SCSS
505 lines
8.2 KiB
SCSS
// Open edX: Studio header
|
|
// =======================
|
|
//
|
|
// Note: these styles replicate the Studio styles directly
|
|
// rather than benefiting from any Bootstrap classes. Ideally
|
|
// the header should be reimagined using Bootstrap and then
|
|
// these styles will no longer be necessary.
|
|
|
|
// studio - elements - global header
|
|
// ====================
|
|
|
|
.wrapper-header {
|
|
@extend %ui-depth3;
|
|
|
|
position: relative;
|
|
width: 100%;
|
|
box-shadow: 0 1px 2px 0 $shadow-l1;
|
|
margin: 0;
|
|
padding: 0 $baseline;
|
|
background: $white;
|
|
|
|
header.primary {
|
|
@include clearfix();
|
|
|
|
max-width: $studio-max-width;
|
|
width: flex-grid(12);
|
|
margin: 0 auto;
|
|
}
|
|
|
|
// ====================
|
|
|
|
// basic layout
|
|
.wrapper-l,
|
|
.wrapper-r {
|
|
background: $white;
|
|
}
|
|
|
|
.wrapper-l {
|
|
float: left;
|
|
width: flex-grid(7, 12);
|
|
}
|
|
|
|
.wrapper-r {
|
|
float: right;
|
|
width: flex-grid(4, 12);
|
|
text-align: right;
|
|
}
|
|
|
|
.branding,
|
|
.info-course,
|
|
.nav-course,
|
|
.nav-account,
|
|
.nav-pitch {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.user-language-selector {
|
|
width: 120px;
|
|
display: inline-block;
|
|
margin: 0 10px 0 5px;
|
|
vertical-align: sub;
|
|
|
|
.language-selector {
|
|
width: 120px;
|
|
}
|
|
}
|
|
|
|
.nav-account {
|
|
width: auto;
|
|
}
|
|
|
|
// basic layout - nav items
|
|
nav {
|
|
> ol > .nav-item {
|
|
@extend %t-action3;
|
|
@extend %t-strong;
|
|
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
|
|
&:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
.nav-item a {
|
|
color: color("gray");
|
|
|
|
&:hover {
|
|
color: $link-hover-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
// basic layout - dropdowns
|
|
.nav-dd {
|
|
.title {
|
|
padding: $baseline/2 $baseline/2;
|
|
font-size: $font-size-lg;
|
|
|
|
.fa-caret-down {
|
|
opacity: 0.25;
|
|
}
|
|
|
|
&:hover {
|
|
.fa-caret-down {
|
|
opacity: 1;
|
|
}
|
|
}
|
|
|
|
.nav-sub .nav-item {
|
|
.icon {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
margin-right: ($baseline/4);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// specific elements - branding
|
|
.branding {
|
|
padding: ($baseline*0.75) 0;
|
|
|
|
a {
|
|
display: block;
|
|
|
|
img {
|
|
max-height: ($baseline*2);
|
|
display: block;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// specific elements - course name/info
|
|
.info-course {
|
|
margin-right: flex-gutter();
|
|
border-right: 1px solid $gray-300;
|
|
padding: ($baseline*0.75) flex-gutter() ($baseline*0.75) 0;
|
|
|
|
.course-org,
|
|
.course-number {
|
|
font-size: $font-size-sm;
|
|
line-height: 12px;
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
max-width: 45%;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
opacity: 1;
|
|
color: theme-color("primary");
|
|
}
|
|
|
|
.course-org {
|
|
margin-right: $baseline/4;
|
|
}
|
|
|
|
.course-title {
|
|
@extend %t-action2;
|
|
@extend %t-strong;
|
|
|
|
display: block;
|
|
width: 100%;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
|
|
// entire link
|
|
.course-link {
|
|
display: block;
|
|
color: theme-color("primary");
|
|
|
|
&:hover {
|
|
color: $link-hover-color;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// specific elements - course nav
|
|
.nav-course {
|
|
padding: ($baseline*0.75) 0;
|
|
}
|
|
|
|
// ====================
|
|
|
|
// specific elements - account-based nav
|
|
.nav-account {
|
|
position: relative;
|
|
padding: ($baseline*0.75) 0;
|
|
|
|
.nav-sub {
|
|
text-align: left;
|
|
}
|
|
|
|
.nav-account-help {
|
|
.wrapper-nav-sub {
|
|
width: ($baseline*10);
|
|
}
|
|
}
|
|
|
|
.nav-account-user {
|
|
.title {
|
|
max-width: ($baseline*6.5);
|
|
|
|
> .label {
|
|
display: inline-block;
|
|
max-width: 84%;
|
|
overflow: hidden;
|
|
white-space: nowrap;
|
|
text-overflow: ellipsis;
|
|
}
|
|
}
|
|
}
|
|
|
|
.settings-language-form {
|
|
margin-top: 4px;
|
|
|
|
.language-selector {
|
|
width: 130px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// specific elements - pitch/how it works nav
|
|
.nav-pitch {
|
|
position: relative;
|
|
padding: ($baseline*0.75) 0;
|
|
|
|
.nav-sub {
|
|
text-align: left;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// CASE: user signed in
|
|
.is-signedin {
|
|
.wrapper-l {
|
|
width: flex-grid(8, 12);
|
|
}
|
|
|
|
.wrapper-r {
|
|
width: flex-grid(4, 12);
|
|
}
|
|
|
|
.branding {
|
|
margin-right: 2%;
|
|
}
|
|
|
|
.nav-account {
|
|
top: ($baseline/4);
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// CASE: in course {
|
|
.is-signedin.course {
|
|
.wrapper-header {
|
|
.wrapper-l {
|
|
width: flex-grid(9, 12);
|
|
}
|
|
|
|
.wrapper-r {
|
|
width: flex-grid(3, 12);
|
|
}
|
|
|
|
.branding {
|
|
margin-right: 2%;
|
|
}
|
|
|
|
.info-course {
|
|
width: 25%;
|
|
margin-right: 2%;
|
|
}
|
|
|
|
.nav-course {
|
|
width: 45%;
|
|
}
|
|
}
|
|
}
|
|
|
|
// ====================
|
|
|
|
// CASE: user not signed in
|
|
.not-signedin,
|
|
.view-util {
|
|
.wrapper-header {
|
|
.wrapper-l {
|
|
width: flex-grid(2, 12);
|
|
}
|
|
|
|
.wrapper-r {
|
|
width: flex-grid(10, 12);
|
|
}
|
|
|
|
.branding {
|
|
width: 100%;
|
|
}
|
|
|
|
.nav-pitch {
|
|
top: ($baseline/4);
|
|
|
|
.nav-item {
|
|
margin-right: ($baseline/2);
|
|
|
|
&:last-child {
|
|
margin-right: 0;
|
|
}
|
|
}
|
|
|
|
.action-signup {
|
|
padding: ($baseline/4) ($baseline/2);
|
|
text-transform: uppercase;
|
|
}
|
|
|
|
.action-signin {
|
|
padding: ($baseline/4) ($baseline/2);
|
|
text-transform: uppercase;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// dropdown
|
|
.nav-dd {
|
|
.title {
|
|
.label,
|
|
.fa-caret-down {
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
.ui-toggle-dd {
|
|
margin: 0;
|
|
display: inline-block;
|
|
vertical-align: middle;
|
|
}
|
|
|
|
// dropped down state
|
|
&.is-selected {
|
|
.ui-toggle-dd {
|
|
transform: rotate(-180deg);
|
|
transform-origin: 50% 50%;
|
|
}
|
|
}
|
|
}
|
|
|
|
.nav-item {
|
|
position: relative;
|
|
|
|
&.nav-course-settings {
|
|
.wrapper-nav-sub {
|
|
width: ($baseline*9);
|
|
}
|
|
}
|
|
}
|
|
|
|
.wrapper-nav-sub {
|
|
position: absolute;
|
|
top: ($baseline*2.5);
|
|
opacity: 0;
|
|
pointer-events: none;
|
|
width: ($baseline*8);
|
|
overflow: hidden;
|
|
height: 0;
|
|
|
|
|
|
// dropped down state
|
|
&.is-shown {
|
|
opacity: 1;
|
|
pointer-events: auto;
|
|
overflow: visible;
|
|
height: auto;
|
|
}
|
|
}
|
|
|
|
.nav-sub {
|
|
border-radius: 2px;
|
|
box-shadow: 0 1px 1px $shadow-l1;
|
|
position: relative;
|
|
width: 100%;
|
|
border: 1px solid $gray-500;
|
|
padding: ($baseline/2) ($baseline*0.75);
|
|
background: $white;
|
|
|
|
&::after,
|
|
&::before {
|
|
bottom: 100%;
|
|
border: solid transparent;
|
|
content: " ";
|
|
height: 0;
|
|
width: 0;
|
|
position: absolute;
|
|
pointer-events: none;
|
|
}
|
|
|
|
// ui triangle/nub
|
|
&::after {
|
|
border-color: rgba(255, 255, 255, 0);
|
|
border-bottom-color: $white;
|
|
border-width: 10px;
|
|
}
|
|
|
|
&::before {
|
|
border-color: rgba(178, 178, 178, 0);
|
|
border-bottom-color: $gray-500;
|
|
border-width: 11px;
|
|
}
|
|
|
|
.nav-item {
|
|
@extend %t-action3;
|
|
@extend %t-regular;
|
|
|
|
display: block;
|
|
margin: 0 0 ($baseline/4) 0;
|
|
border-bottom: 1px solid $gray-300;
|
|
padding: 0 0($baseline/4) 0;
|
|
|
|
&:last-child {
|
|
margin-bottom: 0;
|
|
border-bottom: none;
|
|
padding-bottom: 0;
|
|
}
|
|
|
|
h3 {
|
|
font-size: $font-size-lg;
|
|
}
|
|
|
|
a {
|
|
display: block;
|
|
color: $body-color;
|
|
font-size: $font-size-lg;
|
|
font-weight: 600;
|
|
|
|
&:hover,
|
|
&:active {
|
|
color: theme-color("primary");
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
// CASE: left-hand side arrow/dd
|
|
&.ui-left {
|
|
.wrapper-nav-sub {
|
|
left: 0;
|
|
}
|
|
|
|
.nav-sub {
|
|
text-align: left;
|
|
|
|
// ui triangle/nub
|
|
&::after {
|
|
left: $baseline;
|
|
margin-left: -10px;
|
|
}
|
|
|
|
&::before {
|
|
left: $baseline;
|
|
margin-left: -11px;
|
|
}
|
|
}
|
|
}
|
|
|
|
// CASE: right-hand side arrow/dd
|
|
&.ui-right {
|
|
> ol {
|
|
margin-bottom: 0;
|
|
}
|
|
|
|
.wrapper-nav-sub {
|
|
left: none;
|
|
right: 0;
|
|
}
|
|
|
|
.nav-sub {
|
|
|
|
// ui triangle/nub
|
|
&::after {
|
|
right: $baseline;
|
|
margin-right: -10px;
|
|
}
|
|
|
|
&::before {
|
|
right: $baseline;
|
|
margin-right: -11px;
|
|
}
|
|
}
|
|
}
|
|
}
|