Glass Pricing Card
A copy-paste glassmorphism component in pure HTML & CSS. Zero dependencies, framework-agnostic, MIT-licensed.
GlassmorphismHTMLCSSany framework
Pro
$24/mo
- Unlimited projects
- Priority support
Copy into your project
HTML
<div class="nuda-glass-pricing" tabindex="0">
<div class="nuda-glass-pricing__shine" aria-hidden="true"></div>
<p class="nuda-glass-pricing__tier">Pro</p>
<p class="nuda-glass-pricing__price"><span>$</span>24<small>/mo</small></p>
<ul class="nuda-glass-pricing__feats">
<li>Unlimited projects</li>
<li>Priority support</li>
</ul>
</div>CSS
/* Glass Pricing Card
Frosted tier card with a lime shine that sweeps on hover/focus.
Customize: --glass-pricing-accent */
.nuda-glass-pricing {
--glass-pricing-accent: #e4ff54;
position: relative;
width: 180px;
padding: 18px;
border-radius: 16px;
overflow: hidden;
background: rgba(255, 255, 255, 0.06);
border: 1px solid rgba(255, 255, 255, 0.12);
backdrop-filter: blur(12px) saturate(140%);
-webkit-backdrop-filter: blur(12px) saturate(140%);
box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35);
transition: transform 0.35s ease, border-color 0.35s ease;
outline: none;
}
.nuda-glass-pricing:hover,
.nuda-glass-pricing:focus-visible {
transform: translateY(-4px);
border-color: rgba(228, 255, 84, 0.4);
}
.nuda-glass-pricing:focus-visible {
box-shadow: 0 0 0 3px rgba(228, 255, 84, 0.5);
}
.nuda-glass-pricing__shine {
position: absolute;
top: -60%;
left: -60%;
width: 80%;
height: 220%;
background: linear-gradient(transparent, rgba(228, 255, 84, 0.25), transparent);
transform: translateX(-120%) rotate(20deg);
will-change: transform;
}
.nuda-glass-pricing:hover .nuda-glass-pricing__shine,
.nuda-glass-pricing:focus-visible .nuda-glass-pricing__shine {
animation: nuda-glass-pricing-shine 0.9s ease forwards;
}
.nuda-glass-pricing__tier {
margin: 0;
color: var(--glass-pricing-accent);
font: 700 0.72rem ui-sans-serif, system-ui;
text-transform: uppercase;
letter-spacing: 0.12em;
}
.nuda-glass-pricing__price {
margin: 0.3rem 0 0.6rem;
color: #fafafa;
font: 800 2rem ui-sans-serif, system-ui;
letter-spacing: -0.03em;
}
.nuda-glass-pricing__price span {
font-size: 1rem;
vertical-align: super;
}
.nuda-glass-pricing__price small {
font-size: 0.7rem;
font-weight: 500;
color: rgba(250, 250, 250, 0.5);
}
.nuda-glass-pricing__feats {
margin: 0;
padding: 0;
list-style: none;
display: flex;
flex-direction: column;
gap: 5px;
}
.nuda-glass-pricing__feats li {
color: rgba(250, 250, 250, 0.7);
font: 500 0.72rem ui-sans-serif, system-ui;
}
@keyframes nuda-glass-pricing-shine {
0% { transform: translateX(-120%) rotate(20deg); }
100% { transform: translateX(320%) rotate(20deg); }
}
@media (prefers-reduced-motion: reduce) {
.nuda-glass-pricing { transition: none; }
.nuda-glass-pricing:hover .nuda-glass-pricing__shine,
.nuda-glass-pricing:focus-visible .nuda-glass-pricing__shine {
animation: none;
opacity: 0.3;
transform: none;
}
}How to use Glass Pricing Card
Paste the HTML where you need it and the CSS into a global stylesheet (or a <style> tag). Every class is prefixed nuda- so it never collides with Tailwind or your own styles. Tweak the CSS custom properties to match your design system.
Works in React, Vue, Svelte, Astro, Next.js, Nuxt, Laravel Blade, Django, Rails — or a single .html file. No npm install, no build step.