@atlassian/aui
Version:
Atlassian User Interface library
171 lines (143 loc) • 5.53 kB
text/less
@import 'aui-sidebar-config.less';
@import (reference) 'imports/mixins.less';
//
// Imported by aui-sidebar.
//
// Implements grouping strategies for sidebar items. The various group
// types are wrappers around the base aui-nav pattern. Different groups
// behave and are styled differently depending on whether the sidebar
// is expanded or collapsed.
//
//
// Sidebar navigation grouping
//
.aui-sidebar {
.aui-sidebar-group {
// Note: these margins should collapse with those of aui-nav itself.
margin-top: (@aui-sidebar-grid * 2);
margin-bottom: @aui-sidebar-grid;
padding: 0 @aui-sidebar-gutter;
.aui-nav-heading {
padding: 0 (@aui-sidebar-spacing - @aui-sidebar-gutter);
}
}
//-----------------------
// Sidebar narrow state - add collapsed styles.
//-----------------------
&[aria-expanded="false"] {
// Replaces aui-nav with a default image to reflect nested content
.aui-sidebar-group {
// by default, groups collapse and are meant to look like clickable buttons.
#aui-nav.item-base(@aui-sidebar-nav-link-expected-height);
#aui-nav.item-style(normal);
background: url(images/icons/sidebar/icon-group.svg) 50% center no-repeat;
cursor: pointer;
height: @aui-sidebar-icon-size;
margin-left: @aui-sidebar-grid;
margin-right: @aui-sidebar-grid;
position: relative;
&:focus,
&:hover {
#aui-nav.item-style(hover);
}
&.active {
#aui-nav.item-style(selected);
}
> .aui-nav {
display: none;
}
// remove the faux button effect; these things are still groups.
&.aui-sidebar-group-actions,
&.aui-sidebar-group-tier-one {
background: none;
border-radius: 0;
cursor: auto;
padding: 0;
}
}
// make the group actions look like a special kind of rounded button.
.aui-sidebar-group-actions {
margin: @aui-sidebar-grid 0 @aui-sidebar-spacing 0;
height: @aui-icon-size-large;
&::after {
@aui-sidebar-group-actions-border-width: 1px;
background: url(images/icons/sidebar/icon-group-actions.svg) no-repeat center center;
background-size: @aui-sidebar-icon-size;
border: @aui-sidebar-group-actions-border-width solid transparent;
border-radius: 50%;
content: "";
display: block;
height: @aui-icon-size-large;
left: 0;
margin-left: ((@aui-sidebar-collapsed-width - @aui-sidebar-header-avatar-collapsed - (@aui-sidebar-group-actions-border-width * 2)) / 2);
margin-right: ((@aui-sidebar-collapsed-width - @aui-sidebar-header-avatar-collapsed - (@aui-sidebar-group-actions-border-width * 2)) / 2);
position: absolute;
top: 0;
width: @aui-icon-size-large;
}
&:hover,
&:focus,
&.active {
&::after {
background-color: @aui-button-default-active-bg-color;
border-color: @aui-button-default-active-bg-color;
}
}
}
// use when the nav items have icons - shows the icon in the collapsed state
.aui-sidebar-group-tier-one {
background: none;
height: auto;
&:after {
display: none;
}
&:focus,
&:hover {
background-color: transparent;
}
.aui-nav {
display: block;
height: auto;
> li {
display: block;
> .aui-nav-item {
padding-left: 0;
padding-right: 0;
text-align: center;
// Adjust the position of the icon
> .aui-icon {
float: none;
margin: 0 auto;
}
&.active {
#aui-nav.item-style(selected);
}
}
// visually hide the labels while allowing screen readers to still see them
.aui-nav-item-label {
#aui.visually-hidden();
}
// remove any top level twixy expand/collapse triggers
> .aui-nav-subtree-toggle {
display: none;
}
.aui-nav-item-actions {
display: none;
}
}
// remove nested navs - contents to be sucked into fly-out menus
.aui-nav {
display: none;
}
}
}
.aui-sidebar-group ~ .aui-sidebar-group {
border-top: @aui-nav-actions-list-divider-size solid @aui-nav-group-divider-color;
margin-top: @aui-sidebar-spacing;
padding-top: @aui-sidebar-grid;
}
}
// END Collapsed state
}
// END Sidebar
//-----------------------