# Footer

## Essence

Shared footer for `Page Template`.

`Footer` renders the site-wide social/contact footer below page content.

## Hook

Use when a page uses `Page Template` and needs the shared closing area after content.

## Status

Page-template component

## Contract

- Renders below `Page Template` content.
- Uses Block spacing tokens for outer spacing.
- Aligns footer heading, social media marks, copyright, address, and email left.
- Uses paragraph typography for footer text.
- Supports social link data, but does not invent fake URLs when a link is not supplied.
- Does not own page content, Header behavior, or page-specific calls to action.

## Ownership

| Owner | Responsibilities |
| --- | --- |
| `Page Template` | Places Footer after content. |
| `Footer` | Owns footer layout, social/contact rendering, and footer spacing. |
| Parent | May provide real social URLs, copyright text, address text, and email. |

## Public Props

- `heading`: footer heading text.
- `copyright`: copyright line.
- `address`: supporting contact/location line.
- `email`: email address used for the mail link.
- `socialLinks`: social icon/link data. Each item may provide `label`, `mark`, `tone`, and optional `href`.

## Internal Rules

- Use Block spacing tokens directly.
- Keep text on paragraph typography.
- Keep the default visual social set compact: Instagram, LinkedIn, and YouTube.
- Use native links only when a real destination exists.
- Keep email as a native `mailto:` link.
- Page adapters may explicitly disable Footer when the page is a working tool surface with fixed navigation rather than a normal public content page.

## Related Components And Patterns

| Item | Relationship | Direction | Notes |
| --- | --- | --- | --- |
| `Page Template` | Composes | Parent -> Child | Footer appears below content. |
| `Header` | Sibling | Page Template -> Child | Header appears above content; Footer appears below. |

## Source Of Truth

| Source | Path / Link | Notes |
| --- | --- | --- |
| Component implementation | `packages/design-system/src/components/Footer.astro` | Primary behavior and layout source. |
| Page Template implementation | `packages/design-system/src/components/GenericPageTemplate.astro` | Placement source. |
| DS page | `apps/portfolio-site/src/pages/design-system/index.astro` | Visible documentation and example. |
