Skip to content

Commit 8d02c3e

Browse files
committed
feat: reorganize footer links into product/legal/community columns (#1364)
1 parent 7f2fc1a commit 8d02c3e

File tree

1 file changed

+24
-32
lines changed

1 file changed

+24
-32
lines changed

app/components/AppFooter.vue

Lines changed: 24 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -20,27 +20,17 @@ const closeModal = () => modalRef.value?.close?.()
2020
</p>
2121
<BuildEnvironment v-if="!isHome" footer />
2222
</div>
23-
<!-- Desktop: Show all links. Mobile: Links are in MobileMenu -->
24-
<div class="hidden sm:flex flex-col lg:items-end gap-3 min-h-11 text-xs">
25-
<div class="flex items-center gap-5">
26-
<LinkBase :to="{ name: 'about' }">
27-
{{ $t('footer.about') }}
28-
</LinkBase>
29-
<LinkBase :to="{ name: 'blog' }">
30-
{{ $t('footer.blog') }}
31-
</LinkBase>
32-
<LinkBase :to="{ name: 'privacy' }">
33-
{{ $t('privacy_policy.title') }}
34-
</LinkBase>
35-
<LinkBase :to="{ name: 'accessibility' }">
36-
{{ $t('a11y.footer_title') }}
37-
</LinkBase>
38-
<LinkBase :to="{ name: 'translation-status' }">
39-
{{ $t('translation_status.title') }}
40-
</LinkBase>
23+
<!-- Desktop: Show all links in columns. Mobile: Links are in MobileMenu -->
24+
<div class="hidden sm:grid sm:grid-cols-2 lg:grid-cols-3 gap-x-10 gap-y-1 min-h-11 text-xs">
25+
<!-- Column 1: Product -->
26+
<div class="flex flex-col gap-1">
27+
<span class="text-fg-subtle uppercase tracking-wider text-2xs mb-1">{{ $t('footer.product') }}</span>
28+
<LinkBase :to="{ name: 'about' }">{{ $t('footer.about') }}</LinkBase>
29+
<LinkBase :to="{ name: 'blog' }">{{ $t('footer.blog') }}</LinkBase>
30+
<LinkBase :to="NPMX_DOCS_SITE">{{ $t('footer.docs') }}</LinkBase>
4131
<button
4232
type="button"
43-
class="cursor-pointer group inline-flex gap-x-1 items-center justify-center underline-offset-[0.2rem] underline decoration-1 decoration-fg/30 font-mono text-fg hover:(decoration-accent text-accent) focus-visible:(decoration-accent text-accent) transition-colors duration-200"
33+
class="text-start cursor-pointer inline-flex gap-x-1 items-center underline-offset-[0.2rem] underline decoration-1 decoration-fg/30 font-mono text-fg hover:(decoration-accent text-accent) focus-visible:(decoration-accent text-accent) transition-colors duration-200"
4434
@click.prevent="showModal"
4535
aria-haspopup="dialog"
4636
>
@@ -126,19 +116,21 @@ const closeModal = () => modalRef.value?.close?.()
126116
</p>
127117
</Modal>
128118
</div>
129-
<div class="flex items-center gap-5">
130-
<LinkBase :to="NPMX_DOCS_SITE">
131-
{{ $t('footer.docs') }}
132-
</LinkBase>
133-
<LinkBase to="https://repo.npmx.dev">
134-
{{ $t('footer.source') }}
135-
</LinkBase>
136-
<LinkBase to="https://social.npmx.dev">
137-
{{ $t('footer.social') }}
138-
</LinkBase>
139-
<LinkBase :to="discord.url">
140-
{{ discord.label }}
141-
</LinkBase>
119+
120+
<!-- Column 2: Legal & Info -->
121+
<div class="flex flex-col gap-1">
122+
<span class="text-fg-subtle uppercase tracking-wider text-2xs mb-1">{{ $t('footer.legal') }}</span>
123+
<LinkBase :to="{ name: 'privacy' }">{{ $t('privacy_policy.title') }}</LinkBase>
124+
<LinkBase :to="{ name: 'accessibility' }">{{ $t('a11y.footer_title') }}</LinkBase>
125+
<LinkBase :to="{ name: 'translation-status' }">{{ $t('translation_status.title') }}</LinkBase>
126+
</div>
127+
128+
<!-- Column 3: Community -->
129+
<div class="flex flex-col gap-1">
130+
<span class="text-fg-subtle uppercase tracking-wider text-2xs mb-1">{{ $t('footer.community') }}</span>
131+
<LinkBase to="https://repo.npmx.dev">{{ $t('footer.source') }}</LinkBase>
132+
<LinkBase to="https://social.npmx.dev">{{ $t('footer.social') }}</LinkBase>
133+
<LinkBase :to="discord.url">{{ discord.label }}</LinkBase>
142134
</div>
143135
</div>
144136
</div>

0 commit comments

Comments
 (0)