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>