10 CSS Feature Sections 07 / 10

CSS SaaS Features Section 2025

A full SaaS hero with animated mesh-gradient background, shimmer-gradient headline, live-pulse “Now in beta” ticker, G2/Capterra social proof strip, and three alternating feature rows with abstract stat mockups.

Pure CSS MIT licensed
Live Demo Open in tab
Open in playground

The code

<section class="fs07">
  <div class="fs07__hero">
    <div class="fs07__hero-mesh"></div>
    <div class="fs07__ticker">
      <div class="fs07__ticker-dot"></div>
      Now in public beta · 2025
    </div>
    <h2 class="fs07__h1">
      The SaaS platform<br>
      <span class="fs07__h1-word fs07__h1-word--gradient">built for what's next</span>
    </h2>
    <p class="fs07__hero-sub">Stop stitching together tools. One platform to collect, analyze, automate, and act — engineered for the pace modern teams actually move at.</p>
    <div class="fs07__cta-group">
      <a href="#" class="fs07__cta fs07__cta--primary">Start your free trial →</a>
      <a href="#" class="fs07__cta fs07__cta--text">See a 3-min demo</a>
    </div>
  </div>

  <div class="fs07__proof">
    <span class="fs07__proof-item">4.9 / 5 on G2</span>
    <span class="fs07__proof-item">4.8 / 5 on Capterra</span>
    <span class="fs07__proof-item">Trusted by 10,000+ teams</span>
  </div>

  <div class="fs07__section">
    <div class="fs07__section-label">Feature highlights</div>
    <h2 class="fs07__section-title">Three things your current stack can't do</h2>

    <div class="fs07__feat-row">
      <div>
        <div class="fs07__feat-eyebrow">Automation</div>
        <div class="fs07__feat-title">Workflows that write themselves from your data</div>
        <div class="fs07__feat-body">Describe the outcome you want in plain English. The platform reads your event schema, maps triggers to actions, and suggests a fully-wired pipeline before you write a single line.</div>
        <ul class="fs07__feat-list">
          <li>Natural language workflow creation</li>
          <li>Auto-detected triggers from your event stream</li>
          <li>One-click deploy to production</li>
        </ul>
      </div>
      <div class="fs07__feat-vis">
        <div class="fs07__vis-card">
          <div class="fs07__vis-bar fs07__vis-bar--1"></div>
          <div class="fs07__vis-bar"></div>
          <div class="fs07__vis-bar" style="width:45%"></div>
          <div class="fs07__vis-stat">
            <div class="fs07__vis-stat-box">
              <div class="fs07__vis-stat-num" style="color:#8b5cf6">94%</div>
              <div class="fs07__vis-stat-lbl">Faster setup</div>
            </div>
            <div class="fs07__vis-stat-box">
              <div class="fs07__vis-stat-num" style="color:#8b5cf6">0</div>
              <div class="fs07__vis-stat-lbl">Lines of code</div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="fs07__feat-row">
      <div>
        <div class="fs07__feat-eyebrow">Analytics</div>
        <div class="fs07__feat-title">Answers, not just charts. Ask any question.</div>
        <div class="fs07__feat-body">No SQL. No BI tool. Type your question and get a chart, a number, or a ranked list — backed by the data in your warehouse, rendered in seconds.</div>
        <ul class="fs07__feat-list">
          <li>Natural language querying over your live data</li>
          <li>Drill-down filters surfaced automatically</li>
          <li>Shareable snapshots with one click</li>
        </ul>
      </div>
      <div class="fs07__feat-vis">
        <div class="fs07__vis-card">
          <div class="fs07__vis-bar fs07__vis-bar--2"></div>
          <div class="fs07__vis-bar"></div>
          <div class="fs07__vis-bar" style="width:70%"></div>
          <div class="fs07__vis-stat">
            <div class="fs07__vis-stat-box">
              <div class="fs07__vis-stat-num" style="color:#ec4899">3s</div>
              <div class="fs07__vis-stat-lbl">Query time</div>
            </div>
            <div class="fs07__vis-stat-box">
              <div class="fs07__vis-stat-num" style="color:#ec4899">∞</div>
              <div class="fs07__vis-stat-lbl">Data sources</div>
            </div>
          </div>
        </div>
      </div>
    </div>

    <div class="fs07__feat-row">
      <div>
        <div class="fs07__feat-eyebrow">Security</div>
        <div class="fs07__feat-title">Enterprise-grade security without the enterprise price tag</div>
        <div class="fs07__feat-body">SOC 2 Type II certified, GDPR-compliant data residency, and passkey-first authentication. No additional SKUs required for any of it.</div>
        <ul class="fs07__feat-list">
          <li>SOC 2 Type II, HIPAA, ISO 27001</li>
          <li>Hardware key + passkey MFA built-in</li>
          <li>Regional data residency on all plans</li>
        </ul>
      </div>
      <div class="fs07__feat-vis">
        <div class="fs07__vis-card">
          <div class="fs07__vis-bar fs07__vis-bar--3"></div>
          <div class="fs07__vis-bar"></div>
          <div class="fs07__vis-bar" style="width:55%"></div>
          <div class="fs07__vis-stat">
            <div class="fs07__vis-stat-box">
              <div class="fs07__vis-stat-num" style="color:#3b82f6">3</div>
              <div class="fs07__vis-stat-lbl">Certifications</div>
            </div>
            <div class="fs07__vis-stat-box">
              <div class="fs07__vis-stat-num" style="color:#3b82f6">$0</div>
              <div class="fs07__vis-stat-lbl">Add-on cost</div>
            </div>
          </div>
        </div>
      </div>
    </div>
  </div>
