View Categories

Sticky Content Widget

3 min read

Overview #

The Sticky Content widget creates a modern two-column layout where the left section stays fixed (sticky) while the right section scrolls through a grid of feature cards. This is a popular design pattern used on SaaS landing pages, product showcases, and feature highlight sections.

The sticky behavior is powered by a custom JavaScript engine with hardware-accelerated animations, smooth scroll tracking, and automatic mobile fallback.


Getting Started #

  1. Open any page in Elementor Editor
  2. Search for “Sticky Content” in the widget panel (under the PistonUI category)
  3. Drag the widget onto your page
  4. Edit the Left Content (title, description, button)
  5. Add your Cards in the Cards section
  6. Adjust layout widths and styling as needed
  7. Save and preview

Content Tab #

Left Content #

The sticky side of the layout. This section remains fixed as the user scrolls past the cards.

SettingDescriptionDefault
TitleMain heading text. Supports dynamic content.“PistonUI: Built for Speed…”
Title HTML TagSemantic heading tag (H1–H6)H2
DescriptionRich text editor (WYSIWYG) for detailed content. Supports dynamic content.
Show ButtonToggle the CTA button on/offOn
Button TextLabel displayed on the button“Explore Features”
Button LinkURL with target and nofollow options#
Button IconOptional icon from the Elementor icon library
Icon PositionPlace the icon before or after the button textAfter

Cards #

The scrollable side of the layout. Cards are displayed in a responsive grid.

Each card has:

FieldDescription
IconChoose from Font Awesome, Elementor icons, or custom SVGs
TitleCard heading text
DescriptionCard body text

Cards Columns — Number of columns in the card grid (1–3). Responsive controls for desktop, tablet, and mobile. Default: 2 columns on desktop/tablet, 1 on mobile.

Layout #

Fine-tune the split layout proportions and sticky behavior.

SettingDescriptionDefault
Left Content WidthWidth of the sticky section (20–70%)40%
Right Content WidthWidth of the scrollable cards section (30–80%)60%
Gap Between SectionsHorizontal space between left and right (20–120px)60px
Sticky Offset TopDistance from the top of the viewport when sticky (0–200px)40px

Tip: Left + Right widths should total approximately 100% minus the gap for best results. All layout controls are fully responsive — set different values for desktop, tablet, and mobile.


Style Tab #

Left Content Style #

SettingDescription
Title ColorColor of the sticky section heading
Title TypographyFull typography controls (font family, size, weight, line height, etc.)
Description ColorColor of the description text
Description TypographyFull typography controls for description

Button Style #

(Visible when Show Button is enabled)

SettingDescription
TypographyFont controls for button text
Text Color (Normal/Hover)Button text color with separate hover state
Background (Normal/Hover)Button background color with separate hover state
PaddingInner spacing of the button
BorderBorder style, width, and color
Border RadiusCorner rounding for the button

Cards Style #

SettingDescription
GapSpace between cards in the grid
Background (Normal/Hover)Card background color with hover state
Box Shadow (Normal/Hover)Shadow effect with hover state
Hover Border ColorBorder color change on hover
PaddingInner spacing of each card
BorderCard border style, width, and color
Border RadiusCorner rounding for cards

Card Icon:

SettingDescription
Color (Normal/Hover)Icon color with hover state
SizeIcon dimensions (10–100px)

Card Title:

SettingDescription
Color (Normal/Hover)Title color with hover state
TypographyFull typography controls

Card Description:

SettingDescription
Color (Normal/Hover)Description color with hover state
TypographyFull typography controls

How the Sticky Behavior Works #

The widget uses a custom JavaScript engine (no external dependencies) with three scroll states:

  1. Before sticky zone — Left content flows normally in the document
  2. Sticky zone — Left content becomes position: fixed and stays at the top while cards scroll past
  3. After sticky zone — Left content switches to position: absolute at the bottom of the wrapper, scrolling away naturally with the rest of the page

Performance features:

  • requestAnimationFrame for smooth 60fps scroll handling
  • Passive scroll listeners for zero scroll jank
  • ResizeObserver for responsive width changes
  • Hardware-accelerated transforms (translate3d)
  • Subtle velocity-based trailing animation for a polished feel
  • Respects prefers-reduced-motion accessibility setting

Mobile behavior: On screens ≤768px, the layout switches to a single column and sticky behavior is automatically disabled. The left content and cards stack vertically.


Responsive Behavior #

BreakpointLayoutCards GridSticky
Desktop (≥1025px)Side-by-side, 40/60 split2 columnsActive
Tablet (769–1024px)Side-by-side, 42/58 split2 columnsActive
Mobile (≤768px)Stacked vertically, 100% width1 columnDisabled
Small Mobile (≤480px)Stacked, compact spacing1 columnDisabled

All responsive values can be customized per breakpoint in Elementor’s responsive controls.

Scroll to Top