Welcome to Vanilla Breeze
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
This bell pulls live notifications from /go/notify/messages — the same contract documented at /docs/concepts/service-contracts/. Static articles like this one are the no-JS / no-backend fallback.
Footer navigation patterns with links, social icons, multi-column layouts, and newsletter signup forms.
Footers provide secondary navigation, legal links, and brand information at the bottom of pages. These patterns use semantic <footer> and <nav> elements with aria-label for accessibility.
Key features:
data-layout attributes (grid, sidebar, cluster, stack)<nav aria-label="Social media">form-field componentfooter.site provides base styling (background, border, link colors, compact nav padding) with zero custom CSSA compact footer with horizontal links, logo, and social icons. Uses data-layout="cluster" with data-layout-justify="between" for flexible horizontal spacing that wraps gracefully on smaller screens.
<footer class="site" data-layout="stack" data-layout-gap="m"> <div data-layout="cluster" data-layout-justify="between" data-layout-align="center"> <div data-layout="cluster" data-layout-gap="m" data-layout-align="center"> <a href="/"><brand-mark>Acme Co</brand-mark></a> <nav class="horizontal" aria-label="Footer navigation"> <ul> <li><a href="/about/">About</a></li> <li><a href="/blog/">Blog</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/contact/">Contact</a></li> </ul> </nav> </div> <nav class="horizontal" aria-label="Social media"> <ul> <li><a href="https://github.com" aria-label="GitHub"> <icon-wc name="github"></icon-wc> </a></li> <li><a href="https://twitter.com" aria-label="Twitter"> <icon-wc name="twitter"></icon-wc> </a></li> <li><a href="https://linkedin.com" aria-label="LinkedIn"> <icon-wc name="linkedin"></icon-wc> </a></li> </ul> </nav> </div> <small>© 2024 Acme Co. All rights reserved.</small></footer>
A comprehensive footer with organized link categories in columns. Uses data-layout="grid" with data-layout-min="10rem" to create responsive columns that automatically adjust based on available space.
<footer class="site" data-layout="stack" data-layout-gap="l"> <div data-layout="grid" data-layout-min="10rem" data-layout-gap="xl"> <nav aria-label="Company links" data-layout="stack" data-layout-gap="m"> <h3>Company</h3> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/about/">About</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/press/">Press</a></li> <li><a href="/news/">News</a></li> </ul> </nav> <nav aria-label="Product links" data-layout="stack" data-layout-gap="m"> <h3>Product</h3> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/features/">Features</a></li> <li><a href="/pricing/">Pricing</a></li> <li><a href="/integrations/">Integrations</a></li> <li><a href="/changelog/">Changelog</a></li> </ul> </nav> <nav aria-label="Resources links" data-layout="stack" data-layout-gap="m"> <h3>Resources</h3> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/docs/">Documentation</a></li> <li><a href="/guides/">Guides</a></li> <li><a href="/blog/">Blog</a></li> <li><a href="/support/">Support</a></li> </ul> </nav> <nav aria-label="Legal links" data-layout="stack" data-layout-gap="m"> <h3>Legal</h3> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/privacy/">Privacy</a></li> <li><a href="/terms/">Terms</a></li> <li><a href="/cookies/">Cookies</a></li> <li><a href="/licenses/">Licenses</a></li> </ul> </nav> </div> <div class="footer-bottom" data-layout="cluster" data-layout-justify="between" data-layout-align="center"> <div data-layout="cluster" data-layout-gap="m" data-layout-align="center"> <a href="/"><brand-mark>Acme Co</brand-mark></a> <small>© 2024 Acme Co. All rights reserved.</small> </div> <nav class="horizontal" aria-label="Social media"> <ul> <li><a href="https://github.com" aria-label="GitHub"> <icon-wc name="github"></icon-wc> </a></li> <li><a href="https://twitter.com" aria-label="Twitter"> <icon-wc name="twitter"></icon-wc> </a></li> <li><a href="https://linkedin.com" aria-label="LinkedIn"> <icon-wc name="linkedin"></icon-wc> </a></li> <li><a href="https://youtube.com" aria-label="YouTube"> <icon-wc name="youtube"></icon-wc> </a></li> </ul> </nav> </div></footer>
Additional styles for the multi-column layout, including uppercase headings and the bottom separator:
/* Column headings — uppercase, muted */footer.site h3 { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-muted); margin: 0;} /* Smaller nav links in column layout */footer.site nav a { font-size: var(--font-size-sm);} /* Bottom separator */.footer-bottom { border-block-start: var(--border-width-thin) solid var(--color-border); padding-block-start: var(--size-l); margin-block-start: var(--size-xl);}
A footer that includes a newsletter signup form alongside navigation links. Uses data-layout="sidebar" to create a split layout where the newsletter section takes priority, with link columns on the side.
<footer class="site" data-layout="stack" data-layout-gap="l"> <div data-layout="sidebar" data-layout-gap="2xl" data-layout-sidebar-width="wide" data-layout-content-min="50"> <section class="newsletter" data-layout="stack" data-layout-gap="m"> <h3>Subscribe to our newsletter</h3> <p>Get the latest updates, tips, and news delivered to your inbox.</p> <form action="/subscribe" method="POST"> <div data-layout="cluster" data-layout-gap="s"> <form-field> <label for="email" class="sr-only">Email address</label> <input type="email" id="email" name="email" required autocomplete="email" placeholder="Enter your email" /> </form-field> <button type="submit">Subscribe</button> </div> </form> <p class="text-sm text-muted"> By subscribing, you agree to our <a href="/privacy/">Privacy Policy</a>. </p> </section> <div data-layout="grid" data-layout-min="8rem" data-layout-gap="xl"> <nav aria-label="Product links" data-layout="stack" data-layout-gap="m"> <h4>Product</h4> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/features/">Features</a></li> <li><a href="/pricing/">Pricing</a></li> <li><a href="/integrations/">Integrations</a></li> </ul> </nav> <nav aria-label="Resources links" data-layout="stack" data-layout-gap="m"> <h4>Resources</h4> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/docs/">Documentation</a></li> <li><a href="/guides/">Guides</a></li> <li><a href="/blog/">Blog</a></li> </ul> </nav> <nav aria-label="Company links" data-layout="stack" data-layout-gap="m"> <h4>Company</h4> <ul data-layout="stack" data-layout-gap="2xs"> <li><a href="/about/">About</a></li> <li><a href="/careers/">Careers</a></li> <li><a href="/contact/">Contact</a></li> </ul> </nav> </div> </div> <div class="footer-bottom" data-layout="cluster" data-layout-justify="between" data-layout-align="center"> <div data-layout="cluster" data-layout-gap="m" data-layout-align="center"> <a href="/"><brand-mark>Acme Co</brand-mark></a> <small>© 2024 Acme Co. All rights reserved.</small> </div> <nav class="horizontal" aria-label="Social media"> <ul> <li><a href="https://github.com" aria-label="GitHub"> <icon-wc name="github"></icon-wc> </a></li> <li><a href="https://twitter.com" aria-label="Twitter"> <icon-wc name="twitter"></icon-wc> </a></li> <li><a href="https://linkedin.com" aria-label="LinkedIn"> <icon-wc name="linkedin"></icon-wc> </a></li> </ul> </nav> </div></footer>
Additional styles specific to the newsletter section:
/* Newsletter heading and description */.newsletter h3 { font-size: var(--font-size-lg); margin: 0;} .newsletter p { color: var(--color-text-muted); font-size: var(--font-size-sm);} /* Column headings for newsletter footer */footer.site h4 { font-size: var(--font-size-sm); font-weight: var(--font-weight-semibold); text-transform: uppercase; letter-spacing: 0.05em; color: var(--color-text-muted); margin: 0;}
The footer.site class from VB handles most base styling automatically — background, border, padding, muted link colors with hover transitions, and compact nav link padding. No custom CSS is needed for the simple footer variant.
/* VB provides footer.site base styles automatically: - background, border, padding, margin-block-start - muted link color, no underline, hover brightens - compact nav link padding (8px vertical, 0 horizontal) - tight gap between horizontal nav items No custom CSS needed for the simple footer variant. */
aria-label on each <nav> element to distinguish between different navigation sections (e.g., "Company links", "Legal links")aria-label on social media links since they only contain icons. Wrap social links in <nav aria-label="Social media"> for proper semantics and to suppress external-link indicatorsclass="sr-only" on labels for screen reader accessibility when using placeholder text<small> for copyright text — VB styles it at the correct size automaticallydata-layout attributes directly on semantic elements instead of custom element wrappers for cleaner markupHeader navigation patterns
Icon web component documentation
Responsive grid layout documentation
Form field component for inputs