summaryrefslogtreecommitdiff
path: root/docs/src
diff options
context:
space:
mode:
authorGravatar Nate Moore <natemoo-re@users.noreply.github.com> 2021-07-19 19:36:09 -0500
committerGravatar GitHub <noreply@github.com> 2021-07-19 19:36:09 -0500
commit325e8cba2d63eae909a8f6ca1f92722ed2f514db (patch)
treeaf7fcf9452364ec0dea03de66d9b9618b5d3c0bd /docs/src
parent7f57651686fb63e2158aa512a0b00dc262ee7425 (diff)
downloadastro-325e8cba2d63eae909a8f6ca1f92722ed2f514db.tar.gz
astro-325e8cba2d63eae909a8f6ca1f92722ed2f514db.tar.zst
astro-325e8cba2d63eae909a8f6ca1f92722ed2f514db.zip
Improve docs theme (#717)
* Revert "Revert "New getting started guide (#715)"" This reverts commit dc4ba25b01254ed1c2088c081e8c861172ae58a4. * style: update docs theme * style: implement feedback * feat: remove FOUC * Update docs/src/pages/404.astro Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz> * Fix 404 title prop * chore: implement feedback * fix: ul, ol styles * fix: center logo on mobile * fix: improve navbar header contrast * fix: improve logo overlap * fix: `.nav-link` radius * fix: small mobile tweaks * feat: improve nav styles * feat: improve embed styles * fix: feedback items * fix: make header sticky on mobile Co-authored-by: Caleb Jasik <calebjasik@jasik.xyz>
Diffstat (limited to 'docs/src')
-rw-r--r--docs/src/components/SiteSidebar.astro46
-rw-r--r--docs/src/layouts/Main.astro164
-rw-r--r--docs/src/pages/404.astro242
-rw-r--r--docs/src/pages/index.astro254
4 files changed, 161 insertions, 545 deletions
diff --git a/docs/src/components/SiteSidebar.astro b/docs/src/components/SiteSidebar.astro
index 6d003d71d..7edfda514 100644
--- a/docs/src/components/SiteSidebar.astro
+++ b/docs/src/components/SiteSidebar.astro
@@ -23,25 +23,34 @@ const {currentPage} = Astro.props;
<style>
nav {
- position: sticky;
- min-height: calc(100vh - 3.5rem);
- height: calc(100vh - 3.5rem);
- top: 3.5rem;
+ width: 100%;
+ margin-right: 1rem;
}
.nav-groups {
height: 100%;
padding: 2rem 0;
- overflow: auto;
+ overflow-x: visible;
+ overflow-y: auto;
+ max-height: 100vh;
}
.nav-groups > li + li {
margin-top: 2rem;
}
+ .nav-groups > :first-child {
+ padding-top: 2rem;
+ }
+
+ .nav-groups > :last-child {
+ padding-bottom: 2rem;
+ margin-bottom: var(--theme-navbar-height);
+ }
+
.nav-group-title {
font-size: 1.0rem;
font-weight: 700;
- padding: 0.1rem 2rem;
+ padding: 0.1rem 1rem;
text-transform: uppercase;
margin-bottom: 0.5rem;
}
@@ -49,7 +58,7 @@ const {currentPage} = Astro.props;
.nav-link a {
font-size: 1.0rem;
margin: 1px;
- padding: 0.3rem 2rem;
+ padding: 0.3rem 1rem;
font: inherit;
color: inherit;
text-decoration: none;
@@ -66,4 +75,25 @@ const {currentPage} = Astro.props;
font-weight: 600;
}
-</style> \ No newline at end of file
+ :global(:root.theme-dark) .nav-link.is-active a {
+ color: var(--color-white);
+ }
+
+ @media (min-width: 60em) {
+ .nav-link a {
+ border-radius: 999px;
+ border-top-left-radius: 0;
+ border-bottom-left-radius: 0;
+ }
+ .nav-groups {
+ padding: 0;
+ }
+ }
+
+ @media (min-width: 86.25em) {
+ .nav-link a {
+ border-radius: 8px;
+ }
+ }
+
+</style>
diff --git a/docs/src/layouts/Main.astro b/docs/src/layouts/Main.astro
index 52cfa741d..f2a73e07e 100644
--- a/docs/src/layouts/Main.astro
+++ b/docs/src/layouts/Main.astro
@@ -5,46 +5,72 @@ import ThemeToggle from '../components/ThemeToggle.tsx';
import DocSidebar from '../components/DocSidebar.tsx';
import MenuToggle from '../components/MenuToggle.tsx';
-const { content } = Astro.props;
+const { content = {}, centered = false } = Astro.props;
const headers = content?.astro?.headers;
-const currentPage = Astro.request.url.pathname;
-const currentFile = currentPage === '/' ? 'src/pages/index.md' : `src/pages${currentPage.replace(/\/$/, "")}.md`;
-const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${currentFile}`;
+const currentPage = Astro.request?.url?.pathname;
+let currentFile;
+let githubEditUrl;
+if (currentPage) {
+ currentFile = currentPage === '/' ? 'src/pages/index.md' : `src/pages${currentPage.replace(/\/$/, "")}.md`;
+ githubEditUrl = `https://github.com/snowpackjs/astro/blob/main/docs/${currentFile}`;
+}
---
-<html lang="{content.lang ?? 'en-us'}">
+<html lang="{content.lang ?? 'en-us'}" class="initial">
<head>
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>{content.title}</title>
+
+ <!-- This is intentionally inlined to avoid FOUC -->
+ <script>
+ (() => {
+ const root = document.documentElement;
+ const theme = localStorage.getItem('theme');
+ if (
+ theme === 'dark' ||
+ (!theme) && window.matchMedia('(prefers-color-scheme: dark)').matches)
+ {
+ root.classList.add('theme-dark');
+ } else {
+ root.classList.remove('theme-dark');
+ }
+ })();
+ </script>
<link rel="stylesheet" href="/theme.css" />
<link rel="stylesheet" href="/code.css" />
<link rel="stylesheet" href="/index.css" />
- <script src="/theme.js" />
+
<link rel="icon"
type="image/svg+xml"
href="/favicon.svg">
+ <link rel="preconnect" href="https://fonts.googleapis.com">
+ <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
+ <link href="https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:ital@0;1&display=swap" rel="stylesheet">
+
<style>
body {
width: 100%;
display: grid;
- grid-template-rows: 3.5rem 1fr;
+ grid-template-rows: var(--theme-navbar-height) 1fr;
--gutter: 0.5rem;
--doc-padding: 2rem;
}
header {
- position: sticky;
- top: 0;
z-index: 10;
- height: 56px;
+ height: var(--theme-navbar-height);
width: 100%;
- background-color: var(--theme-bg-offset);
+ background-color: var(--theme-navbar-bg);
display: flex;
align-items: center;
justify-content: center;
+ z-index: 1001;
+ overflow: hidden;
+ position: sticky;
+ top: 0;
}
.layout {
@@ -54,34 +80,16 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
minmax(var(--gutter), 1fr)
minmax(0, var(--max-width))
minmax(var(--gutter), 1fr);
- gap: 1em;
+ overflow-x: hidden;
}
- .menu-and-logo {
- gap: 1em;
- }
-
- #site-title {
+ .logo {
display: flex;
align-items: center;
- gap: 0.25em;
- font-size: 1.5rem;
- font-weight: 700;
- margin: 0;
- line-height: 1;
- color: var(--theme-text);
- text-decoration: none;
- }
-
- #site-title:hover,
- #site-title:focus {
- color: var(--theme-text-light);
- }
-
- #site-title h1 {
- font: inherit;
- color: inherit;
- margin: 0;
+ justify-content: center;
+ gap: 1em;
+ z-index: -1;
+ margin: 0 auto;
}
.nav-wrapper {
@@ -99,11 +107,9 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
}
.sidebar {
- min-height: calc(100vh - 3.5rem);
- height: calc(100vh - 3.5rem);
- max-height: 100vh;
+ height: 100vh;
position: sticky;
- top: 3.5rem;
+ top: 0;
padding: 0;
}
@@ -121,7 +127,27 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
height: 100%;
}
+ .layout.centered #article main {
+ display: flex;
+ flex-direction: column;
+ margin: auto;
+ align-items: center;
+ justify-content: center;
+ font-size: 1.5rem;
+ gap: 0.5em;
+ text-align: center;
+ }
+
+ .layout.centered #article main :global(> *) {
+ margin: 0;
+ }
+
+ .layout.centered #article main h1 {
+ font-size: 5rem;
+ }
+
.content {
+ padding: 0;
max-width: 75ch;
width: 100%;
height: 100%;
@@ -147,8 +173,20 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
}
:global(.mobile-sidebar-toggle) #sidebar-site {
display: block;
+ top: 0;
}
@media (min-width: 60em) {
+ header {
+ position: static;
+ }
+ .layout {
+ overflow: initial;
+ }
+ .logo {
+ width: auto;
+ margin: 0;
+ z-index: 0;
+ }
#sidebar-site {
display: flex;
}
@@ -165,6 +203,7 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
grid-template-columns:
20rem
minmax(0, var(--max-width));
+ gap: 1em;
}
#article {
grid-column: 2;
@@ -202,6 +241,9 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
display: flex;
grid-column: 3;
}
+ .nav-wrapper {
+ padding: 0;
+ }
}
</style>
@@ -210,16 +252,32 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
<body>
<header>
<nav class="nav-wrapper">
- <div class="menu-and-logo flex">
- <div class="menu-toggle">
- <MenuToggle client:idle/>
- </div>
- <a id="site-title" href="/">
- <h1>Astro Documentation</h1>
- </a>
+ <div class="menu-toggle">
+ <MenuToggle client:idle/>
</div>
- <div />
+ <div class="logo flex">
+ <a href="https://astro.build/">
+ <h1 class="sr-only">Astro</h1>
+ <svg xmlns="http://www.w3.org/2000/svg" width="363" height="102" viewBox="0 0 363 102" fill="none">
+ <path fill="url(#paint0_linear)" fill-rule="evenodd" d="M55.07 14.216l16.81 54.865a72.6 72.6 0 00-20.765-6.984L39.808 24.135a1.475 1.475 0 00-2.827.005L25.81 62.078a72.598 72.598 0 00-20.859 6.995L21.847 14.2c.998-3.243 1.497-4.865 2.47-6.066a8 8 0 013.239-2.392c1.434-.576 3.13-.576 6.524-.576h8.751c3.398 0 5.097 0 6.532.577a8 8 0 013.241 2.397c.972 1.203 1.47 2.827 2.465 6.076z" clip-rule="evenodd"/>
+ <path fill="#FF5D01" fill-rule="evenodd" d="M54.618 71.779c-2.863 2.432-8.578 4.091-15.161 4.091-8.08 0-14.852-2.499-16.649-5.86-.642 1.926-.786 4.13-.786 5.539 0 0-.423 6.915 4.418 11.725 0-2.498 2.037-4.522 4.551-4.522 4.309 0 4.304 3.734 4.3 6.764v.27c0 4.6 2.829 8.541 6.852 10.203a9.22 9.22 0 01-.938-4.064c0-4.386 2.592-6.02 5.604-7.917 2.396-1.51 5.06-3.188 6.894-6.554a12.297 12.297 0 001.502-5.905c0-1.314-.206-2.581-.587-3.77z" clip-rule="evenodd"/>
+ <path fill="#fff" d="M126.554 69c13.115 0 21.047-3.14 25.68-9.654 0 2.904.157 5.651.55 8.163h7.774c-.706-4.082-.863-6.75-.863-14.128V43.334c0-10.831-8.403-16.56-24.424-16.56-15.47 0-25.522 5.964-26.779 14.598h8.246c1.256-5.808 7.774-8.87 18.533-8.87 10.602 0 16.885 3.69 16.885 9.969v.785l-24.502 1.413c-9.974.549-13.665 1.962-16.492 4.003-2.67 1.962-4.162 5.023-4.162 8.555C107 64.683 114.696 69 126.554 69zm2.513-5.573c-9.109 0-14.135-2.119-14.135-6.357 0-4.553 3.141-6.593 14.214-7.3l23.01-1.412v1.805c0 8.241-9.66 13.264-23.089 13.264zM196.086 69c16.256 0 22.775-5.337 22.775-13.108 0-6.436-4.006-9.732-14.215-10.596l-19.083-1.49c-5.183-.393-8.088-1.884-8.088-5.102 0-4.082 4.476-6.201 14.135-6.201 10.995 0 16.727 2.198 20.497 7.064l6.361-3.061c-3.927-6.122-12.644-9.733-26.151-9.733-13.9 0-22.224 4.631-22.224 12.244 0 6.829 4.947 10.125 14.292 10.91l18.926 1.492c6.204.47 8.089 1.726 8.089 4.944 0 4.631-4.79 6.829-14.293 6.829-11.544 0-18.847-3.14-22.381-8.87l-6.204 3.376C173.312 64.918 181.715 69 196.086 69zM234.929 34.151v18.916c0 7.77 2.67 15.54 17.198 15.54 3.691 0 8.167-.706 10.131-1.57V60.68c-2.749.628-6.047 1.1-9.267 1.1-6.832 0-10.523-2.67-10.523-9.42V34.151h19.633v-5.887h-19.633V15l-7.539 3.061v10.204h-12.33v5.886h12.33zM280.823 28.265h-6.911v39.244h7.461V52.83c0-5.65 1.099-10.439 4.24-13.735 2.749-3.061 6.283-4.788 12.487-4.788 2.12 0 3.455.157 5.262.471v-7.22c-1.65-.393-3.063-.472-5.184-.472-8.402 0-15.078 4.945-17.355 12.558v-11.38zM334.807 69C351.534 69 363 60.523 363 47.887c0-12.637-11.466-21.114-28.193-21.114-16.727 0-28.193 8.477-28.193 21.114C306.614 60.523 318.08 69 334.807 69zm0-6.2c-12.329 0-20.261-5.809-20.261-14.913 0-9.105 7.932-14.913 20.261-14.913 12.251 0 20.261 5.808 20.261 14.913 0 9.104-8.01 14.912-20.261 14.912z"/>
+ <defs>
+ <linearGradient id="paint0_linear" x1="57.99" x2="38.65" y1="2.161" y2="69.149" gradientUnits="userSpaceOnUse">
+ <stop stop-color="#fff"/>
+ <stop offset="1" stop-color="#F9FAFB"/>
+ </linearGradient>
+ </defs>
+ </svg>
+ </a>
+ <a href="https://docs.astro.build/">
+ <h1 class="sr-only">Docs</h1>
+ <svg xmlns="http://www.w3.org/2000/svg" width="226" height="102" viewBox="0 0 226 102" fill="none">
+ <path fill="currentColor" d="M25.805 68c14.688 0 24.883-8.41 24.883-21.14 0-12.786-9.62-19.756-24.653-19.756H0V68h25.805zm-14.17-33.005H24.25c8.352 0 14.17 4.09 14.17 12.039 0 8.236-5.3 13.075-14.113 13.075H11.635V34.995zM82.673 69.382c16.704 0 27.418-8.582 27.418-21.83 0-13.248-10.771-21.83-27.418-21.83-16.589 0-27.418 8.582-27.418 21.83 0 13.19 10.83 21.83 27.418 21.83zm0-8.64c-9.1 0-15.149-5.299-15.149-13.19 0-7.891 6.048-13.19 15.15-13.19 9.1 0 15.205 5.299 15.205 13.19 0 7.891-6.105 13.19-15.206 13.19zM141.497 69.382c13.306 0 22.637-5.299 25.978-14.572l-11.866-2.535c-1.67 5.415-6.393 8.295-13.709 8.295-9.216 0-15.033-5.127-15.033-13.018 0-8.006 5.702-13.018 14.918-13.018 7.43 0 12.154 3.053 13.709 8.64l12.038-2.13c-2.707-9.562-12.268-15.322-25.574-15.322-16.128 0-27.302 9.043-27.302 22.003 0 13.133 10.425 21.657 26.841 21.657zM194.94 69.382c14.745 0 23.212-5.01 23.212-14.054 0-7.603-4.665-10.944-15.955-12.096l-11.289-1.094c-5.242-.576-6.97-1.556-6.97-4.09 0-2.765 3.456-4.262 9.792-4.262 7.834 0 13.709 2.476 16.762 6.508l7.315-6.163c-5.069-5.702-13.133-8.41-23.501-8.41-13.997 0-21.888 4.781-21.888 12.903 0 7.546 4.781 11.232 14.803 12.326l12.557 1.383c4.896.518 6.624 1.555 6.624 4.09 0 3.225-3.456 4.723-10.886 4.723-8.352 0-14.688-3.226-18.087-8.007l-8.294 5.818c4.205 6.451 13.709 10.425 25.805 10.425z"/>
+ </svg>
+ </a>
+ </div>
<div class="theme-toggle-wrapper">
<ThemeToggle client:idle />
@@ -227,24 +285,26 @@ const githubEditUrl = `https://github.com/snowpackjs/astro/edit/main/docs/${curr
</nav>
</header>
- <main class="layout">
+ <main class={centered ? "layout centered" : "layout"}>
<aside class="sidebar" id="sidebar-site">
- <SiteSidebar currentPage={currentPage.slice(1)} />
+ <SiteSidebar currentPage={currentPage?.slice(1) ?? ''} />
</aside>
<div id="article">
<article class="content">
<main>
- <h1 class="content-title" id="overview">{content.title}</h1>
+ <h1 class="content-title" id="overview">{content?.title}</h1>
<slot />
</main>
- <ArticleFooter path={currentFile} />
+ {currentPage && <ArticleFooter path={currentFile} />}
</article>
</div>
<aside class="sidebar" id="sidebar-content">
- <DocSidebar client:idle headers={headers} editHref={githubEditUrl} />
+ {currentPage && <DocSidebar client:idle headers={headers} editHref={githubEditUrl} />}
</aside>
</main>
+ <script type="module" src="/nav.js" />
+
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-TEL60V1WM9"></script>
<script>
diff --git a/docs/src/pages/404.astro b/docs/src/pages/404.astro
index bfe117e9a..195a29d4e 100644
--- a/docs/src/pages/404.astro
+++ b/docs/src/pages/404.astro
@@ -1,240 +1,8 @@
---
-import SiteSidebar from '../components/SiteSidebar.astro';
-import AstroLogo from '../components/AstroLogo.astro';
-import ThemeToggle from '../components/ThemeToggle.tsx';
-import MenuToggle from '../components/MenuToggle.tsx';
+import Layout from '../layouts/Main.astro';
---
-<html lang="en-us">
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Astro Documentation</title>
- <link rel="stylesheet" href="/theme.css" />
- <link rel="stylesheet" href="/code.css" />
- <link rel="stylesheet" href="/index.css" />
- <script src="/theme.js" />
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-
- <style>
- body {
- width: 100%;
- display: grid;
- grid-template-rows: 3.5rem 1fr;
- --gutter: 0.5rem;
- --doc-padding: 2rem;
- }
-
- header {
- position: sticky;
- top: 0;
- z-index: 10;
- height: 56px;
- width: 100%;
- background-color: var(--theme-bg-offset);
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .layout {
- display: grid;
- grid-auto-flow: column;
- grid-template-columns:
- minmax(var(--gutter), 1fr)
- minmax(0, var(--max-width))
- minmax(var(--gutter), 1fr);
- gap: 1em;
- }
-
- .menu-and-logo {
- gap: 1em;
- }
-
- #site-title {
- display: flex;
- align-items: center;
- gap: 0.25em;
- font-size: 1.5rem;
- font-weight: 700;
- margin: 0;
- line-height: 1;
- color: var(--theme-text);
- text-decoration: none;
- }
-
- #site-title:hover,
- #site-title:focus {
- color: var(--theme-text-light);
- }
-
- #site-title h1 {
- font: inherit;
- color: inherit;
- margin: 0;
- }
-
- .nav-wrapper {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- max-width: 82em;
- padding: 0 1rem;
- }
-
- .layout :global(> *) {
- width: 100%;
- height: 100%;
- }
-
- .sidebar {
- min-height: calc(100vh - 3.5rem);
- height: calc(100vh - 3.5rem);
- max-height: 100vh;
- position: sticky;
- top: 3.5rem;
- padding: 0;
- }
-
- #sidebar-site {
- position: fixed;
- background-color: var(--theme-bg);
- z-index: 1000;
- }
-
-
- #article {
- padding: var(--doc-padding) var(--gutter);
- grid-column: 2;
- display: flex;
- flex-direction: column;
- height: 100%;
- }
-
-
-@font-face {
- font-family: 'Roboto Mono';
- font-style: normal;
- font-weight: 600;
- font-display: swap;
- src: url(data:font/woff;base64,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) format('woff');
-}
-
- .content {
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- }
-
- .content > main {
- margin-bottom: 4rem;
- }
-
- #sidebar-content {
- display: none;
- }
- .theme-toggle-wrapper {
- display: none;
- }
-
- #sidebar-site {
- display: none;
- }
- :global(.mobile-sidebar-toggle) {
- overflow: hidden;
- }
- :global(.mobile-sidebar-toggle) #sidebar-site {
- display: block;
- }
- @media (min-width: 60em) {
- #sidebar-site {
- display: flex;
- }
- :global(.mobile-sidebar-toggle) {
- overflow: initial;
- }
- :global(.mobile-sidebar-toggle) #sidebar-site {
- display: flex;
- }
- .menu-toggle {
- display: none;
- }
- .layout {
- grid-template-columns:
- 20rem
- minmax(0, 1fr);
- }
- #article {
- grid-column: 2;
- }
- #sidebar-site {
- position: sticky;
- }
- #sidebar-nav {
- display: flex;
- }
- .theme-toggle-wrapper {
- display: flex;
- }
- }
-
- @media (min-width: 82em) {
- .layout {
- grid-template-columns:
- 20rem
- minmax(0, var(--max-width))
- 18rem;
- padding-left: 0;
- padding-right: 0;
- margin: 0 auto;
- }
-
- #sidebar-nav {
- grid-column: 1;
- }
- #article {
- grid-column: 2/4;
- }
- }
-
-
- </style>
- </head>
-
- <body class="mobile-sidebar-hidden">
- <header>
- <nav class="nav-wrapper">
- <div class="menu-and-logo flex">
- <div class="menu-toggle">
- <MenuToggle client:idle/>
- </div>
- <a id="site-title" href="/">
- <h1>Astro Documentation</h1>
- </a>
- </div>
-
- <div />
-
- <div class="theme-toggle-wrapper">
- <ThemeToggle client:idle />
- </div>
- </nav>
- </header>
-
- <main class="layout">
- <aside class="sidebar" id="sidebar-site">
- <SiteSidebar currentPage="" />
- </aside>
- <div id="article">
- <article class="content">
- <h1>404</h1>
- <p>This page isn't in our solar system.</p>
- <a href="/">Take me home.</a>
- </article>
- </div>
- </main>
- </body>
-</html>
+<Layout content={{title: "404"}} centered>
+ <p>This page isn't in our solar system.</p>
+ <a href="/">Take me home.</a>
+</Layout>
diff --git a/docs/src/pages/index.astro b/docs/src/pages/index.astro
index e5b06cc10..7b16ea1a0 100644
--- a/docs/src/pages/index.astro
+++ b/docs/src/pages/index.astro
@@ -1,251 +1,9 @@
---
-import SiteSidebar from '../components/SiteSidebar.astro';
-import AstroLogo from '../components/AstroLogo.astro';
-import ThemeToggle from '../components/ThemeToggle.tsx';
-import MenuToggle from '../components/MenuToggle.tsx';
+import Layout from '../layouts/Main.astro';
---
-<html lang="en-us">
- <head>
- <meta name="viewport" content="width=device-width, initial-scale=1.0">
- <title>Astro Documentation</title>
- <link rel="stylesheet" href="/theme.css" />
- <link rel="stylesheet" href="/code.css" />
- <link rel="stylesheet" href="/index.css" />
- <script src="/theme.js" />
- <link rel="icon" type="image/svg+xml" href="/favicon.svg">
-
- <style>
- body {
- width: 100%;
- display: grid;
- grid-template-rows: 3.5rem 1fr;
- --gutter: 0.5rem;
- --doc-padding: 2rem;
- }
-
- header {
- position: sticky;
- top: 0;
- z-index: 10;
- height: 56px;
- width: 100%;
- background-color: var(--theme-bg-offset);
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .layout {
- display: grid;
- grid-auto-flow: column;
- grid-template-columns:
- minmax(var(--gutter), 1fr)
- minmax(0, var(--max-width))
- minmax(var(--gutter), 1fr);
- gap: 1em;
- }
-
- .menu-and-logo {
- gap: 1em;
- }
-
- #site-title {
- display: flex;
- align-items: center;
- gap: 0.25em;
- font-size: 1.5rem;
- font-weight: 700;
- margin: 0;
- line-height: 1;
- color: var(--theme-text);
- text-decoration: none;
- }
-
- #site-title:hover,
- #site-title:focus {
- color: var(--theme-text-light);
- }
-
- #site-title h1 {
- font: inherit;
- color: inherit;
- margin: 0;
- }
-
- .nav-wrapper {
- display: flex;
- align-items: center;
- justify-content: space-between;
- width: 100%;
- max-width: 82em;
- padding: 0 1rem;
- }
-
- .layout :global(> *) {
- width: 100%;
- height: 100%;
- }
-
- .sidebar {
- min-height: calc(100vh - 3.5rem);
- height: calc(100vh - 3.5rem);
- max-height: 100vh;
- position: sticky;
- top: 3.5rem;
- padding: 0;
- }
-
- #sidebar-site {
- position: fixed;
- background-color: var(--theme-bg);
- z-index: 1000;
- }
-
-
- #article {
- padding: var(--doc-padding) var(--gutter);
- grid-column: 2;
- display: flex;
- flex-direction: column;
- height: 100%;
- }
-
-
-@font-face {
- font-family: 'Roboto Mono';
- font-style: normal;
- font-weight: 600;
- font-display: swap;
- src: url(data:font/woff;base64,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) format('woff');
-}
-
-.npm-init-snippet {
- font-family: 'Roboto Mono', monospace;
- font-size: 1.6rem;
- background-color: var(--theme-code-inline-bg);
- color: var(--theme-text);
- border-radius: 6px;
- padding: 4px 14px;
- margin-top: 1rem;
-}
-
- .content {
- width: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- }
-
- .content > main {
- margin-bottom: 4rem;
- }
-
- #sidebar-content {
- display: none;
- }
- .theme-toggle-wrapper {
- display: none;
- }
-
- #sidebar-site {
- display: none;
- }
- :global(.mobile-sidebar-toggle) {
- overflow: hidden;
- }
- :global(.mobile-sidebar-toggle) #sidebar-site {
- display: block;
- }
- @media (min-width: 60em) {
- #sidebar-site {
- display: flex;
- }
- :global(.mobile-sidebar-toggle) {
- overflow: initial;
- }
- :global(.mobile-sidebar-toggle) #sidebar-site {
- display: flex;
- }
- .menu-toggle {
- display: none;
- }
- .layout {
- grid-template-columns:
- 20rem
- minmax(0, 1fr);
- }
- #article {
- grid-column: 2;
- }
- #sidebar-site {
- position: sticky;
- }
- #sidebar-nav {
- display: flex;
- }
- .theme-toggle-wrapper {
- display: flex;
- }
- }
-
- @media (min-width: 82em) {
- .layout {
- grid-template-columns:
- 20rem
- minmax(0, var(--max-width))
- 18rem;
- padding-left: 0;
- padding-right: 0;
- margin: 0 auto;
- }
-
- #sidebar-nav {
- grid-column: 1;
- }
- #article {
- grid-column: 2/4;
- }
- }
-
-
- </style>
- </head>
-
- <body class="mobile-sidebar-hidden">
- <header>
- <nav class="nav-wrapper">
- <div class="menu-and-logo flex">
- <div class="menu-toggle">
- <MenuToggle client:idle/>
- </div>
- <a id="site-title" href="/">
- <h1>Astro Documentation</h1>
- </a>
- </div>
-
- <div />
-
- <div class="theme-toggle-wrapper">
- <ThemeToggle client:idle />
- </div>
- </nav>
- </header>
-
- <main class="layout">
- <aside class="sidebar" id="sidebar-site">
- <SiteSidebar currentPage="" />
- </aside>
- <div id="article">
- <article class="content">
- <AstroLogo size={160} />
- <div class="npm-init-snippet">
- npm init astro
- </div>
- </article>
- </div>
- </main>
- </body>
-</html>
+<Layout centered>
+ <h1>
+ <code style="white-space: nowrap;">npm init astro</code>
+ </h1>
+</Layout>