Ghost/ghost/admin/assets/sass/components/navigation.scss

326 lines
6.8 KiB
SCSS
Raw Normal View History

//
// Global Navigation
// --------------------------------------------------
// The main wrapper, sets position and bg colour.
2014-07-29 01:21:02 +04:00
.global-nav {
height: 60px;
position: fixed;
top: 0;
right: 0;
bottom: auto;
left: 0;
2014-08-06 20:47:52 +04:00
z-index: 800;
background: $darkgrey;
transition: transform $side-outlet-transition-duration cubic-bezier(0.1, 0.7, 0.1, 1);
2014-07-29 16:47:03 +04:00
i:before {
display: inline-block;
width: 16px;
}
// This selector ends up being `body.settings-menu-expanded .global-nav`
body.settings-menu-expanded & {
transform: translate3d(-350px, 0px, 0px);
}
.thing,
.thing2 {
display: none; // hide until mobile
}
}
2014-07-29 01:21:02 +04:00
// Wrapper for each item
.nav-item {
position: relative;
display: block;
float: left;
2014-07-29 02:34:34 +04:00
height: 60px;
padding-right: 10px;
font-size: 1.1rem;
letter-spacing: 1px;
font-weight: 200;
line-height: 1.1em;
}
2014-07-29 01:21:02 +04:00
// Pill shaped background
.nav-label {
2014-07-29 02:34:34 +04:00
height: 33px;
margin-top: 14px;
padding: 10px 12px;
color: rgba(255,255,255,0.7);
text-transform: uppercase;
border-radius: 4px;
2014-08-19 18:27:01 +04:00
white-space: nowrap;
transition: color 0.5s, background 0.5s;
}
2014-07-29 02:34:34 +04:00
.nav-item.active .nav-label,
.nav-item:focus .nav-label,
.nav-item:hover .nav-label,
.nav-item:active .nav-label {
2014-08-10 10:36:36 +04:00
color: #fff;
background: darken($darkgrey, 9%);
transition: color 0.1s, background 0.1s;
}
2014-07-29 01:21:02 +04:00
// Ghost branding
.ghost-logo {
width: 60px;
2014-07-29 16:47:03 +04:00
padding-right: 0;
text-align: center;
color: lighten($grey, 20%);
2014-07-29 16:47:03 +04:00
font-size: 1.2rem;
2014-07-29 02:34:34 +04:00
line-height: 1em;
transition: color 0.5s;
2014-07-29 16:47:03 +04:00
span {
display: none;
}
}
.ghost-logo:hover,
.ghost-logo:focus {
color: $lightgrey;
transition: color 0.1s;
2014-07-29 16:47:03 +04:00
.nav-label {
background: transparent;
}
}
2014-07-29 01:21:02 +04:00
// Right hand dropdown
.user-menu {
position: absolute;
top: 0;
right: 0;
padding: 0;
margin: 0;
2014-07-29 02:34:34 +04:00
cursor: pointer;
.nav-label {
margin: 0;
padding: 0 12px;
background: none !important;
2014-08-13 17:25:28 +04:00
height: 60px;
2014-07-29 02:34:34 +04:00
}
2014-07-29 01:21:02 +04:00
// Profile picture
.image {
2014-07-29 01:21:02 +04:00
float: left;
margin: 15px 8px 0 0;
img {
display: block;
width: 30px;
height: 30px;
border-radius: 100%;
}
}
2014-07-29 01:21:02 +04:00
// Descriptive label for mobile menu
.name {
2014-07-29 02:34:34 +04:00
float: right;
height: 33px;
margin-top: 14px;
padding: 10px 12px;
border-radius: 4px;
2014-08-21 12:07:11 +04:00
max-width: 300px;
text-overflow: ellipsis;
white-space: nowrap;
overflow: hidden;
transition: background 0.5s;
2014-07-29 01:21:02 +04:00
small {
2014-07-29 02:34:34 +04:00
display: none; // hide until mobile
2014-07-29 03:34:47 +04:00
font-size: 11px;
text-transform: none;
letter-spacing: 0;
2014-07-29 18:35:03 +04:00
color: rgba(255,255,255,0.4);
2014-07-29 01:21:02 +04:00
margin-top: 0;
2014-07-29 18:35:03 +04:00
line-height: 11px;
2014-07-29 01:21:02 +04:00
}
}
2014-09-24 15:03:19 +04:00
2014-07-29 02:34:34 +04:00
&:hover .name {
color: rgba(255,255,255,0.9);
background: darken($darkgrey, 7%);
transition: background 0.1s;
2014-07-29 02:34:34 +04:00
}
2014-08-13 17:25:28 +04:00
.dropdown {
2014-09-24 15:03:19 +04:00
position: fixed;
top: 50px;
right: 15px;
left: auto;
&.fade-in-scale {
animation-duration: 0.1s;
}
&.fade-out {
animation-duration: 0;
}
2014-08-13 17:25:28 +04:00
.dropdown-menu {
position: absolute;
top: 0;
right: 0;
2014-09-24 15:03:19 +04:00
left: auto;
2014-08-13 17:25:28 +04:00
}
}
2014-07-29 02:34:34 +04:00
}//.user-menu
2014-07-29 03:34:47 +04:00
//
// Mobile
// --------------------------------------------------
2014-07-29 02:34:34 +04:00
2014-08-16 20:39:52 +04:00
@media (max-width: 900px) {
2014-07-29 02:34:34 +04:00
2014-07-29 03:34:47 +04:00
// Fixed width, position left
.global-nav {
2014-07-29 18:35:03 +04:00
z-index: 20; // below the .viewport when collapsed
2014-07-29 03:34:47 +04:00
width: 260px;
height: auto;
top: 0;
bottom: 0;
left: 0;
2014-07-29 16:47:03 +04:00
background: darken($darkgrey, 7%);
2014-07-29 03:34:47 +04:00
overflow: auto;
2014-07-29 21:48:31 +04:00
-webkit-overflow-scrolling: touch;
transform: translate3d(-60px, 0px, 0px); // Not off the screen, to give a parallax effect
transition: transform $side-outlet-transition-duration cubic-bezier(0.1, 0.7, 0.1, 1);
.thing, .thing2 {
display: block;
}
2014-07-29 21:48:31 +04:00
body.global-nav-expanded & {
transform: translate3d(0, 0px, 0px);
2014-07-29 21:48:31 +04:00
}
2014-07-29 03:34:47 +04:00
}
.nav-item {
position: relative;
float: none;
height: auto;
margin: 0;
padding: 0;
2014-07-29 16:47:03 +04:00
border-bottom: $darkgrey 1px solid;
2014-07-29 03:34:47 +04:00
}
// Convert to full-width mobile-friendly
.nav-label {
2014-07-29 02:34:34 +04:00
display: block;
2014-07-29 03:34:47 +04:00
height: 44px;
line-height: 44px;
margin: 0;
padding: 0 15px;
border-radius: 0;
}
2014-07-29 16:47:03 +04:00
.nav-item.active .nav-label {
color: #fff !important;
background: darken($darkgrey, 4%);
i { color: #fff; }
}
.nav-item:hover .nav-label {
color: rgba(255,255,255,0.9);
background: $darkgrey;
}
.ghost-logo {
display: block;
width: 100%;
font-size: 1.1rem;
2014-07-29 16:47:03 +04:00
line-height: 44px;
text-align: left;
span { display: inline; }
}
2014-07-29 03:34:47 +04:00
// Drop it to the bottom of the menu
.user-menu {
position: absolute;
top: auto;
right: 0;
bottom: 0;
left: 0;
2014-07-29 03:34:47 +04:00
height: auto;
padding: 0;
2014-07-29 16:47:03 +04:00
border-bottom: none;
border-top: $darkgrey 1px solid;
transition: color 0.5s, background 0.5s;
2014-07-29 03:34:47 +04:00
.nav-label {
padding: 15px;
2014-07-29 03:34:47 +04:00
height: auto;
}
.image {
margin: 2px 10px 0 0;
}
.name {
float: left;
margin: 0;
2014-08-21 12:07:11 +04:00
max-width: 300px;
2014-07-29 03:34:47 +04:00
padding: 0 0 5px 0;
text-overflow: ellipsis;
white-space: nowrap;
line-height: 19px;
overflow: hidden;
small {
display: block;
}
}
2014-07-29 20:50:13 +04:00
i {
display: none;
}
2014-07-29 03:34:47 +04:00
&:hover {
color: rgba(255,255,255,0.9);
2014-07-29 16:47:03 +04:00
background: $darkgrey;
transition: color 0.1s, background 0.1s;
2014-07-29 20:50:13 +04:00
.name {
background: transparent;
transition: none;
2014-07-29 20:50:13 +04:00
}
2014-07-29 03:34:47 +04:00
}
2014-09-24 15:03:19 +04:00
.dropdown {
position: absolute;
top: 100%;
right: 100%;
2014-09-24 15:03:19 +04:00
.dropdown-menu {
top: auto;
right: auto;
bottom: calc(100% + 80px);
left: 10px;
}
}
2014-07-29 20:50:13 +04:00
}//.user-menu
body.global-nav-expanded & {
.nav-cover {
position: absolute;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 600;
transition: transform $side-outlet-transition-duration cubic-bezier(0.1, 0.7, 0.1, 1);
transform: translate3d(260px, 0px, 0px); // Not off the screen, to give a parallax effect
}//.nav-cover
}//body.global-nav-expanded
2014-09-24 15:03:19 +04:00
}