Corevia Footer Footer Block - Let's templates
Unlock every premium block and template with All-Access from $20 / 3 months, cancel anytime. Get All-Access
All blocks
Free Footer

Corevia Footer

A footer block extracted from the Corevia template, available in Tailwind CSS and Bootstrap.

0 5
Corevia Footer preview
corevia.html
<!DOCTYPE html>
<html lang="en">
<head>
  <script>
    window.FontAwesomeConfig = { autoReplaceSvg: 'nest' };
  </script>
  <script src="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/js/all.min.js" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Corevia Footer | Tailwind CSS UI Block</title>
  <meta name="description" content="A footer block extracted from the Corevia template, available in Tailwind CSS and Bootstrap.">
  <meta name="keywords" content="Corevia, Tailwind CSS template, HTML website template, fitness template, gym website, personal trainer, coaching programs, membership pricing, workout tracker, health club">
  <meta name="author" content="Let's templates">
  <link rel="canonical" href="">

  <meta property="og:type" content="product">
  <meta property="og:site_name" content="Let's templates">
  <meta property="og:locale" content="en_US">
  <meta property="og:url" content="">
  <meta property="og:title" content="Corevia | Tailwind CSS Health &amp; Fitness Template">
  <meta property="og:description" content="An energetic Tailwind CSS fitness template with a program carousel, progress tracker, pricing toggle and a chat-style sign-up.">
  <meta property="og:image" content="">
  <meta property="og:image:alt" content="Corevia template preview">

  <meta name="twitter:card" content="summary_large_image">
  <meta name="twitter:url" content="">
  <meta name="twitter:title" content="Corevia | Tailwind CSS Health &amp; Fitness Template">
  <meta name="twitter:description" content="An energetic Tailwind CSS fitness template with a program carousel, progress tracker, pricing toggle and a chat-style sign-up.">
  <meta name="twitter:image" content="">
  <meta name="twitter:image:alt" content="Corevia template preview">
  <script src="https://cdn.tailwindcss.com/3.4.17"></script>
  <link rel="preconnect" href="https://fonts.googleapis.com">
  <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Instrument+Serif:ital@0;1&display=swap" rel="stylesheet">
  <script>
    tailwind.config = {
      theme: {
        extend: {
          colors: { flame: { DEFAULT: '#f26b38', deep: '#d9551f' }, coal: { DEFAULT: '#0e0e0e', soft: '#232323' }, mist: '#f3f3f3' },
          fontFamily: { sans: ['Inter', 'sans-serif'], serif: ['"Instrument Serif"', 'serif'] }
        }
      }
    }
  </script>
  <style>
    @view-transition { navigation: auto; }
    ::view-transition-old(root) { animation: 180ms ease-out both page-fade-out; }
    ::view-transition-new(root) { animation: 220ms ease-in both page-fade-in; }
    @keyframes page-fade-out { to { opacity: 0; } }
    @keyframes page-fade-in { from { opacity: 0; } }
    html { scroll-behavior: smooth; }
    [hidden] { display: none !important; }
    .no-scrollbar { scrollbar-width: none; }
    .no-scrollbar::-webkit-scrollbar { display: none; }
    .swap { transition: opacity .35s ease; }
    .reveal-ready [data-reveal] { opacity: 0; transform: translateY(24px); transition: opacity .6s ease, transform .6s ease; transition-delay: var(--reveal-delay, 0ms); }
    .reveal-ready [data-reveal].is-visible { opacity: 1; transform: none; }
    @media (prefers-reduced-motion: reduce) {
      html { scroll-behavior: auto; }
      .swap { transition: none; }
      ::view-transition-old(root), ::view-transition-new(root) { animation: none; }
    }
  </style>
