discourse/app/assets/stylesheets/common/components/navs.scss
2024-02-16 14:28:25 -07:00

133 lines
2.4 KiB
SCSS

// --------------------------------------------------
// Navigation menus
// --------------------------------------------------
// Base
// --------------------------------------------------
%nav {
margin-left: 0;
list-style: none;
li a {
display: block;
text-decoration: none;
}
}
// Pill nav
// --------------------------------------------------
.nav-pills {
@extend %nav;
display: flex;
flex-direction: row;
align-items: stretch;
> li {
display: flex;
margin-right: 0.5em;
> a,
button {
border: none;
border-radius: var(--d-nav-pill-border-radius);
padding: 6px 12px;
color: var(--primary);
font-size: var(--font-up-1);
line-height: var(--line-height-small);
box-sizing: border-box;
min-height: 30px;
display: flex;
align-items: center;
transition: background-color 0.2s, color 0.2s;
.d-icon {
margin-right: 5px;
opacity: 0.65;
}
&:hover {
color: var(--quaternary);
background-color: var(--quaternary-low);
}
}
a.active,
button.active {
color: var(--secondary);
background-color: var(--quaternary);
.d-icon {
opacity: 1;
}
}
}
}
// Stacked nav
// --------------------------------------------------
.nav-stacked {
@extend %nav;
padding: 0;
background: var(--primary-low);
li {
border-bottom: 1px solid var(--primary-low);
&:last-of-type {
border-bottom: 0;
}
&.indent {
padding-left: 15px;
}
}
a {
margin: 0;
padding: 0.75em;
line-height: var(--line-height-small);
cursor: pointer;
color: var(--primary);
@include ellipsis;
&.active {
color: var(--secondary);
background-color: var(--quaternary);
position: relative;
--arrow-thickness: 8px;
&::after {
position: absolute;
right: 0;
top: calc(50% - var(--arrow-thickness));
content: " ";
border: var(--arrow-thickness) solid transparent;
border-left-color: var(--secondary);
}
}
}
.count {
font-size: var(--font-down-1);
}
.glyph {
font-size: var(--font-down-1);
width: 1.25em;
text-align: center;
margin-right: 0.25em;
line-height: var(--line-height-large);
}
}
.user-navigation .nav-pills > li {
a,
button {
border-radius: 0px;
}
}