Components general

ScrollReveal

Scroll-triggered animations that reveal content as the user scrolls down the page. Supports stagger mode for card grids where children animate one‑by‑one and uses IntersectionObserver for performance.

Aktualisiert Mar 6, 2026

ScrollReveal

Scroll-triggered animations that reveal content as the user scrolls down the page. Supports stagger mode for card grids where children animate one‑by‑one and uses IntersectionObserver for performance.

Use Cases

  • Card grids with staggered entrance (most common – use stagger=true)
  • Feature sections with cards appearing sequentially
  • Testimonial cards appearing one by one
  • Timeline sections revealing progressively
  • Photo galleries with staggered reveals
  • Stats/metrics appearing in sequence

Properties

animation

Type of reveal animation. Type: string. Options: fadeIn, slideInUp, slideInLeft, slideInRight, scaleIn. Default: fadeIn. Tip: Recommendations – subtle: fadeIn (weddings, professional); vertical: slideInUp (most common, natural); sideBySide: slideInLeft or slideInRight (hero layouts); dynamic: scaleIn (celebrations, bold statements).

duration

Animation duration in seconds. 0.6‑1s is modern and subtle. Type: number. Default: 0.8.

delay

Delay before animation starts (in seconds). Usually 0 when using stagger. Type: number. Default: 0.

easing

Animation easing curve. Use ‘smooth’ (Stripe‑style) for professional sites. Type: string. Options: smooth, swift, bouncy, elastic, ease-out, ease-in-out, ease, ease-in. Default: smooth. Tip: Recommendations – professional: smooth (Stripe’s signature curve – default, use this most of the time); modern: swift (Material Design – quick and responsive); playful: bouncy (fun overshoot effect – kids/games only); attention: elastic (dramatic – use sparingly).

threshold

Trigger when % of element is visible (0‑1). 0.3 = reveals when 30% visible (good default). Type: number. Default: 0.3.

triggerOnce

Trigger once (true) or repeat on scroll out/in (false). Usually true for cleaner UX. Type: boolean. Default: true.

stagger

Enable staggered reveal for child elements. When true, children animate one‑by‑one instead of all at once. HIGHLY RECOMMENDED for card grids. Type: boolean. Default: false.

staggerDelay

Delay between each child animation in seconds. 0.1s is subtle, 0.15s is more dramatic. Type: number. Default: 0.1.

staggerDirection

Order of stagger animation. forward=first-to-last, reverse=last-to-first, center=middle‑outward. Type: string. Options: forward, reverse, center. Default: forward.

Best Practices

  • REQUIRED: Every landing/home page MUST have at least 2‑3 ScrollReveal sections
  • For card grids: Use stagger=true instead of manually setting delays on each card
  • Use easing='smooth' (Stripe‑style) for professional feel – this is the default
  • Use easing='bouncy' for playful/fun sites only
  • Pair with duration 0.6‑1s for modern, subtle feel (fast feels janky)
  • Use slideInUp for vertical content (most common and natural)
  • Use fadeIn for subtle, elegant reveals (weddings, professional)
  • Set threshold=0.3 (reveals when 30% visible – good default)
  • Set triggerOnce=true for single reveal (triggerOnce=false for repeat on scroll)
  • Good for: Hero images, testimonials, timeline items, gallery images, feature cards
  • Avoid: Form inputs, buttons, navigation, headers, footers
  • NEVER skip animations entirely – sites without motion feel static and lifeless

Common Mistakes

Wrapping each card in separate ScrollReveal with manual delays

Why it's a problem: Verbose and error‑prone – stagger mode does this automatically

Fix: Wrap the Grid in ONE ScrollReveal with stagger=true, staggerDelay=0.1

Using ScrollReveal on every element

Why it's a problem: Overuse makes pages feel gimmicky and annoying – reduces impact

Fix: Use on 3‑5 key sections maximum per page (hero, testimonials, timeline, gallery)

Using fast duration (< 0.5s)

Why it's a problem: Fast animations feel janky and cheap

Fix: Use 0.6‑1s for modern, subtle feel

Using ScrollReveal on navigation, headers, forms

Why it's a problem: Users expect instant access to navigation and forms – delays frustrate

Fix: ONLY use on content sections (stories, timelines, galleries, testimonials)

Using default easing='ease' instead of 'smooth'

Why it's a problem: Default CSS easing feels generic and unpolished

Fix: Use easing='smooth' for Stripe‑quality animations

Tags

scrollreveal animations card grids feature sections testimonial cards

Verwandte Komponenten

Bereit zu bauen?

Starten Sie die Erstellung Ihrer App kostenlos mit Qödiak.

Kostenlos loslegen

Verwandte Artikel

AnimatedGradient

Smooth animated gradient background for modern, premium aesthetics. Supports linear and radial gradients with configurable colors, animation speed, and intensity. GPU‑accelerated for smooth 60fps performance.

Button

Interactive button component that supports link navigation, page data source operations (record navigation, new record, mode switching), form submission, and custom JavaScript execution. Save/Delete actions must use a custom‑script with navigation. Two visual variants are available, and the button can be enabled or disabled dynamically based on data context.

Calendar

A full‑featured calendar component built with react‑big‑calendar. It can display events in month, week, day, or agenda views and includes navigation and view‑switching capabilities, making it suitable for any site that needs scheduling, event management, or date visualization.

Card

Feature card component with an icon, title, description, and entrance animations. Ideal for showcasing features, services, or benefits in grid layouts with animation support.

Checkbox

A checkbox group component that lets users select multiple options from a predefined list. It renders a set of checkboxes with individual labels and can be arranged vertically or horizontally.

CountdownTimer

Real-time countdown timer component that displays the time remaining until a target date/time. It updates every second, offers customizable formatting, and shows a completion message when the countdown ends. Suitable for any site type.