</head>
<body class="bg-white font-sans text-coal antialiased">
<% active_page = "index" %>
<% nav = { "index" => "Home", "about" => "About Us", "services" => "Services", "testimonials" => "Testimonials" } %>
<% nav.each do |slug, label| %>
<% active = active_page == slug %>
<% end %>
<% nav.merge("pricing" => "Pricing", "contact" => "Contact").each do |slug, label| %>
<% active = active_page == slug %>
<% end %>
<% %w[avatar-1 avatar-2 avatar-5 avatar-3 avatar-6].each do |avatar| %>
<% end %>
<% [["Better health", "left-0 top-0"], ["Expert coaching", "left-0 top-[42%]"], ["Real community", "left-10 bottom-0"]].each do |(label, position)| %>
<% end %>
<% programs = [["Battle Rope Training", "1599058917212-d750089bc07e", "Woman training with battle ropes outdoors"], ["Bodyweight Workout", "1518611012118-696072aa579a", "Two women doing a bodyweight class"], ["Mobility & Stretch", "1599901860904-17e6ed7083a0", "Person stretching in a downward dog pose"], ["Strength Basics", "1541534741688-6078c6bfb5c5", "Woman lifting a barbell in a squat rack"], ["Run Club", "1607962837359-5e7e89f86776", "Group running together outdoors"]] %>
<% programs.each_with_index do |(title, photo, alt), index| %>
<% end %>
<% services = [["Personal Training", "fa-hand-holding-heart", "One coach, one plan, built around your goals and schedule."], ["Nutrition Plans", "fa-heart-pulse", "Simple meals and portions that support how you train."], ["Yoga & Mindfulness", "fa-spa", "Breath, balance and recovery for body and mind."], ["Cardio & Endurance", "fa-person-running", "Run, row and ride further without burning out."], ["Wellness Coaching", "fa-seedling", "Sleep, stress and habits — the stuff that makes it stick."], ["Online Coaching", "fa-laptop", "Expert programming and check-ins wherever you train."]] %>
<% services.each_with_index do |(title, icon, text), index| %>
<% end %>
<% routines = { "exercise" => ["Exercise", "3 km run today", 62, "96%", "+0.9%"], "food" => ["Healthy food", "1,850 kcal logged", 78, "88%", "+1.4%"], "gym" => ["Gym", "4 of 5 sessions", 80, "92%", "+2.1%"] } %>
<% routines.each_with_index do |(key, (label)), index| %>
<% end %>
<% rail = [["Stronger every week", "1517836357463-d25dfeac3438", "Athlete deadlifting a heavy barbell"], ["Train side by side", "1534258936925-c58bed479fcb", "Two people training with battle ropes"], ["Lift with intent", "1605296867304-46d5465a13f1", "Man setting up a deadlift in a dark gym"], ["Move as a team", "1554284126-aa88f22d8b74", "Group doing barbell squats together"]] %>
<% rail.each do |(title, photo, alt)| %>
<% end %>
<% plans = [["Kickstart", 89, 71, ["Weekly personal workout plan", "Monthly nutrition guide", "Check-ins every two weeks", "Full gym access"], false], ["Transform", 149, 119, ["Custom weekly workout plans", "Monthly meal plans with recipes", "Weekly 30-minute video coaching", "Access to member workshops"], true], ["Elite", 229, 183, ["Custom training and nutrition", "Two 1:1 sessions every week", "Unlimited plan changes", "Recovery and mobility sessions"], false]] %>
<% plans.each do |(name, monthly, annual, perks, featured)| %>
<% if featured %>
<% end %>
<% perks.each do |perk| %>
<% end %>
<% end %>
<!-- block:start footer -->
  <footer class="bg-mist">
    <div class="mx-auto max-w-7xl px-5 py-16 md:px-10">
      <div class="grid gap-10 border-b border-coal/10 pb-12 lg:grid-cols-[1.3fr_1fr]">
        <div>
          <p class="w-fit rounded-full bg-white px-3 py-1 text-xs"><i class="fa-solid fa-circle text-[6px] text-flame" aria-hidden="true"></i> Stay in touch</p>
          <p class="mt-5 text-3xl font-semibold leading-tight tracking-tight md:text-4xl">Your path to a stronger, healthier you <span class="font-serif font-normal italic">begins here.</span></p>
        </div>
        <div>
          <p class="font-medium">News, tips and class updates</p>
          <form class="mt-4 flex items-center gap-2" data-newsletter novalidate>
            <label for="footer-email" class="sr-only">Email</label>
            <input id="footer-email" name="email" type="email" required autocomplete="email" placeholder="Enter your email" class="min-w-0 flex-1 rounded-full border border-coal/15 bg-white px-5 py-3 text-sm focus:border-flame focus:outline-none">
            <button type="submit" class="rounded-full bg-flame px-5 py-3 text-xs font-semibold uppercase tracking-wide text-white transition hover:bg-flame-deep">Subscribe</button>
          </form>
          <p class="mt-2 text-xs text-coal/50">By subscribing you agree to our privacy policy.</p>
          <p class="mt-2 text-sm text-flame-deep" data-form-status role="status"></p>
        </div>
      </div>
      <div class="grid gap-10 py-12 sm:grid-cols-2 lg:grid-cols-[1.5fr_1fr_1fr_1fr]">
        <div>
          <a href="index.html" class="flex items-center gap-2 text-xl font-semibold"><span class="grid h-8 w-8 place-items-center rounded-lg bg-flame text-white"><i class="fa-solid fa-dumbbell text-xs" aria-hidden="true"></i></span>Corevia</a>
          <p class="mt-4 max-w-xs text-sm text-coal/60">Coaching, community and a plan that actually fits your week.</p>
          <p class="mt-5 flex gap-3"><% [["fa-facebook-f", "Facebook"], ["fa-instagram", "Instagram"], ["fa-youtube", "YouTube"], ["fa-twitter", "Twitter"]].each do |(icon, label)| %><a href="about.html" class="grid h-9 w-9 place-items-center rounded-full bg-flame text-sm text-white transition hover:bg-flame-deep" aria-label="<%= label %>"><i class="fa-brands <%= icon %>" aria-hidden="true"></i></a><% end %></p>
        </div>
        <div><h2 class="font-medium">Explore</h2><ul class="mt-4 grid gap-2 text-sm text-coal/60"><li><a href="index.html" class="hover:text-flame">Home</a></li><li><a href="pricing.html" class="hover:text-flame">Pricing</a></li><li><a href="services.html" class="hover:text-flame">Programs</a></li><li><a href="testimonials.html" class="hover:text-flame">Stories</a></li></ul></div>
        <div><h2 class="font-medium">About</h2><ul class="mt-4 grid gap-2 text-sm text-coal/60"><li><a href="about.html" class="hover:text-flame">Our story</a></li><li><a href="about.html" class="hover:text-flame">Coaches</a></li><li><a href="contact.html" class="hover:text-flame">Careers</a></li></ul></div>
        <div><h2 class="font-medium">Contact</h2><ul class="mt-4 grid gap-2 text-sm text-coal/60"><li>2150 Market St, Denver, CO</li><li><a href="mailto:hello@corevia.fit" class="hover:text-flame">hello@corevia.fit</a></li><li><a href="tel:+13035550148" class="hover:text-flame">(303) 555-0148</a></li></ul></div>
      </div>
      <p class="flex flex-wrap justify-between gap-4 border-t border-coal/10 pt-6 text-xs text-coal/50"><span>&copy; 2026 Corevia. All rights reserved.</span><a href="contact.html" class="hover:text-flame">Privacy policy</a><a href="contact.html" class="hover:text-flame">Terms of service</a></p>
    </div>
  </footer>
  <!-- block:end footer -->
