sigilUI

use In View

Lightweight IntersectionObserver hook. Returns a ref and visibility boolean for scroll-triggered animations.

@sigil-ui/componentsReact

Import

import { useInView } from "@sigil-ui/components";

Usage

function MyComponent() {
  const { ref, inView } = useInView();

  return (
    <div ref={ref} style={{ opacity: inView ? 1 : 0 }}>
      {inView ? "Visible!" : "Not visible"}
    </div>
  );
}

Options

const { ref, inView } = useInView({
  threshold: 0.25,
  rootMargin: "0px 0px -100px 0px",
  once: false,
});

Options

OptionTypeDefaultDescription
thresholdnumber0.15Visibility threshold (0–1)
rootMarginstring"0px 0px -60px 0px"Observer root margin
oncebooleantrueStay visible after first trigger

Returns

PropertyTypeDescription
refRefObject<T>Attach to target element
inViewbooleanWhether element is in viewport