patternfly
Version:
This reference implementation of PatternFly is based on [Bootstrap v3](http://getbootstrap.com/). Think of PatternFly as a "skinned" version of Bootstrap with additional components and customizations.
529 lines (526 loc) • 13.9 kB
text/less
//
// Vertical navigation
// --------------------------------------------------
.layout-pf-fixedafdaf.transitions .nav-pf-vertical {
transition: @flyout-transition-pf;
&.collapsed .list-group-item .list-group-item-value {
transition: opacity 0s .1s, opacity .1s linear;
}
.list-group-item {
.badge {
transition: @flyout-transition-pf;
}
.list-group-item-value {
transition: opacity .5s ease-out;
transition-delay: .15s;
}
}
}
.nav-pf-vertical {
background: @nav-pf-vertical-bg-color;
border-right: 1px solid @nav-pf-vertical-border-color;
bottom: 0;
overflow-x: hidden;
overflow-y: auto;
left: 0;
position: fixed;
top: @navbar-pf-height;
width: @nav-pf-vertical-width;
z-index: @zindex-navbar-fixed;
.layout-pf-fixed-with-footer & {
bottom: @footer-pf-height;
}
.ie9.layout-pf-fixed & {
box-sizing: content-box; // IE9 incorrectly sizes the width if using padding-box
}
&.collapsed:not(.nav-pf-vertical-with-secondary-nav) {
display: none;
}
&.collapsed {
width: @nav-pf-vertical-collapsed-width;
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
> .list-group {
> .list-group-item {
> a {
margin-right: 0;
width: @nav-pf-vertical-collapsed-width;
> .list-group-item-value {
display: none;
width: 0;
}
}
&.persistent-secondary {
&.active > a, > a {
width: @nav-pf-vertical-collapsed-width;
&:after {
right: 10px;
}
}
&:hover {
> a {
width: (@nav-pf-vertical-collapsed-width + 1);
z-index: (@zindex-navbar-fixed + 2);
&:after {
right: 11px;
}
}
}
}
}
}
@media (min-width: @screen-lg-min) {
> .list-group {
> .list-group-item {
&.persistent-secondary {
&.active > a, > a {
width: (@nav-pf-vertical-collapsed-width + 1);
}
}
}
}
}
}
&.hidden-icons-pf {
width: @nav-pf-vertical-hidden-icons-width;
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
> .list-group > .list-group-item {
> a {
width: @nav-pf-vertical-hidden-icons-width;
.fa,
.glyphicon,
.pficon {
display: none;
}
}
&.persistent-secondary {
&.active, &:hover {
> a {
width: (@nav-pf-vertical-hidden-icons-width + 1);
z-index: (@zindex-navbar-fixed + 2);
&:after {
right: 21px;
}
}
}
}
}
&.nav-pf-vertical-with-secondary-nav {
.nav-pf-persistent-secondary {
left: @nav-pf-vertical-hidden-icons-width;
&.collapsed-secondary-nav-pf {
left: 0;
}
}
&.collapsed {
display: none;
}
&.hover-secondary-nav-pf {
width: (@nav-pf-vertical-hidden-icons-width + @nav-pf-vertical-secondary-width);
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
&.show-mobile-nav {
width: @nav-pf-vertical-hidden-icons-width;
}
}
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
&.secondary-visible-pf {
width: (@nav-pf-vertical-hidden-icons-width + @nav-pf-vertical-secondary-width);
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
&.show-mobile-nav {
width: @nav-pf-vertical-secondary-width;
}
}
}
}
&.hidden {
&.show-mobile-nav {
box-shadow: 0 0 3px fade(@color-pf-black, 15%);
display: block ;
}
> .list-group {
> .list-group-item {
&.persistent-secondary {
&:hover {
> a {
z-index: @zindex-navbar-fixed;
}
}
}
}
}
}
&.nav-pf-vertical-with-secondary-nav {
&.collapsed {
&.hover-secondary-nav-pf {
width: (@nav-pf-vertical-collapsed-width + @nav-pf-vertical-secondary-width);
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
}
}
&.hover-secondary-nav-pf {
width: (@nav-pf-vertical-width + @nav-pf-vertical-secondary-width);
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
&.show-mobile-nav {
width: @nav-pf-vertical-width;
}
}
&.secondary-visible-pf {
width: @nav-pf-vertical-width;
&.collapsed {
width: @nav-pf-vertical-collapsed-width;
}
&.show-mobile-nav {
width: @nav-pf-vertical-secondary-width;
}
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
@media (min-width: @screen-lg-min) {
width: (@nav-pf-vertical-width + @nav-pf-vertical-secondary-width);
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
&.collapsed {
width: @nav-pf-vertical-collapsed-width;
&.hover-secondary-nav-pf, &.secondary-visible-pf {
width: (@nav-pf-vertical-collapsed-width + @nav-pf-vertical-secondary-width);
}
&.collapsed-secondary-nav-pf {
width: @nav-pf-vertical-secondary-width;
}
}
}
}
&.collapsed-secondary-nav-pf {
> .list-group {
> .list-group-item {
&.persistent-secondary {
&.active, &:hover {
> a {
z-index: @zindex-navbar-fixed;
}
}
}
}
}
}
}
.layout-pf-fixed-with-footer & {
bottom: @footer-pf-height;
}
> .list-group {
border-top: 0;
margin-bottom: 0;
> .list-group-item {
background-color: transparent;
border-color: @nav-pf-vertical-item-border-color;
padding: 0;
> a {
background-color: transparent;
color: @nav-pf-vertical-color;
display: block;
font-size: (@font-size-base + 2);
font-weight: @nav-pf-vertical-font-weight;
height: @nav-pf-vertical-link-height;
outline: 0;
padding: @nav-pf-vertical-link-padding;
position: relative;
white-space: nowrap;
width: @nav-pf-vertical-width;
.fa,
.glyphicon,
.pficon {
color: @nav-pf-vertical-icon-color;
float: left;
font-size: (@font-size-base + 2);
line-height: 30px;
margin-right: 10px;
text-align: center;
width: @nav-pf-vertical-icon-width;
}
&:hover, &:focus {
text-decoration: none;
}
}
&.active, &:hover {
> a {
background-color: @nav-pf-vertical-active-bg-color;
color: @nav-pf-vertical-active-color;
font-weight: @nav-pf-vertical-active-font-weight;
.fa,
.glyphicon,
.pficon {
color: @nav-pf-vertical-active-icon-color;
}
}
}
&.active {
> a {
.show-mobile-nav & {
z-index: @zindex-navbar-fixed;
}
}
> a:before {
background: @nav-pf-vertical-active-before-color;
content: " ";
height: 100%;
left: 0;
position: absolute;
top: 0;
width: 3px;
}
}
.list-group-item-value {
display: block;
line-height: 30px;
max-width: 120px;
overflow: hidden;
text-overflow: ellipsis;
width: 100%;
}
&.persistent-secondary {
> a:after {
color: @nav-pf-vertical-secondary-indicator-color;
content: "\f105";
display: block;
font-family: "FontAwesome";
font-size: (@font-size-base * 2);
line-height: 30px;
padding: @nav-pf-vertical-secondary-indicator-padding;
position: absolute;
right: 20px;
top: 0;
}
&.active, &:hover {
> a {
width: (@nav-pf-vertical-width + 1);
z-index: (@zindex-navbar-fixed + 2);
&:after {
right: 21px;
}
.collapsed-secondary-nav-pf & {
z-index: @zindex-navbar-fixed;
}
}
}
}
}
}
.list-group-item-separator {
border-top-width: 2px;
border-top-color: @nav-pf-vertical-item-border-color;
}
}
.nav-pf-persistent-secondary {
background: @nav-pf-vertical-secondary-bg-color;
border: 1px solid @nav-pf-vertical-border-color;
border-bottom: none;
border-top: none;
bottom: 0;
display: none;
left: @nav-pf-vertical-width;
overflow-x: hidden;
overflow-y: auto;
position: fixed;
top: @navbar-pf-height;
width: @nav-pf-vertical-secondary-width;
z-index: @zindex-navbar-fixed;
.persistent-secondary.active &, .persistent-secondary.mobile-nav-item-pf & {
.secondary-visible-pf & {
display: block;
}
.secondary-visible-pf.collapsed & {
display: none;
@media (min-width: @screen-lg-min) {
display: block;
left: @nav-pf-vertical-collapsed-width;
.collapsed-secondary-nav-pf & {
left: 0;
}
}
}
.secondary-visible-pf.collapsed.collapsed-secondary-nav-pf & {
@media (min-width: @screen-lg-min) {
left: 0;
}
}
.show-mobile-nav & {
left: 0;
z-index: (@zindex-navbar-fixed + 2);
}
.collapsed-secondary-nav-pf & {
display: block;
left: 0;
}
}
.persistent-secondary:hover & {
display: block;
z-index: (@zindex-navbar-fixed + 1);
.collapsed & {
left: @nav-pf-vertical-collapsed-width;
}
.collapsed.collapsed-secondary-nav-pf & {
left: 0;
@media (min-width: @screen-lg-min) {
left: 0;
.hidden-icons-pf & {
left: 0;
}
}
}
}
.persistent-secondary:hover & {
.secondary-visible-pf.collapsed & {
display: block;
}
}
.ie9.layout-pf-fixed & {
box-sizing: content-box; // IE9 incorrectly sizes the width if using padding-box
}
.layout-pf-fixed-with-footer & {
bottom: @footer-pf-height;
}
.persistent-secondary-header {
color: @nav-pf-vertical-secondary-color;
font-size: (@font-size-base + 4);
margin: @nav-pf-vertical-secondary-header-margin;
> a {
margin-right: 7px;
&:hover, &:focus {
text-decoration: none;
color: @link-color;
}
}
}
h5 {
color: @nav-pf-vertical-secondary-color;
cursor: default;
font-size: (@font-size-base + 1);
font-weight: 600;
margin: @nav-pf-vertical-secondary-list-header-margin;
}
> .list-group {
border-top: 0;
margin-bottom: 0;
> .list-group-item {
background-color: transparent;
border: none;
padding: @nav-pf-vertical-secondary-item-padding;
> a {
background-color: transparent;
color: @nav-pf-vertical-secondary-item-color;
display: block;
font-size: @font-size-base;
outline: 0;
padding: @nav-pf-vertical-secondary-link-padding;
position: relative;
white-space: nowrap;
&:hover {
> .list-group-item-value {
color: @nav-pf-vertical-active-color;
text-decoration: underline;
}
}
}
&.active {
.list-group-item-value {
background-color: @nav-pf-vertical-secondary-active-bg-color;
color: @nav-pf-vertical-active-color;
}
.fa,
.glyphicon,
.pficon {
color: @nav-pf-vertical-active-icon-color;
}
}
.badge-container-pf {
background-color: @nav-pf-vertical-secondary-badge-bg-color;
position: absolute;
right: 15px;
top: 0;
.badge {
background: @nav-pf-vertical-secondary-badge-bg-color;
color: @nav-pf-vertical-badge-color;
font-size: @font-size-base;
font-weight: 700;
float: left;
line-height: @line-height-base;
margin: 0;
padding: 0 7px;
text-align: center;
.pficon, .fa {
font-size: (@font-size-base + 2);
height: 20px;
line-height: @line-height-base;
margin-right: 3px;
margin-top: -1px;
}
}
}
.fa,
.glyphicon,
.pficon {
float: left;
font-size: 18px;
line-height: 30px;
margin-right: 10px;
text-align: center;
width: 18px;
}
.list-group-item-value {
display: inline-block;
line-height: 20px;
max-width: none;
opacity: 1;
overflow: hidden;
padding-left: 5px;
text-overflow: ellipsis;
}
}
}
.secondary-collapse-toggle-pf {
display: inline-block;
font-family: @icon-font-name-fa;
font-size: inherit;
-webkit-font-smoothing: antialiased;
&:before {
content: '\f190';
}
&.collapsed {
&:before {
content: '\f18e';
}
}
}
}
.show-mobile-nav {
.persistent-secondary:hover {
.nav-pf-persistent-secondary {
display: none;
}
}
.persistent-secondary.mobile-nav-item-pf:hover {
.nav-pf-persistent-secondary {
display: block;
}
}
}
.force-hide-secondary-nav-pf {
.persistent-secondary {
.nav-pf-persistent-secondary {
display: none ;
}
}
}