Section

Pricing Table — Sharp Glassmorphism

Frosted-glass three-tier SaaS pricing table floating over an animated gradient mesh — translucent panels with backdrop blur, luminous top edge highlights, a gradient CTA on the popular tier with a cyan glow badge, check/dash feature lists, and a working monthly/annual billing toggle that swaps the displayed prices live. Hover lift states add depth to the glass cards.

  • Section
  • Tailwind
  • HTML
  • MIT

Preview

Live section

Interactive preview
Open preview
9:41 100%
devsnips.dev/library/tailwind/sections/saas/pricing-table/sharp-glassmorphism/
fluid · no fixed width 100%
Dependencies: Tailwind CSS (CDN) · Google Fonts: Sora, JetBrains Mono Responsive · Keyboard-ready

Install

Add to your project

terminal
npx devsnips add Tailwind/Sections/SaaS/pricing-table/sharp-glassmorphism
registry path: Tailwind/Sections/SaaS/pricing-table/sharp-glassmorphism

Source

Implementation

code.html
<!--
Snippet Name: Pricing Table — Sharp Glassmorphism
Description: Frosted-glass three-tier SaaS pricing table floating over an animated gradient mesh, with a working monthly/annual billing toggle, gradient CTA on the popular tier, and check/dash feature lists.
Author: DevSnips Contributors
Usage Example: Drop onto any page whose parent provides a colored backdrop (or wrap in .sg-mesh). Toggle billing to swap prices live.
NOTE: glass panels need a colored backdrop behind them to read — sit this on .sg-mesh or a parent with a vivid background.
-->
<section class="relative w-full" data-pricing="sg">

  <!-- Billing toggle -->
  <div class="mb-10 flex flex-col items-center gap-3">
    <div role="radiogroup" aria-label="Billing period" class="inline-flex items-center rounded-full border border-white/20 bg-white/10 p-1 backdrop-blur-md">
      <button type="button" data-billing="monthly" aria-pressed="true" role="radio"
        class="billing-btn rounded-full px-5 py-1.5 sg-mono text-[12px] font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-white/60">
        Monthly
      </button>
      <button type="button" data-billing="annual" aria-pressed="false" role="radio"
        class="billing-btn rounded-full px-5 py-1.5 sg-mono text-[12px] font-medium transition-colors focus:outline-none focus-visible:ring-2 focus-visible:ring-white/60">
        Annual
        <span class="sg-mono ml-1 rounded-md bg-white/20 px-1 py-0.5 text-[10px] text-white">-20%</span>
      </button>
    </div>
    <p class="sg-mono text-[11px] text-white/60">save two months with annual billing</p>
  </div>

  <!-- Tiers grid -->
  <div class="grid grid-cols-1 gap-6 md:grid-cols-3">

    <!-- Starter -->
    <article class="relative flex flex-col overflow-hidden rounded-2xl border border-white/20 bg-white/10 p-6 backdrop-blur-2xl transition-transform duration-200 hover:-translate-y-1">
      <div class="pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-white/50 to-transparent" aria-hidden="true"></div>
      <header>
        <p class="sg-mono text-[11px] uppercase tracking-wider text-white/70">Starter</p>
        <h2 class="font-sora mt-2 text-[22px] font-bold tracking-tight text-white">Solo dev</h2>
        <p class="font-sora mt-2 text-[14px] leading-relaxed text-white/70">Ship side-projects with the core toolkit.</p>
      </header>

      <div class="mt-6 flex items-end gap-1.5 border-b border-white/15 pb-6">
        <span class="font-sora text-[44px] font-bold leading-none tracking-tighter text-white" data-price="starter">$0</span>
        <span class="sg-mono mb-1 text-[12px] text-white/60" data-period="starter">/mo</span>
      </div>

      <ul class="mt-6 flex-1 space-y-3.5" role="list">
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">1 project</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">Community snippets</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/15 bg-white/5 backdrop-blur">
            <span class="h-0.5 w-2.5 rounded-full bg-white/40"></span>
          </span>
          <span class="font-sora text-[14px] text-white/45">AI pair programmer</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/15 bg-white/5 backdrop-blur">
            <span class="h-0.5 w-2.5 rounded-full bg-white/40"></span>
          </span>
          <span class="font-sora text-[14px] text-white/45">Team workspace</span>
        </li>
      </ul>

      <a href="#" class="font-sora mt-6 block rounded-xl border border-white/25 bg-white/10 px-4 py-2.5 text-center text-[13px] font-medium text-white backdrop-blur transition-colors hover:bg-white/20 focus:outline-none focus-visible:ring-2 focus-visible:ring-white/60">
        Start free
      </a>
    </article>

    <!-- Pro (popular) -->
    <article class="relative -mt-3 flex flex-col overflow-hidden rounded-2xl border border-white/30 bg-white/15 p-6 shadow-[0_8px_40px_-12px_rgba(168,85,247,0.55)] backdrop-blur-2xl md:-mx-2" aria-describedby="pro-badge-sg">
      <div class="pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-white/70 to-transparent" aria-hidden="true"></div>
      <span id="pro-badge-sg" class="sg-mono absolute right-5 top-5 inline-flex items-center gap-1.5 rounded-full border border-white/30 bg-gradient-to-r from-fuchsia-500 to-indigo-500 px-2.5 py-1 text-[10px] font-medium text-white">
        <span class="sg-dot"></span> Popular
      </span>
      <header>
        <p class="sg-mono text-[11px] uppercase tracking-wider text-white/70">Pro</p>
        <h2 class="font-sora mt-2 text-[22px] font-bold tracking-tight text-white">Indie maker</h2>
        <p class="font-sora mt-2 text-[14px] leading-relaxed text-white/70">Everything you need to launch & iterate fast.</p>
      </header>

      <div class="mt-6 flex items-end gap-1.5 border-b border-white/15 pb-6">
        <span class="font-sora text-[44px] font-bold leading-none tracking-tighter text-white" data-price="pro">$19</span>
        <span class="sg-mono mb-1 text-[12px] text-white/60" data-period="pro">/mo</span>
      </div>

      <ul class="mt-6 flex-1 space-y-3.5" role="list">
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">Unlimited projects</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">All premium snippets</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">AI pair programmer</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/15 bg-white/5 backdrop-blur">
            <span class="h-0.5 w-2.5 rounded-full bg-white/40"></span>
          </span>
          <span class="font-sora text-[14px] text-white/45">Team workspace</span>
        </li>
      </ul>

      <a href="#" class="font-sora mt-6 block rounded-xl bg-gradient-to-r from-fuchsia-500 to-indigo-500 px-4 py-2.5 text-center text-[13px] font-semibold text-white shadow-[0_4px_20px_-4px_rgba(168,85,247,0.6)] transition-opacity hover:opacity-90 focus:outline-none focus-visible:ring-2 focus-visible:ring-white/70">
        Get Pro
      </a>
    </article>

    <!-- Team -->
    <article class="relative flex flex-col overflow-hidden rounded-2xl border border-white/20 bg-white/10 p-6 backdrop-blur-2xl transition-transform duration-200 hover:-translate-y-1">
      <div class="pointer-events-none absolute inset-x-0 top-0 h-px bg-gradient-to-r from-transparent via-white/50 to-transparent" aria-hidden="true"></div>
      <header>
        <p class="sg-mono text-[11px] uppercase tracking-wider text-white/70">Team</p>
        <h2 class="font-sora mt-2 text-[22px] font-bold tracking-tight text-white">Scale up</h2>
        <p class="font-sora mt-2 text-[14px] leading-relaxed text-white/70">Collaborate across the whole crew.</p>
      </header>

      <div class="mt-6 flex items-end gap-1.5 border-b border-white/15 pb-6">
        <span class="font-sora text-[44px] font-bold leading-none tracking-tighter text-white" data-price="team">$49</span>
        <span class="sg-mono mb-1 text-[12px] text-white/60" data-period="team">/mo</span>
      </div>

      <ul class="mt-6 flex-1 space-y-3.5" role="list">
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">Everything in Pro</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">Team workspace (10 seats)</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">SSO & audit logs</span>
        </li>
        <li class="flex items-start gap-3">
          <span class="sg-glow mt-0.5 flex h-5 w-5 shrink-0 items-center justify-center rounded-full border border-white/30 bg-white/20 backdrop-blur">
            <svg class="h-3 w-3 text-white" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="3" aria-hidden="true"><path d="M5 12l5 5L20 6" /></svg>
          </span>
          <span class="font-sora text-[14px] text-white/90">Priority support</span>
        </li>
      </ul>

      <a href="#" class="font-sora mt-6 block rounded-xl border border-white/25 bg-white/10 px-4 py-2.5 text-center text-[13px] font-medium text-white backdrop-blur transition-colors hover:bg-white/20 focus:outline-none focus-visible:ring-2 focus-visible:ring-white/60">
        Start team trial
      </a>
    </article>
  </div>

  <p class="sg-mono mt-6 text-center text-[11px] text-white/50">
    prices in USD · cancel anytime · no card required for free tier
  </p>

  <script>
    (function () {
      var root = document.currentScript.closest('[data-pricing]');
      if (!root) return;

      var PRICES = {
        starter: { monthly: '$0', annual: '$0', periodM: '/mo', periodA: '/yr' },
        pro:     { monthly: '$19', annual: '$182', periodM: '/mo', periodA: '/yr' },
        team:    { monthly: '$49', annual: '$470', periodM: '/mo', periodA: '/yr' }
      };

      var buttons = root.querySelectorAll('.billing-btn');
      function render(mode) {
        Object.keys(PRICES).forEach(function (tier) {
          var p = root.querySelector('[data-price="' + tier + '"]');
          var per = root.querySelector('[data-period="' + tier + '"]');
          if (p) p.textContent = PRICES[tier][mode];
          if (per) per.textContent = mode === 'annual' ? PRICES[tier].periodA : PRICES[tier].periodM;
        });
        buttons.forEach(function (b) {
          var active = b.getAttribute('data-billing') === mode;
          b.setAttribute('aria-pressed', String(active));
          b.classList.toggle('bg-white', active);
          b.classList.toggle('text-black', active);
          b.classList.toggle('text-white/80', !active);
        });
      }

      buttons.forEach(function (b) {
        b.addEventListener('click', function () {
          render(b.getAttribute('data-billing'));
        });
      });

      render('monthly');
    })();
  </script>
</section>
212 lines UTF-8 · LF · Spaces: 2

AI-ready

Available to your agent.

This section is reachable through the DevSnips CLI, MCP server and Skills integrations — one registry, one resource path.

Resource path

devsnips://sections/saas/pricing-table/sharp-glassmorphism

Continue browsing

View all