Files
edx-platform/cms/static/sass/bootstrap/_header.scss
2017-09-18 15:28:41 -04:00

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;
}
}
}
}