diff --git a/src/components/Header.astro b/src/components/Header.astro index 2f6b06c..f261fb7 100644 --- a/src/components/Header.astro +++ b/src/components/Header.astro @@ -16,6 +16,10 @@ const isActive = (href: string)=>{ return href === pathname || href === pathname.split('/').slice(0,2).join('/'); } +function handleMenu(e) { + console.log(e); +} + ---
@@ -34,8 +38,25 @@ const isActive = (href: string)=>{
- - + + + + + +
-
\ No newline at end of file + + + \ No newline at end of file diff --git a/src/components/TableOfContents.astro b/src/components/TableOfContents.astro index d634610..d4b7991 100644 --- a/src/components/TableOfContents.astro +++ b/src/components/TableOfContents.astro @@ -3,12 +3,10 @@ import TableOfContentsHeading from "./TableOfContentsHeading.astro"; import TocItem from '../utils/generateToc.ts'; const { headings, edit } = Astro.props; -import { REPOSITORY, edit_page } from "../config"; +import { REPOSITORY } from "../config"; const toc = headings && headings.length ? TocItem(headings) : []; -console.log(edit); - ---
@@ -23,19 +21,12 @@ console.log(edit);
\ No newline at end of file diff --git a/src/layouts/Collections.astro b/src/layouts/Collections.astro index d9f518a..7eefd78 100644 --- a/src/layouts/Collections.astro +++ b/src/layouts/Collections.astro @@ -35,6 +35,11 @@ const isActive = (href: string)=>{
- +

{frontmatter.title}

{!noedit && ( -
+
{EDIT_PAGE} )}
@@ -68,24 +75,29 @@ const isActive = (href: string)=>{ diff --git a/src/layouts/Markdown.astro b/src/layouts/Markdown.astro index 82abbf7..beface2 100644 --- a/src/layouts/Markdown.astro +++ b/src/layouts/Markdown.astro @@ -17,13 +17,15 @@ const description = await markdown.parse(frontmatter.description);
+
- {headings && ( - - )}

{frontmatter.title}

@@ -50,32 +52,75 @@ const description = await markdown.parse(frontmatter.description); margin: 1rem; } - .wrapper .main aside { - display: flex; - align-items: center; - order: 2; - /* max-width: 25%; */ - margin: 0 auto; - } - .wrapper .markdown-body { /* margin: 10px 20px; */ /* max-width: 75%; */ max-width: 100%; } - .wrapper .toc { - display: flex; - flex-direction: column; + .wrapper #toc { + position: fixed; + width: calc(var(--sidebar-width) - 2rem); + height: fit-content; + max-height: calc(100vh - var(--nav-height)*2 - 2rem * 2); + inset-block: 0; + inset-inline-end: 2rem; + margin: calc(2rem + var(--nav-height)) 0; + background-color: var(--secondary-background); + transition: 0.3s; + z-index: 10; + overflow-y: auto; + border-radius: 1em; + background-color: var(--secondary-background); + } + + @media only screen and (max-width: 1000px) { + .wrapper .sidebar { + position: fixed; + width: var(--sidebar-width); + height: 100%; + max-height: calc(100% - var(--nav-height)); + overflow-y: auto; + inset-block: 0; + inset-inline-start: 0; + margin-top: var(--nav-height); + padding-bottom: var(--nav-height); + /* padding: 20px; */ + // padding: var(--nav-height) 0; + background-color: var(--secondary-background); + transition: 0.3s; + z-index: 10; + } + + .wrapper #toc { + position: relative; + width: var(--sidebar-width); + max-height: unset; + inset-block: unset; + inset-inline-end: unset; + margin-top: 0; + z-index: 1; + background-color: transparent; + } + + .wrapper .main { + width: 100%; + padding-inline-start: var(--sidebar-width); + } } @media only screen and (max-width: 750px) { .wrapper .sidebar { - transform: translateX(-80%); + transform: translateX(-100%); + } + + .wrapper .sidebar.active { + transform: translateX(0); } .wrapper .main { - padding-inline-start: calc(400px * 0.2); + width: 100%; + padding-inline-start: 0; } } diff --git a/src/styles/Header.css b/src/styles/Header.css index b57875a..956b169 100644 --- a/src/styles/Header.css +++ b/src/styles/Header.css @@ -41,17 +41,74 @@ header ul li:hover a { list-style: none; } -header .right .menu { +header .right #menu { display: none; + cursor: pointer; } -@media only screen and (max-width: 600px) { +#menu { + flex-direction: column; + /* justify-content: space-between; */ + justify-content: center; + width: 2rem; + height: 1.5rem; + position: relative; + /* margin: 50px auto; */ + -webkit-transition: .5s ease-in-out; + -moz-transition: .5s ease-in-out; + -o-transition: .5s ease-in-out; + transition: .5s ease-in-out; + cursor: pointer; + /* border:1px solid red; */ +} + +#menu span { + display: block; + position: absolute; + height: 3px; + width: 100%; + background: var(--header-text); + border-radius: 9px; + opacity: 1; + left: 0; + transform: rotate(0deg); + transition: .2s ease-in-out; + /* border:4px solid black; */ +} + +#menu span:nth-child(1) { + top: 0; +} + +#menu span:nth-child(3) { + bottom: 0; +} + +#menu.open span:nth-child(1) { + top: 50%; + transform: translateY(-50%); + transform: rotate(45deg); +} + +#menu.open span:nth-child(2) { + width: 0; + left: 50%; + transform: translateX(-50%); +} + +#menu.open span:nth-child(3) { + top: 50%; + transform: translateY(-50%); + transform: rotate(-45deg); +} + +@media only screen and (max-width: 750px) { header .left ul, header .right .search { display: none; } - header .right .menu { - display: block; - width: 25px; + header .right #menu { + display: flex; + /* width: 25px; */ } } \ No newline at end of file diff --git a/src/styles/global.scss b/src/styles/global.scss index 04a6385..3333ec2 100644 --- a/src/styles/global.scss +++ b/src/styles/global.scss @@ -30,6 +30,12 @@ } } +@media only screen and (max-width: 750px) { + :root { + --sidebar-width: 80vw; + } +} + * { margin: 0; box-sizing: border-box;