this repo has no description
1{{ define "layouts/fragments/footer" }}
2<div class="w-full p-8 bg-white dark:bg-gray-800">
3 <div class="mx-auto px-4">
4 <div class="flex flex-col text-gray-600 dark:text-gray-400 gap-8">
5 <!-- Desktop layout: grid with 3 columns -->
6 <div class="hidden lg:grid lg:grid-cols-[1fr_minmax(0,1024px)_1fr] lg:gap-8 lg:items-start">
7 <!-- Left section -->
8 <div>
9 <a href="/" hx-boost="true" class="flex gap-2 font-semibold italic no-underline hover:no-underline">
10 {{ template "fragments/logotypeSmall" }}
11 </a>
12 </div>
13
14 {{ $headerStyle := "text-gray-900 dark:text-gray-200 font-bold text-sm uppercase tracking-wide mb-1" }}
15 {{ $linkStyle := "text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200 hover:underline inline-flex gap-1 items-center" }}
16 {{ $iconStyle := "w-4 h-4 flex-shrink-0" }}
17
18 <!-- Center section with max-width -->
19 <div class="grid grid-cols-4 gap-2">
20 <div class="flex flex-col gap-1">
21 <div class="{{ $headerStyle }}">legal</div>
22 <a href="/terms" class="{{ $linkStyle }}">{{ i "file-text" $iconStyle }} terms of service</a>
23 <a href="/privacy" class="{{ $linkStyle }}">{{ i "shield" $iconStyle }} privacy policy</a>
24 </div>
25
26 <div class="flex flex-col gap-1">
27 <div class="{{ $headerStyle }}">resources</div>
28 <a href="https://blog.tangled.org" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ i "book-open" $iconStyle }} blog</a>
29 <a href="https://docs.tangled.org" class="{{ $linkStyle }}">{{ i "book" $iconStyle }} docs</a>
30 <a href="https://tangled.org/@tangled.org/core" class="{{ $linkStyle }}">{{ i "code" $iconStyle }} source</a>
31 <a href="https://tangled.org/brand" class="{{ $linkStyle }}">{{ i "paintbrush" $iconStyle }} brand</a>
32 </div>
33
34 <div class="flex flex-col gap-1">
35 <div class="{{ $headerStyle }}">social</div>
36 <a href="https://chat.tangled.org" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ i "message-circle" $iconStyle }} discord</a>
37 <a href="https://web.libera.chat/#tangled" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ i "hash" $iconStyle }} irc</a>
38 <a href="https://bsky.app/profile/tangled.org" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ template "user/fragments/bluesky" $iconStyle }} bluesky</a>
39 </div>
40
41 <div class="flex flex-col gap-1">
42 <div class="{{ $headerStyle }}">contact</div>
43 <a href="mailto:team@tangled.org" class="{{ $linkStyle }}">{{ i "mail" "w-4 h-4 flex-shrink-0" }} team@tangled.org</a>
44 <a href="mailto:security@tangled.org" class="{{ $linkStyle }}">{{ i "shield-check" "w-4 h-4 flex-shrink-0" }} security@tangled.org</a>
45 </div>
46 </div>
47
48 <!-- Right section -->
49 <div class="text-right">
50 <div class="text-xs">© 2025 Tangled Labs Oy. All rights reserved.</div>
51 </div>
52 </div>
53
54 <!-- Mobile layout: stacked -->
55 <div class="lg:hidden flex flex-col gap-8">
56 {{ $headerStyle := "text-gray-900 dark:text-gray-200 font-bold text-xs uppercase tracking-wide mb-1" }}
57 {{ $linkStyle := "text-gray-500 dark:text-gray-400 hover:text-gray-900 dark:hover:text-gray-200 hover:underline inline-flex gap-1 items-center" }}
58 {{ $iconStyle := "w-4 h-4 flex-shrink-0" }}
59
60 <div class="mb-4 md:mb-0">
61 <a href="/" hx-boost="true" class="flex gap-2 font-semibold italic no-underline hover:no-underline">
62 {{ template "fragments/logotypeSmall" }}
63 </a>
64 </div>
65
66 <div class="grid grid-cols-1 sm:grid-cols-1 md:grid-cols-4 sm:gap-6 md:gap-2 gap-6">
67 <div class="flex flex-col gap-1">
68 <div class="{{ $headerStyle }}">legal</div>
69 <a href="/terms" class="{{ $linkStyle }}">{{ i "file-text" $iconStyle }} terms of service</a>
70 <a href="/privacy" class="{{ $linkStyle }}">{{ i "shield" $iconStyle }} privacy policy</a>
71 </div>
72
73 <div class="flex flex-col gap-1">
74 <div class="{{ $headerStyle }}">resources</div>
75 <a href="https://blog.tangled.org" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ i "book-open" $iconStyle }} blog</a>
76 <a href="https://docs.tangled.org" class="{{ $linkStyle }}">{{ i "book" $iconStyle }} docs</a>
77 <a href="https://tangled.org/@tangled.org/core" class="{{ $linkStyle }}">{{ i "code" $iconStyle }} source</a>
78 <a href="https://tangled.org/brand" class="{{ $linkStyle }}">{{ i "paintbrush" $iconStyle }} brand</a>
79 </div>
80
81 <div class="flex flex-col gap-1">
82 <div class="{{ $headerStyle }}">social</div>
83 <a href="https://chat.tangled.org" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ i "message-circle" $iconStyle }} discord</a>
84 <a href="https://web.libera.chat/#tangled" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ i "hash" $iconStyle }} irc</a>
85 <a href="https://bsky.app/profile/tangled.org" class="{{ $linkStyle }}" target="_blank" rel="noopener noreferrer">{{ template "user/fragments/bluesky" $iconStyle }} bluesky</a>
86 </div>
87
88 <div class="flex flex-col gap-1">
89 <div class="{{ $headerStyle }}">contact</div>
90 <a href="mailto:team@tangled.org" class="{{ $linkStyle }}">{{ i "mail" "w-4 h-4 flex-shrink-0" }} team@tangled.org</a>
91 <a href="mailto:security@tangled.org" class="{{ $linkStyle }}">{{ i "shield-check" "w-4 h-4 flex-shrink-0" }} security@tangled.org</a>
92 </div>
93 </div>
94
95 <div class="text-center">
96 <div class="text-xs">© 2025 Tangled Labs Oy. All rights reserved.</div>
97 </div>
98 </div>
99 </div>
100 </div>
101</div>
102{{ end }}