Sticky Image Scroller

How It Works

From Idea to Launch in Record Time

Our end-to-end platform handles the heavy lifting so your team can focus on building what matters most.

Platform dashboard

Instant Performance Boost

See measurable improvements from day one. Our optimized infrastructure delivers sub-100ms response times across every touchpoint.

Enterprise-Grade Security

SOC 2 Type II certified with end-to-end encryption. Your data stays protected with automatic backups and role-based access controls.

Actionable Analytics

Go beyond vanity metrics. Track real business impact with custom dashboards, cohort analysis, and automated reporting delivered weekly.

Seamless Integrations

Connect with 200+ tools your team already uses. Two-click setup with Slack, HubSpot, Salesforce, and every major platform.

Global Edge Network

Serve users in 190+ countries with localized content delivery. Auto-scaling infrastructure handles traffic spikes without breaking a sweat.

AI-Powered Automation

Let intelligent workflows handle the repetitive work. From lead scoring to content optimization, AI keeps your pipeline moving 24/7.

About this block

Sticky Image ScrollerFREE

Two-column layout with sticky image and scrollable feature cards

Feature180: Sticky Image Scroller

A two-column layout: a sticky left column carries the section header and a single supporting image, while a right column of bordered feature cards scrolls past it, separated by a vertical divider.

Free block

This block is free. No license or account is required: install it with the CLI and use it in unlimited projects.

Installation

Radix flavor

bash
npx shadcn add "https://ui.beste.co/r/feature180"

Base UI flavor

bash
npx shadcn add "https://ui.beste.co/r-base/feature180"

This installs the block to components/beste/block/feature180.tsx and the badge shadcn/ui primitive it depends on.

Quick start

The installed file exports feature180Demo alongside the block: the exact props behind the preview above. Spread it to get a working sticky image layout in one line.

tsx
import { Feature180, feature180Demo } from "@/components/beste/block/feature180";

export default function Page() {
  return <Feature180 {...feature180Demo} />;
}

Then replace the demo with your own props. Written out, the same setup looks like this:

tsx
import { Zap, Shield, BarChart3 } from "lucide-react";
import { Feature180 } from "@/components/beste/block/feature180";

export default function Page() {
  return (
    <Feature180
      badge={{ label: "How it works", variant: "secondary" }}
      heading="From idea to launch in <strong>record time</strong>"
      description="Our end-to-end platform handles the heavy lifting."
      image={{ src: "https://images.unsplash.com/photo-1697133081695-90070de25bc3?w=800&h=900&fit=crop", alt: "Platform dashboard" }}
      features={[
        { icon: Zap, title: "Instant Performance Boost", description: "Sub-100ms response times." },
        { icon: Shield, title: "Enterprise-Grade Security", description: "SOC 2 Type II certified." },
        { icon: BarChart3, title: "Actionable Analytics", description: "Custom dashboards and cohort analysis." },
      ]}
    />
  );
}

Props

PropTypeDefaultDescription
badge{ label: string; variant?: "default" | "secondary" | "outline" }Optional eyebrow badge in the sticky column
headingstringSticky column heading. Supports inline <strong> markup, rendered via dangerouslySetInnerHTML
descriptionstringSticky column intro text
image{ src: string; alt: string }Supporting image shown below the description in the sticky column
featuresFeatureItem[][]Bordered icon, title, and description cards in the scrolling right column
classNamestringExtra classes for the outer <section>
ts
type FeatureItem = { icon: LucideIcon; title: string; description: string };

Behavior notes

  • On md and up, the left column becomes sticky at top-[100px], staying pinned while the right column's feature cards scroll past; below md the columns stack and stickiness is disabled.
  • image is a single slot, not a gallery: it renders in a fixed aspect-[4/3] rounded-md box with object-cover, and if omitted the sticky column simply ends after the description with no placeholder.
  • Each entry in features is wrapped in its own rounded-md border bg-card p-6 card, matching Feature179's bordered-card treatment rather than Feature178's plain rows.
  • The vertical divider between columns (hidden w-px bg-border md:block) always renders once the two-column layout is active, independent of content.

More Feature blocks

View all Feature
FREE

feature179

Sticky Stats Scroller

Two-column layout with sticky stats and scrollable feature cards

PRO

feature227

Sticky feature list with images

Sticky left intro paired with a stacked, numbered list of feature blocks, each with a title, description, and small image.

PRO

feature209

Sticky Services

Sticky intro column beside a scrollable stack of numbered service blocks.

PRO

feature229

Accordion Image Sync

Interactive feature section with an eyebrow, big heading and description above a two-column layout: a single-collapsible accordion of feature items on the left and a sticky image on the right that swaps to the active item's image on click.

FREE

feature178

Sticky Benefits Timeline

Two-column benefits section with sticky left content and scrollable timeline

PRO

feature185

Image Feature Cards Grid over Media

Three-column image feature cards grid with sticky header over background media and glass-morphism styling