You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

527 lines
13 KiB
SCSS

$hc-offcanvas-nav-background-color: #eee !default;
$hc-offcanvas-nav-text-color: #111 !default;
$hc-offcanvas-nav-text-size: 14px !default;
.hc-offcanvas-nav {
font-family: sans-serif;
&,
.nav-wrapper {
&::after {
background: rgba(0, 0, 0, .3);
}
}
.nav-container,
.nav-wrapper,
ul {
background: $hc-offcanvas-nav-background-color;
}
.nav-content > {
h2, h3, h4, h5, h6 {
font-size: round($hc-offcanvas-nav-text-size * 1.35);
font-weight: normal;
padding: 20px 17px;
color: darken($hc-offcanvas-nav-background-color, 20%);
&:not(.nav-title):not(.level-title) {
font-size: round($hc-offcanvas-nav-text-size * 1.14);
padding: 15px 17px;
background: $hc-offcanvas-nav-background-color;
}
}
}
.nav-item-link,
li.nav-close a,
.nav-back a {
padding: 14px 17px;
font-size: $hc-offcanvas-nav-text-size;
color: $hc-offcanvas-nav-text-color;
z-index: 1;
background: rgba(0, 0, 0, 0);
border-bottom: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
transition: background .1s ease;
&:focus,
&:focus-within {
z-index: 10;
}
&[disabled] {
color: rgba($hc-offcanvas-nav-text-color, .5);
}
}
div.nav-back {
& + ul > li:first-child > .nav-item-wrapper > .nav-item-link {
border-top: none !important;
}
}
&:not(.touch-device) {
li:not(.nav-item-custom) {
a:not([disabled]) {
&:hover {
background: darken($hc-offcanvas-nav-background-color, 2%);
}
}
}
}
.nav-custom-content {
padding: 14px 17px;
font-size: $hc-offcanvas-nav-text-size;
border-bottom: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
.nav-highlight {
background: darken($hc-offcanvas-nav-background-color, 4%);
}
.nav-wrapper {
& > .nav-content > {
ul {
&:first-of-type {
& > li {
&:first-child:not(.nav-back):not(.nav-close) {
& > .nav-item-wrapper {
& > .nav-item-link {
border-top: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
& + a {
border-top: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
}
}
}
}
}
&:not(:last-child) {
border-bottom: 2px solid darken($hc-offcanvas-nav-background-color, 6%);
}
& + {
h2, h3, h4, h5, h6 {
margin-top: -2px;
}
}
}
h2, h3, h4, h5, h6 {
& + ul {
& > li {
&:first-child:not(.nav-back):not(.nav-close) {
& > .nav-item-wrapper {
& > .nav-item-link {
border-top: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
}
}
}
}
}
.nav-title,
.level-title,
.nav-close {
& + {
h2, h3, h4, h5, h6 {
border-top: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
}
}
}
}
li {
color: $hc-offcanvas-nav-text-color;
&.nav-parent {
.nav-item-link {
&:last-child {
padding-right: 58px;
}
&:not(:last-child) {
margin-right: 45px;
}
}
}
}
.nav-close-button span,
.nav-parent .nav-next,
.nav-back span {
width: 45px;
position: absolute;
top: 0;
right: 0;
bottom: 0;
text-align: center;
cursor: pointer;
transition: background .1s ease;
}
.nav-close-button {
position: relative;
display: block;
span {
&::before,
&::after {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 6px;
height: 6px;
margin-top: -3px;
border-top: 2px solid $hc-offcanvas-nav-text-color;
border-left: 2px solid $hc-offcanvas-nav-text-color;
}
&::before {
margin-left: -9px;
transform: rotate(135deg);
}
&::after {
transform: rotate(-45deg);
}
}
}
.nav-content > .nav-close {
position: relative;
z-index: 2;
a {
font-size: $hc-offcanvas-nav-text-size;
color: $hc-offcanvas-nav-text-color;
background: rgba(0, 0, 0, 0);
z-index: 1;
text-decoration: none;
box-sizing: border-box;
&:not(.has-label) {
height: 50px;
}
&.has-label {
padding: 14px 17px;
border-top: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
&:hover {
border: none;
background: radial-gradient(
farthest-corner at top right,
rgba(0, 0, 0, .1),
rgba(0, 0, 0, 0)
);
}
}
&.has-label + ul {
margin-top: -1px;
}
}
&:not(.nav-close-button-empty) {
.nav-content > .nav-close {
margin-bottom: -1px;
}
}
.nav-title {
color: dodgerblue !important;
& + .nav-close {
a:not(.has-label) {
position: absolute;
width: 45px;
height: 66px;
line-height: 66px;
top: -66px;
right: 0;
}
}
}
&.nav-close-button-empty {
.nav-title {
padding-right: 55px;
}
}
li.nav-close {
a:not(.has-label) {
height: 49px;
}
}
.nav-content > .nav-close:first-child a,
.nav-title + .nav-close a.has-label,
li.nav-close a,
.nav-back a {
background: darken($hc-offcanvas-nav-background-color, 3%);
border-top: 1px solid darken($hc-offcanvas-nav-background-color, 7%);
border-bottom: 1px solid darken($hc-offcanvas-nav-background-color, 7%);
&:hover {
background: darken($hc-offcanvas-nav-background-color, 4.3%);
}
}
li.nav-close,
li.nav-back {
&:not(:first-child) {
a {
margin-top: -1px;
}
}
}
a.nav-next {
border-left: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
border-bottom: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
.nav-next,
.nav-back {
span {
&::before {
content: '';
position: absolute;
top: 50%;
left: 50%;
width: 8px;
height: 8px;
margin-left: -2px;
box-sizing: border-box;
border-top: 2px solid $hc-offcanvas-nav-text-color;
border-left: 2px solid $hc-offcanvas-nav-text-color;
transform-origin: center;
}
}
}
.nav-next {
span {
position: absolute;
top: 0;
right: 0;
left: 0;
bottom: 0;
&::before {
transform: translate(-50%, -50%) rotate(135deg);
}
}
}
.nav-back {
span {
&::before {
margin-left: 2px;
transform: translate(-50%, -50%) rotate(-45deg);
}
}
}
/* Left */
&.nav-position-left {
&.nav-open.nav-levels-overlap {
.nav-wrapper {
box-shadow: 1px 0 2px rgba(0, 0, 0, .2);
}
}
}
/* Right */
&.nav-position-right {
&.nav-open.nav-levels-overlap {
.nav-wrapper {
box-shadow: -1px 0 2px rgba(0, 0, 0, .2);
}
}
.nav-next {
span {
&::before {
margin-left: 2px;
transform: translate(-50%, -50%) rotate(-45deg);
}
}
}
.nav-back {
span {
&::before {
margin-left: -2px;
transform: translate(-50%, -50%) rotate(135deg);
}
}
}
}
/* Top */
&.nav-position-top {
&.nav-open {
.nav-wrapper {
box-shadow: 0 1px 2px rgba(0, 0, 0, .2);
}
}
.nav-next {
span {
&::before {
margin-left: 0;
margin-right: -2px;
transform: translate(-50%, -50%) rotate(-135deg);
}
}
}
.nav-back {
span {
&::before {
margin-left: 0;
margin-right: -2px;
transform: translate(-50%, -50%) rotate(45deg);
}
}
}
}
/* Bottom */
&.nav-position-bottom {
&.nav-open {
.nav-wrapper {
box-shadow: 0 -1px 2px rgba(0, 0, 0, .2);
}
}
.nav-next {
span {
&::before {
margin-left: 0;
margin-right: -2px;
transform: translate(-50%, -50%) rotate(45deg);
}
}
}
.nav-back {
span {
&::before {
margin-left: 0;
margin-right: -2px;
transform: translate(-50%, -50%) rotate(-135deg);
}
}
}
}
/* Expand & none */
&.nav-levels-expand,
&.nav-levels-none {
ul {
.nav-wrapper {
box-shadow: none;
background: transparent;
}
}
li {
&.level-open {
background: darken($hc-offcanvas-nav-background-color, 4%);
& > .nav-item-wrapper > {
a {
border-bottom: 1px solid darken($hc-offcanvas-nav-background-color, 8%);
&:hover {
background: darken($hc-offcanvas-nav-background-color, 3%);
}
}
.nav-next,
a > .nav-next {
span {
&::before {
margin-top: -2px;
transform: translate(-50%, -50%) rotate(-135deg);
}
}
}
}
}
}
@for $i from 1 through 5 {
.nav-wrapper-#{$i} .nav-item-link {
padding-left: calc(17px + 20px * #{$i});
}
}
}
/* RTL */
&.rtl {
a.nav-next {
border-left: none;
border-right: 1px solid darken($hc-offcanvas-nav-background-color, 6%);
}
.nav-title + .nav-close a:not(.has-label),
.nav-close-button span,
.nav-next,
.nav-back span {
left: 0;
right: auto;
}
li {
&.nav-parent {
.nav-item-link {
&:last-child {
padding-left: 58px;
padding-right: 17px;
}
&:not(:last-child) {
margin-left: 45px;
margin-right: 0;
}
}
}
}
@for $i from 1 through 5 {
.nav-wrapper-#{$i} li.nav-item .nav-item-link {
padding-right: calc(17px + 20px * #{$i});
}
}
}
}