diff --git a/docs/package.json b/docs/package.json index c239a4fa..418345e7 100644 --- a/docs/package.json +++ b/docs/package.json @@ -16,6 +16,7 @@ "globby": "^11.0.0", "gridsome": "0.7.21", "gridsome-plugin-simple-analytics": "^1.1.0", + "portal-vue": "^2.1.7", "raw-loader": "^4.0.0", "react": "^16.13.1", "react-dom": "^16.13.1", diff --git a/docs/src/components/PageNavigation/style.scss b/docs/src/components/PageNavigation/style.scss index b299ea63..e673928f 100644 --- a/docs/src/components/PageNavigation/style.scss +++ b/docs/src/components/PageNavigation/style.scss @@ -10,7 +10,7 @@ &:hover { color: $colorWhite; - background-color: rgba($colorWhite, 0.1); + background-color: rgba($colorWhite, 0.05); } } } diff --git a/docs/src/layouts/App/index.vue b/docs/src/layouts/App/index.vue index 50c97518..1c9bf00b 100644 --- a/docs/src/layouts/App/index.vue +++ b/docs/src/layouts/App/index.vue @@ -96,34 +96,30 @@ - +
-
+
+ + +
+
+
@@ -146,6 +142,31 @@
+ + + + @@ -159,13 +180,13 @@ query { diff --git a/docs/src/layouts/App/style.scss b/docs/src/layouts/App/style.scss index f121c46d..00d879d6 100644 --- a/docs/src/layouts/App/style.scss +++ b/docs/src/layouts/App/style.scss @@ -1,5 +1,5 @@ $navHeight: 4.5rem; -$menuBreakPoint: 750px; +$menuBreakPoint: 800px; .app { display: flex; @@ -30,8 +30,8 @@ $menuBreakPoint: 750px; &__search { display: block; width: 100%; - background-color: rgba($colorWhite, 0.08); - border: 1px solid rgba($colorWhite, 0.08); + background-color: transparent; + border: 1px solid rgba($colorWhite, 0.1); border-radius: 0.5rem; font: inherit; color: $colorWhite; @@ -39,16 +39,23 @@ $menuBreakPoint: 750px; } &__sidebar { - width: 20rem; - flex: 0 0 auto; - position: sticky; - top: 0; - align-self: flex-start; - padding: 2rem; - height: 100vh; - overflow: auto; - overscroll-behavior: contain; - border-right: 1px solid rgba($colorWhite, 0.1); + display: none; + + @media (min-width: $menuBreakPoint) { + display: block; + width: 20rem; + flex: 0 0 auto; + position: sticky; + top: 0; + align-self: flex-start; + padding: 2rem; + height: 100vh; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + overscroll-behavior: contain; + border-right: 1px solid rgba($colorWhite, 0.1); + } } &__content { @@ -57,11 +64,14 @@ $menuBreakPoint: 750px; } &__top-bar { + display: flex; + flex-direction: column; padding: 1rem 0; position: sticky; z-index: 2; top: 0; backdrop-filter: blur(10px); + max-height: 100vh; &::after { content: ''; @@ -78,6 +88,32 @@ $menuBreakPoint: 750px; } } + &__top-bar-inner { + width: 100%; + display: flex; + align-items: center; + flex: 0 0 auto; + } + + &__menu-icon, + &__close-icon { + display: flex; + flex: 0 0 auto; + background: transparent; + border: 0; + color: $colorText; + margin-left: 1rem; + transition: color 0.2s $ease; + + &:hover { + color: $colorWhite; + } + + @media (min-width: $menuBreakPoint) { + display: none; + } + } + &__inner { margin: 0 auto; max-width: 50rem; @@ -123,7 +159,7 @@ $menuBreakPoint: 750px; &.active { color: $colorWhite; - background-color: rgba($colorWhite, 0.08); + background-color: rgba($colorWhite, 0.05); } &--draft { @@ -143,4 +179,13 @@ $menuBreakPoint: 750px; &__page-navigation { border-top: 1px solid rgba($colorWhite, 0.1); } + + &__mobile-nav { + padding: 1rem 2rem; + flex: 1 1 auto; + overflow-x: hidden; + overflow-y: auto; + -webkit-overflow-scrolling: touch; + overscroll-behavior: contain; + } } diff --git a/docs/src/main.js b/docs/src/main.js index e069efd6..99476dbe 100644 --- a/docs/src/main.js +++ b/docs/src/main.js @@ -2,9 +2,11 @@ import Prism from 'prismjs' import 'prismjs/components/prism-jsx.js' import 'prismjs/components/prism-scss.js' +import PortalVue from 'portal-vue' import App from '~/layouts/App' export default function (Vue) { + Vue.use(PortalVue) Vue.component('Layout', App) Vue.component('Demo', () => import(/* webpackChunkName: "demo" */ '~/components/Demo')) Vue.component('LiveDemo', () => import(/* webpackChunkName: "live-demo" */ '~/components/LiveDemo')) diff --git a/yarn.lock b/yarn.lock index 838a456b..064a08b3 100644 --- a/yarn.lock +++ b/yarn.lock @@ -10756,6 +10756,11 @@ pngquant-bin@^5.0.0: execa "^0.10.0" logalot "^2.0.0" +portal-vue@^2.1.7: + version "2.1.7" + resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz#ea08069b25b640ca08a5b86f67c612f15f4e4ad4" + integrity sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g== + portfinder@^1.0.20: version "1.0.28" resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"