Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/CaiJimmy/hugo-theme-stack.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'assets/scss/partials/menu.scss')
-rw-r--r--assets/scss/partials/menu.scss214
1 files changed, 214 insertions, 0 deletions
diff --git a/assets/scss/partials/menu.scss b/assets/scss/partials/menu.scss
new file mode 100644
index 0000000..1d31831
--- /dev/null
+++ b/assets/scss/partials/menu.scss
@@ -0,0 +1,214 @@
+/*!
+ * Hamburgers
+ * @description Tasty CSS-animated hamburgers
+ * @author Jonathan Suh @jonsuh
+ * @site https://jonsuh.com/hamburgers
+ * @link https://github.com/jonsuh/hamburgers
+ */
+
+.hamburger {
+ padding-top: 10px;
+ display: inline-block;
+ cursor: pointer;
+ transition-property: opacity, filter;
+ transition-duration: 0.15s;
+ transition-timing-function: linear;
+ font: inherit;
+ color: inherit;
+ text-transform: none;
+ background-color: transparent;
+ border: 0;
+ margin: 0;
+ overflow: visible;
+}
+.hamburger:hover {
+ opacity: 0.7;
+}
+.hamburger.is-active:hover {
+ opacity: 0.7;
+}
+.hamburger.is-active .hamburger-inner,
+.hamburger.is-active .hamburger-inner::before,
+.hamburger.is-active .hamburger-inner::after {
+ background-color: #000;
+}
+
+.hamburger-box {
+ width: 30px;
+ height: 24px;
+ display: inline-block;
+ position: relative;
+}
+
+.hamburger-inner {
+ display: block;
+ top: 50%;
+ margin-top: -2px;
+}
+
+.hamburger-inner,
+.hamburger-inner::before,
+.hamburger-inner::after {
+ width: 30px;
+ height: 2px;
+ background-color: var(--card-text-color-main);
+ border-radius: 4px;
+ position: absolute;
+ transition-property: transform;
+ transition-duration: 0.15s;
+ transition-timing-function: ease;
+}
+.hamburger-inner::before,
+.hamburger-inner::after {
+ content: "";
+ display: block;
+}
+.hamburger-inner::before {
+ top: -10px;
+}
+.hamburger-inner::after {
+ bottom: -10px;
+}
+
+.hamburger--spin .hamburger-inner {
+ transition-duration: 0.22s;
+ transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);
+}
+.hamburger--spin .hamburger-inner::before {
+ transition: top 0.1s 0.25s ease-in, opacity 0.1s ease-in;
+}
+.hamburger--spin .hamburger-inner::after {
+ transition: bottom 0.1s 0.25s ease-in, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);
+}
+
+.hamburger--spin.is-active .hamburger-inner {
+ transform: rotate(225deg);
+ transition-delay: 0.12s;
+ transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);
+}
+.hamburger--spin.is-active .hamburger-inner::before {
+ top: 0;
+ opacity: 0;
+ transition: top 0.1s ease-out, opacity 0.1s 0.12s ease-out;
+}
+.hamburger--spin.is-active .hamburger-inner::after {
+ bottom: 0;
+ transform: rotate(-90deg);
+ transition: bottom 0.1s ease-out, transform 0.22s 0.12s cubic-bezier(0.215, 0.61, 0.355, 1);
+}
+
+#toggle-menu {
+ background: none;
+ border: none;
+ position: absolute;
+ right: 30px;
+ top: 30px;
+ z-index: 2;
+ cursor: pointer;
+
+ @media (min-width: $on-phone + 1) {
+ display: none;
+ }
+ outline: none;
+
+ &.is-active {
+ .hamburger-inner,
+ .hamburger-inner::before,
+ .hamburger-inner::after {
+ background-color: var(--accent-color);
+ }
+ }
+}
+
+/* Menu style */
+.menu {
+ list-style: none;
+ display: flex;
+ flex-direction: column;
+ margin: 30px 0;
+
+ @media (max-width: $on-phone) {
+ background-color: var(--card-background);
+ margin-top: 0;
+ padding: 15px 0;
+ @include box_shadow(1);
+ display: none;
+
+ &.show {
+ display: block;
+ }
+ }
+
+ @media (min-width: $on-phone + 1) {
+ align-items: flex-end;
+ }
+
+ li {
+ position: relative;
+ vertical-align: middle;
+ padding: 10px 0;
+
+ &:not(:last-of-type) {
+ margin-bottom: 20px;
+
+ @media (max-width: $on-desktop) {
+ margin-bottom: 10px;
+ }
+ }
+
+ @media (max-width: $on-phone) {
+ padding: 10px 30px;
+ }
+
+ @media (min-width: $on-phone + 1) and (max-width: ($on-desktop - 1)) {
+ padding: 10px 0;
+ }
+
+ @media (min-width: $on-phone + 1) {
+ width: 100%;
+ }
+
+ svg {
+ width: 32px;
+ height: 32px;
+ stroke-width: 1.33;
+
+ margin-right: 40px;
+
+ @media (max-width: $on-desktop) {
+ width: 30px;
+ height: 30px;
+ }
+ }
+
+ a {
+ height: 100%;
+ display: inline-flex;
+ align-items: center;
+ color: var(--body-text-color);
+
+ @media (max-width: $on-desktop) {
+ font-size: 1.5rem;
+ }
+ }
+
+ span {
+ flex: 1;
+ }
+
+ &.current {
+ a {
+ color: var(--accent-color);
+ font-weight: bold;
+ }
+ }
+ }
+}
+
+@media (max-width: $on-phone) {
+ .show-menu {
+ .site-info {
+ //@include box_shadow(2);
+ }
+ }
+}