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

What it does

Capabilities

  • Three pricing tiers
  • Working monthly/annual billing toggle
  • Check/dash feature lists
  • Frosted-glass panels with backdrop blur
  • Animated gradient mesh backdrop
  • Luminous top-edge highlight lines
  • Hover lift states
  • Keyboard accessible toggle buttons

Preview

Live section

Interactive preview
Open preview
9:41 100%
devsnips.site/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
DevSnips AI ready Claude · Cursor · Windsurf

Agent skill & Model Context Protocol

Pass this section straight into your AI workflow. DevSnips exposes each resource as a structured, addressable registry entry, so your agent installs the real files instead of approximating them.

devsnips://sections/saas/pricing-table/sharp-glassmorphism
Prompt instruction
I want to use this DevSnips resource in production:

Page:
https://devsnips.site/library/tailwind/sections/saas/pricing-table/sharp-glassmorphism/

Install: npx devsnips add
Tailwind/Sections/SaaS/pricing-table/sharp-glassmorphism

This is the 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.

Use this DevSnips resource as the starting point for my project.
Adapt it to my project's stack and conventions, fix any issues,
and make it production-ready while preserving its intended design
and behavior.

Paste into ChatGPT, Claude or your agent — it already carries the page URL and the exact install path.

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