File: src/blocks/footer/Footer04.astro
Same headed groups columns as Footer 01, with a contact stack on the left:
- Logo + site title
- Address (two lines) — map-pin icon
- Phone — phone icon
- Email — mail icon
- Socials — brand marks from
seo.sameAs
The bottom bar is copyright (left) + legal links (right). Address, phone, email, logo, and legal links are all optional.
Config (identity.ts → footer)
footer: {
copyright: "© {year} Your Name",
address: {
line1: "100 Design Avenue",
line2: "Austin, TX 78701",
},
phone: "+1 (512) 555-0140",
legal: [
{ label: "Terms", href: "/terms/" },
{ label: "Privacy", href: "/privacy/" },
{ label: "Accessibility", href: "/accessibility/" },
],
groups: [
{ label: "Product", items: [{ href: "/themes/", label: "Themes" }] },
],
},
Email defaults to author.email. Logo defaults to identity.logo (BaseLayer falls back to the site mark if logo is empty).
Add to a page
---
import Footer04 from "@/blocks/footer/Footer04.astro";
---
<Footer04 />
Hide contact rows:
<Footer04 address={false} phone={false} email={false} logo={false} legal={[]} />
Props
| Prop | Config key | Type | Notes |
|---|---|---|---|
name |
identity.name |
string |
Title |
logo |
identity.logo |
string | false |
Image before the title. false / "" hides it |
address |
footer.address |
{ line1, line2? } | false |
Two-line block. false hides it |
phone |
footer.phone |
string | false |
tel: link. false / "" hides it |
email |
author.email |
string | false |
mailto: link. false / "" hides it |
groups |
footer.groups |
{ label, items }[] |
Headed link columns |
socials |
seo.sameAs |
{ href, label, icon }[] |
Brand icons only |
legal |
footer.legal |
{ label, href }[] |
Right of copyright. Empty hides the row of links |
copyright |
footer.copyright |
string |
Bottom right |
