1{{ define "layouts/base" }}
2 <!doctype html>
3 <html lang="en" class="dark:bg-gray-900">
4 <head>
5 <meta charset="UTF-8" />
6 <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
7 <meta name="description" content="Social coding, but for real this time!"/>
8 <meta name="htmx-config" content='{"includeIndicatorStyles": false}'>
9
10 <script defer src="/static/htmx.min.js"></script>
11 <script defer src="/static/htmx-ext-ws.min.js"></script>
12 <script defer src="/static/actor-typeahead.js" type="module"></script>
13
14 <!-- preconnect to image cdn -->
15 <link rel="preconnect" href="https://avatar.tangled.sh" />
16 <link rel="preconnect" href="https://camo.tangled.sh" />
17
18 <!-- pwa manifest -->
19 <link rel="manifest" href="/pwa-manifest.json" />
20
21 <!-- preload main font -->
22 <link rel="preload" href="/static/fonts/InterVariable.woff2" as="font" type="font/woff2" crossorigin />
23
24 <link rel="stylesheet" href="/static/tw.css?{{ cssContentHash }}" type="text/css" />
25 <title>{{ block "title" . }}{{ end }} · tangled</title>
26 {{ block "extrameta" . }}{{ end }}
27 </head>
28 <body class="min-h-screen flex flex-col gap-4 bg-slate-100 dark:bg-gray-900 dark:text-white transition-colors duration-200">
29 {{ block "topbarLayout" . }}
30 <header class="w-full col-span-full md:col-span-1 md:col-start-2" style="z-index: 20;">
31
32 {{ if .LoggedInUser }}
33 <div id="upgrade-banner"
34 hx-get="/upgradeBanner"
35 hx-trigger="load"
36 hx-swap="innerHTML">
37 </div>
38 {{ end }}
39 {{ template "layouts/fragments/topbar" . }}
40 </header>
41 {{ end }}
42
43 {{ block "mainLayout" . }}
44 <div class="flex-grow">
45 <div class="max-w-screen-lg mx-auto flex flex-col gap-4">
46 {{ block "contentLayout" . }}
47 <main>
48 {{ block "content" . }}{{ end }}
49 </main>
50 {{ end }}
51
52 {{ block "contentAfterLayout" . }}
53 <main>
54 {{ block "contentAfter" . }}{{ end }}
55 </main>
56 {{ end }}
57 </div>
58 </div>
59 {{ end }}
60
61 {{ block "footerLayout" . }}
62 <footer class="mt-12">
63 {{ template "layouts/fragments/footer" . }}
64 </footer>
65 {{ end }}
66 </body>
67 </html>
68{{ end }}