master
1---
2import { siteConfig } from '@/config';
3import GlobalLayout from './GlobalLayout.astro';
4
5interface Props {
6 title?: string;
7 description?: string;
8 lang?: string;
9 banner?: {
10 src: string;
11 basePath?: string;
12 };
13}
14const { title, description, lang, banner } = Astro.props;
15---
16
17<GlobalLayout title={title} description={description} lang={lang} banner={banner}>
18 <slot slot="head" name="head" />
19 <slot slot="header" name="header" />
20 <!-- Main content -->
21 <main class="relative mx-auto flex max-w-(--breakpoint-xl) flex-col gap-4">
22 <div
23 id="header-content"
24 class:list={[
25 siteConfig.banner !== false && 'swup-transition-slide absolute top-0 -translate-y-full',
26 ]}
27 >
28 <slot name="header-content" />
29 </div>
30 <div class="flex gap-4">
31 <div id="main-content" class="my-4 w-full xl:max-w-[calc(100%-17rem)]">
32 <slot />
33 </div>
34 <aside id="aside-content" class="my-4 flex w-64 min-w-64 flex-col gap-4 max-xl:hidden">
35 <slot name="aside-fixed" />
36 <div class="sticky top-20 flex flex-col gap-4">
37 <slot name="aside-sticky" />
38 </div>
39 </aside>
40 </div>
41 </main>
42</GlobalLayout>