taipei-light/assets/stylesheets/template/modules/menu.scss

346 lines
6.6 KiB
SCSS
Raw Permalink Normal View History

2023-03-26 02:04:03 +00:00
@charset "utf-8";
@import "../initial";
.navbar-collapse.in {
overflow-y: unset;
}
.modules-menu {
font-family: $sub-font;
max-height: none;
z-index: 1020;
@media(min-width: 769px){
width: 40%;
}
li {
white-space: nowrap;
}
.menu-drop.opened {
transform: rotateX(180deg);
}
.modules-menu-level-0 {
margin: 0 0 0.5em 0;
padding: 0;
list-style: none;
width: 100%;
@media(min-width: 769px){
display: flex;
justify-content: space-around;
}
.has-dropdown.level-1.active {
.modules-menu-level-1 {
display: block;
}
}
.has-dropdown.level-2.active {
.modules-menu-level-2 {
display: block;
}
}
// .dropdown-toggle-icon {
// position: absolute;
// top: 0.5em;
// right: 0.3em;
// width: 2.5em;
// height: 2.5em;
// cursor: pointer;
// line-height: 2.5em;
// font-size: 1em;
// text-align: center;
// border-radius: 0.13em;
// }
.menu-drop {
position: absolute;
top: 0.5em;
right: 0.3em;
width: 2.5em;
height: 2.5em;
cursor: pointer;
line-height: 2.5em;
font-size: 1em;
text-align: center;
border-radius: 0.13em;
}
// .dropdown-toggle-icon.level-1 {
// background-color: lighten($theme-gray, 10%);
// }
// .dropdown-toggle-icon.level-2 {
// background-color: lighten($theme-gray, 10%);
// }
& > li {
position: relative;
margin: 0;
padding: 0 1em;
border-bottom: 0.0625em solid lighten($theme-gray, 5%);
& > a {
display: block;
padding: 1.125em 0;
font-family: $main-font;
}
&:hover {
background-color: $theme-color-second;
& > a {
text-shadow: 0 0 6px #fccc00;
color: #fccc00!important;
-webkit-transition: .4s;
-moz-transition: .4s;
transition: .4s;
}
@media (min-width: $screen-sm) {
background-color: $theme-color-second;
border-radius: 0.5em;
}
}
@media (min-width: $screen-sm) {
position: relative;
margin: 0;
padding: 0;
border-bottom: none;
&:first-child {
margin-left: 0;
}
&:last-child {
margin-right: 0;
.modules-menu-level-1 {
left: auto;
&:before {
right: 0.625em;
left: auto;
}
& > li {
padding-right: 1em;
padding-left: 1em;
& > a {
padding-left: 0;
}
}
.modules-menu-level-2 {
right: 100%;
left: auto;
}
}
}
& > a {
padding: 0.5rem;
color: $theme-color-main;
}
&:hover {
.modules-menu-level-1 {
display: block;
}
}
}
}
}
.modules-menu-level-1 {
display: none;
min-width: 100%;
margin: 0;
padding: 0;
background-color: #000000cc;
list-style: none;
z-index: 1;
border: 1px solid #ffffff33;
& > li {
position: relative;
& + li {
border-top: 1px solid #ffffff33;
}
& > a {
display: block;
padding: 1em 1.5em;
font-family: $main-font;
font-size: 0.938em;
color: #fff;
}
&:hover {
& > a {
text-shadow: 0 0 6px #fccc00;
color: #fccc00;
-webkit-transition: .4s;
-moz-transition: .4s;
transition: .4s;
}
}
}
@media (min-width: $screen-sm) {
position: absolute;
& > li {
padding-right: 2em;
& > a {
padding-left: 1em;
}
&:hover {
.modules-menu-level-2 {
display: block;
}
}
}
}
}
.modules-menu-level-2 {
display: none;
margin: 0;
padding: 0;
background-color: $theme-gray;
list-style: none;
& > li {
& + li {
border-top: 0.0625em solid lighten($theme-gray, 5%);
}
& > a {
display: block;
padding: 0.9em 3em;
font-family: $main-font;
color: #fff;
}
&:hover {
a{
text-shadow: 0 0 6px #fccc00;
color: #fccc00;
-webkit-transition: .4s;
-moz-transition: .4s;
transition: .4s;
}
}
}
@media (min-width: $screen-sm) {
position: absolute;
top: 0;
left: 100%;
& > li > a {
padding-left: 1em;
}
}
}
}
.has-mobile-dropdown {
.modules-menu {
.dropdown-toggle-icon {
display: block;
}
}
}
@media (max-width: 767px) {
.modules-menu .modules-menu-level-0 {
flex-direction: column;
}
}
//mobile
.mobile-menu {
z-index: 1051;
width: 100vw;
position: fixed;
top: 0;
right: 0;
bottom: 0;
display: none;
&.active {
display: block;
}
.modules-menu {
width: 80%;
position: absolute;
right: 0;
background: #000000e6;
height: 100%;
top: 0;
padding-top: 40px;
}
.modules-menu .modules-menu-level-0 > li > a, .modules-menu .modules-menu-level-0 .menu-drop,.modules-menu .modules-menu-level-0 > li { color: #fff; }
.navbar-toggle {
position: absolute;
left: 0;
background:#ffffff80;
top: 40px;
z-index: 1;
height: 100vh;
margin: 0;
width: 20%;
border: 0;
}
.cover {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
background-color: rgba(0,0,0,0.8);
z-index: 0;
}
}
//覆蓋bootstrap nav設定
.mobile-menu .modules-menu.collapsing {
overflow:unset !important;
transform: translateX(100%);
-webkit-transition-timing-function:ease;
-o-transition-timing-function:ease;
transition-timing-function:ease;
-webkit-transition-duration:.35s;
-o-transition-duration:.35s;
transition-duration:.35s;
-webkit-transition-property:transform;
-o-transition-property:transform;
transition-property:transform;
}
.mobile-menu .modules-menu.collapse.in {
transform: translateX(100%);
-webkit-transition-timing-function:ease;
-o-transition-timing-function:ease;
transition-timing-function:ease;
-webkit-transition-duration:.35s;
-o-transition-duration:.35s;
transition-duration:.35s;
-webkit-transition-property:transform;
-o-transition-property:transform;
transition-property:transform;
}
.mobile-menu .collapse.navbar-collapse.modules-menu {
overflow-y: scroll;
transform: translateX(0%);
}