Section

Feature Grid — Vercel

Refined dark monochrome marketing feature grid with hairline borders, a subtle masked grid backdrop, a single teal accent, a glowing icon tile on the featured card, soft hover reveals, and a staggered IntersectionObserver entrance that respects prefers-reduced-motion.

  • Section
  • Tailwind
  • HTML
  • MIT

Preview

Live section

Interactive preview
Open preview
9:41 100%
devsnips.dev/library/tailwind/sections/marketing/feature-grid/vercel/
fluid · no fixed width 100%
Dependencies: Tailwind CSS (CDN) · Google Fonts: Geist, Geist Mono Responsive · Keyboard-ready · Reduced-motion

Install

Add to your project

terminal
npx devsnips add Tailwind/Sections/Marketing/feature-grid/vercel
registry path: Tailwind/Sections/Marketing/feature-grid/vercel

Source

Implementation

code.html
<!--
Snippet Name: Feature Grid — Vercel
Description: Refined dark monochrome feature grid with hairline borders, a subtle conic glow, a single teal accent, glowing icon dots, and soft hover reveals.
Author: DevSnips Contributors
Usage Example: Drop into a dark product shell to showcase product capabilities. Staggered entrance via IntersectionObserver and a reduced-motion guard are wired.
-->
<section class="relative w-full bg-[#050505] text-white" data-featuregrid="vc">
  <!-- Grid backdrop -->
  <div class="vc-grid-bg pointer-events-none absolute inset-x-0 top-0 h-[420px]" aria-hidden="true"></div>

  <div class="relative mx-auto max-w-6xl px-6 py-16 sm:py-20 lg:py-24">

    <!-- Heading -->
    <div class="fg-step max-w-xl">
      <p class="vc-mono mb-4 inline-flex items-center gap-2 rounded-full border border-white/10 bg-white/[0.03] px-3 py-1 text-[11px] text-white/50">
        <span class="vc-dot"></span> Marketing / Features
      </p>
      <h2 class="font-g text-4xl font-semibold leading-[1.05] tracking-tight sm:text-5xl">
        Everything you need<br>
        <span class="bg-gradient-to-r from-white to-white/40 bg-clip-text text-transparent">to ship faster.</span>
      </h2>
      <p class="mt-4 max-w-md font-g text-[15px] leading-relaxed text-white/50">
        Six building blocks that take you from blank canvas to deployed landing page — no design system wrangling required.
      </p>
    </div>

    <!-- Feature cards -->
    <ul class="mt-12 grid grid-cols-1 gap-px overflow-hidden rounded-[14px] border border-white/10 bg-white/[0.06] sm:grid-cols-2 lg:grid-cols-3" role="list">

      <!-- 1 -->
      <li class="fg-step">
        <article class="group relative h-full bg-[#0a0a0a] p-6 transition-colors duration-200 hover:bg-white/[0.04] focus-within:bg-white/[0.04]">
          <div class="flex h-10 w-10 items-center justify-center rounded-lg border border-white/10 bg-white/[0.03] text-white transition-colors duration-200 group-hover:border-white/20 group-hover:bg-white/[0.08]">
            <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M13 2 3 14h7l-1 8 10-12h-7l1-8z" /></svg>
          </div>
          <h3 class="mt-5 font-g text-[15px] font-semibold tracking-tight text-white">Instant Copy</h3>
          <p class="mt-2 font-g text-[13px] leading-relaxed text-white/50">Grab any section as a standalone snippet. Zero dependencies, zero build step, zero lock-in.</p>
          <a href="#" class="vc-mono mt-4 inline-flex items-center gap-1 text-[11px] text-white/60 transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30">Learn more <span aria-hidden="true">→</span></a>
        </article>
      </li>

      <!-- 2 -->
      <li class="fg-step">
        <article class="group relative h-full bg-[#0a0a0a] p-6 transition-colors duration-200 hover:bg-white/[0.04] focus-within:bg-white/[0.04]">
          <div class="flex h-10 w-10 items-center justify-center rounded-lg border border-white/10 bg-white/[0.03] text-white transition-colors duration-200 group-hover:border-white/20 group-hover:bg-white/[0.08]">
            <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><rect x="3" y="4" width="18" height="14" rx="0" /><path d="M3 9h18M8 4v5" /></svg>
          </div>
          <h3 class="mt-5 font-g text-[15px] font-semibold tracking-tight text-white">Three Styles</h3>
          <p class="mt-2 font-g text-[13px] leading-relaxed text-white/50">Brutalist, Vercel-dark, or frosted glass. One component, three distinct looks from shared tokens.</p>
          <a href="#" class="vc-mono mt-4 inline-flex items-center gap-1 text-[11px] text-white/60 transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30">Learn more <span aria-hidden="true">→</span></a>
        </article>
      </li>

      <!-- 3 — Featured -->
      <li class="fg-step">
        <article class="group relative h-full bg-[#0a0a0a] p-6 transition-colors duration-200 hover:bg-white/[0.04] focus-within:bg-white/[0.04]" aria-label="Featured feature">
          <span class="vc-mono absolute right-4 top-4 inline-flex items-center gap-1.5 rounded-full border border-[#50e3c2]/30 bg-[#50e3c2]/10 px-2 py-0.5 text-[10px] text-[#50e3c2]"><span class="vc-dot" style="margin-right:0"></span> New</span>
          <div class="flex h-10 w-10 items-center justify-center rounded-lg border border-[#50e3c2]/30 bg-[#50e3c2]/10 text-[#50e3c2] transition-colors duration-200 group-hover:border-[#50e3c2]/50">
            <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M4 17V9a4 4 0 0 1 4-4h8a4 4 0 0 1 4 4v8" /><path d="M4 13h16" /><circle cx="8" cy="20" r="1.4" fill="currentColor" stroke="none" /><circle cx="16" cy="20" r="1.4" fill="currentColor" stroke="none" /></svg>
          </div>
          <h3 class="mt-5 font-g text-[15px] font-semibold tracking-tight text-white">AI Tailwindgen</h3>
          <p class="mt-2 font-g text-[13px] leading-relaxed text-white/60">Describe a section, get production-ready markup tuned to your chosen style. Edit by hand anytime.</p>
          <a href="#" class="vc-mono mt-4 inline-flex items-center gap-1 text-[11px] text-[#50e3c2] transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30">Learn more <span aria-hidden="true">→</span></a>
        </article>
      </li>

      <!-- 4 -->
      <li class="fg-step">
        <article class="group relative h-full bg-[#0a0a0a] p-6 transition-colors duration-200 hover:bg-white/[0.04] focus-within:bg-white/[0.04]">
          <div class="flex h-10 w-10 items-center justify-center rounded-lg border border-white/10 bg-white/[0.03] text-white transition-colors duration-200 group-hover:border-white/20 group-hover:bg-white/[0.08]">
            <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M12 3a9 9 0 1 0 9 9" /><path d="M12 3v9l6 3" /></svg>
          </div>
          <h3 class="mt-5 font-g text-[15px] font-semibold tracking-tight text-white">Real Perf</h3>
          <p class="mt-2 font-g text-[13px] leading-relaxed text-white/50">No runtime CSS, no JS framework. Just HTML, Tailwind, and a few lines of vanilla script.</p>
          <a href="#" class="vc-mono mt-4 inline-flex items-center gap-1 text-[11px] text-white/60 transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30">Learn more <span aria-hidden="true">→</span></a>
        </article>
      </li>

      <!-- 5 -->
      <li class="fg-step">
        <article class="group relative h-full bg-[#0a0a0a] p-6 transition-colors duration-200 hover:bg-white/[0.04] focus-within:bg-white/[0.04]">
          <div class="flex h-10 w-10 items-center justify-center rounded-lg border border-white/10 bg-white/[0.03] text-white transition-colors duration-200 group-hover:border-white/20 group-hover:bg-white/[0.08]">
            <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><circle cx="12" cy="12" r="9" /><path d="M9 12l2 2 4-4" /></svg>
          </div>
          <h3 class="mt-5 font-g text-[15px] font-semibold tracking-tight text-white">A11y First</h3>
          <p class="mt-2 font-g text-[13px] leading-relaxed text-white/50">Semantic landmarks, ARIA where needed, visible focus rings, and full keyboard support out of the box.</p>
          <a href="#" class="vc-mono mt-4 inline-flex items-center gap-1 text-[11px] text-white/60 transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30">Learn more <span aria-hidden="true">→</span></a>
        </article>
      </li>

      <!-- 6 -->
      <li class="fg-step">
        <article class="group relative h-full bg-[#0a0a0a] p-6 transition-colors duration-200 hover:bg-white/[0.04] focus-within:bg-white/[0.04]">
          <div class="flex h-10 w-10 items-center justify-center rounded-lg border border-white/10 bg-white/[0.03] text-white transition-colors duration-200 group-hover:border-white/20 group-hover:bg-white/[0.08]">
            <svg class="h-5 w-5" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" aria-hidden="true"><path d="M4 6h16M4 12h16M4 18h10" /></svg>
          </div>
          <h3 class="mt-5 font-g text-[15px] font-semibold tracking-tight text-white">Responsive</h3>
          <p class="mt-2 font-g text-[13px] leading-relaxed text-white/50">Mobile-first grids that stack to one column and scale cleanly to wide desktops. No layout jank.</p>
          <a href="#" class="vc-mono mt-4 inline-flex items-center gap-1 text-[11px] text-white/60 transition-colors hover:text-white focus:outline-none focus-visible:ring-2 focus-visible:ring-white/30">Learn more <span aria-hidden="true">→</span></a>
        </article>
      </li>

    </ul>
  </div>

  <style>
    [data-featuregrid="vc"] .vc-mono { font-family: 'Geist Mono', ui-monospace, monospace; }
    [data-featuregrid="vc"] .font-g { font-family: 'Geist', sans-serif; }
    [data-featuregrid="vc"] .vc-dot { display: inline-block; height: 6px; width: 6px; border-radius: 9999px; background: #50e3c2; margin-right: 5px; box-shadow: 0 0 8px #50e3c2; vertical-align: middle; }
    [data-featuregrid="vc"] .vc-grid-bg {
      background-image:
        linear-gradient(rgba(255,255,255,0.025) 1px, transparent 1px),
        linear-gradient(90deg, rgba(255,255,255,0.025) 1px, transparent 1px);
      background-size: 44px 44px;
      mask-image: radial-gradient(80% 60% at 50% 0%, #000 40%, transparent 100%);
    }
    [data-featuregrid="vc"] .fg-step { opacity: 0; transform: translateY(12px); }
    [data-featuregrid="vc"].fg-ready .fg-step { animation: vc-rise 0.5s cubic-bezier(.2,.7,.2,1) forwards; }
    [data-featuregrid="vc"].fg-ready .fg-step:nth-child(1) { animation-delay: 0.04s; }
    [data-featuregrid="vc"].fg-ready .fg-step:nth-child(2) { animation-delay: 0.10s; }
    [data-featuregrid="vc"].fg-ready .fg-step:nth-child(3) { animation-delay: 0.16s; }
    [data-featuregrid="vc"].fg-ready .fg-step:nth-child(4) { animation-delay: 0.22s; }
    [data-featuregrid="vc"].fg-ready .fg-step:nth-child(5) { animation-delay: 0.28s; }
    [data-featuregrid="vc"].fg-ready .fg-step:nth-child(6) { animation-delay: 0.34s; }
    @keyframes vc-rise { to { opacity: 1; transform: none; } }
    @media (prefers-reduced-motion: reduce) {
      [data-featuregrid="vc"] .fg-step { animation: none !important; opacity: 1 !important; transform: none !important; }
    }
  </style>

  <script>
    (function () {
      var root = document.currentScript.closest('[data-featuregrid="vc"]');
      if (!root) return;
      var reduce = window.matchMedia && window.matchMedia('(prefers-reduced-motion: reduce)').matches;
      if (reduce) { root.classList.add('fg-ready'); return; }
      if ('IntersectionObserver' in window) {
        var io = new IntersectionObserver(function (entries) {
          entries.forEach(function (e) {
            if (e.isIntersecting) { root.classList.add('fg-ready'); io.disconnect(); }
          });
        }, { threshold: 0.15 });
        io.observe(root);
      } else {
        requestAnimationFrame(function () { root.classList.add('fg-ready'); });
      }
    })();
  </script>
</section>
149 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/marketing/feature-grid/vercel

Continue browsing

View all