Footer
Eine ansprechende Fußzeile für Ihre Website-Links und rechtliche Hinweise.
Bearbeiten
Die Footer Komponente rendert ein <footer> Element.
Verwenden Sie die Slots left, default und right, um die Fußzeile anzupassen.
<script setup lang="ts">
import type { NavigationMenuItem } from '@nuxt/ui'
const items: NavigationMenuItem[] = [
{
label: 'Figma Kit',
to: 'https://go.nuxt.com/figma-ui',
target: '_blank'
},
{
label: 'Playground',
to: 'https://stackblitz.com/edit/nuxt-ui',
target: '_blank'
},
{
label: 'Releases',
to: 'https://github.com/nuxt/ui/releases',
target: '_blank'
}
]
</script>
<template>
<UFooter>
<template #left>
<p class="text-muted text-sm">Copyright © {{ new Date().getFullYear() }}</p>
</template>
<UNavigationMenu :items="items" variant="link" />
<template #right>
<UButton
icon="i-simple-icons-discord"
color="neutral"
variant="ghost"
to="https://go.nuxt.com/discord"
target="_blank"
aria-label="Discord"
/>
<UButton
icon="i-simple-icons-x"
color="neutral"
variant="ghost"
to="https://go.nuxt.com/x"
target="_blank"
aria-label="X"
/>
<UButton
icon="i-simple-icons-github"
color="neutral"
variant="ghost"
to="https://github.com/nuxt/nuxt"
target="_blank"
aria-label="GitHub"
/>
</template>
</UFooter>
</template>In diesem Beispiel verwenden wir die Komponente NavigationMenu, um die Fußzeilenlinks in der Mitte darzustellen.
Sie können die
FooterColumns-Komponente verwenden, um eine Liste von Links innerhalb des top-Steckplatzes anzuzeigen.Examples (Beispiele)
Innerhalb app.vue
Verwenden Sie die Footer-Komponente in Ihrem app.vue oder in einem Layout:
app.vue
<script setup lang="ts">
import type { NavigationMenuItem } from '@nuxt/ui'
const items: NavigationMenuItem[] = [{
label: 'Figma Kit',
to: 'https://go.nuxt.com/figma-ui',
target: '_blank'
}, {
label: 'Playground',
to: 'https://stackblitz.com/edit/nuxt-ui',
target: '_blank'
}, {
label: 'Releases',
to: 'https://github.com/nuxt/ui/releases',
target: '_blank'
}]
</script>
<template>
<UApp>
<UHeader />
<UMain>
<NuxtLayout>
<NuxtPage />
</NuxtLayout>
</UMain>
<USeparator icon="i-simple-icons-nuxtdotjs" type="dashed" class="h-px" />
<UFooter>
<template #left>
<p class="text-muted text-sm">
Copyright © {{ new Date().getFullYear() }}
</p>
</template>
<UNavigationMenu :items="items" variant="link" />
<template #right>
<UButton
icon="i-simple-icons-discord"
color="neutral"
variant="ghost"
to="https://go.nuxt.com/discord"
target="_blank"
aria-label="Discord"
/>
<UButton
icon="i-simple-icons-x"
color="neutral"
variant="ghost"
to="https://go.nuxt.com/x"
target="_blank"
aria-label="X"
/>
<UButton
icon="i-simple-icons-github"
color="neutral"
variant="ghost"
to="https://github.com/nuxt/nuxt"
target="_blank"
aria-label="GitHub"
/>
</template>
</UFooter>
</UApp>
</template>
In diesem Beispiel verwenden wir die Komponente Separator, um einen Rahmen über der Fußzeile hinzuzufügen.
API (Englisch)
Props (nicht)
| Prop | Default | Type |
|---|---|---|
as | 'footer' | anyThe element or component this component should render as. |
ui | { root?: SlotClass; top?: SlotClass; bottom?: SlotClass; container?: SlotClass; left?: SlotClass; center?: SlotClass; right?: SlotClass; } |
Slots (englisch)
| Slot | Type |
|---|---|
left | {} |
default | {} |
right | {} |
top | {} |
bottom | {} |
Theme Bearbeiten
app.config.ts
export default defineAppConfig({
ui: {
footer: {
slots: {
root: '',
top: 'py-8 lg:py-12',
bottom: 'py-8 lg:py-12',
container: 'py-8 lg:py-4 lg:flex lg:items-center lg:justify-between lg:gap-x-3',
left: 'flex items-center justify-center lg:justify-start lg:flex-1 gap-x-1.5 mt-3 lg:mt-0 lg:order-1',
center: 'mt-3 lg:mt-0 lg:order-2 flex items-center justify-center',
right: 'lg:flex-1 flex items-center justify-center lg:justify-end gap-x-1.5 lg:order-3'
}
}
}
})vite.config.ts
import { defineConfig } from 'vite'
import vue from '@vitejs/plugin-vue'
import ui from '@nuxt/ui/vite'
export default defineConfig({
plugins: [
vue(),
ui({
ui: {
footer: {
slots: {
root: '',
top: 'py-8 lg:py-12',
bottom: 'py-8 lg:py-12',
container: 'py-8 lg:py-4 lg:flex lg:items-center lg:justify-between lg:gap-x-3',
left: 'flex items-center justify-center lg:justify-start lg:flex-1 gap-x-1.5 mt-3 lg:mt-0 lg:order-1',
center: 'mt-3 lg:mt-0 lg:order-2 flex items-center justify-center',
right: 'lg:flex-1 flex items-center justify-center lg:justify-end gap-x-1.5 lg:order-3'
}
}
}
})
]
})Changelog (englisch)
No recent changes