<script>
    const reducedMotion = matchMedia('(prefers-reduced-motion: reduce)').matches;
    const watchMotion = !reducedMotion && !navigator.webdriver && 'IntersectionObserver' in window;

    document.querySelectorAll('[data-menu-toggle]').forEach((button) => {
      const menu = document.getElementById(button.getAttribute('aria-controls'));
      button.addEventListener('click', () => {
        const open = button.getAttribute('aria-expanded') === 'true';
        button.setAttribute('aria-expanded', String(!open));
        menu.classList.toggle('hidden', open);
      });
    });

    document.querySelectorAll('[data-video]').forEach((dialog) => {
      document.querySelectorAll('[data-video-open]').forEach((button) => button.addEventListener('click', () => dialog.showModal()));
      dialog.querySelector('[data-video-close]').addEventListener('click', () => dialog.close());
      dialog.addEventListener('click', (event) => { if (event.target === dialog) dialog.close(); });
    });

    document.querySelectorAll('[data-carousel], [data-rail]').forEach((root) => {
      const track = root.querySelector('[data-carousel-track], [data-rail-track]');
      const step = () => track.children[1].getBoundingClientRect().width + 20;
      const go = (dir) => {
        const max = track.scrollWidth - track.clientWidth - 4;
        if (dir > 0 && track.scrollLeft >= max) track.scrollTo({ left: 0, behavior: reducedMotion ? 'auto' : 'smooth' });
        else if (dir < 0 && track.scrollLeft <= 4) track.scrollTo({ left: track.scrollWidth, behavior: reducedMotion ? 'auto' : 'smooth' });
        else track.scrollBy({ left: dir * step(), behavior: reducedMotion ? 'auto' : 'smooth' });
      };
      root.querySelector('[data-carousel-prev], [data-rail-prev]').addEventListener('click', () => go(-1));
      root.querySelector('[data-carousel-next], [data-rail-next]').addEventListener('click', () => go(1));
    });

    document.querySelectorAll('[data-services]').forEach((root) => {
      const cards = [...root.querySelectorAll('[data-service]')];
      const set = (card) => cards.forEach((other) => other.setAttribute('aria-current', String(other === card)));
      cards.forEach((card) => { card.addEventListener('mouseenter', () => set(card)); card.addEventListener('focus', () => set(card)); });
    });

    document.querySelectorAll('[data-tracker]').forEach((root) => {
      const data = JSON.parse(root.querySelector('[data-routine-data]').textContent);
      const tabs = [...root.querySelectorAll('[data-routine]')];
      tabs.forEach((tab) => tab.addEventListener('click', () => {
        tabs.forEach((other) => other.setAttribute('aria-selected', String(other === tab)));
        const item = data[tab.dataset.routine];
        root.querySelector('[data-track-label]').textContent = item.text;
        root.querySelector('[data-track-score]').textContent = item.score;
        root.querySelector('[data-track-delta]').textContent = item.delta;
        const bar = root.querySelector('[data-track-bar]');
        bar.style.width = `${item.percent}%`;
        bar.parentElement.setAttribute('aria-valuenow', String(item.percent));
      }));
    });

    document.querySelectorAll('[data-pricing]').forEach((root) => {
      const toggle = root.querySelector('[data-annual]');
      toggle.addEventListener('change', () => {
        root.querySelectorAll('[data-price]').forEach((price) => { price.textContent = toggle.checked ? price.dataset.annual : price.dataset.monthly; });
        root.querySelector('[data-billing-note]').textContent = toggle.checked ? 'Billed yearly — you save 20%. Cancel anytime.' : 'Billed monthly. Cancel anytime.';
      });
    });

    document.querySelectorAll('[data-newsletter]').forEach((form) => {
      const status = form.parentElement.querySelector('[data-form-status]');
      form.addEventListener('submit', (event) => {
        event.preventDefault();
        const email = form.querySelector('[name="email"]');
        if (!email.value.trim() || !email.checkValidity()) { status.textContent = 'Please enter a valid email address.'; email.focus(); return; }
        status.textContent = "You're in! Look out for your first workout this week.";
        form.reset();
      });
    });

    if (watchMotion) {
      document.documentElement.classList.add('reveal-ready');
      const observer = new IntersectionObserver((entries) => entries.forEach((entry) => {
        if (entry.isIntersecting) { entry.target.classList.add('is-visible'); observer.unobserve(entry.target); }
      }), { threshold: 0.15 });
      document.querySelectorAll('[data-reveal]').forEach((el) => observer.observe(el));
    }
  </script>
</body>
</html>

From this template

Corevia screenshot

Health & Fitness

Corevia

Unlimited access to all products

Unlock the entire library of premium templates and blocks. Renews automatically, cancel anytime.

$20 / 3 months or $60 / year
Get Unlimited Access