@@ -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