</section>
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

.fs07 {
  font-family: 'Inter', sans-serif;
  background: #fff;
  color: #0f0f14;
  overflow: hidden;
}

/* Hero strip */
.fs07__hero {
  position: relative;
  padding: 100px 24px 80px;
  text-align: center;
  overflow: hidden;
}

.fs07__hero-mesh {
  position: absolute;
  inset: 0;
  background:
    radial-gradient(ellipse 80% 50% at 20% 40%, rgba(139,92,246,0.12) 0%, transparent 60%),
    radial-gradient(ellipse 60% 40% at 80% 60%, rgba(236,72,153,0.1) 0%, transparent 60%),
    radial-gradient(ellipse 50% 60% at 50% 0%, rgba(59,130,246,0.08) 0%, transparent 60%);
  pointer-events: none;
}

.fs07__ticker {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-size: 13px;
  font-weight: 500;
  color: #6b7280;
  border: 1px solid #e5e7eb;
  padding: 6px 16px;
  border-radius: 100px;
  margin-bottom: 32px;
}

.fs07__ticker-dot {
  width: 6px; height: 6px;
  border-radius: 50%;
  background: #22c55e;
  box-shadow: 0 0 6px #22c55e;
  animation: fs07-blink 2s ease-in-out infinite;
}

@keyframes fs07-blink {
  0%, 100% { opacity: 1; }
  50% { opacity: 0.3; }
}

.fs07__h1 {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(40px, 6vw, 78px);
  font-weight: 800;
  letter-spacing: -0.03em;
  line-height: 1.05;
  margin-bottom: 24px;
  position: relative;
}

.fs07__h1-word {
  display: inline-block;
  position: relative;
}

