Navigation + Footer
Persistent site chrome that renders on every page via BaseLayout.astro. The navigation above and footer below are the live preview — interact with the mega-menu dropdowns directly.
Navigation
P Purpose
Persistent top-of-page navigation that renders on every page. Split-identity layout: Vstorm wordmark left, primary nav links center, CTA button right. Four mega-menu dropdowns (Services, Industry, Company, Insights) give buyers a structured path into the site from any page.
W When to Use
- Renders automatically on all pages via
BaseLayout.astro - Suppress only on dedicated landing pages where nav exits reduce conversion (set
showNav=on BaseLayout) - Never suppress on content pages, service pages, or the homepage
L Layout Behaviour
Sticky (position: sticky; top: 0), full-width, z-index: 200. White background with bottom border. Inner container capped at var(--content-max). Mega-menu overlays attach below the nav bar via an absolutely-positioned panel. Announcement topbar variant adds a full-width red strip above. Mobile: collapses to hamburger at 768px.
I Mega-Menu Structure
- Services — Advisory & Consulting + Agentic AI Engineering columns + featured case study card
- Industry — sector grid (Healthcare, Logistics, Financial Services, Retail, Manufacturing, Technology) + methodology callout
- Company — About, Team, Careers, Press + mission statement sidebar
- Insights — compact dropdown: Blog, Case Studies, Guides, Newsletter
! Do Not
- Add more than 4 top-level nav triggers — cognitive load caps at 4 for mega-menus
- Put CTAs inside mega-menu panels — the nav CTA button handles that
- Change the sticky behavior — position fixed creates layout shift, sticky does not
- Suppress the nav on non-landing pages — users lose wayfinding
- Use the announcement topbar for non-time-sensitive messages — it loses impact
V Variants
- Standard — wordmark + nav links + CTA. Default on all pages
- With Announcement Topbar — adds a full-width red strip above the nav bar for time-sensitive promotions or alerts
The navigation bar at the top of this page is the live preview. Click
Services, Industry, Company, or
Insights to open the mega-menu dropdowns. The component renders
automatically via BaseLayout.astro — it cannot be embedded as an isolated frame.
Footer
P Purpose
Full-site footer with three layers: a comprehensive link grid for wayfinding and SEO, an AI summarize strip that lets AI agents index the page cleanly, and a bottom bar with legal links. Renders on every page — the last element before the browser chrome.
W When to Use
- Renders automatically on all pages via
BaseLayout.astro - Suppress only on dedicated ad landing pages with no exit links (set
showFooter=on BaseLayout) - Always present on content, service, and homepage routes
L Layout Behaviour
Three-layer structure: (1) link grid — ink background, multi-column link categories + Vstorm wordmark + brief descriptor; (2) AI summarize strip — a short machine-readable site summary for AI crawlers; (3) bottom bar — copyright, legal links, social icons. Full-width, inner container capped at var(--content-max).
I Link Grid Structure
- Services — links to practice pages (Transformation Consulting, Agentic AI Engineering, Workshops)
- Solutions — links by use case (Agent Development, System Integration, Team Upskilling)
- Company — About, Team, Careers, Press
- Insights — Blog, Case Studies, Guides, Newsletter
- Legal — Privacy Policy, Terms of Service, Cookie Policy
! Do Not
- Suppress on non-landing pages — footer links are a primary navigation fallback
- Add marketing copy or CTAs to the footer — the CTA ending handles that; the footer is utility
- Remove the AI summarize strip — it supports GEO visibility at zero rendering cost
- Use the footer as the only place for legal links — they must also be accessible mid-page where relevant
V Variants
None — single layout. The footer is a fixed site-wide element. Column count adapts responsively but structure and content do not change by page type.
The footer at the bottom of this page is the live preview. Scroll down to see the
link grid, AI summarize strip, and bottom bar. The component renders automatically via
BaseLayout.astro — it cannot be embedded as an isolated frame.