{
  "name": "grid-lift",
  "type": "registry:component",
  "title": "Grid Lift",
  "description": "Interactive lifted grid mask with SVG/text modes, pointer-driven depth, and remixable controls.",
  "dependencies": [],
  "registryDependencies": [],
  "exportName": "GridLift",
  "exportKind": "default",
  "tier": "pro",
  "version": "1.1.0",
  "changelog": [
    {
      "version": "1.1.0",
      "date": "2026-07-22",
      "summary": "Added reduced-motion notice",
      "breaking": false
    },
    {
      "version": "1.0.0",
      "date": "2026-06-04",
      "summary": "Initial release",
      "breaking": false
    }
  ],
  "props": [
    {
      "name": "maskScale",
      "type": "number",
      "default": 1.08,
      "description": "Scale applied to the text/SVG mask."
    },
    {
      "name": "fontSize",
      "type": "number",
      "default": 350,
      "description": "Base font size used to fit the text mask (Text mode only)."
    },
    {
      "name": "fontWeight",
      "type": "number",
      "default": 200,
      "description": "Font weight used for the text mask (Text mode only)."
    },
    {
      "name": "interactionRange",
      "type": "number",
      "default": 120,
      "description": "Distance from the mask shape at which cursor interaction starts registering."
    },
    {
      "name": "hoverRadius",
      "type": "number",
      "default": 550,
      "description": "Radius of cursor influence over grid cells."
    },
    {
      "name": "hoverFalloff",
      "type": "number",
      "default": 1.55,
      "description": "Falloff curve power applied across the hover radius."
    },
    {
      "name": "liftRotation",
      "type": "number",
      "default": -88,
      "description": "Direction, in degrees, that lifted cells are extruded toward."
    },
    {
      "name": "liftHeight",
      "type": "number",
      "default": 58,
      "description": "Maximum extrusion distance for lifted cells."
    },
    {
      "name": "liftSmoothness",
      "type": "number",
      "default": 0.08,
      "description": "Lerp smoothing factor applied to the lift animation."
    },
    {
      "name": "gridSpacing",
      "type": "number",
      "default": 13,
      "description": "Spacing between grid cells, in pixels."
    },
    {
      "name": "strokeSize",
      "type": "number",
      "default": 1.15,
      "description": "Line width for the grid strokes."
    },
    {
      "name": "baseOpacity",
      "type": "number",
      "default": 1,
      "description": "Opacity of the resting (unlifted) grid."
    },
    {
      "name": "hoverOpacity",
      "type": "number",
      "default": 0.6,
      "description": "Opacity of the lifted grid highlight."
    },
    {
      "name": "backgroundColor",
      "type": "color",
      "default": "#000000",
      "description": "Canvas background color."
    },
    {
      "name": "gridColor",
      "type": "color",
      "default": "#272727",
      "description": "Color of the resting grid lines."
    },
    {
      "name": "hoverColor",
      "type": "color",
      "default": "#ffffff",
      "description": "Color of the lifted grid highlight."
    }
  ],
  "remixer": {
    "enabled": true,
    "defaultOpenGroupId": "controls",
    "layout": {
      "controlsButtonClassName": "right-4! top-25!"
    },
    "panel": {
      "className": "right-0! top-[132px]! h-[calc(100%-132px)]! w-[344px]!"
    },
    "controls": [
      {
        "name": "maskScale",
        "label": "Mask Scale",
        "type": "range",
        "group": "controls",
        "min": 0.2,
        "max": 3,
        "step": 0.01
      },
      {
        "name": "fontSize",
        "label": "Font Size",
        "type": "range",
        "group": "controls",
        "min": 40,
        "max": 520,
        "step": 1
      },
      {
        "name": "fontWeight",
        "label": "Font Weight",
        "type": "range",
        "group": "controls",
        "min": 100,
        "max": 1000,
        "step": 100
      },
      {
        "name": "interactionRange",
        "label": "Interaction Range",
        "type": "range",
        "group": "controls",
        "min": 10,
        "max": 300,
        "step": 1
      },
      {
        "name": "hoverRadius",
        "label": "Hover Radius",
        "type": "range",
        "group": "controls",
        "min": 80,
        "max": 1200,
        "step": 1
      },
      {
        "name": "hoverFalloff",
        "label": "Hover Falloff",
        "type": "range",
        "group": "controls",
        "min": 0.4,
        "max": 4,
        "step": 0.05
      },
      {
        "name": "liftRotation",
        "label": "Lift Rotation",
        "type": "range",
        "group": "controls",
        "min": -180,
        "max": 180,
        "step": 1
      },
      {
        "name": "liftHeight",
        "label": "Lift Height",
        "type": "range",
        "group": "controls",
        "min": 0,
        "max": 180,
        "step": 1
      },
      {
        "name": "liftSmoothness",
        "label": "Lift Smoothness",
        "type": "range",
        "group": "controls",
        "min": 0.01,
        "max": 0.35,
        "step": 0.01
      },
      {
        "name": "gridSpacing",
        "label": "Grid Spacing",
        "type": "range",
        "group": "controls",
        "min": 6,
        "max": 40,
        "step": 1
      },
      {
        "name": "strokeSize",
        "label": "Stroke Size",
        "type": "range",
        "group": "controls",
        "min": 0.4,
        "max": 4,
        "step": 0.1
      },
      {
        "name": "baseOpacity",
        "label": "Base Opacity",
        "type": "range",
        "group": "controls",
        "min": 0.05,
        "max": 1,
        "step": 0.01
      },
      {
        "name": "hoverOpacity",
        "label": "Lift Opacity",
        "type": "range",
        "group": "controls",
        "min": 0.1,
        "max": 1,
        "step": 0.01
      },
      {
        "name": "backgroundColor",
        "label": "Background",
        "type": "color",
        "group": "controls"
      },
      {
        "name": "gridColor",
        "label": "Grid Color",
        "type": "color",
        "group": "controls"
      },
      {
        "name": "hoverColor",
        "label": "Hover Color",
        "type": "color",
        "group": "controls"
      }
    ]
  },
  "files": [
    {
      "path": "index.tsx",
      "type": "registry:component",
      "target": "src/components/effects/grid-lift/index.tsx"
    },
    {
      "path": "createSuspendedRaf.ts",
      "type": "registry:component",
      "target": "src/components/effects/grid-lift/createSuspendedRaf.ts"
    }
  ]
}