.fs07__h1-word--gradient {
  background: linear-gradient(135deg, #8b5cf6, #ec4899, #3b82f6);
  -webkit-background-clip: text;
  -webkit-text-fill-color: transparent;
  background-clip: text;
  background-size: 200%;
  animation: fs07-shift 4s ease-in-out infinite alternate;
}

@keyframes fs07-shift {
  from { background-position: 0% 50%; }
  to { background-position: 100% 50%; }
}

.fs07__hero-sub {
  font-size: 18px;
  color: #6b7280;
  max-width: 520px;
  margin: 0 auto 40px;
  line-height: 1.65;
}

.fs07__cta-group {
  display: flex;
  justify-content: center;
  gap: 12px;
  flex-wrap: wrap;
}

.fs07__cta {
  display: inline-flex; align-items: center; gap: 8px;
  font-size: 15px;
  font-weight: 600;
  padding: 13px 28px;
  border-radius: 12px;
  text-decoration: none;
  transition: transform 0.2s, box-shadow 0.2s;
}

.fs07__cta:hover { transform: translateY(-2px); }

.fs07__cta--primary {
  background: linear-gradient(135deg, #8b5cf6, #ec4899);
  color: #fff;
  box-shadow: 0 4px 20px rgba(139,92,246,0.35);
}

.fs07__cta--primary:hover {
  box-shadow: 0 8px 30px rgba(139,92,246,0.45);
}

.fs07__cta--text { color: #6b7280; background: none; font-size: 14px; }

/* Social proof strip */
.fs07__proof {
  padding: 20px 24px 0;
  display: flex;
  justify-content: center;
  align-items: center;
  gap: 32px;
  flex-wrap: wrap;
}

.fs07__proof-item {
  font-size: 13px;
  color: #9ca3af;
  display: flex; align-items: center; gap: 6px;
}

.fs07__proof-item::before {
  content: '★★★★★';
  font-size: 11px;
  color: #f59e0b;
}

/* Features section */
.fs07__section {
  padding: 80px 24px;
  max-width: 1100px;
  margin: 0 auto;
}

.fs07__section-label {
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #8b5cf6;
  text-align: center;
  margin-bottom: 12px;
}

.fs07__section-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(28px, 4vw, 46px);
  font-weight: 800;
  letter-spacing: -0.02em;
  text-align: center;
  margin-bottom: 56px;
}

/* Alternating feature rows */
.fs07__feat-row {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 60px;
  align-items: center;
  margin-bottom: 80px;
}

.fs07__feat-row:nth-child(even) .fs07__feat-vis { order: -1; }

.fs07__feat-eyebrow {
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  margin-bottom: 14px;
}

.fs07__feat-row:nth-child(1) .fs07__feat-eyebrow { color: #8b5cf6; }
.fs07__feat-row:nth-child(2) .fs07__feat-eyebrow { color: #ec4899; }
.fs07__feat-row:nth-child(3) .fs07__feat-eyebrow { color: #3b82f6; }

.fs07__feat-title {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: clamp(22px, 2.5vw, 32px);
  font-weight: 800;
  letter-spacing: -0.02em;
  line-height: 1.2;
  margin-bottom: 14px;
}

.fs07__feat-body {
  font-size: 15px;
  line-height: 1.7;
  color: #6b7280;
  margin-bottom: 24px;
}

.fs07__feat-list {
  list-style: none;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.fs07__feat-list li {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  font-size: 14px;
  color: #374151;
}

.fs07__feat-list li::before {
  content: '→';
  font-weight: 700;
  flex-shrink: 0;
  margin-top: 1px;
}

.fs07__feat-row:nth-child(1) .fs07__feat-list li::before { color: #8b5cf6; }
.fs07__feat-row:nth-child(2) .fs07__feat-list li::before { color: #ec4899; }
.fs07__feat-row:nth-child(3) .fs07__feat-list li::before { color: #3b82f6; }

/* Visual areas */
.fs07__feat-vis {
  border-radius: 20px;
  aspect-ratio: 4/3;
  position: relative;
  overflow: hidden;
  display: flex; align-items: center; justify-content: center;
}

.fs07__feat-row:nth-child(1) .fs07__feat-vis { background: linear-gradient(135deg, #f5f0ff, #ede8ff); }
.fs07__feat-row:nth-child(2) .fs07__feat-vis { background: linear-gradient(135deg, #fff0f7, #ffe8f4); }
.fs07__feat-row:nth-child(3) .fs07__feat-vis { background: linear-gradient(135deg, #eff6ff, #dbeafe); }

.fs07__vis-card {
  background: #fff;
  border-radius: 14px;
  padding: 20px;
  width: 82%;
  box-shadow: 0 16px 48px rgba(0,0,0,0.1);
}

.fs07__vis-bar { height: 8px; border-radius: 4px; background: #eee; margin-bottom: 8px; }
.fs07__vis-bar--1 { width: 65%; background: linear-gradient(90deg, #8b5cf6, #c4b5fd); }
.fs07__vis-bar--2 { width: 80%; background: linear-gradient(90deg, #ec4899, #f9a8d4); }
.fs07__vis-bar--3 { width: 55%; background: linear-gradient(90deg, #3b82f6, #93c5fd); }

.fs07__vis-stat {
  display: flex; gap: 12px; margin-top: 16px;
}

.fs07__vis-stat-box {
  flex: 1; padding: 12px; background: #f9fafb; border-radius: 10px; text-align: center;
}

.fs07__vis-stat-num {
  font-family: 'Bricolage Grotesque', sans-serif;
  font-size: 22px;
  font-weight: 800;
}

.fs07__vis-stat-lbl { font-size: 10px; color: #9ca3af; margin-top: 2px; }

@media (max-width: 700px) {
  .fs07__feat-row { grid-template-columns: 1fr; gap: 32px; }
  .fs07__feat-row:nth-child(even) .fs07__feat-vis { order: 0; }
  .fs07__proof { flex-direction: column; gap: 8px; }
}

@media (prefers-reduced-motion: reduce) {
  .fs07__ticker-dot, .fs07__h1-word--gradient { animation: none; }
  .fs07__cta { transition: none; }
}

Search CodeFronts

Loading…