{
  "name": "revealScale",
  "version": "1.0.0",
  "purpose": "Pop-in on entering the viewport — the element fades in while scaling from slightly reduced up to 1 (fade + scale).",
  "output": "js",
  "engine": "gsap.ScrollTrigger",
  "paramSchema": {
    "fromScale": {
      "type": "number",
      "default": 0.9,
      "min": 0.5,
      "max": 1
    },
    "duration": {
      "type": "number",
      "default": 0.7,
      "min": 0.1,
      "max": 3
    },
    "ease": {
      "type": "string",
      "default": "power3.out",
      "pattern": "^[A-Za-z0-9.()]{1,40}$"
    }
  },
  "triggerDefaults": {
    "start": "top 80%",
    "once": true
  },
  "performance": {
    "verified": true,
    "lcpSafe": true,
    "cost": 1,
    "verifiedAt": "2026-07-04"
  },
  "a11y": {
    "reducedMotionFallback": "instant-visible"
  },
  "template": "gsap.from({{target}}, { opacity: 0, scale: {{params.fromScale}}, duration: {{params.duration}}, ease: {{params.ease}}, scrollTrigger: { trigger: {{target}}, start: {{trigger.start}}, once: {{trigger.once}} } });",
  "demo": {
    "html": "<div class=\"d-revealScale\" style=\"display:inline-flex;align-items:center;justify-content:center;width:10rem;height:6rem;border-radius:14px;background:var(--surface);border:1px solid var(--line)\">POP-IN</div>",
    "params": { "fromScale": 0.85, "duration": 0.7 }
  }
}
