mirror of
https://gitea.com/gitea/docs.git
synced 2026-09-17 19:55:34 +00:00
Show product navigation in the mobile sidebar (#539)
Show product navigation in the mobile sidebar (gitea/docs#539)
This commit is contained in:
@@ -126,6 +126,7 @@ export default defineConfig({
|
|||||||
Header: './src/components/Header.astro',
|
Header: './src/components/Header.astro',
|
||||||
LanguageSelect: './src/components/LanguageSelect.astro',
|
LanguageSelect: './src/components/LanguageSelect.astro',
|
||||||
MarkdownContent: './src/components/MarkdownContent.astro',
|
MarkdownContent: './src/components/MarkdownContent.astro',
|
||||||
|
Sidebar: './src/components/Sidebar.astro',
|
||||||
SiteTitle: './src/components/SiteTitle.astro',
|
SiteTitle: './src/components/SiteTitle.astro',
|
||||||
PageFrame: './src/components/PageFrame.astro',
|
PageFrame: './src/components/PageFrame.astro',
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -0,0 +1,78 @@
|
|||||||
|
---
|
||||||
|
import { t } from '../config/strings';
|
||||||
|
import { productNav } from '../lib/versions';
|
||||||
|
|
||||||
|
interface Props {
|
||||||
|
variant: 'header' | 'sidebar';
|
||||||
|
}
|
||||||
|
|
||||||
|
const meta = Astro.locals.starlightRoute.entry.data.gitea;
|
||||||
|
const strings = t(meta?.locale ?? 'en-us');
|
||||||
|
const products = productNav(meta);
|
||||||
|
const { variant } = Astro.props;
|
||||||
|
---
|
||||||
|
|
||||||
|
<nav class:list={['gitea-product-nav', `gitea-product-nav-${variant}`]} aria-label="Products">
|
||||||
|
{
|
||||||
|
products.map((product) => (
|
||||||
|
<a href={product.href} aria-current={product.current ? 'page' : undefined}>
|
||||||
|
{strings.products[product.id] ?? product.label}
|
||||||
|
</a>
|
||||||
|
))
|
||||||
|
}
|
||||||
|
</nav>
|
||||||
|
|
||||||
|
<style>
|
||||||
|
.gitea-product-nav a {
|
||||||
|
color: var(--sl-color-gray-2);
|
||||||
|
text-decoration: none;
|
||||||
|
white-space: nowrap;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav a:hover {
|
||||||
|
color: var(--sl-color-white);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav-header {
|
||||||
|
display: none;
|
||||||
|
gap: 0.75rem;
|
||||||
|
font-size: var(--sl-text-sm);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav-header a[aria-current='page'] {
|
||||||
|
color: var(--sl-color-white);
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav-sidebar {
|
||||||
|
display: flex;
|
||||||
|
flex-direction: column;
|
||||||
|
gap: 0.5rem;
|
||||||
|
padding-bottom: 1rem;
|
||||||
|
border-bottom: 1px solid var(--sl-color-hairline-light);
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav-sidebar a {
|
||||||
|
display: block;
|
||||||
|
border-radius: 0.25rem;
|
||||||
|
padding: 0.3em 0.5rem;
|
||||||
|
font-size: var(--sl-text-sm);
|
||||||
|
line-height: 1.4;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav-sidebar a[aria-current='page'] {
|
||||||
|
color: var(--sl-color-text-invert);
|
||||||
|
background-color: var(--sl-color-text-accent);
|
||||||
|
font-weight: 600;
|
||||||
|
}
|
||||||
|
|
||||||
|
@media (min-width: 72rem) {
|
||||||
|
.gitea-product-nav-header {
|
||||||
|
display: flex;
|
||||||
|
}
|
||||||
|
|
||||||
|
.gitea-product-nav-sidebar {
|
||||||
|
display: none;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</style>
|
||||||
@@ -0,0 +1,13 @@
|
|||||||
|
---
|
||||||
|
import Default from '@astrojs/starlight/components/Sidebar.astro';
|
||||||
|
import ProductNav from './ProductNav.astro';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The product navigation is hidden from the header until the 72rem layout
|
||||||
|
* breakpoint, so it is rendered at the top of the sidebar for the layouts in
|
||||||
|
* between (and for the mobile menu below 50rem).
|
||||||
|
*/
|
||||||
|
---
|
||||||
|
|
||||||
|
<ProductNav variant="sidebar" />
|
||||||
|
<Default />
|
||||||
@@ -1,29 +1,17 @@
|
|||||||
---
|
---
|
||||||
import Default from '@astrojs/starlight/components/SiteTitle.astro';
|
import Default from '@astrojs/starlight/components/SiteTitle.astro';
|
||||||
import { t } from '../config/strings';
|
import ProductNav from './ProductNav.astro';
|
||||||
import { productNav } from '../lib/versions';
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The starlight header has no navigation links, the gitea site needs the four
|
* The starlight header has no navigation links, the gitea site needs the four
|
||||||
* products next to the logo. Rendered next to the site title so the rest of the
|
* products next to the logo. Rendered next to the site title so the rest of the
|
||||||
* header (search, theme, pickers) keeps working untouched.
|
* header (search, theme, pickers) keeps working untouched.
|
||||||
*/
|
*/
|
||||||
const meta = Astro.locals.starlightRoute.entry.data.gitea;
|
|
||||||
const strings = t(meta?.locale ?? 'en-us');
|
|
||||||
const products = productNav(meta);
|
|
||||||
---
|
---
|
||||||
|
|
||||||
<div class="gitea-site-title">
|
<div class="gitea-site-title">
|
||||||
<Default><slot /></Default>
|
<Default><slot /></Default>
|
||||||
<nav class="gitea-nav" aria-label="Products">
|
<ProductNav variant="header" />
|
||||||
{
|
|
||||||
products.map((product) => (
|
|
||||||
<a href={product.href} class:list={[{ current: product.current }]}>
|
|
||||||
{strings.products[product.id] ?? product.label}
|
|
||||||
</a>
|
|
||||||
))
|
|
||||||
}
|
|
||||||
</nav>
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<style>
|
<style>
|
||||||
@@ -33,26 +21,4 @@ const products = productNav(meta);
|
|||||||
gap: 1rem;
|
gap: 1rem;
|
||||||
overflow: hidden;
|
overflow: hidden;
|
||||||
}
|
}
|
||||||
.gitea-nav {
|
|
||||||
display: none;
|
|
||||||
gap: 0.75rem;
|
|
||||||
font-size: var(--sl-text-sm);
|
|
||||||
}
|
|
||||||
.gitea-nav a {
|
|
||||||
color: var(--sl-color-gray-2);
|
|
||||||
text-decoration: none;
|
|
||||||
white-space: nowrap;
|
|
||||||
}
|
|
||||||
.gitea-nav a:hover,
|
|
||||||
.gitea-nav a.current {
|
|
||||||
color: var(--sl-color-white);
|
|
||||||
}
|
|
||||||
.gitea-nav a.current {
|
|
||||||
font-weight: 600;
|
|
||||||
}
|
|
||||||
@media (min-width: 72rem) {
|
|
||||||
.gitea-nav {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
|
|||||||
Reference in New Issue
Block a user