The Footer Component is a comprehensive footer solution for websites and applications, featuring a blend of branding information, legal links, and social media connectivity. Designed with modern aesthetics in mind, it provides a structured and visually appealing way to present essential website information and enhance user engagement through social links. Ideal for projects that require a consistent and informative footer across all pages.
An array of objects where each object represents a navigation link to a legal or informational page:
An array of objects, each containing information about a social media or contact link:
Simply include the component in the layout or pages where you want the footer to appear. No props are required for basic usage:
<FooterComponent />
To adjust the content, edit the branding, legalPages, and socialLinks data within the <script setup>
section according to your needs.
To integrate the Footer Component into your Vue or Nuxt application:
<script setup lang="ts">
const branding = '© 2024 jsNectar. All rights reserved.';
const legalPages = [
{
label: 'Privacy Policy',
href: '/privacy-policy',
},
{
label: 'Terms of Service',
href: '/terms-of-service',
},
{
label: 'Contact',
href: '/contact',
},
];
const socialLinks = [
{
type: 'E-Mail',
href: 'mailto:devjsnectar@gmail.com',
label: 'devjsnectar@gmail.com',
icon: 'carbon:email',
},
{
type: 'Facebook',
href: '',
label: 'jsNectar',
icon: 'carbon:logo-facebook',
},
{
type: 'Youtube',
href: '',
label: 'jsNectar',
icon: 'carbon:logo-youtube',
},
{
type: 'GitHub',
href: '',
label: 'GitHub',
icon: 'carbon:logo-github',
},
];
</script>
<template>
<div class="mt-md lg:mt-lg">
<footer class="w-full bg-black pb-12 text-sm text-primary">
<div
class="mx-auto w-full max-w-7xl justify-between px-2 sm:px-6 md:flex lg:px-8"
>
<section
class="flex flex-row justify-center gap-5 pt-12 md:order-last md:w-1/3 md:justify-end"
>
<a
v-for="link in socialLinks"
:key="link.label"
:href="link.href"
>
<span class="sr-only">{{ link.label }}</span>
<Icon
:name="link.icon"
size="1.5rem"
/>
</a>
</section>
<section class="mt-12 flex flex-col justify-center gap-3 md:w-1/3">
<a
v-for="link in legalPages"
:key="link.label"
class="mx-auto"
:href="link.href"
>
<span>{{ link.label }}</span>
</a>
</section>
<section
class="mt-12 justify-center sm:order-first sm:justify-start md:w-1/3"
>
<p class="ms:justify-start flex justify-center">{{ branding }}</p>
<span class="ms:justify-start mt-3 flex justify-center">
Made with ♥ by jsNectar
</span>
</section>
</div>
</footer>
</div>
</template>