Footer pattern
A page footer is more than navigation. For a UK-registered limited company it is a legal disclosure. The pattern below satisfies the statutory rules and the practical conventions users expect.
What goes in
Three layers, in order of importance:
- Legal disclosure — required by the Companies Act 2006 (s.82-84) and SI 2008/495.
- Privacy & consent — required by UK GDPR and PECR.
- Wayfinding — secondary navigation users expect at the bottom of every page.
UK legal checklist
Every Tradik page footer must contain:
| Item | Source | Status |
|---|---|---|
| Registered legal name (e.g. Tradik Limited) | Companies Act 2006, s.82 | Required |
| Place of registration (e.g. England & Wales) | Companies Act 2006, s.82 | Required |
| Company registration number (e.g. 07139005) | Companies Act 2006, s.82 | Required |
| Registered office address | Companies Act 2006, s.82 | Required |
| VAT number (if VAT-registered) | VAT Regulations 1995 | Conditional |
| Privacy policy link | UK GDPR Art. 13 | Required |
| Cookie policy link + consent banner | PECR reg. 6 | Required if non-essential cookies set |
| Terms of service link | Convention | Strongly recommended |
| Accessibility statement link | EAA 2025 / convention | Required for public-sector; recommended for B2B |
| ICO registration number (if data controller) | Data Protection Act 2018 | Required if registered with ICO |
| Modern Slavery statement link | Modern Slavery Act 2015 | Required if turnover > £36 m |
Layout rules
- Landmark. The footer is a
<footer role="contentinfo">. There is exactly one per page. - Columns. Up to four content columns plus a brand block on desktop. Stack to two columns on tablet, one on phone.
- Legal strip. Company facts and copyright sit below the columns, separated by a hairline border.
- Target size. Every link area is at least 24 × 24 CSS px (WCAG 2.2 — 2.5.8). Include vertical padding so taps don't miss.
- Contrast. Footer text is
--color-fg-secondaryon--color-bg-subtle— verified ≥ 7 : 1 (AAA).
Implementation
Use the rendered SiteFooter component on this site as the reference implementation — it is the same component on every page, including this one. Centralise the company facts in a single object so they cannot drift between pages:
const company = {
legalName: 'Tradik Limited',
number: '07139005',
registeredOffice: '167–169 Great Portland Street, 5th Floor, London, England, W1W 5PF',
jurisdiction: 'England & Wales',
vat: 'GB ___ ____ __',
ico: 'Registration: ZA______',
contactEmail: 'hello@tradik.com',
}; Cookie consent caveat
If your app loads any non-essential script that sets cookies (Google Tag Manager, analytics, advertising pixels), you must defer it until the user grants consent. The current Design System site loads GTM unconditionally — that is acceptable for a documentation site that does not yet have a live container ID, but production Tradik apps need a Consent Management Platform (CMP) before any non-essential script fires. Track this in your project as a launch blocker.
Live example
Scroll to the bottom of this page. Every link, every line of legal text, is the production component.