{
  "name": "scrollReveal",
  "version": "2.0.0",
  "purpose": "The element fades in as it enters the viewport.",
  "output": "js",
  "engine": "gsap.ScrollTrigger",
  "paramSchema": {
    "from": {
      "type": "transform",
      "required": true
    },
    "duration": {
      "type": "number",
      "default": 0.8,
      "min": 0.1,
      "max": 3
    },
    "ease": {
      "type": "string",
      "default": "power3.out",
      "pattern": "^[A-Za-z0-9.()]{1,40}$"
    },
    "stagger": {
      "type": "number",
      "default": 0,
      "min": 0,
      "max": 0.5
    }
  },
  "triggerDefaults": {
    "start": "top 80%",
    "once": true
  },
  "performance": {
    "verified": true,
    "lcpSafe": true,
    "cost": 1,
    "verifiedAt": "2026-06-12"
  },
  "a11y": {
    "reducedMotionFallback": "instant-visible"
  },
  "template": "gsap.from({{target}}, Object.assign({{params.from}}, { duration: {{params.duration}}, ease: {{params.ease}}, stagger: {{params.stagger}}, scrollTrigger: { trigger: {{target}}, start: {{trigger.start}}, once: {{trigger.once}} } }));"
}
