ux: side nav experiments
This commit is contained in:
@@ -5,9 +5,9 @@
|
|||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
|
|
||||||
<a class="navbar-page-btn navbar-page-btn--search" ng-click="ctrl.showSearch()">
|
<!-- <a class="navbar-page-btn navbar-page-btn--search" ng-click="ctrl.showSearch()"> -->
|
||||||
<i class="fa fa-search"></i>
|
<!-- <i class="fa fa-search"></i> -->
|
||||||
</a>
|
<!-- </a> -->
|
||||||
|
|
||||||
<div ng-if="::!ctrl.hasMenu">
|
<div ng-if="::!ctrl.hasMenu">
|
||||||
<a href="{{::ctrl.section.url}}" class="navbar-page-btn">
|
<a href="{{::ctrl.section.url}}" class="navbar-page-btn">
|
||||||
@@ -25,7 +25,7 @@
|
|||||||
<i class="fa fa-caret-down"></i>
|
<i class="fa fa-caret-down"></i>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu dropdown-menu--navbar">
|
<ul class="dropdown-menu dropdown-menu--navbar">
|
||||||
<li ng-repeat="navItem in ::ctrl.model.menu" ng-class="{active: navItem.active}">
|
<li ng-repeat="navItem in ::ctrl.model.menu">
|
||||||
<a class="pointer" ng-href="{{::navItem.url}}" ng-click="ctrl.navItemClicked(navItem, $event)">
|
<a class="pointer" ng-href="{{::navItem.url}}" ng-click="ctrl.navItemClicked(navItem, $event)">
|
||||||
<i class="{{::navItem.icon}}" ng-show="::navItem.icon"></i>
|
<i class="{{::navItem.icon}}" ng-show="::navItem.icon"></i>
|
||||||
{{::navItem.title}}
|
{{::navItem.title}}
|
||||||
|
|||||||
@@ -1,14 +1,19 @@
|
|||||||
<ul class="sidemenu">
|
<ul class="sidemenu">
|
||||||
|
|
||||||
|
<li>
|
||||||
|
<a class="sidemenu-item" ng-click="ctrl.search()">
|
||||||
|
<span class="icon-circle sidemenu-icon"><i class="fa fa-fw fa-search"></i></span>
|
||||||
|
</a>
|
||||||
|
</li>
|
||||||
|
|
||||||
<li ng-repeat="item in ::ctrl.mainLinks" class="dropdown">
|
<li ng-repeat="item in ::ctrl.mainLinks" class="dropdown">
|
||||||
<a href="{{::item.url}}" class="sidemenu-item sidemenu-main-link" target="{{::item.target}}">
|
<a href="{{::item.url}}" class="sidemenu-item" target="{{::item.target}}">
|
||||||
<span class="icon-circle sidemenu-icon">
|
<span class="icon-circle sidemenu-icon">
|
||||||
<i class="{{::item.icon}}" ng-show="::item.icon"></i>
|
<i class="{{::item.icon}}" ng-show="::item.icon"></i>
|
||||||
<img ng-src="{{::item.img}}" ng-show="::item.img">
|
<img ng-src="{{::item.img}}" ng-show="::item.img">
|
||||||
</span>
|
</span>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" role="menu" ng-if="::item.children">
|
<ul class="dropdown-menu dropdown-menu--sidemenu" role="menu" ng-if="::item.children">
|
||||||
<li class="side-menu-header">
|
<li class="side-menu-header">
|
||||||
<span class="sidemenu-item-text">{{::item.text}}</span>
|
<span class="sidemenu-item-text">{{::item.text}}</span>
|
||||||
</li>
|
</li>
|
||||||
@@ -29,7 +34,7 @@
|
|||||||
</li>
|
</li>
|
||||||
|
|
||||||
<li class="sidemenu-org-section" ng-if="::ctrl.isSignedIn" class="dropdown">
|
<li class="sidemenu-org-section" ng-if="::ctrl.isSignedIn" class="dropdown">
|
||||||
<a class="sidemenu-item sidemenu-main-link" href="profile">
|
<a class="sidemenu-item" href="profile">
|
||||||
<span class="icon-circle sidemenu-icon sidemenu-org-avatar">
|
<span class="icon-circle sidemenu-icon sidemenu-org-avatar">
|
||||||
<img ng-src="{{::ctrl.user.gravatarUrl}}">
|
<img ng-src="{{::ctrl.user.gravatarUrl}}">
|
||||||
<span class="sidemenu-org-avatar--missing">
|
<span class="sidemenu-org-avatar--missing">
|
||||||
@@ -37,7 +42,7 @@
|
|||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
<ul class="dropdown-menu" role="menu">
|
<ul class="dropdown-menu dropdown-menu--sidemenu" role="menu">
|
||||||
<li class="side-menu-header">
|
<li class="side-menu-header">
|
||||||
<span class="sidemenu-org-user sidemenu-item-text">{{::ctrl.user.name}}</span>
|
<span class="sidemenu-org-user sidemenu-item-text">{{::ctrl.user.name}}</span>
|
||||||
<span class="sidemenu-org-name sidemenu-item-text">{{::ctrl.user.orgName}}</span>
|
<span class="sidemenu-org-name sidemenu-item-text">{{::ctrl.user.orgName}}</span>
|
||||||
@@ -62,12 +67,12 @@
|
|||||||
</ul>
|
</ul>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
|
|
||||||
<li>
|
<li>
|
||||||
<a class="sidemenu-item" target="_self" ng-hide="ctrl.contextSrv.pinned" ng-click="ctrl.contextSrv.setPinnedState(true)">
|
<a class="sidemenu-item" target="_self" ng-hide="ctrl.contextSrv.pinned" ng-click="ctrl.contextSrv.setPinnedState(true)">
|
||||||
<span class="icon-circle sidemenu-icon"><i class="fa fa-fw fa-thumb-tack"></i></span>
|
<span class="icon-circle sidemenu-icon"><i class="fa fa-fw fa-thumb-tack"></i></span>
|
||||||
<span class="sidemenu-item-text">Pin</span>
|
<span class="sidemenu-item-text">Pin</span>
|
||||||
</a>
|
</a>
|
||||||
</li>
|
</li>
|
||||||
|
|
||||||
</ul>
|
</ul>
|
||||||
|
|
||||||
|
|||||||
@@ -213,7 +213,7 @@ $wellBackground: #131517;
|
|||||||
|
|
||||||
$navbarHeight: 52px;
|
$navbarHeight: 52px;
|
||||||
$navbarBackgroundHighlight: $dark-3;
|
$navbarBackgroundHighlight: $dark-3;
|
||||||
$navbarBackground: $dark-3;
|
$navbarBackground: $panel-bg;
|
||||||
$navbarBorder: 1px solid $body-bg;
|
$navbarBorder: 1px solid $body-bg;
|
||||||
|
|
||||||
$navbarText: $gray-4;
|
$navbarText: $gray-4;
|
||||||
@@ -225,7 +225,7 @@ $navbarLinkBackgroundActive: $navbarBackground;
|
|||||||
$navbarBrandColor: $link-color;
|
$navbarBrandColor: $link-color;
|
||||||
$navbarDropdownShadow: inset 0px 4px 10px -4px $body-bg;
|
$navbarDropdownShadow: inset 0px 4px 10px -4px $body-bg;
|
||||||
|
|
||||||
$navbarButtonBackground: lighten($navbarBackground, 3%);
|
$navbarButtonBackground: $navbarBackground;
|
||||||
$navbarButtonBackgroundHighlight: lighten($navbarBackground, 5%);
|
$navbarButtonBackgroundHighlight: lighten($navbarBackground, 5%);
|
||||||
|
|
||||||
// Sidemenu
|
// Sidemenu
|
||||||
@@ -233,6 +233,13 @@ $navbarButtonBackgroundHighlight: lighten($navbarBackground, 5%);
|
|||||||
$side-menu-bg: $dark-3;
|
$side-menu-bg: $dark-3;
|
||||||
$side-menu-item-hover-bg: $dark-2;
|
$side-menu-item-hover-bg: $dark-2;
|
||||||
|
|
||||||
|
// Menu dropdowns
|
||||||
|
// -------------------------
|
||||||
|
$menu-dropdown-bg: $body-bg;
|
||||||
|
$menu-dropdown-hover-bg: $dark-2;
|
||||||
|
$menu-dropdown-border-color: $dark-4;
|
||||||
|
|
||||||
|
|
||||||
// Pagination
|
// Pagination
|
||||||
// -------------------------
|
// -------------------------
|
||||||
$paginationBackground: $body-bg;
|
$paginationBackground: $body-bg;
|
||||||
|
|||||||
@@ -187,6 +187,12 @@ $input-invalid-border-color: lighten($red, 5%);
|
|||||||
$side-menu-bg: $body-bg;
|
$side-menu-bg: $body-bg;
|
||||||
$side-menu-item-hover-bg: $gray-6;
|
$side-menu-item-hover-bg: $gray-6;
|
||||||
|
|
||||||
|
// Menu dropdowns
|
||||||
|
// -------------------------
|
||||||
|
$menu-dropdown-bg: $white;
|
||||||
|
$menu-dropdown-hover-bg: $gray-6;
|
||||||
|
$menu-dropdown-border-color: $tight-form-border;
|
||||||
|
|
||||||
// search
|
// search
|
||||||
$search-shadow: 0 5px 30px 0 lighten($gray-2, 30%);
|
$search-shadow: 0 5px 30px 0 lighten($gray-2, 30%);
|
||||||
|
|
||||||
@@ -206,7 +212,6 @@ $dropdownLinkColorActive: $link-color;
|
|||||||
$dropdownLinkBackgroundActive: $gray-6;
|
$dropdownLinkBackgroundActive: $gray-6;
|
||||||
$dropdownLinkBackgroundHover: $gray-6;
|
$dropdownLinkBackgroundHover: $gray-6;
|
||||||
|
|
||||||
|
|
||||||
// COMPONENT VARIABLES
|
// COMPONENT VARIABLES
|
||||||
// --------------------------------------------------
|
// --------------------------------------------------
|
||||||
|
|
||||||
|
|||||||
@@ -90,8 +90,36 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
&--navbar {
|
||||||
|
top: 100%;
|
||||||
|
min-width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
&--navbar,
|
||||||
|
&--sidemenu {
|
||||||
|
background: $menu-dropdown-bg;
|
||||||
|
margin-top: 0px;
|
||||||
|
|
||||||
|
> li > a {
|
||||||
|
padding: $spacer/2 $spacer;
|
||||||
|
border-left: 2px solid transparent;
|
||||||
|
|
||||||
|
i {
|
||||||
|
display: inline-block;
|
||||||
|
padding-right: 21px;
|
||||||
|
}
|
||||||
|
|
||||||
|
&:hover {
|
||||||
|
@include left-brand-border-gradient();
|
||||||
|
color: $link-hover-color;
|
||||||
|
background: $input-label-bg !important;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
// Hover/Focus state
|
// Hover/Focus state
|
||||||
// -----------
|
// -----------
|
||||||
.dropdown-menu > li > a:hover,
|
.dropdown-menu > li > a:hover,
|
||||||
|
|||||||
@@ -60,9 +60,8 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
float: left;
|
float: left;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
border-right: 1px solid $tight-form-border;
|
|
||||||
background-color: $navbarButtonBackground;
|
background-color: $navbarButtonBackground;
|
||||||
padding: 0.4rem 1.0rem 0.4rem 1rem;
|
padding: 0.4rem 2.0rem 0.4rem 1rem;
|
||||||
min-height:: $navbarHeight;
|
min-height:: $navbarHeight;
|
||||||
|
|
||||||
.fa-caret-down {
|
.fa-caret-down {
|
||||||
@@ -110,7 +109,6 @@
|
|||||||
display: block;
|
display: block;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
font-size: 1.4rem;
|
font-size: 1.4rem;
|
||||||
border-right: 1px solid $tight-form-border;
|
|
||||||
color: darken($link-color, 5%);
|
color: darken($link-color, 5%);
|
||||||
background-color: $navbarButtonBackground;
|
background-color: $navbarButtonBackground;
|
||||||
font-size: $font-size-lg;
|
font-size: $font-size-lg;
|
||||||
@@ -148,29 +146,6 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
}
|
}
|
||||||
|
|
||||||
.dropdown-menu.dropdown-menu--navbar {
|
|
||||||
top: 100%;
|
|
||||||
min-width: 100%;
|
|
||||||
margin-top: 0px;
|
|
||||||
|
|
||||||
li a {
|
|
||||||
padding: $spacer/2 $spacer;
|
|
||||||
border-left: 2px solid $side-menu-bg;
|
|
||||||
background: $side-menu-bg;
|
|
||||||
|
|
||||||
i {
|
|
||||||
display: inline-block;
|
|
||||||
padding-right: 21px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
@include left-brand-border-gradient();
|
|
||||||
color: $link-hover-color;
|
|
||||||
background: $input-label-bg;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.navbar-section-wrapper {
|
.navbar-section-wrapper {
|
||||||
position: relative;
|
position: relative;
|
||||||
float: left;
|
float: left;
|
||||||
|
|||||||
@@ -56,14 +56,21 @@
|
|||||||
background-color: $side-menu-item-hover-bg;
|
background-color: $side-menu-item-hover-bg;
|
||||||
@include left-brand-border-gradient();
|
@include left-brand-border-gradient();
|
||||||
|
|
||||||
|
.sidemenu-item {
|
||||||
|
border-top: 1px solid $menu-dropdown-border-color;
|
||||||
|
border-bottom: 1px solid $menu-dropdown-border-color;
|
||||||
|
}
|
||||||
|
|
||||||
.dropdown-menu {
|
.dropdown-menu {
|
||||||
|
margin: 0;
|
||||||
display: block;
|
display: block;
|
||||||
opacity: 0;
|
opacity: 0;
|
||||||
top: 0px;
|
top: 0px;
|
||||||
|
border: 1px solid $dark-4;
|
||||||
|
border-left: none;
|
||||||
// important to overlap it otherwise it can be hidden
|
// important to overlap it otherwise it can be hidden
|
||||||
// again by the mouse getting outside the hover space
|
// again by the mouse getting outside the hover space
|
||||||
left: $side-menu-width - 5px;
|
left: $side-menu-width - 2px;
|
||||||
background-color: $side-menu-bg;
|
|
||||||
@include animation('dropdown-anim 0ms ease-in-out 0ms forwards');
|
@include animation('dropdown-anim 0ms ease-in-out 0ms forwards');
|
||||||
z-index: -9999;
|
z-index: -9999;
|
||||||
}
|
}
|
||||||
@@ -82,19 +89,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidemenu-main-link {
|
|
||||||
font-size: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sidemenu-item-text {
|
|
||||||
width: 110px;
|
|
||||||
display: inline-block;
|
|
||||||
vertical-align: middle;
|
|
||||||
overflow: hidden;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.icon-circle {
|
.icon-circle {
|
||||||
width: 40px;
|
width: 40px;
|
||||||
height: 40px;
|
height: 40px;
|
||||||
@@ -104,9 +98,17 @@
|
|||||||
opacity: .7;
|
opacity: .7;
|
||||||
position: relative;
|
position: relative;
|
||||||
left: 7px;
|
left: 7px;
|
||||||
top: 5px;
|
|
||||||
font-size: 150%;
|
font-size: 150%;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.fa {
|
||||||
|
top: 2px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.icon-gf {
|
||||||
|
top: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
img {
|
img {
|
||||||
left: 7px;
|
left: 7px;
|
||||||
position: relative;
|
position: relative;
|
||||||
@@ -118,23 +120,9 @@
|
|||||||
line-height: 47px;
|
line-height: 47px;
|
||||||
padding: 0px 10px 0px 10px;
|
padding: 0px 10px 0px 10px;
|
||||||
display: block;
|
display: block;
|
||||||
border-left: 1px solid transparent;
|
|
||||||
position: relative;
|
position: relative;
|
||||||
|
font-size: 16px;
|
||||||
.sidemenu-item-text {
|
border: 1px solid transparent;
|
||||||
padding-left: 11px;
|
|
||||||
position: absolute;
|
|
||||||
display: none;
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
.sidemenu-item-text {
|
|
||||||
display: block;
|
|
||||||
opacity: 1;
|
|
||||||
transition: opacity 150ms ease-in-out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
img {
|
img {
|
||||||
border-radius: 50%;
|
border-radius: 50%;
|
||||||
@@ -145,9 +133,10 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
.side-menu-header {
|
.side-menu-header {
|
||||||
padding: 8px 10px 8px 10px;
|
padding: 10px;
|
||||||
background-color: $side-menu-item-hover-bg;
|
background-color: $side-menu-item-hover-bg;
|
||||||
font-size: 18px;
|
font-size: 18px;
|
||||||
|
border-bottom: 1px solid $menu-dropdown-border-color;
|
||||||
}
|
}
|
||||||
|
|
||||||
.sidemenu-org-section .dropdown-menu-title {
|
.sidemenu-org-section .dropdown-menu-title {
|
||||||
|
|||||||
Reference in New Issue
Block a user